diff options
Diffstat (limited to 'pkgs/build-support')
4 files changed, 30 insertions, 13 deletions
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index 9ed4f5886f617..ccd342eaa0d19 100644 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ b/pkgs/build-support/bintools-wrapper/default.nix @@ -80,7 +80,8 @@ let else if targetPlatform.libc == "nblibc" then "${sharedLibraryLoader}/libexec/ld.elf_so" else if targetPlatform.system == "i686-linux" then "${sharedLibraryLoader}/lib/ld-linux.so.2" else if targetPlatform.system == "x86_64-linux" then "${sharedLibraryLoader}/lib/ld-linux-x86-64.so.2" - else if targetPlatform.system == "powerpc64le-linux" then "${sharedLibraryLoader}/lib/ld64.so.2" + # ELFv1 (.1) or ELFv2 (.2) ABI + else if targetPlatform.isPower64 then "${sharedLibraryLoader}/lib/ld64.so.*" # ARM with a wildcard, which can be "" or "-armhf". else if (with targetPlatform; isAarch32 && isLinux) then "${sharedLibraryLoader}/lib/ld-linux*.so.3" else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1" diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix index d1a886a34a701..a9c2c7c46d14d 100644 --- a/pkgs/build-support/fetchurl/default.nix +++ b/pkgs/build-support/fetchurl/default.nix @@ -120,11 +120,13 @@ let else throw "fetchurl requires either `url` or `urls` to be set"; hash_ = - # Many other combinations don't make sense, but this is the most common one: - if hash != "" && sha256 != "" then throw "multiple hashes passed to fetchurl" else + if with lib.lists; length (filter (s: s != "") [ hash outputHash sha1 sha256 sha512 ]) > 1 + then throw "multiple hashes passed to fetchurl" else if hash != "" then { outputHashAlgo = null; outputHash = hash; } - else if (outputHash != "" && outputHashAlgo != "") then { inherit outputHashAlgo outputHash; } + else if outputHash != "" then + if outputHashAlgo != "" then { inherit outputHashAlgo outputHash; } + else throw "fetchurl was passed outputHash without outputHashAlgo" else if sha512 != "" then { outputHashAlgo = "sha512"; outputHash = sha512; } else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; } else if sha1 != "" then { outputHashAlgo = "sha1"; outputHash = sha1; } diff --git a/pkgs/build-support/node/build-npm-package/default.nix b/pkgs/build-support/node/build-npm-package/default.nix index 0a988cbbaf3f2..7cfc0e9f9c0a5 100644 --- a/pkgs/build-support/node/build-npm-package/default.nix +++ b/pkgs/build-support/node/build-npm-package/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchNpmDeps, npmHooks, nodejs }: +{ lib, stdenv, fetchNpmDeps, buildPackages, nodejs }: { name ? "${args.pname}-${args.version}" , src ? null @@ -44,7 +44,12 @@ let hash = npmDepsHash; }; - inherit (npmHooks.override { inherit nodejs; }) npmConfigHook npmBuildHook npmInstallHook; + # .override {} negates splicing, so we need to use buildPackages explicitly + npmHooks = buildPackages.npmHooks.override { + inherit nodejs; + }; + + inherit (npmHooks) npmConfigHook npmBuildHook npmInstallHook; in stdenv.mkDerivation (args // { inherit npmDeps npmBuildScript; diff --git a/pkgs/build-support/node/build-npm-package/hooks/default.nix b/pkgs/build-support/node/build-npm-package/hooks/default.nix index 3f2b0adf1668d..36f0319e3d230 100644 --- a/pkgs/build-support/node/build-npm-package/hooks/default.nix +++ b/pkgs/build-support/node/build-npm-package/hooks/default.nix @@ -1,4 +1,13 @@ -{ lib, makeSetupHook, nodejs, srcOnly, buildPackages, makeWrapper }: +{ lib +, srcOnly +, makeSetupHook +, makeWrapper +, nodejs +, jq +, prefetch-npm-deps +, diffutils +, installShellFiles +}: { npmConfigHook = makeSetupHook @@ -6,13 +15,13 @@ name = "npm-config-hook"; substitutions = { nodeSrc = srcOnly nodejs; - nodeGyp = "${buildPackages.nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"; + nodeGyp = "${nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"; # Specify `diff`, `jq`, and `prefetch-npm-deps` by abspath to ensure that the user's build # inputs do not cause us to find the wrong binaries. - diff = "${buildPackages.diffutils}/bin/diff"; - jq = "${buildPackages.jq}/bin/jq"; - prefetchNpmDeps = "${buildPackages.prefetch-npm-deps}/bin/prefetch-npm-deps"; + diff = "${diffutils}/bin/diff"; + jq = "${jq}/bin/jq"; + prefetchNpmDeps = "${prefetch-npm-deps}/bin/prefetch-npm-deps"; nodeVersion = nodejs.version; nodeVersionMajor = lib.versions.major nodejs.version; @@ -27,13 +36,13 @@ npmInstallHook = makeSetupHook { name = "npm-install-hook"; - propagatedBuildInputs = with buildPackages; [ + propagatedBuildInputs = [ installShellFiles makeWrapper ]; substitutions = { hostNode = "${nodejs}/bin/node"; - jq = "${buildPackages.jq}/bin/jq"; + jq = "${jq}/bin/jq"; }; } ./npm-install-hook.sh; } |