···78CI may need certain packages from Nixpkgs.
9In order to ensure that the needed packages are generally available without building,
10-[`pinned-nixpkgs.json`](./pinned-nixpkgs.json) contains a pinned Nixpkgs version tested by Hydra.
1112-Run [`update-pinned-nixpkgs.sh`](./update-pinned-nixpkgs.sh) to update it.
1314## `ci/nixpkgs-vet.sh BASE_BRANCH [REPOSITORY]`
15···2021- `BASE_BRANCH`: The base branch to use, e.g. master or release-24.05
22- `REPOSITORY`: The repository from which to fetch the base branch. Defaults to <https://github.com/NixOS/nixpkgs.git>.
23-24-## `ci/nixpkgs-vet`
25-26-This directory contains scripts and files used and related to [`nixpkgs-vet`](https://github.com/NixOS/nixpkgs-vet/), which the CI uses to implement `pkgs/by-name` checks, along with many other Nixpkgs architecture rules.
27-See also the [CI GitHub Action](../.github/workflows/nixpkgs-vet.yml).
28-29-## `ci/nixpkgs-vet/update-pinned-tool.sh`
30-31-Updates the pinned [`nixpkgs-vet` tool](https://github.com/NixOS/nixpkgs-vet) in [`ci/nixpkgs-vet/pinned-version.txt`](./nixpkgs-vet/pinned-version.txt) to the latest [release](https://github.com/NixOS/nixpkgs-vet/releases).
32-33-Each release contains a pre-built `x86_64-linux` version of the tool which is used by CI.
34-35-This script currently needs to be called manually when the CI tooling needs to be updated.
36-37-Why not just build the tooling right from the PRs Nixpkgs version?
38-39-- Because it allows CI to check all PRs, even if they would break the CI tooling.
40-- Because it makes the CI check very fast, since no Nix builds need to be done, even for mass rebuilds.
41-- Because it improves security, since we don't have to build potentially untrusted code from PRs.
42- The tool only needs a very minimal Nix evaluation at runtime, which can work with [readonly-mode](https://nixos.org/manual/nix/stable/command-ref/opt-common.html#opt-readonly-mode) and [restrict-eval](https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-restrict-eval).
···78CI may need certain packages from Nixpkgs.
9In order to ensure that the needed packages are generally available without building,
10+[`pinned.json`](./pinned.json) contains a pinned Nixpkgs version tested by Hydra.
1112+Run [`update-pinned.sh`](./update-pinned.sh) to update it.
1314## `ci/nixpkgs-vet.sh BASE_BRANCH [REPOSITORY]`
15···2021- `BASE_BRANCH`: The base branch to use, e.g. master or release-24.05
22- `REPOSITORY`: The repository from which to fetch the base branch. Defaults to <https://github.com/NixOS/nixpkgs.git>.
00000000000000000000
+1-1
ci/codeowners-validator/default.nix
···20 })
21 # Undoes part of the above PR: We don't want to require write access
22 # to the repository, that's only needed for GitHub's native CODEOWNERS.
23- # Furthermore, it removes an unneccessary check from the code
24 # that breaks tokens generated for GitHub Apps.
25 ./permissions.patch
26 # Allows setting a custom CODEOWNERS path using the OWNERS_FILE env var
···20 })
21 # Undoes part of the above PR: We don't want to require write access
22 # to the repository, that's only needed for GitHub's native CODEOWNERS.
23+ # Furthermore, it removes an unnecessary check from the code
24 # that breaks tokens generated for GitHub Apps.
25 ./permissions.patch
26 # Allows setting a custom CODEOWNERS path using the OWNERS_FILE env var
···61trace -n "Merging base branch into the HEAD commit in $tmp/merged.. "
62git -C "$tmp/merged" merge -q --no-edit "$baseSha"
63trace -e "\e[34m$(git -C "$tmp/merged" rev-parse HEAD)\e[0m"
64-trace -n "Reading pinned nixpkgs-vet version from pinned-version.txt.. "
65-toolVersion=$(<"$tmp/merged/ci/nixpkgs-vet/pinned-version.txt")
66-trace -e "\e[34m$toolVersion\e[0m"
6768trace "Running nixpkgs-vet.."
69nix-build ci -A nixpkgs-vet --argstr base "$tmp/base" --argstr head "$tmp/merged"
···61trace -n "Merging base branch into the HEAD commit in $tmp/merged.. "
62git -C "$tmp/merged" merge -q --no-edit "$baseSha"
63trace -e "\e[34m$(git -C "$tmp/merged" rev-parse HEAD)\e[0m"
0006465trace "Running nixpkgs-vet.."
66nix-build ci -A nixpkgs-vet --argstr base "$tmp/base" --argstr head "$tmp/merged"
···195Defaults to `null`
196197000000000000000198## Overriding `goModules` {#buildGoModule-goModules-override}
199200Overriding `<pkg>.goModules` by calling `goModules.overrideAttrs` is unsupported. Still, it is possible to override the `vendorHash` (`goModules`'s `outputHash`) and the `pre`/`post` hooks for both the build and patch phases of the primary and `goModules` derivation.
···195Defaults to `null`
196197198+## Versioned toolchains and builders {#ssec-go-toolchain-versions}
199+200+Beside `buildGoModule`, there are also versioned builders available that pin a specific Go version, like `buildGo124Module` for Go 1.24.
201+Similar, versioned toolchains are available, like `go_1_24` for Go 1.24.
202+Both builder and toolchain of a certain version will be removed as soon as the Go version reaches end of life.
203+204+As toolchain updates in nixpkgs cause mass rebuilds and must go through the staging cycle, it can take a while until a new Go minor version is available to consumers of nixpkgs.
205+If you want quicker access to the latest minor, use `go_latest` toolchain and `buildGoLatestModule` builder.
206+To learn more about the Go maintenance and upgrade procedure in nixpkgs, check out the [Go toolchain/builder upgrade policy](https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/go/README.md#go-toolchainbuilder-upgrade-policy).
207+208+::: {.warning}
209+The use of `go_latest` and `buildGoLatestModule` is restricted within nixpkgs.
210+The [Go toolchain/builder upgrade policy](https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/go/README.md#go-toolchainbuilder-upgrade-policy) must be followed.
211+:::
212+213## Overriding `goModules` {#buildGoModule-goModules-override}
214215Overriding `<pkg>.goModules` by calling `goModules.overrideAttrs` is unsupported. Still, it is possible to override the `vendorHash` (`goModules`'s `outputHash`) and the `pre`/`post` hooks for both the build and patch phases of the primary and `goModules` derivation.
···230231- `buildGoModule` now supports a `goSum` attribute (`null` by default) to optionally provide a path to `go.sum` and correctly enabling rebuilds when the file changes.
23200000233- top-level `playwright` now refers to the github Microsoft/playwright package
234 instead of the python tester launcher. You can still refer to the python
235 launcher via `python3Packages.toPythonApplication python3Packages.playwright`
···230231- `buildGoModule` now supports a `goSum` attribute (`null` by default) to optionally provide a path to `go.sum` and correctly enabling rebuilds when the file changes.
232233+- The newly added aliases `go_latest` and `buildGoLatestModule` are now available and can be use to prevent packages like `gopls` from breaking whenever the default toolchain minor version is lagging behind.
234+ It can also be used _outside of nixpkgs_ to get fast access to new Go minor versions without having to wait for a staging cycle that will update the default builder/toolchain.
235+236+- A [policy documenting the details of Go toolchain and builder upgrades](https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/go/README.md#go-toolchainbuilder-upgrade-policy) in nixpkgs, as well as rules related to using non-default builders like `buildGo1xxModule` and `buildGoLatestModule` has been added in-tree.
237+238- top-level `playwright` now refers to the github Microsoft/playwright package
239 instead of the python tester launcher. You can still refer to the python
240 launcher via `python3Packages.toPythonApplication python3Packages.playwright`
+1-1
lib/attrsets.nix
···17471748 /**
1749 Get the first of the `outputs` provided by the package, or the default.
1750- This function is alligned with `_overrideFirst()` from the `multiple-outputs.sh` setup hook.
1751 Like `getOutput`, the function is idempotent.
17521753 # Inputs
···17471748 /**
1749 Get the first of the `outputs` provided by the package, or the default.
1750+ This function is aligned with `_overrideFirst()` from the `multiple-outputs.sh` setup hook.
1751 Like `getOutput`, the function is idempotent.
17521753 # Inputs
+1-1
lib/fixed-points.nix
···389390 extensions = composeManyExtensions [ overlayA overlayB ];
391392- # Caluculate the fixed point of all composed overlays.
393 fixedpoint = lib.fix (lib.extends extensions original );
394395 in fixedpoint
···389390 extensions = composeManyExtensions [ overlayA overlayB ];
391392+ # Calculate the fixed point of all composed overlays.
393 fixedpoint = lib.fix (lib.extends extensions original );
394395 in fixedpoint
+2-2
lib/options.nix
···404 ```nix
405 myType = mkOptionType {
406 name = "myType";
407- merge = mergeDefaultOption; # <- This line is redundant. It is the default aready.
408 };
409 ```
410···470 args@{
471 message,
472 # WARNING: the default merge function assumes that the definition is a valid (option) value. You MUST pass a merge function if the return value needs to be
473- # - type checked beyond what .check does (which should be very litte; only on the value head; not attribute values, etc)
474 # - if you want attribute values to be checked, or list items
475 # - if you want coercedTo-like behavior to work
476 merge ? loc: defs: (head defs).value,
···404 ```nix
405 myType = mkOptionType {
406 name = "myType";
407+ merge = mergeDefaultOption; # <- This line is redundant. It is the default already.
408 };
409 ```
410···470 args@{
471 message,
472 # WARNING: the default merge function assumes that the definition is a valid (option) value. You MUST pass a merge function if the return value needs to be
473+ # - type checked beyond what .check does (which should be very little; only on the value head; not attribute values, etc)
474 # - if you want attribute values to be checked, or list items
475 # - if you want coercedTo-like behavior to work
476 merge ? loc: defs: (head defs).value,
+8-2
lib/types.nix
···75 if pos == null then "" else " at ${pos.file}:${toString pos.line}:${toString pos.column}";
7677 # Internal functor to help for migrating functor.wrapped to functor.payload.elemType
78- # Note that individual attributes can be overriden if needed.
79 elemTypeFunctor =
80 name:
81 { elemType, ... }@payload:
···1455 nestedTypes.coercedType = coercedType;
1456 nestedTypes.finalType = finalType;
1457 };
0014581459- # Augment the given type with an additional type check function.
00001460 addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; };
14611462 };
···75 if pos == null then "" else " at ${pos.file}:${toString pos.line}:${toString pos.column}";
7677 # Internal functor to help for migrating functor.wrapped to functor.payload.elemType
78+ # Note that individual attributes can be overridden if needed.
79 elemTypeFunctor =
80 name:
81 { elemType, ... }@payload:
···1455 nestedTypes.coercedType = coercedType;
1456 nestedTypes.finalType = finalType;
1457 };
1458+ /**
1459+ Augment the given type with an additional type check function.
14601461+ :::{.warning}
1462+ This function has some broken behavior see: [#396021](https://github.com/NixOS/nixpkgs/issues/396021)
1463+ Fixing is not trivial, we appreciate any help!
1464+ :::
1465+ */
1466 addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; };
14671468 };
+2-2
nixos/lib/make-options-doc/default.nix
···4546 Documentation rendered as AsciiDoc. This is useful for e.g. man pages.
4748- > Note: NixOS itself uses this ouput to to build the configuration.nix man page"
4950 ## optionsNix
51···59 let
60 # Evaluate a NixOS configuration
61 eval = import (pkgs.path + "/nixos/lib/eval-config.nix") {
62- # Overriden explicitly here, this would include all modules from NixOS otherwise.
63 # See: docs of eval-config.nix for more details
64 baseModules = [];
65 modules = [
···4546 Documentation rendered as AsciiDoc. This is useful for e.g. man pages.
4748+ > Note: NixOS itself uses this output to to build the configuration.nix man page"
4950 ## optionsNix
51···59 let
60 # Evaluate a NixOS configuration
61 eval = import (pkgs.path + "/nixos/lib/eval-config.nix") {
62+ # Overridden explicitly here, this would include all modules from NixOS otherwise.
63 # See: docs of eval-config.nix for more details
64 baseModules = [];
65 modules = [
+3-7
nixos/lib/systemd-unit-options.nix
···15 inherit (lib)
16 any
17 concatMap
18- filterOverrides
19 isList
20 literalExpression
21 mergeEqualOption
···56 name = "systemd option";
57 merge =
58 loc: defs:
59- let
60- defs' = filterOverrides defs;
61- in
62- if any (def: isList def.value) defs' then
63- concatMap (def: toList def.value) defs'
64 else
65- mergeEqualOption loc defs';
66 };
6768 sharedOptions = {
···15 inherit (lib)
16 any
17 concatMap
018 isList
19 literalExpression
20 mergeEqualOption
···55 name = "systemd option";
56 merge =
57 loc: defs:
58+ if any (def: isList def.value) defs then
59+ concatMap (def: toList def.value) defs
00060 else
61+ mergeEqualOption loc defs;
62 };
6364 sharedOptions = {
+1-1
nixos/lib/testing/network.nix
···130 virtualisation.test.nodeName = mkOption {
131 internal = true;
132 default = name;
133- # We need to force this in specilisations, otherwise it'd be
134 # readOnly = true;
135 description = ''
136 The `name` in `nodes.<name>`; stable across `specialisations`.
···130 virtualisation.test.nodeName = mkOption {
131 internal = true;
132 default = name;
133+ # We need to force this in specialisations, otherwise it'd be
134 # readOnly = true;
135 description = ''
136 The `name` in `nodes.<name>`; stable across `specialisations`.
+1-1
nixos/maintainers/option-usages.nix
···60 inherit (eval) pkgs;
6162 excludedTestOptions = [
63- # We cannot evluate _module.args, as it is used during the computation
64 # of the modules list.
65 "_module.args"
66
···60 inherit (eval) pkgs;
6162 excludedTestOptions = [
63+ # We cannot evaluate _module.args, as it is used during the computation
64 # of the modules list.
65 "_module.args"
66
+2-4
nixos/modules/config/sysctl.nix
···9 checkType = x: lib.isBool x || lib.isString x || lib.isInt x || x == null;
10 in
11 checkType val || (val._type or "" == "override" && checkType val.content);
12- merge = loc: defs: lib.mergeOneOption loc (lib.filterOverrides defs);
13 };
1415in
···22 type =
23 let
24 highestValueType = lib.types.ints.unsigned // {
25- merge =
26- loc: defs:
27- lib.foldl (a: b: if b.value == null then null else lib.max a b.value) 0 (lib.filterOverrides defs);
28 };
29 in
30 lib.types.submodule {
···9 checkType = x: lib.isBool x || lib.isString x || lib.isInt x || x == null;
10 in
11 checkType val || (val._type or "" == "override" && checkType val.content);
12+ merge = loc: defs: lib.mergeOneOption loc defs;
13 };
1415in
···22 type =
23 let
24 highestValueType = lib.types.ints.unsigned // {
25+ merge = loc: defs: lib.foldl (a: b: if b.value == null then null else lib.max a b.value) 0 defs;
0026 };
27 in
28 lib.types.submodule {
+3-3
nixos/modules/misc/ids.nix
···273 caddy = 239;
274 taskd = 240;
275 # factorio = 241; # DynamicUser = true
276- # emby = 242; # unusued, removed 2019-05-01
277 #graylog = 243;# dynamically allocated as of 2021-09-03
278 sniproxy = 244;
279 nzbget = 245;
···371 # system user or group of the same id in someone else's NixOS.
372 # This could break their system and make that person upset for a whole day.
373 #
374- # Sidenote: the default is defined in `shadow` module[2], and the relavent change
375 # was made way back in 2014[3].
376 #
377 # [1]: https://man7.org/linux/man-pages/man5/login.defs.5.html#:~:text=SYS_UID_MAX%20(number)%2C%20SYS_UID_MIN%20(number)
···700 # system user or group of the same id in someone else's NixOS.
701 # This could break their system and make that person upset for a whole day.
702 #
703- # Sidenote: the default is defined in `shadow` module[2], and the relavent change
704 # was made way back in 2014[3].
705 #
706 # [1]: https://man7.org/linux/man-pages/man5/login.defs.5.html#:~:text=SYS_UID_MAX%20(number)%2C%20SYS_UID_MIN%20(number)
···273 caddy = 239;
274 taskd = 240;
275 # factorio = 241; # DynamicUser = true
276+ # emby = 242; # unused, removed 2019-05-01
277 #graylog = 243;# dynamically allocated as of 2021-09-03
278 sniproxy = 244;
279 nzbget = 245;
···371 # system user or group of the same id in someone else's NixOS.
372 # This could break their system and make that person upset for a whole day.
373 #
374+ # Sidenote: the default is defined in `shadow` module[2], and the relevant change
375 # was made way back in 2014[3].
376 #
377 # [1]: https://man7.org/linux/man-pages/man5/login.defs.5.html#:~:text=SYS_UID_MAX%20(number)%2C%20SYS_UID_MIN%20(number)
···700 # system user or group of the same id in someone else's NixOS.
701 # This could break their system and make that person upset for a whole day.
702 #
703+ # Sidenote: the default is defined in `shadow` module[2], and the relevant change
704 # was made way back in 2014[3].
705 #
706 # [1]: https://man7.org/linux/man-pages/man5/login.defs.5.html#:~:text=SYS_UID_MAX%20(number)%2C%20SYS_UID_MIN%20(number)
+1-1
nixos/modules/profiles/image-based-appliance.nix
···1-# This profile sets up a sytem for image based appliance usage. An appliance is
2# installed as an image, cannot be re-built, has no Nix available, and is
3# generally not meant for interactive use. Updates to such an appliance are
4# handled by updating whole partition images via a tool like systemd-sysupdate.
···1+# This profile sets up a system for image based appliance usage. An appliance is
2# installed as an image, cannot be re-built, has no Nix available, and is
3# generally not meant for interactive use. Updates to such an appliance are
4# handled by updating whole partition images via a tool like systemd-sysupdate.
+1-1
nixos/modules/programs/turbovnc.nix
···45 # software rendering to implement GLX (OpenGL on Xorg).
46 # However, just building TurboVNC with support for that is not enough
47 # (it only takes care of the X server side part of OpenGL);
48- # the indiviudual applications (e.g. `glxgears`) also need to directly load
49 # the OpenGL libs.
50 # Thus, this creates `/run/opengl-driver` populated by Mesa so that the applications
51 # can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
···45 # software rendering to implement GLX (OpenGL on Xorg).
46 # However, just building TurboVNC with support for that is not enough
47 # (it only takes care of the X server side part of OpenGL);
48+ # the individual applications (e.g. `glxgears`) also need to directly load
49 # the OpenGL libs.
50 # Thus, this creates `/run/opengl-driver` populated by Mesa so that the applications
51 # can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
+1-1
nixos/modules/services/cluster/k3s/default.nix
···139 [
140 (yamlFormat.generate "helm-chart-manifest-${name}.yaml" (mkHelmChartCR name value))
141 ]
142- # alternate the YAML doc seperator (---) and extraDeploy manifests to create
143 # multi document YAMLs
144 ++ (lib.concatMap (x: [
145 yamlDocSeparator
···139 [
140 (yamlFormat.generate "helm-chart-manifest-${name}.yaml" (mkHelmChartCR name value))
141 ]
142+ # alternate the YAML doc separator (---) and extraDeploy manifests to create
143 # multi document YAMLs
144 ++ (lib.concatMap (x: [
145 yamlDocSeparator
+1-1
nixos/modules/services/desktops/bonsaid.nix
···143 lib.mkDefault (json.generate "bonsai_tree.json" (filterNulls cfg.settings));
144145 # bonsaid is controlled by bonsaictl, so place the latter in the environment by default.
146- # bonsaictl is typically invoked by scripts or a DE so this isn't strictly necesssary,
147 # but it's helpful while administering the service generally.
148 environment.systemPackages = [ cfg.package ];
149
···143 lib.mkDefault (json.generate "bonsai_tree.json" (filterNulls cfg.settings));
144145 # bonsaid is controlled by bonsaictl, so place the latter in the environment by default.
146+ # bonsaictl is typically invoked by scripts or a DE so this isn't strictly necessary,
147 # but it's helpful while administering the service generally.
148 environment.systemPackages = [ cfg.package ];
149
+1-1
nixos/modules/services/games/crossfire-server.nix
···176 # need to be writeable, so we can't just point at the ones in the nix
177 # store. Instead we take the approach of copying them out of the store
178 # on first run. If `bookarch` already exists, we assume the rest of the
179- # files do as well, and copy nothing -- otherwise we risk ovewriting
180 # server state information every time the server is upgraded.
181 preStart = ''
182 if [ ! -e "${cfg.stateDir}"/bookarch ]; then
···176 # need to be writeable, so we can't just point at the ones in the nix
177 # store. Instead we take the approach of copying them out of the store
178 # on first run. If `bookarch` already exists, we assume the rest of the
179+ # files do as well, and copy nothing -- otherwise we risk overwriting
180 # server state information every time the server is upgraded.
181 preStart = ''
182 if [ ! -e "${cfg.stateDir}"/bookarch ]; then
+1-1
nixos/modules/services/hardware/kmonad.nix
···201 # the old service and then starts the new service after config updates.
202 # Since we use path-based activation[1] here, the service unit will
203 # immediately[2] be started by the path unit. Probably that start is
204- # before config updates, whcih causes the service unit to use the old
205 # config after nixos-rebuild switch. Setting stopIfChanged to false works
206 # around this issue by restarting the service after config updates.
207 # [0]: https://nixos.org/manual/nixos/unstable/#sec-switching-systems
···201 # the old service and then starts the new service after config updates.
202 # Since we use path-based activation[1] here, the service unit will
203 # immediately[2] be started by the path unit. Probably that start is
204+ # before config updates, which causes the service unit to use the old
205 # config after nixos-rebuild switch. Setting stopIfChanged to false works
206 # around this issue by restarting the service after config updates.
207 # [0]: https://nixos.org/manual/nixos/unstable/#sec-switching-systems
···9192 config = lib.mkIf cfg.enable {
93 environment.systemPackages = [ pkgs.below ];
94- # /etc/below.conf is also refered to by the `below` CLI tool,
95 # so this can't be a store-only file whose path is passed to the service
96 environment.etc."below/below.conf".text = cfgContents;
97
···9192 config = lib.mkIf cfg.enable {
93 environment.systemPackages = [ pkgs.below ];
94+ # /etc/below.conf is also referred to by the `below` CLI tool,
95 # so this can't be a store-only file whose path is passed to the service
96 environment.etc."below/below.conf".text = cfgContents;
97
+1-1
nixos/modules/services/networking/cato-client.nix
···55 wantedBy = [ "multi-user.target" ];
56 };
5758- # set up Security wrapper Same as inteded in deb post install
59 security.wrappers.cato-clientd = {
60 source = "${cfg.package}/bin/cato-clientd";
61 owner = "root";
···55 wantedBy = [ "multi-user.target" ];
56 };
5758+ # set up Security wrapper Same as intended in deb post install
59 security.wrappers.cato-clientd = {
60 source = "${cfg.package}/bin/cato-clientd";
61 owner = "root";
+1-1
nixos/modules/services/networking/fedimintd.nix
···289290 {
291 # Note: we want by default to enable OpenSSL, but it seems anything 100 and above is
292- # overriden by default value from vhost-options.nix
293 enableACME = mkOverride 99 true;
294 forceSSL = mkOverride 99 true;
295 locations.${cfg.nginx.path} = {
···289290 {
291 # Note: we want by default to enable OpenSSL, but it seems anything 100 and above is
292+ # overridden by default value from vhost-options.nix
293 enableACME = mkOverride 99 true;
294 forceSSL = mkOverride 99 true;
295 locations.${cfg.nginx.path} = {
+1-1
nixos/modules/services/networking/netbird.nix
···550 User = client.user.name;
551 Group = client.user.group;
552553- # settings implied by DynamicUser=true, without actully using it,
554 # see https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#DynamicUser=
555 RemoveIPC = true;
556 PrivateTmp = true;
···550 User = client.user.name;
551 Group = client.user.group;
552553+ # settings implied by DynamicUser=true, without actually using it,
554 # see https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#DynamicUser=
555 RemoveIPC = true;
556 PrivateTmp = true;
···102 # special options as its public anyway
103 # As far as I know leaking this secret is just
104 # an information leak as one can fetch some basic app
105- # informations from the IDP
106 # To actually do something one still needs to have login
107 # data and this secret so this being public will not
108 # suffice for anything just decreasing security
···102 # special options as its public anyway
103 # As far as I know leaking this secret is just
104 # an information leak as one can fetch some basic app
105+ # information from the IDP
106 # To actually do something one still needs to have login
107 # data and this secret so this being public will not
108 # suffice for anything just decreasing security
+1-1
nixos/modules/services/networking/ssh/sshd.nix
···42 # values must be separated by whitespace or even commas.
43 # Consult either sshd_config(5) or, as last resort, the OpehSSH source for parsing
44 # the options at servconf.c:process_server_config_line_depth() to determine the right "mode"
45- # for each. But fortunaly this fact is documented for most of them in the manpage.
46 commaSeparated = [
47 "Ciphers"
48 "KexAlgorithms"
···42 # values must be separated by whitespace or even commas.
43 # Consult either sshd_config(5) or, as last resort, the OpehSSH source for parsing
44 # the options at servconf.c:process_server_config_line_depth() to determine the right "mode"
45+ # for each. But fortunately this fact is documented for most of them in the manpage.
46 commaSeparated = [
47 "Ciphers"
48 "KexAlgorithms"
···133134 services.yggdrasil.settings.Listen =
135 let
136- # By default linux dynamically alocates ports in range 32768..60999
137 # `sysctl net.ipv4.ip_local_port_range`
138 # See: https://xkcd.com/221/
139 prot_port = {
···133134 services.yggdrasil.settings.Listen =
135 let
136+ # By default linux dynamically allocates ports in range 32768..60999
137 # `sysctl net.ipv4.ip_local_port_range`
138 # See: https://xkcd.com/221/
139 prot_port = {
+1-1
nixos/modules/services/security/tor.nix
···295 (
296 lib.mapAttrs (
297 k: v:
298- # Not necesssary, but prettier rendering
299 if
300 lib.elem k [
301 "AutomapHostsSuffixes"
···295 (
296 lib.mapAttrs (
297 k: v:
298+ # Not necessary, but prettier rendering
299 if
300 lib.elem k [
301 "AutomapHostsSuffixes"
+1-1
nixos/modules/services/web-apps/davis.nix
···348 else if
349 pgsqlLocal
350 # note: davis expects a non-standard postgres uri (due to the underlying doctrine library)
351- # specifically the dummy hostname which is overriden by the host query parameter
352 then
353 "postgres://${user}@localhost/${db.name}?host=/run/postgresql"
354 else if mysqlLocal then
···348 else if
349 pgsqlLocal
350 # note: davis expects a non-standard postgres uri (due to the underlying doctrine library)
351+ # specifically the dummy hostname which is overridden by the host query parameter
352 then
353 "postgres://${user}@localhost/${db.name}?host=/run/postgresql"
354 else if mysqlLocal then
+1-1
nixos/modules/services/web-apps/plausible.nix
···224 # Thus, disable distribution for improved simplicity and security:
225 #
226 # When distribution is enabled,
227- # Elixir spwans the Erlang VM, which will listen by default on all
228 # interfaces for messages between Erlang nodes (capable of
229 # remote code execution); it can be protected by a cookie; see
230 # https://erlang.org/doc/reference_manual/distributed.html#security).
···224 # Thus, disable distribution for improved simplicity and security:
225 #
226 # When distribution is enabled,
227+ # Elixir spawns the Erlang VM, which will listen by default on all
228 # interfaces for messages between Erlang nodes (capable of
229 # remote code execution); it can be protected by a cookie; see
230 # https://erlang.org/doc/reference_manual/distributed.html#security).
+1-1
nixos/modules/services/web-apps/windmill.nix
···132 {
133134 # coming from https://github.com/windmill-labs/windmill/blob/main/init-db-as-superuser.sql
135- # modified to not grant priviledges on all tables
136 # create role windmill_user and windmill_admin only if they don't exist
137 postgresql.postStart = lib.mkIf cfg.database.createLocally (
138 lib.mkAfter ''
···132 {
133134 # coming from https://github.com/windmill-labs/windmill/blob/main/init-db-as-superuser.sql
135+ # modified to not grant privileges on all tables
136 # create role windmill_user and windmill_admin only if they don't exist
137 postgresql.postStart = lib.mkIf cfg.database.createLocally (
138 lib.mkAfter ''
+1-1
nixos/modules/virtualisation/azure-common.nix
···2627 # Enable cloud-init by default for waagent.
28 # Otherwise waagent would try manage networking using ifupdown,
29- # which is currently not availeble in nixpkgs.
30 services.cloud-init.enable = true;
31 services.cloud-init.network.enable = true;
32 systemd.services.cloud-config.serviceConfig.Restart = "on-failure";
···2627 # Enable cloud-init by default for waagent.
28 # Otherwise waagent would try manage networking using ifupdown,
29+ # which is currently not available in nixpkgs.
30 services.cloud-init.enable = true;
31 services.cloud-init.network.enable = true;
32 systemd.services.cloud-config.serviceConfig.Restart = "on-failure";
+1-1
nixos/modules/virtualisation/azure-image.nix
···105 splashImage = null;
106 # For Gen 1 VM, configurate grub output to serial_com0.
107 # Not needed for Gen 2 VM wbere serial_com0 does not exist,
108- # and outputing to console is enough to make Azure Serial Console working
109 extraConfig = lib.mkIf (!efiSupport) ''
110 serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
111 terminal_input --append serial
···105 splashImage = null;
106 # For Gen 1 VM, configurate grub output to serial_com0.
107 # Not needed for Gen 2 VM wbere serial_com0 does not exist,
108+ # and outputting to console is enough to make Azure Serial Console working
109 extraConfig = lib.mkIf (!efiSupport) ''
110 serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
111 terminal_input --append serial
···65 repartConfig = {
66 Type = "esp";
67 Format = "vfat";
68- # Minimize = "guess" seems to not work very vell for vfat
69- # partitons. It's better to set a sensible default instead. The
70 # aarch64 kernel seems to generally be a little bigger than the
71 # x86_64 kernel. To stay on the safe side, leave some more slack
72 # for every platform other than x86_64.
···65 repartConfig = {
66 Type = "esp";
67 Format = "vfat";
68+ # Minimize = "guess" seems to not work very well for vfat
69+ # partitions. It's better to set a sensible default instead. The
70 # aarch64 kernel seems to generally be a little bigger than the
71 # x86_64 kernel. To stay on the safe side, leave some more slack
72 # for every platform other than x86_64.
+1-1
nixos/tests/common/acme/server/default.nix
···94 ) cfg.configuration.security.acme.certs
95 )
96 # A specialisation's config is nested under its configuration attribute.
97- # For ease of use, nest the root node's configuration simiarly.
98 ([ { configuration = node; } ] ++ (builtins.attrValues node.specialisation))
99 )
100 );
···94 ) cfg.configuration.security.acme.certs
95 )
96 # A specialisation's config is nested under its configuration attribute.
97+ # For ease of use, nest the root node's configuration similarly.
98 ([ { configuration = node; } ] ++ (builtins.attrValues node.specialisation))
99 )
100 );
+1-1
nixos/tests/ntfy-sh-migration.nix
···4# this test works doing a migration and asserting ntfy-sh runs properly. first,
5# ntfy-sh is configured to use a static user and group. then ntfy-sh is
6# started and tested. after that, ntfy-sh is shut down and a systemd drop
7-# in configuration file is used to upate the service configuration to use
8# DynamicUser=true. then the ntfy-sh is started again and tested.
910import ./make-test-python.nix {
···4# this test works doing a migration and asserting ntfy-sh runs properly. first,
5# ntfy-sh is configured to use a static user and group. then ntfy-sh is
6# started and tested. after that, ntfy-sh is shut down and a systemd drop
7+# in configuration file is used to update the service configuration to use
8# DynamicUser=true. then the ntfy-sh is started again and tested.
910import ./make-test-python.nix {
+2-2
nixos/tests/sftpgo.nix
···6# - downloading the file over sftp
7# - assert that the ACLs are respected
8# - share a file between alice and bob (using sftp)
9-# - assert that eve cannot acceess the shared folder between alice and bob.
10#
11# Additional test coverage for the remaining protocols (i.e. ftp, http and webdav)
12# would be a nice to have for the future.
···333 testScript =
334 { nodes, ... }:
335 let
336- # A function to generate test cases for wheter
337 # a specified username is expected to access the shared folder.
338 accessSharedFoldersSubtest =
339 {
···6# - downloading the file over sftp
7# - assert that the ACLs are respected
8# - share a file between alice and bob (using sftp)
9+# - assert that eve cannot access the shared folder between alice and bob.
10#
11# Additional test coverage for the remaining protocols (i.e. ftp, http and webdav)
12# would be a nice to have for the future.
···333 testScript =
334 { nodes, ... }:
335 let
336+ # A function to generate test cases for whether
337 # a specified username is expected to access the shared folder.
338 accessSharedFoldersSubtest =
339 {
+1-1
nixos/tests/systemd-sysupdate.nix
···1-# Tests downloading a signed update aritfact from a server to a target machine.
2# This test does not rely on the `systemd.timer` units provided by the
3# `systemd-sysupdate` module but triggers the `systemd-sysupdate` service
4# manually to make the test more robust.
···1+# Tests downloading a signed update artifact from a server to a target machine.
2# This test does not rely on the `systemd.timer` units provided by the
3# `systemd-sysupdate` module but triggers the `systemd-sysupdate` service
4# manually to make the test more robust.
+1-1
nixos/tests/systemd-timesyncd-nscd-dnssec.nix
···4# correct time, we need to connect to an NTP server, which usually requires resolving its hostname.
5#
6# This test does the following:
7-# - Sets up a DNS server (tinydns) listening on the eth1 ip addess, serving .ntp and fake.ntp records.
8# - Configures that DNS server as a resolver and enables DNSSEC in systemd-resolved settings.
9# - Configures systemd-timesyncd to use fake.ntp hostname as an NTP server.
10# - Performs a regular DNS lookup, to ensure it fails due to broken DNSSEC.
···4# correct time, we need to connect to an NTP server, which usually requires resolving its hostname.
5#
6# This test does the following:
7+# - Sets up a DNS server (tinydns) listening on the eth1 ip address, serving .ntp and fake.ntp records.
8# - Configures that DNS server as a resolver and enables DNSSEC in systemd-resolved settings.
9# - Configures systemd-timesyncd to use fake.ntp hostname as an NTP server.
10# - Performs a regular DNS lookup, to ensure it fails due to broken DNSSEC.
···1240 mktplcRef = {
1241 name = "dart-code";
1242 publisher = "dart-code";
1243- version = "3.110.0";
1244- hash = "sha256-YLdhL5xNj8sidZUzMVZgOK6zTXgQnWdKWRrDg0on90s=";
1245 };
12461247 meta.license = lib.licenses.mit;
···1251 mktplcRef = {
1252 name = "flutter";
1253 publisher = "dart-code";
1254- version = "3.110.0";
1255- hash = "sha256-Zi+q56XcHZGUKgF3TNpaYSwwdqLT8Q1fxf8dFVAEuQY=";
1256 };
12571258 meta.license = lib.licenses.mit;
···5709 };
57105711 # TODO: add overrides overlay, so that we can have a generated.nix
5712- # then apply extension specific modifcations to packages.
57135714 # overlays will be applied left to right, overrides should come after aliases.
5715 overlays = lib.optionals config.allowAliases [
···1240 mktplcRef = {
1241 name = "dart-code";
1242 publisher = "dart-code";
1243+ version = "3.112.0";
1244+ hash = "sha256-nnEEKijl5ZdsHyBAWCL+MucjNGIuup75xSJaVzNawrs=";
1245 };
12461247 meta.license = lib.licenses.mit;
···1251 mktplcRef = {
1252 name = "flutter";
1253 publisher = "dart-code";
1254+ version = "3.112.0";
1255+ hash = "sha256-S+srv0zUCobM3IPXOME5oT0xdXdPmMHSs7rwNTBcnhk=";
1256 };
12571258 meta.license = lib.licenses.mit;
···5709 };
57105711 # TODO: add overrides overlay, so that we can have a generated.nix
5712+ # then apply extension specific modifications to packages.
57135714 # overlays will be applied left to right, overrides should come after aliases.
5715 overlays = lib.optionals config.allowAliases [
···3334 <https://github.com/Microsoft/vscode-cpptools/issues/35>
3536- Once the symbolic link temporary solution taken, everything shoud run smootly.
37*/
3839let
···3334 <https://github.com/Microsoft/vscode-cpptools/issues/35>
3536+ Once the symbolic link temporary solution taken, everything should run smootly.
37*/
3839let
+1-1
pkgs/applications/graphics/yacreader/default.nix
···49 libsForQt5.qtmacextras # can be removed when using qt6
50 ];
5152- # custom Darwin install instructions taken from the upsteam compileOSX.sh script
53 installPhase = lib.optionalString stdenv.hostPlatform.isDarwin ''
54 runHook preInstall
55
···49 libsForQt5.qtmacextras # can be removed when using qt6
50 ];
5152+ # custom Darwin install instructions taken from the upstream compileOSX.sh script
53 installPhase = lib.optionalString stdenv.hostPlatform.isDarwin ''
54 runHook preInstall
55
···3Go promises that "programs written to the Go 1 specification will continue to compile and run correctly, unchanged, over the lifetime of that specification" [1].
4Newer toolchain versions should build projects developed against older toolchains without problems.
506There are however Go packages depending on internal APIs of the toolchain/runtime/stdlib that are not covered by the Go compatibility promise.
7-These packages may break on toolchain updates.
8-We name packages that (often) break on toolchain updates `toolchain-breaking`.
910-There is another set of packages that depends on the toolchain, but in another way:
11-Packages providing development support for the Go language (like `gopls`, `golangci-lint`,...) must be compiled with the version they should be used for.
12If `gopls` is compiled for Go 1.23, it won't work for projects that require Go 1.24.
13-We name packages that must be built with the latest toolchain to work as expected `toolchain-latest`.
1415Go only ever has two supported toolchains. With a new minor release, the second last Go toolchain is automatically end of life, meaning it won't receive security updates anymore.
16···26 A comment MUST be added explaining why this is the case for a certain package.
27 It is important to keep the number of packages using this builder within nixpkgs low, so the bump won't cause a mass rebuild.
2829- Consumer outside of nixpkgs on the other hand MAY rely on this toolchain/builder if they prefer being upgraded earlier to the newest toolchain.
0030313. Packages in `toolchain-breaking` SHOULD pin a toolchain version by using a builder with a fixed Go version (`buildGo1xxModule`).
32 The use of `buildGo1xxModule` MUST be accompanied with a comment explaining why this has a dependency on a specific Go version.
···3Go promises that "programs written to the Go 1 specification will continue to compile and run correctly, unchanged, over the lifetime of that specification" [1].
4Newer toolchain versions should build projects developed against older toolchains without problems.
56+**Definition(a "toolchain-breaking" package):**
7There are however Go packages depending on internal APIs of the toolchain/runtime/stdlib that are not covered by the Go compatibility promise.
8+These packages may break on toolchain minor version upgrades.
0910+**Definition(a "toolchain-latest" package):**
11+Packages providing development support for the Go language (like `gopls`, `golangci-lint`,...) depend on the toolchain in another way: they must be compiled at least with the version they should be used for.
12If `gopls` is compiled for Go 1.23, it won't work for projects that require Go 1.24.
01314Go only ever has two supported toolchains. With a new minor release, the second last Go toolchain is automatically end of life, meaning it won't receive security updates anymore.
15···25 A comment MUST be added explaining why this is the case for a certain package.
26 It is important to keep the number of packages using this builder within nixpkgs low, so the bump won't cause a mass rebuild.
2728+ `go_latest` MUST not point to release candidates of Go.
29+30+ Consumer outside of nixpkgs on the other hand MAY rely on this toolchain/builder if they prefer being upgraded earlier to the newest toolchain minor version.
31323. Packages in `toolchain-breaking` SHOULD pin a toolchain version by using a builder with a fixed Go version (`buildGo1xxModule`).
33 The use of `buildGo1xxModule` MUST be accompanied with a comment explaining why this has a dependency on a specific Go version.
···15 jq,
16 libiconv,
17 # Controls codegen parallelization for all crates.
18- # May be overriden on a per-crate level.
19 # See <https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units>
20 defaultCodegenUnits ? 1,
21}:
···15 jq,
16 libiconv,
17 # Controls codegen parallelization for all crates.
18+ # May be overridden on a per-crate level.
19 # See <https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units>
20 defaultCodegenUnits ? 1,
21}:
···20 defaultCrateOverrides ? pkgs.defaultCrateOverrides,
21 # The features to enable for the root_crate or the workspace_members.
22 rootFeatures ? [ "default" ],
23- # If true, throw errors instead of issueing deprecation warnings.
24 strictDeprecation ? false,
25 # Used for conditional compilation based on CPU feature detection.
26 targetFeatures ? [ ],
···4485 runTests ? false,
4486 testCrateFlags ? [ ],
4487 testInputs ? [ ],
4488- # Any command to run immediatelly before a test is executed.
4489 testPreRun ? "",
4490- # Any command run immediatelly after a test is executed.
4491 testPostRun ? "",
4492 }:
4493 lib.makeOverridable
···20 defaultCrateOverrides ? pkgs.defaultCrateOverrides,
21 # The features to enable for the root_crate or the workspace_members.
22 rootFeatures ? [ "default" ],
23+ # If true, throw errors instead of issuing deprecation warnings.
24 strictDeprecation ? false,
25 # Used for conditional compilation based on CPU feature detection.
26 targetFeatures ? [ ],
···4485 runTests ? false,
4486 testCrateFlags ? [ ],
4487 testInputs ? [ ],
4488+ # Any command to run immediately before a test is executed.
4489 testPreRun ? "",
4490+ # Any command run immediately after a test is executed.
4491 testPostRun ? "",
4492 }:
4493 lib.makeOverridable
···13 sha256 = "1l3hlw9rrc11qggbg9a2303p3bhxxx2vqkmlk8avsrbqw15r1ayr";
14 };
1516- # credis build system has no install actions, provide our own.
17 installPhase = ''
18 mkdir -p "$out/bin"
19 mkdir -p "$out/lib"
···13 sha256 = "1l3hlw9rrc11qggbg9a2303p3bhxxx2vqkmlk8avsrbqw15r1ayr";
14 };
1516+ # credits build system has no install actions, provide our own.
17 installPhase = ''
18 mkdir -p "$out/bin"
19 mkdir -p "$out/lib"
+1-1
pkgs/by-name/mi/miktex/package.nix
···106 patches = [
107 ./startup-config-support-nix-store.patch
108 # Miktex will search exectables in "GetMyPrefix(true)/bin".
109- # The path evalutate to "/usr/bin" in FHS style linux distrubution,
110 # compared to "/nix/store/.../bin" in NixOS.
111 # As a result, miktex will fail to find e.g. 'pkexec','ksudo','gksu'
112 # under /run/wrappers/bin in NixOS.
···106 patches = [
107 ./startup-config-support-nix-store.patch
108 # Miktex will search exectables in "GetMyPrefix(true)/bin".
109+ # The path evaluate to "/usr/bin" in FHS style linux distribution,
110 # compared to "/nix/store/.../bin" in NixOS.
111 # As a result, miktex will fail to find e.g. 'pkexec','ksudo','gksu'
112 # under /run/wrappers/bin in NixOS.
+1-1
pkgs/by-name/mx/mxnet/package.nix
···14 perl,
15 # mxnet cuda support is turned off, but dependencies like opencv can still be built with cudaSupport
16 # and fail to compile without the cudatoolkit
17- # mxnet cuda support will not be availaible, as mxnet requires version <=11
18 cudaSupport ? config.cudaSupport,
19 cudaPackages ? { },
20}:
···14 perl,
15 # mxnet cuda support is turned off, but dependencies like opencv can still be built with cudaSupport
16 # and fail to compile without the cudatoolkit
17+ # mxnet cuda support will not be available, as mxnet requires version <=11
18 cudaSupport ? config.cudaSupport,
19 cudaPackages ? { },
20}:
···3031 patches = [
32 # Related to https://github.com/stepchowfun/typical/pull/501
33- # Commiting a slightly different patch because the upstream one doesn't apply cleanly
34 ./lifetime.patch
35 ];
36
···3031 patches = [
32 # Related to https://github.com/stepchowfun/typical/pull/501
33+ # Committing a slightly different patch because the upstream one doesn't apply cleanly
34 ./lifetime.patch
35 ];
36
+1-1
pkgs/by-name/us/usb-reset/package.nix
···8stdenv.mkDerivation {
9 pname = "usb-reset";
10 # not tagged, but changelog has this with the date of the e9a9d6c commit
11- # and no significant change occured between bumping the version in the Makefile and that
12 # and the changes since then (up to ff822d8) seem snap related
13 version = "0.3";
14
···8stdenv.mkDerivation {
9 pname = "usb-reset";
10 # not tagged, but changelog has this with the date of the e9a9d6c commit
11+ # and no significant change occurred between bumping the version in the Makefile and that
12 # and the changes since then (up to ff822d8) seem snap related
13 version = "0.3";
14
···38 };
3940 patches = [
41- # instead of runnning git during the build process
42 # use the .COMMIT file generated in the fetcher FOD
43 ./git-rev-parse.patch
44 ];
···38 };
3940 patches = [
41+ # instead of running git during the build process
42 # use the .COMMIT file generated in the fetcher FOD
43 ./git-rev-parse.patch
44 ];
···6 copyDesktopItems,
7 autoPatchelfHook,
89- # Upstream is officialy built with Electron 18
10 # (but it works with latest Electron with minor changes, see HACK below)
11 electron,
12 asar,
···6 copyDesktopItems,
7 autoPatchelfHook,
89+ # Upstream is officially built with Electron 18
10 # (but it works with latest Electron with minor changes, see HACK below)
11 electron,
12 asar,
···3839# Note [Windows Exception Handling]
40# sjlj (short jump long jump) exception handling makes no sense on x86_64,
41-# it's forcably slowing programs down as it produces a constant overhead.
42# On x86_64 we have SEH (Structured Exception Handling) and we should use
43# that. On i686, we do not have SEH, and have to use sjlj with dwarf2.
44# Hence it's now conditional on x86_32 (i686 is 32bit).
···3839# Note [Windows Exception Handling]
40# sjlj (short jump long jump) exception handling makes no sense on x86_64,
41+# it's forcibly slowing programs down as it produces a constant overhead.
42# On x86_64 we have SEH (Structured Exception Handling) and we should use
43# that. On i686, we do not have SEH, and have to use sjlj with dwarf2.
44# Hence it's now conditional on x86_32 (i686 is 32bit).
···21# To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead.
22self: super:
23{
24- # Hackage's accelerate is from 2020 and incomptible with our GHC.
25 # The existing derivation also has missing dependencies
26 # compared to the source from github.
27 # https://github.com/AccelerateHS/accelerate/issues/553
···820 katt = dontCheck super.katt;
821 language-slice = dontCheck super.language-slice;
822823- # Bogus lower bound on data-default-class added via Hackage revison
824 # https://github.com/mrkkrp/req/pull/180#issuecomment-2628201485
825 req = overrideCabal {
826 revision = null;
···1979 license = lib.licenses.bsd3;
1980 # ghc-bignum is not buildable if none of the three backends
1981 # is explicitly enabled. We enable Native for now as it doesn't
1982- # depend on anything else as oppossed to GMP and FFI.
1983 # Apply patch which fixes a compilation failure we encountered.
1984 # Will need to be kept until we can drop ghc-bignum entirely,
1985 # i. e. if GHC 8.10.* and 8.8.* have been removed.
···2542 # Missing test files https://github.com/kephas/xdg-basedir-compliant/issues/1
2543 xdg-basedir-compliant = dontCheck super.xdg-basedir-compliant;
25442545- # Test failure after libxcrypt migration, reported upstrem at
2546 # https://github.com/phadej/crypt-sha512/issues/13
2547 crypt-sha512 = dontCheck super.crypt-sha512;
2548
···21# To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead.
22self: super:
23{
24+ # Hackage's accelerate is from 2020 and incompatible with our GHC.
25 # The existing derivation also has missing dependencies
26 # compared to the source from github.
27 # https://github.com/AccelerateHS/accelerate/issues/553
···820 katt = dontCheck super.katt;
821 language-slice = dontCheck super.language-slice;
822823+ # Bogus lower bound on data-default-class added via Hackage revision
824 # https://github.com/mrkkrp/req/pull/180#issuecomment-2628201485
825 req = overrideCabal {
826 revision = null;
···1979 license = lib.licenses.bsd3;
1980 # ghc-bignum is not buildable if none of the three backends
1981 # is explicitly enabled. We enable Native for now as it doesn't
1982+ # depend on anything else as opposed to GMP and FFI.
1983 # Apply patch which fixes a compilation failure we encountered.
1984 # Will need to be kept until we can drop ghc-bignum entirely,
1985 # i. e. if GHC 8.10.* and 8.8.* have been removed.
···2542 # Missing test files https://github.com/kephas/xdg-basedir-compliant/issues/1
2543 xdg-basedir-compliant = dontCheck super.xdg-basedir-compliant;
25442545+ # Test failure after libxcrypt migration, reported upstream at
2546 # https://github.com/phadej/crypt-sha512/issues/13
2547 crypt-sha512 = dontCheck super.crypt-sha512;
2548
+1-1
pkgs/development/interpreters/ruby/default.nix
···207 # When using a baseruby, ruby always sets "libdir" to the build
208 # directory, which nix rejects due to a reference in to /build/ in
209 # the final product. Removing this reference doesn't seem to break
210- # anything and fixes cross compliation.
211 ./dont-refer-to-build-dir.patch
212 ];
213
···207 # When using a baseruby, ruby always sets "libdir" to the build
208 # directory, which nix rejects due to a reference in to /build/ in
209 # the final product. Removing this reference doesn't seem to break
210+ # anything and fixes cross compilation.
211 ./dont-refer-to-build-dir.patch
212 ];
213
+1-1
pkgs/development/libraries/ffmpeg/generic.nix
···34 # all dependants in Nixpkgs
35 withSmallDeps ? ffmpegVariant == "small" || withFullDeps,
3637- # Everything enabled; only guarded behind platform exclusivity or brokeness.
38 # If you need to depend on ffmpeg-full because ffmpeg is missing some feature
39 # your package needs, you should enable that feature in regular ffmpeg
40 # instead.
···34 # all dependants in Nixpkgs
35 withSmallDeps ? ffmpegVariant == "small" || withFullDeps,
3637+ # Everything enabled; only guarded behind platform exclusivity or brokenness.
38 # If you need to depend on ffmpeg-full because ffmpeg is missing some feature
39 # your package needs, you should enable that feature in regular ffmpeg
40 # instead.
+1-1
pkgs/development/libraries/openssl/default.nix
···225 # This avoids conflicts between man pages of openssl subcommands (for
226 # example 'ts' and 'err') man pages and their equivalent top-level
227 # command in other packages (respectively man-pages and moreutils).
228- # This is done in ubuntu and archlinux, and possiibly many other distros.
229 "MANSUFFIX=ssl"
230 ];
231
···225 # This avoids conflicts between man pages of openssl subcommands (for
226 # example 'ts' and 'err') man pages and their equivalent top-level
227 # command in other packages (respectively man-pages and moreutils).
228+ # This is done in ubuntu and archlinux, and possibly many other distros.
229 "MANSUFFIX=ssl"
230 ];
231
+1-1
pkgs/development/libraries/vigra/default.nix
···29 };
3031 patches = [
32- # Pathes to fix compiling on LLVM 19 from https://github.com/ukoethe/vigra/pull/592
33 ./fix-llvm-19-1.patch
34 ./fix-llvm-19-2.patch
35 ];
···29 };
3031 patches = [
32+ # Patches to fix compiling on LLVM 19 from https://github.com/ukoethe/vigra/pull/592
33 ./fix-llvm-19-1.patch
34 ./fix-llvm-19-2.patch
35 ];
···6061 # AttributeError: jax.core.Var was removed in JAX v0.6.0. Use jax.extend.core.Var instead, and
62 # see https://docs.jax.dev/en/latest/jax.extend.html for details.
63- # Alrady on master: https://github.com/google-deepmind/dm-haiku/commit/cfe8480d253a93100bf5e2d24c40435a95399c96
64 # TODO: remove at the next release
65 postPatch = ''
66 substituteInPlace haiku/_src/jaxpr_info.py \
···6061 # AttributeError: jax.core.Var was removed in JAX v0.6.0. Use jax.extend.core.Var instead, and
62 # see https://docs.jax.dev/en/latest/jax.extend.html for details.
63+ # Already on master: https://github.com/google-deepmind/dm-haiku/commit/cfe8480d253a93100bf5e2d24c40435a95399c96
64 # TODO: remove at the next release
65 postPatch = ''
66 substituteInPlace haiku/_src/jaxpr_info.py \
···3# requires the CUDA toolkit (via nvcc) to be available.
4#
5# This means that if you plan to use flashinfer, you will need to set the
6-# environment varaible `CUDA_HOME` to `cudatoolkit`.
7{
8 lib,
9 config,
···3# requires the CUDA toolkit (via nvcc) to be available.
4#
5# This means that if you plan to use flashinfer, you will need to set the
6+# environment variable `CUDA_HOME` to `cudatoolkit`.
7{
8 lib,
9 config,
+1-1
pkgs/development/python-modules/fmpy/default.nix
···178 };
179180 # FMPy searches for sundials without the "lib"-prefix; strip it
181- # and symlink the so-files into existance.
182 postFixup = ''
183 pushd $out/lib
184 for so in *.so; do
···178 };
179180 # FMPy searches for sundials without the "lib"-prefix; strip it
181+ # and symlink the so-files into existence.
182 postFixup = ''
183 pushd $out/lib
184 for so in *.so; do
···27 # itables has 4 different node packages, each with their own
28 # package-lock.json, and partially depending on each other.
29 # Our fetchNpmDeps tooling in nixpkgs doesn't support this yet, so we fetch
30- # the source tarball from pypi, wich includes the javascript bundle already.
31 src = fetchPypi {
32 inherit pname version;
33 hash = "sha256-S5HASUVfqTny+Vu15MYSSrEffCaJuL7UhDOc3eudVWI=";
···27 # itables has 4 different node packages, each with their own
28 # package-lock.json, and partially depending on each other.
29 # Our fetchNpmDeps tooling in nixpkgs doesn't support this yet, so we fetch
30+ # the source tarball from pypi, which includes the javascript bundle already.
31 src = fetchPypi {
32 inherit pname version;
33 hash = "sha256-S5HASUVfqTny+Vu15MYSSrEffCaJuL7UhDOc3eudVWI=";
···54 # Boto @ 1.35 has outstripped the version requirement
55 "boto3"
56 # Each component release requests the exact latest core.
57- # That prevents us from updating individul components.
58 "langchain-core"
59 ];
60
···54 # Boto @ 1.35 has outstripped the version requirement
55 "boto3"
56 # Each component release requests the exact latest core.
57+ # That prevents us from updating individual components.
58 "langchain-core"
59 ];
60
···68 # Project has no tests.
69 # In order to make pythonImportsCheck work, NUMBA_CACHE_DIR env var need to
70 # be set to a writable dir (https://github.com/numba/numba/issues/4032#issuecomment-488102702).
71- # pythonImportsCheck has no pre* hook, use checkPhase to wordaround that.
72 checkPhase = ''
73 export NUMBA_CACHE_DIR="$(mktemp -d)"
74 '';
···68 # Project has no tests.
69 # In order to make pythonImportsCheck work, NUMBA_CACHE_DIR env var need to
70 # be set to a writable dir (https://github.com/numba/numba/issues/4032#issuecomment-488102702).
71+ # pythonImportsCheck has no pre* hook, use checkPhase to workaround that.
72 checkPhase = ''
73 export NUMBA_CACHE_DIR="$(mktemp -d)"
74 '';
···110 "MulticastTests.test_multiListen"
111 ];
112 "src/twisted/trial/test/test_script.py" = [
113- # Fails in LXC containers with less than all cores availaible (limits.cpu)
114 "AutoJobsTests.test_cpuCount"
115 ];
116 "src/twisted/internet/test/test_unix.py" = [
···110 "MulticastTests.test_multiListen"
111 ];
112 "src/twisted/trial/test/test_script.py" = [
113+ # Fails in LXC containers with less than all cores available (limits.cpu)
114 "AutoJobsTests.test_cpuCount"
115 ];
116 "src/twisted/internet/test/test_unix.py" = [
···241 # guarantee that it will always run in any nix context.
242 #
243 # See also ./bazel_darwin_sandbox.patch in bazel_5. That patch uses
244- # NIX_BUILD_TOP env var to conditionnally disable sleep features inside the
245 # sandbox.
246 #
247 # If you want to investigate the sandbox profile path,
···241 # guarantee that it will always run in any nix context.
242 #
243 # See also ./bazel_darwin_sandbox.patch in bazel_5. That patch uses
244+ # NIX_BUILD_TOP env var to conditionally disable sleep features inside the
245 # sandbox.
246 #
247 # If you want to investigate the sandbox profile path,
···323 # --{,tool_}java_runtime_version=local_jdk and rely on the fact no java
324 # toolchain registered by default uses the local_jdk, making the selection
325 # unambiguous.
326- # This toolchain has the advantage that it can use any ambiant java jdk,
327 # not only a given, fixed version. It allows bazel to work correctly in any
328 # environment where JAVA_HOME is set to the right java version, like inside
329 # nix derivations.
330- # However, this patch breaks bazel hermeticity, by picking the ambiant java
331 # version instead of the more hermetic remote_jdk prebuilt binaries that
332 # rules_java provide by default. It also requires the user to have a
333 # JAVA_HOME set to the exact version required by the project.
···347 # guarantee that it will always run in any nix context.
348 #
349 # See also ./bazel_darwin_sandbox.patch in bazel_5. That patch uses
350- # NIX_BUILD_TOP env var to conditionnally disable sleep features inside the
351 # sandbox.
352 #
353 # If you want to investigate the sandbox profile path,
···323 # --{,tool_}java_runtime_version=local_jdk and rely on the fact no java
324 # toolchain registered by default uses the local_jdk, making the selection
325 # unambiguous.
326+ # This toolchain has the advantage that it can use any ambient java jdk,
327 # not only a given, fixed version. It allows bazel to work correctly in any
328 # environment where JAVA_HOME is set to the right java version, like inside
329 # nix derivations.
330+ # However, this patch breaks bazel hermeticity, by picking the ambient java
331 # version instead of the more hermetic remote_jdk prebuilt binaries that
332 # rules_java provide by default. It also requires the user to have a
333 # JAVA_HOME set to the exact version required by the project.
···347 # guarantee that it will always run in any nix context.
348 #
349 # See also ./bazel_darwin_sandbox.patch in bazel_5. That patch uses
350+ # NIX_BUILD_TOP env var to conditionally disable sleep features inside the
351 # sandbox.
352 #
353 # If you want to investigate the sandbox profile path,
···151 ];
152 });
153154- # Pinned due to home-assistant still needing 1.10.0 verison
155- # Remove this when home-assistant upates the jellyfin-apiclient-python version
156 jellyfin-apiclient-python = super.jellyfin-apiclient-python.overridePythonAttrs (oldAttrs: rec {
157 version = "1.10.0";
158 src = fetchFromGitHub {
···151 ];
152 });
153154+ # Pinned due to home-assistant still needing 1.10.0 version
155+ # Remove this when home-assistant updates the jellyfin-apiclient-python version
156 jellyfin-apiclient-python = super.jellyfin-apiclient-python.overridePythonAttrs (oldAttrs: rec {
157 version = "1.10.0";
158 src = fetchFromGitHub {
···120121 isMarkedInsecure = attrs: (attrs.meta.knownVulnerabilities or [ ]) != [ ];
122123- # Alow granular checks to allow only some unfree packages
124 # Example:
125 # {pkgs, ...}:
126 # {
···120121 isMarkedInsecure = attrs: (attrs.meta.knownVulnerabilities or [ ]) != [ ];
122123+ # Allow granular checks to allow only some unfree packages
124 # Example:
125 # {pkgs, ...}:
126 # {
+1-1
pkgs/test/texlive/default.nix
···625 "outocp"
626 "pmxab"
627628- # GUI scripts that accept no argument or crash without a graphics server; please test manualy
629 "epspdftk"
630 "texdoctk"
631 "tlshell"
···625 "outocp"
626 "pmxab"
627628+ # GUI scripts that accept no argument or crash without a graphics server; please test manually
629 "epspdftk"
630 "texdoctk"
631 "tlshell"
+6-6
pkgs/top-level/all-packages.nix
···36603661 libhandy = callPackage ../development/libraries/libhandy { };
36623663- # Needed for apps that still depend on the unstable verison of the library (not libhandy-1)
3664 libhandy_0 = callPackage ../development/libraries/libhandy/0.x.nix { };
36653666 libint = callPackage ../development/libraries/libint { };
···48554856 zbar = libsForQt5.callPackage ../tools/graphics/zbar { };
48574858- # Nvidia support does not require any propietary libraries, so CI can build it.
4859 # Note that when enabling this unconditionally, non-nvidia users will always have an empty "GPU" section.
4860 zenith-nvidia = zenith.override {
4861 nvidiaSupport = true;
···7059 # host platform.
7060 #
7061 # Because this is the *next* stages choice, it's a bit non-modular to put
7062- # here. In theory, bootstraping is supposed to not be a chain but at tree,
7063 # where each stage supports many "successor" stages, like multiple possible
7064 # futures. We don't have a better alternative, but with this downside in
7065 # mind, please be judicious when using this attribute. E.g. for building
···8209 stdenv = stdenvNoLibc;
8210 };
82118212- # These are used when buiding compiler-rt / libgcc, prior to building libc.
8213 preLibcCrossHeaders =
8214 let
8215 inherit (stdenv.targetPlatform) libc;
···1057210573 nginxModules = recurseIntoAttrs (callPackage ../servers/http/nginx/modules.nix { });
1057410575- # We should move to dynmaic modules and create a nginxFull package with all modules
10576 nginxShibboleth = nginxStable.override {
10577 modules = [
10578 nginxModules.rtmp
···13700 jdk = jdk17;
13701 };
1370213703- # perhaps there are better apps for this task? It's how I had configured my preivous system.
13704 # And I don't want to rewrite all rules
13705 profanity = callPackage ../applications/networking/instant-messengers/profanity (
13706 {
···36603661 libhandy = callPackage ../development/libraries/libhandy { };
36623663+ # Needed for apps that still depend on the unstable version of the library (not libhandy-1)
3664 libhandy_0 = callPackage ../development/libraries/libhandy/0.x.nix { };
36653666 libint = callPackage ../development/libraries/libint { };
···48554856 zbar = libsForQt5.callPackage ../tools/graphics/zbar { };
48574858+ # Nvidia support does not require any proprietary libraries, so CI can build it.
4859 # Note that when enabling this unconditionally, non-nvidia users will always have an empty "GPU" section.
4860 zenith-nvidia = zenith.override {
4861 nvidiaSupport = true;
···7059 # host platform.
7060 #
7061 # Because this is the *next* stages choice, it's a bit non-modular to put
7062+ # here. In theory, bootstrapping is supposed to not be a chain but at tree,
7063 # where each stage supports many "successor" stages, like multiple possible
7064 # futures. We don't have a better alternative, but with this downside in
7065 # mind, please be judicious when using this attribute. E.g. for building
···8209 stdenv = stdenvNoLibc;
8210 };
82118212+ # These are used when building compiler-rt / libgcc, prior to building libc.
8213 preLibcCrossHeaders =
8214 let
8215 inherit (stdenv.targetPlatform) libc;
···1057210573 nginxModules = recurseIntoAttrs (callPackage ../servers/http/nginx/modules.nix { });
1057410575+ # We should move to dynamic modules and create a nginxFull package with all modules
10576 nginxShibboleth = nginxStable.override {
10577 modules = [
10578 nginxModules.rtmp
···13700 jdk = jdk17;
13701 };
1370213703+ # perhaps there are better apps for this task? It's how I had configured my previous system.
13704 # And I don't want to rewrite all rules
13705 profanity = callPackage ../applications/networking/instant-messengers/profanity (
13706 {
+1-1
pkgs/top-level/stage.nix
···328329 # The complete chain of package set builders, applied from top to bottom.
330 # stdenvOverlays must be last as it brings package forward from the
331- # previous bootstrapping phases which have already been overlayed.
332 toFix = lib.foldl' (lib.flip lib.extends) (self: { }) (
333 [
334 stdenvBootstappingAndPlatforms
···328329 # The complete chain of package set builders, applied from top to bottom.
330 # stdenvOverlays must be last as it brings package forward from the
331+ # previous bootstrapping phases which have already been overlaid.
332 toFix = lib.foldl' (lib.flip lib.extends) (self: { }) (
333 [
334 stdenvBootstappingAndPlatforms