Skip to content

Commit b257ea9

Browse files
committed
Fix pkgs.nixVersions and installTests
... by moving our stuff out of the way from upstream's `nixComponents` and `nixDependencies` attrsets. (I prefer not to use overlays, but let's make it work this way first)
1 parent f6df573 commit b257ea9

5 files changed

Lines changed: 59 additions & 59 deletions

File tree

flake.nix

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -143,14 +143,14 @@
143143
# without "polluting" the top level "`pkgs`" attrset.
144144
# This also has the benefit of providing us with a distinct set of packages
145145
# we can iterate over.
146-
nixComponents =
146+
nixComponents2 =
147147
lib.makeScopeWithSplicing'
148148
{
149149
inherit (final) splicePackages;
150-
inherit (final.nixDependencies) newScope;
150+
inherit (final.nixDependencies2) newScope;
151151
}
152152
{
153-
otherSplices = final.generateSplicesForMkScope "nixComponents";
153+
otherSplices = final.generateSplicesForMkScope "nixComponents2";
154154
f = import ./packaging/components.nix {
155155
inherit (final) lib;
156156
inherit officialRelease;
@@ -161,22 +161,22 @@
161161
};
162162

163163
# The dependencies are in their own scope, so that they don't have to be
164-
# in Nixpkgs top level `pkgs` or `nixComponents`.
165-
nixDependencies =
164+
# in Nixpkgs top level `pkgs` or `nixComponents2`.
165+
nixDependencies2 =
166166
lib.makeScopeWithSplicing'
167167
{
168168
inherit (final) splicePackages;
169-
inherit (final) newScope; # layered directly on pkgs, unlike nixComponents above
169+
inherit (final) newScope; # layered directly on pkgs, unlike nixComponents2 above
170170
}
171171
{
172-
otherSplices = final.generateSplicesForMkScope "nixDependencies";
172+
otherSplices = final.generateSplicesForMkScope "nixDependencies2";
173173
f = import ./packaging/dependencies.nix {
174174
inherit inputs stdenv;
175175
pkgs = final;
176176
};
177177
};
178178

179-
nix = final.nixComponents.nix-cli;
179+
nix = final.nixComponents2.nix-cli;
180180

181181
# See https://github.com/NixOS/nixpkgs/pull/214409
182182
# Remove when fixed in this flake's nixpkgs
@@ -277,7 +277,7 @@
277277
# memory leaks with detect_leaks=0.
278278
"" = rec {
279279
nixpkgs = nixpkgsFor.${system}.native;
280-
nixComponents = nixpkgs.nixComponents.overrideScope (
280+
nixComponents = nixpkgs.nixComponents2.overrideScope (
281281
nixCompFinal: nixCompPrev: {
282282
mesonComponentOverrides = _finalAttrs: prevAttrs: {
283283
mesonFlags =
@@ -305,7 +305,7 @@
305305
nixpkgsPrefix:
306306
{
307307
nixpkgs,
308-
nixComponents ? nixpkgs.nixComponents,
308+
nixComponents ? nixpkgs.nixComponents2,
309309
}:
310310
flatMapAttrs nixComponents (
311311
pkgName: pkg:
@@ -335,9 +335,9 @@
335335
binaryTarball = self.hydraJobs.binaryTarball.${system};
336336
# TODO probably should be `nix-cli`
337337
nix = self.packages.${system}.nix-everything;
338-
nix-manual = nixpkgsFor.${system}.native.nixComponents.nix-manual;
339-
nix-internal-api-docs = nixpkgsFor.${system}.native.nixComponents.nix-internal-api-docs;
340-
nix-external-api-docs = nixpkgsFor.${system}.native.nixComponents.nix-external-api-docs;
338+
nix-manual = nixpkgsFor.${system}.native.nixComponents2.nix-manual;
339+
nix-internal-api-docs = nixpkgsFor.${system}.native.nixComponents2.nix-internal-api-docs;
340+
nix-external-api-docs = nixpkgsFor.${system}.native.nixComponents2.nix-external-api-docs;
341341
}
342342
# We need to flatten recursive attribute sets of derivations to pass `flake check`.
343343
//
@@ -391,17 +391,17 @@
391391
}:
392392
{
393393
# These attributes go right into `packages.<system>`.
394-
"${pkgName}" = nixpkgsFor.${system}.native.nixComponents.${pkgName};
395-
"${pkgName}-static" = nixpkgsFor.${system}.native.pkgsStatic.nixComponents.${pkgName};
396-
"${pkgName}-llvm" = nixpkgsFor.${system}.native.pkgsLLVM.nixComponents.${pkgName};
394+
"${pkgName}" = nixpkgsFor.${system}.native.nixComponents2.${pkgName};
395+
"${pkgName}-static" = nixpkgsFor.${system}.native.pkgsStatic.nixComponents2.${pkgName};
396+
"${pkgName}-llvm" = nixpkgsFor.${system}.native.pkgsLLVM.nixComponents2.${pkgName};
397397
}
398398
// lib.optionalAttrs supportsCross (
399399
flatMapAttrs (lib.genAttrs crossSystems (_: { })) (
400400
crossSystem:
401401
{ }:
402402
{
403403
# These attributes go right into `packages.<system>`.
404-
"${pkgName}-${crossSystem}" = nixpkgsFor.${system}.cross.${crossSystem}.nixComponents.${pkgName};
404+
"${pkgName}-${crossSystem}" = nixpkgsFor.${system}.cross.${crossSystem}.nixComponents2.${pkgName};
405405
}
406406
)
407407
)
@@ -411,7 +411,7 @@
411411
{
412412
# These attributes go right into `packages.<system>`.
413413
"${pkgName}-${stdenvName}" =
414-
nixpkgsFor.${system}.nativeForStdenv.${stdenvName}.nixComponents.${pkgName};
414+
nixpkgsFor.${system}.nativeForStdenv.${stdenvName}.nixComponents2.${pkgName};
415415
}
416416
)
417417
)

packaging/dev-shell.nix

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
{ pkgs }:
77

8-
pkgs.nixComponents.nix-util.overrideAttrs (
8+
pkgs.nixComponents2.nix-util.overrideAttrs (
99
attrs:
1010

1111
let
12-
stdenv = pkgs.nixDependencies.stdenv;
12+
stdenv = pkgs.nixDependencies2.stdenv;
1313
buildCanExecuteHost = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
1414
modular = devFlake.getSystem stdenv.buildPlatform.system;
1515
transformFlag =
@@ -84,26 +84,26 @@ pkgs.nixComponents.nix-util.overrideAttrs (
8484
};
8585

8686
mesonFlags =
87-
map (transformFlag "libutil") (ignoreCrossFile pkgs.nixComponents.nix-util.mesonFlags)
88-
++ map (transformFlag "libstore") (ignoreCrossFile pkgs.nixComponents.nix-store.mesonFlags)
89-
++ map (transformFlag "libfetchers") (ignoreCrossFile pkgs.nixComponents.nix-fetchers.mesonFlags)
87+
map (transformFlag "libutil") (ignoreCrossFile pkgs.nixComponents2.nix-util.mesonFlags)
88+
++ map (transformFlag "libstore") (ignoreCrossFile pkgs.nixComponents2.nix-store.mesonFlags)
89+
++ map (transformFlag "libfetchers") (ignoreCrossFile pkgs.nixComponents2.nix-fetchers.mesonFlags)
9090
++ lib.optionals havePerl (
91-
map (transformFlag "perl") (ignoreCrossFile pkgs.nixComponents.nix-perl-bindings.mesonFlags)
91+
map (transformFlag "perl") (ignoreCrossFile pkgs.nixComponents2.nix-perl-bindings.mesonFlags)
9292
)
93-
++ map (transformFlag "libexpr") (ignoreCrossFile pkgs.nixComponents.nix-expr.mesonFlags)
94-
++ map (transformFlag "libcmd") (ignoreCrossFile pkgs.nixComponents.nix-cmd.mesonFlags);
93+
++ map (transformFlag "libexpr") (ignoreCrossFile pkgs.nixComponents2.nix-expr.mesonFlags)
94+
++ map (transformFlag "libcmd") (ignoreCrossFile pkgs.nixComponents2.nix-cmd.mesonFlags);
9595

9696
nativeBuildInputs =
9797
attrs.nativeBuildInputs or [ ]
98-
++ pkgs.nixComponents.nix-util.nativeBuildInputs
99-
++ pkgs.nixComponents.nix-store.nativeBuildInputs
100-
++ pkgs.nixComponents.nix-fetchers.nativeBuildInputs
101-
++ pkgs.nixComponents.nix-expr.nativeBuildInputs
102-
++ lib.optionals havePerl pkgs.nixComponents.nix-perl-bindings.nativeBuildInputs
103-
++ lib.optionals buildCanExecuteHost pkgs.nixComponents.nix-manual.externalNativeBuildInputs
104-
++ pkgs.nixComponents.nix-internal-api-docs.nativeBuildInputs
105-
++ pkgs.nixComponents.nix-external-api-docs.nativeBuildInputs
106-
++ pkgs.nixComponents.nix-functional-tests.externalNativeBuildInputs
98+
++ pkgs.nixComponents2.nix-util.nativeBuildInputs
99+
++ pkgs.nixComponents2.nix-store.nativeBuildInputs
100+
++ pkgs.nixComponents2.nix-fetchers.nativeBuildInputs
101+
++ pkgs.nixComponents2.nix-expr.nativeBuildInputs
102+
++ lib.optionals havePerl pkgs.nixComponents2.nix-perl-bindings.nativeBuildInputs
103+
++ lib.optionals buildCanExecuteHost pkgs.nixComponents2.nix-manual.externalNativeBuildInputs
104+
++ pkgs.nixComponents2.nix-internal-api-docs.nativeBuildInputs
105+
++ pkgs.nixComponents2.nix-external-api-docs.nativeBuildInputs
106+
++ pkgs.nixComponents2.nix-functional-tests.externalNativeBuildInputs
107107
++ lib.optional (
108108
!buildCanExecuteHost
109109
# Hack around https://github.com/nixos/nixpkgs/commit/bf7ad8cfbfa102a90463433e2c5027573b462479
@@ -129,14 +129,14 @@ pkgs.nixComponents.nix-util.overrideAttrs (
129129

130130
buildInputs =
131131
attrs.buildInputs or [ ]
132-
++ pkgs.nixComponents.nix-util.buildInputs
133-
++ pkgs.nixComponents.nix-store.buildInputs
134-
++ pkgs.nixComponents.nix-store-tests.externalBuildInputs
135-
++ pkgs.nixComponents.nix-fetchers.buildInputs
136-
++ pkgs.nixComponents.nix-expr.buildInputs
137-
++ pkgs.nixComponents.nix-expr.externalPropagatedBuildInputs
138-
++ pkgs.nixComponents.nix-cmd.buildInputs
139-
++ lib.optionals havePerl pkgs.nixComponents.nix-perl-bindings.externalBuildInputs
132+
++ pkgs.nixComponents2.nix-util.buildInputs
133+
++ pkgs.nixComponents2.nix-store.buildInputs
134+
++ pkgs.nixComponents2.nix-store-tests.externalBuildInputs
135+
++ pkgs.nixComponents2.nix-fetchers.buildInputs
136+
++ pkgs.nixComponents2.nix-expr.buildInputs
137+
++ pkgs.nixComponents2.nix-expr.externalPropagatedBuildInputs
138+
++ pkgs.nixComponents2.nix-cmd.buildInputs
139+
++ lib.optionals havePerl pkgs.nixComponents2.nix-perl-bindings.externalBuildInputs
140140
++ lib.optional havePerl pkgs.perl;
141141
}
142142
)

packaging/hydra.nix

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ let
1919

2020
testNixVersions =
2121
pkgs: daemon:
22-
pkgs.nixComponents.nix-functional-tests.override {
22+
pkgs.nixComponents2.nix-functional-tests.override {
2323
pname = "nix-daemon-compat-tests";
2424
version = "${pkgs.nix.version}-with-daemon-${daemon.version}";
2525

2626
test-daemon = daemon;
2727
};
2828

29-
# Technically we could just return `pkgs.nixComponents`, but for Hydra it's
29+
# Technically we could just return `pkgs.nixComponents2`, but for Hydra it's
3030
# convention to transpose it, and to transpose it efficiently, we need to
3131
# enumerate them manually, so that we don't evaluate unnecessary package sets.
3232
# See listingIsComplete below.
@@ -86,7 +86,7 @@ in
8686
} (_: null);
8787
actualPkgs = lib.concatMapAttrs (
8888
k: v: if lib.strings.hasPrefix "nix-" k then { ${k} = null; } else { }
89-
) nixpkgsFor.${arbitrarySystem}.native.nixComponents;
89+
) nixpkgsFor.${arbitrarySystem}.native.nixComponents2;
9090
diff = lib.concatStringsSep "\n" (
9191
lib.concatLists (
9292
lib.mapAttrsToList (
@@ -112,7 +112,7 @@ in
112112

113113
# Binary package for various platforms.
114114
build = forAllPackages (
115-
pkgName: forAllSystems (system: nixpkgsFor.${system}.native.nixComponents.${pkgName})
115+
pkgName: forAllSystems (system: nixpkgsFor.${system}.native.nixComponents2.${pkgName})
116116
);
117117

118118
shellInputs = removeAttrs (forAllSystems (
@@ -122,7 +122,7 @@ in
122122
buildStatic = forAllPackages (
123123
pkgName:
124124
lib.genAttrs linux64BitSystems (
125-
system: nixpkgsFor.${system}.native.pkgsStatic.nixComponents.${pkgName}
125+
system: nixpkgsFor.${system}.native.pkgsStatic.nixComponents2.${pkgName}
126126
)
127127
);
128128

@@ -139,7 +139,7 @@ in
139139
forAllCrossSystems (
140140
crossSystem:
141141
lib.genAttrs [ "x86_64-linux" ] (
142-
system: nixpkgsFor.${system}.cross.${crossSystem}.nixComponents.${pkgName}
142+
system: nixpkgsFor.${system}.cross.${crossSystem}.nixComponents2.${pkgName}
143143
)
144144
)
145145
)
@@ -149,7 +149,7 @@ in
149149
let
150150
components = forAllSystems (
151151
system:
152-
nixpkgsFor.${system}.native.nixComponents.overrideScope (
152+
nixpkgsFor.${system}.native.nixComponents2.overrideScope (
153153
self: super: {
154154
nix-expr = super.nix-expr.override { enableGC = false; };
155155
}
@@ -158,15 +158,15 @@ in
158158
in
159159
forAllPackages (pkgName: forAllSystems (system: components.${system}.${pkgName}));
160160

161-
buildNoTests = forAllSystems (system: nixpkgsFor.${system}.native.nixComponents.nix-cli);
161+
buildNoTests = forAllSystems (system: nixpkgsFor.${system}.native.nixComponents2.nix-cli);
162162

163163
# Toggles some settings for better coverage. Windows needs these
164164
# library combinations, and Debian build Nix with GNU readline too.
165165
buildReadlineNoMarkdown =
166166
let
167167
components = forAllSystems (
168168
system:
169-
nixpkgsFor.${system}.native.nixComponents.overrideScope (
169+
nixpkgsFor.${system}.native.nixComponents2.overrideScope (
170170
self: super: {
171171
nix-cmd = super.nix-cmd.override {
172172
enableMarkdown = false;
@@ -179,7 +179,7 @@ in
179179
forAllPackages (pkgName: forAllSystems (system: components.${system}.${pkgName}));
180180

181181
# Perl bindings for various platforms.
182-
perlBindings = forAllSystems (system: nixpkgsFor.${system}.native.nixComponents.nix-perl-bindings);
182+
perlBindings = forAllSystems (system: nixpkgsFor.${system}.native.nixComponents2.nix-perl-bindings);
183183

184184
# Binary tarball for various platforms, containing a Nix store
185185
# with the closure of 'nix' package, and the second half of
@@ -229,13 +229,13 @@ in
229229
# };
230230

231231
# Nix's manual
232-
manual = nixpkgsFor.x86_64-linux.native.nixComponents.nix-manual;
232+
manual = nixpkgsFor.x86_64-linux.native.nixComponents2.nix-manual;
233233

234234
# API docs for Nix's unstable internal C++ interfaces.
235-
internal-api-docs = nixpkgsFor.x86_64-linux.native.nixComponents.nix-internal-api-docs;
235+
internal-api-docs = nixpkgsFor.x86_64-linux.native.nixComponents2.nix-internal-api-docs;
236236

237237
# API docs for Nix's C bindings.
238-
external-api-docs = nixpkgsFor.x86_64-linux.native.nixComponents.nix-external-api-docs;
238+
external-api-docs = nixpkgsFor.x86_64-linux.native.nixComponents2.nix-external-api-docs;
239239

240240
# System tests.
241241
tests =

tests/nixos/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ let
3131
nixpkgs.pkgs = nixpkgsFor.${system}.native;
3232
nix.checkAllErrors = false;
3333
# TODO: decide which packaging stage to use. `nix-cli` is efficient, but not the same as the user-facing `everything.nix` package (`default`). Perhaps a good compromise is `everything.nix` + `noTests` defined above?
34-
nix.package = nixpkgsFor.${system}.native.nixComponents.nix-cli;
34+
nix.package = nixpkgsFor.${system}.native.nixComponents2.nix-cli;
3535

3636
# Evaluate VMs faster
3737
documentation.enable = false;

tests/nixos/functional/common.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ in
4949
5050
cd ~
5151
52-
cp -r ${pkgs.nixComponents.nix-functional-tests.src} nix
52+
cp -r ${pkgs.nixComponents2.nix-functional-tests.src} nix
5353
chmod -R +w nix
5454
5555
chmod u+w nix/.version
56-
echo ${pkgs.nixComponents.version} > nix/.version
56+
echo ${pkgs.nixComponents2.version} > nix/.version
5757
5858
export isTestOnNixOS=1
5959

0 commit comments

Comments
 (0)