Commit Graph
743865 Commits
Author SHA1 Message Date
Wolfgang Walther 2acca93bef pkgs/top-level: fix composing "native cross" package sets
When using pkgsCross with a system that ends up the same as the
localSystem, then modifications for package sets like pksgMusl need to
be done for **both** localSystem and crossSystem. Consider the following
on x86_64-linux:

  pkgsCross.gnu64.pkgsMusl

Before this change, this would result in a musl buildPlatform, but a gnu
hostPlatform. This breaks the promise of "stacking" package sets on top
of each other.

After this change, it results in a musl buildPlatform and a musl
hostPlatform. This works better.

One could expect this to result in the same as pkgsCross.musl64, i.e. a
gnu buildPlatform and a musl hostPlatform, however I couldn't get this
to work without increasing memory usage for ci/eval by many, many GB.
This is caused by usage of pkgsi686Linux inside the main package set,
which follows the same hybrid pattern.
2025-01-25 18:58:09 +01:00
Wolfgang Walther 69775e2deb pkgs/top-level: refactor mkHybridPkgs 2025-01-25 18:58:09 +01:00
Wolfgang Walther ba6262f2eb pkgs/top-level: refactor mkCrossPkgs 2025-01-25 18:58:07 +01:00
Wolfgang Walther 01a02e41f7 pkgs/top-level: make package sets composable
The various pkgsXYZ top-level package sets did not pass localSystem /
crossSystem to lower levels, so far. This change propagates original
arguments to lower levels, which include the overrides made by an upper
package sets.

There is an extensive test-suite to test various combinations of package
sets in pkgs/test/top-level. There are a few basic promises made:

- Package sets must be idempotent. pkgsMusl.pkgsMusl === pkgsMusl.

- Once pkgsCross is used any subsequent package sets should affect the
  **host platform** and not the build platform. Examples:
  - pkgsMusl.pkgsCross.aarch64-multiplatform is a cross compilation from
musl to glibc/aarch64
  - pkgsCross.aarch64-multiplatform.pkgsMusl is a cross compilation to
musl/aarch64

- Modifications from an earlier layer should not be lost, unless
  explicitly overwritten. Examples:
  - pkgsStatic.pkgsMusl should still be static.
  - pkgsStatic.pkgsCross.gnu64 should be static, but with glibc instead
of musl.

Exceptions / TODOs:
- pkgsExtraHardening is currently not idempotent, because it applies the
  same flags over and over again.

Supersedes #136549
Resolves #114510
Resolves #212494
Resolves #281596
2025-01-25 18:55:03 +01:00
Wolfgang Walther eec21001b0 nixos/nixpkgs: pass original system args instead of elaborated
Passing the elaborated system defeats what pkgs/top-level/default.nix
tries to do: Pass only the original args and let defaults be inferred.

The underlying problem is that lib.systems.elaborate can not deal with
arbitrary overrides, but will often return an inconsistent system
description when partially overriding some values. This becomes most
prominent if trying to override an already elaborated system.
2025-01-25 18:55:03 +01:00
Wolfgang Walther b75355ccc3 pkgs/test/top-level: add tests for package set composability
This adds some basic tests to compose package sets. The cases that are
currently broken
are commented out, they include things like:

- pkgsStatic.pkgsMusl losing the isStatic flag
- pkgsCross.ppc64-musl.pkgsMusl losing the gcc.abi setting
- pkgsCross.mingwW64.pkgsStatic losing the config string
- pkgsLLVM.pkgsMusl losing the useLLVM flag
- pkgsLLVM.pkgsStatic losing the useLLVM flag
- pkgsLLVM.pkgsi686Linux losing the useLLVM flag

And probably more.
2025-01-25 18:55:00 +01:00
Wolfgang Walther 071851299f pkgs/top-level: refactor mkPkgs
Sharing a first piece of common code between all package sets makes it
easier to maintain and less likely to introduce a new package set
without this.
2025-01-25 18:01:45 +01:00
Wolfgang Walther 3fcedef056 pkgs/top-level/stage: refactor moving more generic package sets to the bottom
No change, just move appendOverlays and extend to the bottom, since they
will be changed much less often. This makes it easier to compare the
other package sets side-by-side.
2025-01-25 17:59:54 +01:00
Wolfgang Walther 4e7cc47a22 pkgs/top-level: rewrite some outdated comments
This removes all specific references to pkgsCross or pkgsi686Linux, because
they have become outdated with the addition of many more package sets.
2025-01-25 17:59:54 +01:00
Robert SchützandGitHub fb8a07b82e immich: 1.124.2 -> 1.125.2 (#376211) 2025-01-25 08:53:53 -08:00
Arne KellerandGitHub 4a9693ea50 capnproto-rust: 0.17.2 -> 0.20.1; add update script (#376359) 2025-01-25 17:49:37 +01:00
Arne KellerandGitHub c81db3b5f6 kio-extras, kio-extras-kf5: switch to openexr_3 (#375854) 2025-01-25 17:48:45 +01:00
nicooandGitHub 841148466f Merge #376433: init vst2-sdk at 2018-06-11 2025-01-25 16:42:45 +00:00
Austin HorstmanandGitHub 5857f428f0 nixos/pay-respects: fix environment config (#376453) 2025-01-25 10:41:42 -06:00
nicoo c33c3066be oxefmsynth: use the packaged version of vst2-sdk 2025-01-25 16:30:26 +00:00
nicoo 0285aa6347 jackass: use the packaged version of vst2-sdk 2025-01-25 16:30:23 +00:00
nicoo 80b19f8e49 bespokesynth: use the packaged version of vst2-sdk 2025-01-25 16:30:19 +00:00
nicoo eee2e78a74 airwindows: use the packaged copy of vst2-sdk 2025-01-25 16:30:14 +00:00
nicoo c6f20632f5 airwave.meta: min-scope with lib 2025-01-25 16:30:14 +00:00
nicoo b98418678d airwave: use the packaged version of vst2-sdk 2025-01-25 16:30:09 +00:00
nicoo c8721658d5 vst2-sdk: init at 2018-06-11 2025-01-25 16:29:30 +00:00
Adam C. StephensandGitHub ee8068209b incus: 6.8.0 -> 6.9.0 (#376732) 2025-01-25 11:21:03 -05:00
Doron BeharandGitHub d6d5854dbb uq: remove (#376674) 2025-01-25 18:07:53 +02:00
Sefa EyeogluandGitHub 46e3ebd975 vkquake: install a desktop file (#358161) 2025-01-25 17:05:13 +01:00
SandroandGitHub a2e08fbd52 nixos/simplesamlphp: don't configure empty options (#370787) 2025-01-25 16:59:55 +01:00
SandroandGitHub 11afe48cdc python313Packages.gattlib: fix build against Python 3.13 (#372684) 2025-01-25 16:59:09 +01:00
Théo Bori fce0852e77 vkquake: install a desktop file 2025-01-25 16:52:24 +01:00
Adam C. Stephens 272fb5babf nixos/tests/incus: extend check timeouts 2025-01-25 10:50:36 -05:00
Maciej KrügerandGitHub 7f7ec703ed qlog: 0.40.1 -> 0.41.1 (#372954) 2025-01-25 16:47:54 +01:00
SandroandGitHub a449b59c1c feather: pin to boost186 (#376241) 2025-01-25 16:46:05 +01:00
Adam C. Stephens b457d4c76b incus: 6.8.0 -> 6.9.0
https://discuss.linuxcontainers.org/t/incus-6-9-has-been-released/22679
https://github.com/lxc/incus/releases/tag/v6.9.0
2025-01-25 10:33:15 -05:00
Christina SørensenandGitHub 0909343035 epilys-bb: unstable-2020-12-04 -> 0.4.4; useFetchCargoVendor (#376648) 2025-01-25 16:25:19 +01:00
Nick CaoandGitHub b01c729903 kdePackages.fcitx5-configtool: 5.1.7 -> 5.1.8 (#376700) 2025-01-25 10:22:47 -05:00
Austin HorstmanandGitHub 33357d6671 vimPlugins.avante-nvim: 0.0.14 -> 0.0.15 (#376642) 2025-01-25 09:18:58 -06:00
Nick CaoandGitHub 42fe1d2f1d yaydl: 0.17.1 -> 0.17.2 (#376712) 2025-01-25 10:16:50 -05:00
Nick CaoandGitHub 7a2755fb12 boxbuddy: 2.5.2 -> 2.5.3 (#376720) 2025-01-25 10:15:53 -05:00
Nick CaoandGitHub 8845e38a94 fzf-make: 0.55.0 -> 0.56.0 (#376722) 2025-01-25 10:15:20 -05:00
Nick CaoandGitHub 525ae4bb09 cargo-deb: 2.10.0 -> 2.11.0 (#376723) 2025-01-25 10:14:38 -05:00
Nick CaoandGitHub 8e5f65a2ec pik: 0.14.0 -> 0.15.0 (#376725) 2025-01-25 10:14:04 -05:00
Nick CaoandGitHub 7ddf6ef408 wg-bond: remove (#376678) 2025-01-25 10:12:27 -05:00
Nick CaoandGitHub 102a575f82 xxv: remove (#376679) 2025-01-25 10:11:57 -05:00
Nick CaoandGitHub 1764671035 t-rec: 0.7.7 -> 0.7.8 (#376682) 2025-01-25 10:11:09 -05:00
Nick CaoandGitHub 12be7800f5 helm-ls: 0.1.1 -> 0.2.0 (#376685) 2025-01-25 10:10:27 -05:00
Nick CaoandGitHub 2553cc8f0a fcitx5-table-other: 5.1.3 -> 5.1.4 (#376690) 2025-01-25 10:09:23 -05:00
Bruno BELANYIandGitHub 34c3c2cf54 markdownlint-cli: 0.43.0 -> 0.44.0 (#376708) 2025-01-25 10:08:55 -05:00
Nick CaoandGitHub e158b6c11f fcitx5-table-extra: 5.1.6 -> 5.1.7 (#376691) 2025-01-25 10:08:41 -05:00
Adam C. StephensandGitHub 0e7fa5714c incus: fix instance unclean shutdown, add per-instance lxcfs support (#373920) 2025-01-25 10:05:03 -05:00
Nick CaoandGitHub 9903954b40 loop: remove (#376657) 2025-01-25 10:04:49 -05:00
Nick CaoandGitHub c88ab54cda mq-cli: remove (#376658) 2025-01-25 10:03:50 -05:00
Nick CaoandGitHub cc1a2a0f68 pio: remove (#376661) 2025-01-25 10:02:57 -05:00