diff options
author | Artturi <Artturin@artturin.com> | 2022-11-20 15:07:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-20 15:07:28 +0200 |
commit | 8181233059a8caf6f7bde1172c042a42883ecb56 (patch) | |
tree | 7de5f08cd4494cbeeb7b529e34022f4493450b9b /pkgs | |
parent | 6638106edfd3e7a1232c356c9ae4d672e5344753 (diff) | |
parent | 341e6fd558abde5b4f6609833ff503c8d1e9b379 (diff) |
Merge pull request #201946 from Artturin/splicingstuff2
lib.overrideDerivation: override attrs in __spliced && splice.nix: start deprecating nativeDrv and crossDrv
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/build-support/kernel/make-initrd-ng.nix | 2 | ||||
-rw-r--r-- | pkgs/build-support/node/build-npm-package/hooks/default.nix | 9 | ||||
-rw-r--r-- | pkgs/build-support/rust/hooks/default.nix | 4 | ||||
-rw-r--r-- | pkgs/development/libraries/qt-6/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/libraries/qt-6/qtModule.nix | 2 | ||||
-rw-r--r-- | pkgs/stdenv/generic/make-derivation.nix | 8 | ||||
-rw-r--r-- | pkgs/top-level/splice.nix | 17 |
7 files changed, 19 insertions, 25 deletions
diff --git a/pkgs/build-support/kernel/make-initrd-ng.nix b/pkgs/build-support/kernel/make-initrd-ng.nix index e762464fc4893..dc0e9b87db2ab 100644 --- a/pkgs/build-support/kernel/make-initrd-ng.nix +++ b/pkgs/build-support/kernel/make-initrd-ng.nix @@ -76,7 +76,7 @@ in nativeBuildInputs = [makeInitrdNGTool cpio] ++ lib.optional makeUInitrd ubootTools ++ lib.optional strip binutils; - STRIP = if strip then "${(binutils.nativeDrv or binutils).targetPrefix}strip" else null; + STRIP = if strip then "${pkgsBuildHost.binutils.targetPrefix}strip" else null; }) '' mkdir ./root make-initrd-ng "$contentsPath" ./root 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 d2293ed42f793..4ac981af916cf 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,4 @@ -{ lib, makeSetupHook, nodejs, srcOnly, diffutils, jq, makeWrapper }: +{ lib, makeSetupHook, nodejs, srcOnly, buildPackages, makeWrapper }: { npmConfigHook = makeSetupHook @@ -9,9 +9,8 @@ # Specify the stdenv's `diff` and `jq` by abspath to ensure that the user's build # inputs do not cause us to find the wrong binaries. - # The `.nativeDrv` stanza works like nativeBuildInputs and ensures cross-compiling has the right version available. - diff = "${diffutils.nativeDrv or diffutils}/bin/diff"; - jq = "${jq.nativeDrv or jq}/bin/jq"; + diff = "${buildPackages.diffutils}/bin/diff"; + jq = "${buildPackages.jq}/bin/jq"; nodeVersion = nodejs.version; nodeVersionMajor = lib.versions.major nodejs.version; @@ -29,7 +28,7 @@ deps = [ makeWrapper ]; substitutions = { hostNode = "${nodejs}/bin/node"; - jq = "${jq.nativeDrv or jq}/bin/jq"; + jq = "${buildPackages.jq}/bin/jq"; }; } ./npm-install-hook.sh; } diff --git a/pkgs/build-support/rust/hooks/default.nix b/pkgs/build-support/rust/hooks/default.nix index 9d3fc9b126ef6..6ee122adb52a1 100644 --- a/pkgs/build-support/rust/hooks/default.nix +++ b/pkgs/build-support/rust/hooks/default.nix @@ -2,7 +2,6 @@ , callPackage , cargo , clang -, diffutils , lib , makeSetupHook , maturin @@ -65,8 +64,7 @@ in { # Specify the stdenv's `diff` by abspath to ensure that the user's build # inputs do not cause us to find the wrong `diff`. - # The `.nativeDrv` stanza works like nativeBuildInputs and ensures cross-compiling has the right version available. - diff = "${diffutils.nativeDrv or diffutils}/bin/diff"; + diff = "${lib.getBin buildPackages.diffutils}/bin/diff"; # We want to specify the correct crt-static flag for both # the build and host platforms. This is important when the wanted diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix index 5d17df8028d2e..4c36e29f02f2c 100644 --- a/pkgs/development/libraries/qt-6/default.nix +++ b/pkgs/development/libraries/qt-6/default.nix @@ -107,6 +107,8 @@ let } ./hooks/qmake-hook.sh; }; + # TODO(@Artturin): convert to makeScopeWithSplicing + # simple example of how to do that in 5568a4d25ca406809530420996d57e0876ca1a01 self = lib.makeScope newScope addPackages; in self diff --git a/pkgs/development/libraries/qt-6/qtModule.nix b/pkgs/development/libraries/qt-6/qtModule.nix index 3ef0ea191a760..5f6d429edf58b 100644 --- a/pkgs/development/libraries/qt-6/qtModule.nix +++ b/pkgs/development/libraries/qt-6/qtModule.nix @@ -61,7 +61,7 @@ stdenv.mkDerivation (args // { if [[ -z "$dontSyncQt" && -f sync.profile ]]; then # FIXME: this probably breaks crosscompiling as it's not from nativeBuildInputs # I don't know how to get /libexec from nativeBuildInputs to work, it's not under /bin - ${self.qtbase.dev.nativeDrv or self.qtbase.dev}/libexec/syncqt.pl -version "''${version%%-*}" + ${lib.getDev self.qtbase}/libexec/syncqt.pl -version "''${version%%-*}" fi ''; diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 78cbad190a6e3..510537aac9f39 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -209,7 +209,7 @@ else let dependencies = map (map lib.chooseDevOutputs) [ [ (map (drv: drv.__spliced.buildBuild or drv) (checkDependencyList "depsBuildBuild" depsBuildBuild)) - (map (drv: drv.nativeDrv or drv) (checkDependencyList "nativeBuildInputs" nativeBuildInputs + (map (drv: drv.__spliced.buildHost or drv) (checkDependencyList "nativeBuildInputs" nativeBuildInputs ++ lib.optional separateDebugInfo' ../../build-support/setup-hooks/separate-debug-info.sh ++ lib.optional stdenv.hostPlatform.isWindows ../../build-support/setup-hooks/win-dll-link.sh ++ lib.optionals doCheck checkInputs @@ -218,7 +218,7 @@ else let ] [ (map (drv: drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHost" depsHostHost)) - (map (drv: drv.crossDrv or drv) (checkDependencyList "buildInputs" buildInputs)) + (map (drv: drv.__spliced.hostTarget or drv) (checkDependencyList "buildInputs" buildInputs)) ] [ (map (drv: drv.__spliced.targetTarget or drv) (checkDependencyList "depsTargetTarget" depsTargetTarget)) @@ -227,12 +227,12 @@ else let propagatedDependencies = map (map lib.chooseDevOutputs) [ [ (map (drv: drv.__spliced.buildBuild or drv) (checkDependencyList "depsBuildBuildPropagated" depsBuildBuildPropagated)) - (map (drv: drv.nativeDrv or drv) (checkDependencyList "propagatedNativeBuildInputs" propagatedNativeBuildInputs)) + (map (drv: drv.__spliced.buildHost or drv) (checkDependencyList "propagatedNativeBuildInputs" propagatedNativeBuildInputs)) (map (drv: drv.__spliced.buildTarget or drv) (checkDependencyList "depsBuildTargetPropagated" depsBuildTargetPropagated)) ] [ (map (drv: drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHostPropagated" depsHostHostPropagated)) - (map (drv: drv.crossDrv or drv) (checkDependencyList "propagatedBuildInputs" propagatedBuildInputs)) + (map (drv: drv.__spliced.hostTarget or drv) (checkDependencyList "propagatedBuildInputs" propagatedBuildInputs)) ] [ (map (drv: drv.__spliced.targetTarget or drv) (checkDependencyList "depsTargetTargetPropagated" depsTargetTargetPropagated)) diff --git a/pkgs/top-level/splice.nix b/pkgs/top-level/splice.nix index 459baaca2e636..2bf15252f9ada 100644 --- a/pkgs/top-level/splice.nix +++ b/pkgs/top-level/splice.nix @@ -8,16 +8,9 @@ # The solution is to splice the package sets together as we do below, so every # `callPackage`d expression in fact gets both versions. Each# derivation (and # each derivation's outputs) consists of the run-time version, augmented with a -# `nativeDrv` field for the build-time version, and `crossDrv` field for the +# `__spliced.buildHost` field for the build-time version, and `__spliced.hostTarget` field for the # run-time version. # -# We could have used any names we want for the disambiguated versions, but -# `crossDrv` and `nativeDrv` were somewhat similarly used for the old -# cross-compiling infrastructure. The names are mostly invisible as -# `mkDerivation` knows how to pull out the right ones for `buildDepends` and -# friends, but a few packages use them directly, so it seemed efficient (to -# @Ericson2314) to reuse those names, at least initially, to minimize breakage. -# # For performance reasons, rather than uniformally splice in all cases, we only # do so when `pkgs` and `buildPackages` are distinct. The `actuallySplice` # parameter there the boolean value of that equality check. @@ -46,14 +39,16 @@ let valueHostTarget = pkgsHostTarget.${name} or {}; valueTargetTarget = pkgsTargetTarget.${name} or {}; augmentedValue = defaultValue - # TODO(@Ericson2314): Stop using old names after transition period - // (lib.optionalAttrs (pkgsBuildHost ? ${name}) { nativeDrv = valueBuildHost; }) - // (lib.optionalAttrs (pkgsHostTarget ? ${name}) { crossDrv = valueHostTarget; }) + # TODO(@Artturin): remove before release 23.05 and only have __spliced. + // (lib.optionalAttrs (pkgsBuildHost ? ${name}) { nativeDrv = lib.warn "use ${name}.__spliced.buildHost instead of ${name}.nativeDrv" valueBuildHost; }) + // (lib.optionalAttrs (pkgsHostTarget ? ${name}) { crossDrv = lib.warn "use ${name}.__spliced.hostTarget instead of ${name}.crossDrv" valueHostTarget; }) // { __spliced = (lib.optionalAttrs (pkgsBuildBuild ? ${name}) { buildBuild = valueBuildBuild; }) + // (lib.optionalAttrs (pkgsBuildHost ? ${name}) { buildHost = valueBuildHost; }) // (lib.optionalAttrs (pkgsBuildTarget ? ${name}) { buildTarget = valueBuildTarget; }) // (lib.optionalAttrs (pkgsHostHost ? ${name}) { hostHost = valueHostHost; }) + // (lib.optionalAttrs (pkgsHostTarget ? ${name}) { hostTarget = valueHostTarget; }) // (lib.optionalAttrs (pkgsTargetTarget ? ${name}) { targetTarget = valueTargetTarget; }); }; |