···7788CI may need certain packages from Nixpkgs.
99In order to ensure that the needed packages are generally available without building,
1010-[`pinned-nixpkgs.json`](./pinned-nixpkgs.json) contains a pinned Nixpkgs version tested by Hydra.
1010+[`pinned.json`](./pinned.json) contains a pinned Nixpkgs version tested by Hydra.
11111212-Run [`update-pinned-nixpkgs.sh`](./update-pinned-nixpkgs.sh) to update it.
1212+Run [`update-pinned.sh`](./update-pinned.sh) to update it.
13131414## `ci/nixpkgs-vet.sh BASE_BRANCH [REPOSITORY]`
1515···20202121- `BASE_BRANCH`: The base branch to use, e.g. master or release-24.05
2222- `REPOSITORY`: The repository from which to fetch the base branch. Defaults to <https://github.com/NixOS/nixpkgs.git>.
2323-2424-## `ci/nixpkgs-vet`
2525-2626-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.
2727-See also the [CI GitHub Action](../.github/workflows/nixpkgs-vet.yml).
2828-2929-## `ci/nixpkgs-vet/update-pinned-tool.sh`
3030-3131-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).
3232-3333-Each release contains a pre-built `x86_64-linux` version of the tool which is used by CI.
3434-3535-This script currently needs to be called manually when the CI tooling needs to be updated.
3636-3737-Why not just build the tooling right from the PRs Nixpkgs version?
3838-3939-- Because it allows CI to check all PRs, even if they would break the CI tooling.
4040-- Because it makes the CI check very fast, since no Nix builds need to be done, even for mass rebuilds.
4141-- Because it improves security, since we don't have to build potentially untrusted code from PRs.
4242- 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).
+1-1
ci/codeowners-validator/default.nix
···2020 })
2121 # Undoes part of the above PR: We don't want to require write access
2222 # to the repository, that's only needed for GitHub's native CODEOWNERS.
2323- # Furthermore, it removes an unneccessary check from the code
2323+ # Furthermore, it removes an unnecessary check from the code
2424 # that breaks tokens generated for GitHub Apps.
2525 ./permissions.patch
2626 # Allows setting a custom CODEOWNERS path using the OWNERS_FILE env var
···6161trace -n "Merging base branch into the HEAD commit in $tmp/merged.. "
6262git -C "$tmp/merged" merge -q --no-edit "$baseSha"
6363trace -e "\e[34m$(git -C "$tmp/merged" rev-parse HEAD)\e[0m"
6464-trace -n "Reading pinned nixpkgs-vet version from pinned-version.txt.. "
6565-toolVersion=$(<"$tmp/merged/ci/nixpkgs-vet/pinned-version.txt")
6666-trace -e "\e[34m$toolVersion\e[0m"
67646865trace "Running nixpkgs-vet.."
6966nix-build ci -A nixpkgs-vet --argstr base "$tmp/base" --argstr head "$tmp/merged"
···195195Defaults to `null`
196196197197198198+## Versioned toolchains and builders {#ssec-go-toolchain-versions}
199199+200200+Beside `buildGoModule`, there are also versioned builders available that pin a specific Go version, like `buildGo124Module` for Go 1.24.
201201+Similar, versioned toolchains are available, like `go_1_24` for Go 1.24.
202202+Both builder and toolchain of a certain version will be removed as soon as the Go version reaches end of life.
203203+204204+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.
205205+If you want quicker access to the latest minor, use `go_latest` toolchain and `buildGoLatestModule` builder.
206206+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).
207207+208208+::: {.warning}
209209+The use of `go_latest` and `buildGoLatestModule` is restricted within nixpkgs.
210210+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.
211211+:::
212212+198213## Overriding `goModules` {#buildGoModule-goModules-override}
199214200215Overriding `<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.
···230230231231- `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.
232232233233+- 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.
234234+ 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.
235235+236236+- 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.
237237+233238- top-level `playwright` now refers to the github Microsoft/playwright package
234239 instead of the python tester launcher. You can still refer to the python
235240 launcher via `python3Packages.toPythonApplication python3Packages.playwright`
+1-1
lib/attrsets.nix
···1747174717481748 /**
17491749 Get the first of the `outputs` provided by the package, or the default.
17501750- This function is alligned with `_overrideFirst()` from the `multiple-outputs.sh` setup hook.
17501750+ This function is aligned with `_overrideFirst()` from the `multiple-outputs.sh` setup hook.
17511751 Like `getOutput`, the function is idempotent.
1752175217531753 # Inputs
+1-1
lib/fixed-points.nix
···389389390390 extensions = composeManyExtensions [ overlayA overlayB ];
391391392392- # Caluculate the fixed point of all composed overlays.
392392+ # Calculate the fixed point of all composed overlays.
393393 fixedpoint = lib.fix (lib.extends extensions original );
394394395395 in fixedpoint
+2-2
lib/options.nix
···404404 ```nix
405405 myType = mkOptionType {
406406 name = "myType";
407407- merge = mergeDefaultOption; # <- This line is redundant. It is the default aready.
407407+ merge = mergeDefaultOption; # <- This line is redundant. It is the default already.
408408 };
409409 ```
410410···470470 args@{
471471 message,
472472 # 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
473473- # - type checked beyond what .check does (which should be very litte; only on the value head; not attribute values, etc)
473473+ # - type checked beyond what .check does (which should be very little; only on the value head; not attribute values, etc)
474474 # - if you want attribute values to be checked, or list items
475475 # - if you want coercedTo-like behavior to work
476476 merge ? loc: defs: (head defs).value,
+8-2
lib/types.nix
···7575 if pos == null then "" else " at ${pos.file}:${toString pos.line}:${toString pos.column}";
76767777 # Internal functor to help for migrating functor.wrapped to functor.payload.elemType
7878- # Note that individual attributes can be overriden if needed.
7878+ # Note that individual attributes can be overridden if needed.
7979 elemTypeFunctor =
8080 name:
8181 { elemType, ... }@payload:
···14551455 nestedTypes.coercedType = coercedType;
14561456 nestedTypes.finalType = finalType;
14571457 };
14581458+ /**
14591459+ Augment the given type with an additional type check function.
1458146014591459- # Augment the given type with an additional type check function.
14611461+ :::{.warning}
14621462+ This function has some broken behavior see: [#396021](https://github.com/NixOS/nixpkgs/issues/396021)
14631463+ Fixing is not trivial, we appreciate any help!
14641464+ :::
14651465+ */
14601466 addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; };
1461146714621468 };
+2-2
nixos/lib/make-options-doc/default.nix
···45454646 Documentation rendered as AsciiDoc. This is useful for e.g. man pages.
47474848- > Note: NixOS itself uses this ouput to to build the configuration.nix man page"
4848+ > Note: NixOS itself uses this output to to build the configuration.nix man page"
49495050 ## optionsNix
5151···5959 let
6060 # Evaluate a NixOS configuration
6161 eval = import (pkgs.path + "/nixos/lib/eval-config.nix") {
6262- # Overriden explicitly here, this would include all modules from NixOS otherwise.
6262+ # Overridden explicitly here, this would include all modules from NixOS otherwise.
6363 # See: docs of eval-config.nix for more details
6464 baseModules = [];
6565 modules = [
+3-7
nixos/lib/systemd-unit-options.nix
···1515 inherit (lib)
1616 any
1717 concatMap
1818- filterOverrides
1918 isList
2019 literalExpression
2120 mergeEqualOption
···5655 name = "systemd option";
5756 merge =
5857 loc: defs:
5959- let
6060- defs' = filterOverrides defs;
6161- in
6262- if any (def: isList def.value) defs' then
6363- concatMap (def: toList def.value) defs'
5858+ if any (def: isList def.value) defs then
5959+ concatMap (def: toList def.value) defs
6460 else
6565- mergeEqualOption loc defs';
6161+ mergeEqualOption loc defs;
6662 };
67636864 sharedOptions = {
+1-1
nixos/lib/testing/network.nix
···130130 virtualisation.test.nodeName = mkOption {
131131 internal = true;
132132 default = name;
133133- # We need to force this in specilisations, otherwise it'd be
133133+ # We need to force this in specialisations, otherwise it'd be
134134 # readOnly = true;
135135 description = ''
136136 The `name` in `nodes.<name>`; stable across `specialisations`.
+1-1
nixos/maintainers/option-usages.nix
···6060 inherit (eval) pkgs;
61616262 excludedTestOptions = [
6363- # We cannot evluate _module.args, as it is used during the computation
6363+ # We cannot evaluate _module.args, as it is used during the computation
6464 # of the modules list.
6565 "_module.args"
6666
+2-4
nixos/modules/config/sysctl.nix
···99 checkType = x: lib.isBool x || lib.isString x || lib.isInt x || x == null;
1010 in
1111 checkType val || (val._type or "" == "override" && checkType val.content);
1212- merge = loc: defs: lib.mergeOneOption loc (lib.filterOverrides defs);
1212+ merge = loc: defs: lib.mergeOneOption loc defs;
1313 };
14141515in
···2222 type =
2323 let
2424 highestValueType = lib.types.ints.unsigned // {
2525- merge =
2626- loc: defs:
2727- lib.foldl (a: b: if b.value == null then null else lib.max a b.value) 0 (lib.filterOverrides defs);
2525+ merge = loc: defs: lib.foldl (a: b: if b.value == null then null else lib.max a b.value) 0 defs;
2826 };
2927 in
3028 lib.types.submodule {
+3-3
nixos/modules/misc/ids.nix
···273273 caddy = 239;
274274 taskd = 240;
275275 # factorio = 241; # DynamicUser = true
276276- # emby = 242; # unusued, removed 2019-05-01
276276+ # emby = 242; # unused, removed 2019-05-01
277277 #graylog = 243;# dynamically allocated as of 2021-09-03
278278 sniproxy = 244;
279279 nzbget = 245;
···371371 # system user or group of the same id in someone else's NixOS.
372372 # This could break their system and make that person upset for a whole day.
373373 #
374374- # Sidenote: the default is defined in `shadow` module[2], and the relavent change
374374+ # Sidenote: the default is defined in `shadow` module[2], and the relevant change
375375 # was made way back in 2014[3].
376376 #
377377 # [1]: https://man7.org/linux/man-pages/man5/login.defs.5.html#:~:text=SYS_UID_MAX%20(number)%2C%20SYS_UID_MIN%20(number)
···700700 # system user or group of the same id in someone else's NixOS.
701701 # This could break their system and make that person upset for a whole day.
702702 #
703703- # Sidenote: the default is defined in `shadow` module[2], and the relavent change
703703+ # Sidenote: the default is defined in `shadow` module[2], and the relevant change
704704 # was made way back in 2014[3].
705705 #
706706 # [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
···11-# This profile sets up a sytem for image based appliance usage. An appliance is
11+# This profile sets up a system for image based appliance usage. An appliance is
22# installed as an image, cannot be re-built, has no Nix available, and is
33# generally not meant for interactive use. Updates to such an appliance are
44# handled by updating whole partition images via a tool like systemd-sysupdate.
+1-1
nixos/modules/programs/turbovnc.nix
···4545 # software rendering to implement GLX (OpenGL on Xorg).
4646 # However, just building TurboVNC with support for that is not enough
4747 # (it only takes care of the X server side part of OpenGL);
4848- # the indiviudual applications (e.g. `glxgears`) also need to directly load
4848+ # the individual applications (e.g. `glxgears`) also need to directly load
4949 # the OpenGL libs.
5050 # Thus, this creates `/run/opengl-driver` populated by Mesa so that the applications
5151 # can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
+1-1
nixos/modules/services/cluster/k3s/default.nix
···139139 [
140140 (yamlFormat.generate "helm-chart-manifest-${name}.yaml" (mkHelmChartCR name value))
141141 ]
142142- # alternate the YAML doc seperator (---) and extraDeploy manifests to create
142142+ # alternate the YAML doc separator (---) and extraDeploy manifests to create
143143 # multi document YAMLs
144144 ++ (lib.concatMap (x: [
145145 yamlDocSeparator
+1-1
nixos/modules/services/desktops/bonsaid.nix
···143143 lib.mkDefault (json.generate "bonsai_tree.json" (filterNulls cfg.settings));
144144145145 # bonsaid is controlled by bonsaictl, so place the latter in the environment by default.
146146- # bonsaictl is typically invoked by scripts or a DE so this isn't strictly necesssary,
146146+ # bonsaictl is typically invoked by scripts or a DE so this isn't strictly necessary,
147147 # but it's helpful while administering the service generally.
148148 environment.systemPackages = [ cfg.package ];
149149
+1-1
nixos/modules/services/games/crossfire-server.nix
···176176 # need to be writeable, so we can't just point at the ones in the nix
177177 # store. Instead we take the approach of copying them out of the store
178178 # on first run. If `bookarch` already exists, we assume the rest of the
179179- # files do as well, and copy nothing -- otherwise we risk ovewriting
179179+ # files do as well, and copy nothing -- otherwise we risk overwriting
180180 # server state information every time the server is upgraded.
181181 preStart = ''
182182 if [ ! -e "${cfg.stateDir}"/bookarch ]; then
+1-1
nixos/modules/services/hardware/kmonad.nix
···201201 # the old service and then starts the new service after config updates.
202202 # Since we use path-based activation[1] here, the service unit will
203203 # immediately[2] be started by the path unit. Probably that start is
204204- # before config updates, whcih causes the service unit to use the old
204204+ # before config updates, which causes the service unit to use the old
205205 # config after nixos-rebuild switch. Setting stopIfChanged to false works
206206 # around this issue by restarting the service after config updates.
207207 # [0]: https://nixos.org/manual/nixos/unstable/#sec-switching-systems
···91919292 config = lib.mkIf cfg.enable {
9393 environment.systemPackages = [ pkgs.below ];
9494- # /etc/below.conf is also refered to by the `below` CLI tool,
9494+ # /etc/below.conf is also referred to by the `below` CLI tool,
9595 # so this can't be a store-only file whose path is passed to the service
9696 environment.etc."below/below.conf".text = cfgContents;
9797
+1-1
nixos/modules/services/networking/cato-client.nix
···5555 wantedBy = [ "multi-user.target" ];
5656 };
57575858- # set up Security wrapper Same as inteded in deb post install
5858+ # set up Security wrapper Same as intended in deb post install
5959 security.wrappers.cato-clientd = {
6060 source = "${cfg.package}/bin/cato-clientd";
6161 owner = "root";
+1-1
nixos/modules/services/networking/fedimintd.nix
···289289290290 {
291291 # Note: we want by default to enable OpenSSL, but it seems anything 100 and above is
292292- # overriden by default value from vhost-options.nix
292292+ # overridden by default value from vhost-options.nix
293293 enableACME = mkOverride 99 true;
294294 forceSSL = mkOverride 99 true;
295295 locations.${cfg.nginx.path} = {
+1-1
nixos/modules/services/networking/netbird.nix
···550550 User = client.user.name;
551551 Group = client.user.group;
552552553553- # settings implied by DynamicUser=true, without actully using it,
553553+ # settings implied by DynamicUser=true, without actually using it,
554554 # see https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#DynamicUser=
555555 RemoveIPC = true;
556556 PrivateTmp = true;
···102102 # special options as its public anyway
103103 # As far as I know leaking this secret is just
104104 # an information leak as one can fetch some basic app
105105- # informations from the IDP
105105+ # information from the IDP
106106 # To actually do something one still needs to have login
107107 # data and this secret so this being public will not
108108 # suffice for anything just decreasing security
+1-1
nixos/modules/services/networking/ssh/sshd.nix
···4242 # values must be separated by whitespace or even commas.
4343 # Consult either sshd_config(5) or, as last resort, the OpehSSH source for parsing
4444 # the options at servconf.c:process_server_config_line_depth() to determine the right "mode"
4545- # for each. But fortunaly this fact is documented for most of them in the manpage.
4545+ # for each. But fortunately this fact is documented for most of them in the manpage.
4646 commaSeparated = [
4747 "Ciphers"
4848 "KexAlgorithms"
···133133134134 services.yggdrasil.settings.Listen =
135135 let
136136- # By default linux dynamically alocates ports in range 32768..60999
136136+ # By default linux dynamically allocates ports in range 32768..60999
137137 # `sysctl net.ipv4.ip_local_port_range`
138138 # See: https://xkcd.com/221/
139139 prot_port = {
+1-1
nixos/modules/services/security/tor.nix
···295295 (
296296 lib.mapAttrs (
297297 k: v:
298298- # Not necesssary, but prettier rendering
298298+ # Not necessary, but prettier rendering
299299 if
300300 lib.elem k [
301301 "AutomapHostsSuffixes"
+1-1
nixos/modules/services/web-apps/davis.nix
···348348 else if
349349 pgsqlLocal
350350 # note: davis expects a non-standard postgres uri (due to the underlying doctrine library)
351351- # specifically the dummy hostname which is overriden by the host query parameter
351351+ # specifically the dummy hostname which is overridden by the host query parameter
352352 then
353353 "postgres://${user}@localhost/${db.name}?host=/run/postgresql"
354354 else if mysqlLocal then
+1-1
nixos/modules/services/web-apps/plausible.nix
···224224 # Thus, disable distribution for improved simplicity and security:
225225 #
226226 # When distribution is enabled,
227227- # Elixir spwans the Erlang VM, which will listen by default on all
227227+ # Elixir spawns the Erlang VM, which will listen by default on all
228228 # interfaces for messages between Erlang nodes (capable of
229229 # remote code execution); it can be protected by a cookie; see
230230 # https://erlang.org/doc/reference_manual/distributed.html#security).
+1-1
nixos/modules/services/web-apps/windmill.nix
···132132 {
133133134134 # coming from https://github.com/windmill-labs/windmill/blob/main/init-db-as-superuser.sql
135135- # modified to not grant priviledges on all tables
135135+ # modified to not grant privileges on all tables
136136 # create role windmill_user and windmill_admin only if they don't exist
137137 postgresql.postStart = lib.mkIf cfg.database.createLocally (
138138 lib.mkAfter ''
+1-1
nixos/modules/virtualisation/azure-common.nix
···26262727 # Enable cloud-init by default for waagent.
2828 # Otherwise waagent would try manage networking using ifupdown,
2929- # which is currently not availeble in nixpkgs.
2929+ # which is currently not available in nixpkgs.
3030 services.cloud-init.enable = true;
3131 services.cloud-init.network.enable = true;
3232 systemd.services.cloud-config.serviceConfig.Restart = "on-failure";
+1-1
nixos/modules/virtualisation/azure-image.nix
···105105 splashImage = null;
106106 # For Gen 1 VM, configurate grub output to serial_com0.
107107 # Not needed for Gen 2 VM wbere serial_com0 does not exist,
108108- # and outputing to console is enough to make Azure Serial Console working
108108+ # and outputting to console is enough to make Azure Serial Console working
109109 extraConfig = lib.mkIf (!efiSupport) ''
110110 serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
111111 terminal_input --append serial
+1-1
nixos/modules/virtualisation/waagent.nix
···6767 convert =
6868 attrs:
6969 pipe (recurse [ ] attrs) [
7070- # Filter out null values and emoty lists
7070+ # Filter out null values and empty lists
7171 (filter (kv: kv.value != null && kv.value != [ ]))
7272 # Transform to Key=Value form, then concatenate
7373 (map (kv: "${kv.name}=${transform kv.value}"))
+2-2
nixos/tests/appliance-repart-image.nix
···6565 repartConfig = {
6666 Type = "esp";
6767 Format = "vfat";
6868- # Minimize = "guess" seems to not work very vell for vfat
6969- # partitons. It's better to set a sensible default instead. The
6868+ # Minimize = "guess" seems to not work very well for vfat
6969+ # partitions. It's better to set a sensible default instead. The
7070 # aarch64 kernel seems to generally be a little bigger than the
7171 # x86_64 kernel. To stay on the safe side, leave some more slack
7272 # for every platform other than x86_64.
+1-1
nixos/tests/common/acme/server/default.nix
···9494 ) cfg.configuration.security.acme.certs
9595 )
9696 # A specialisation's config is nested under its configuration attribute.
9797- # For ease of use, nest the root node's configuration simiarly.
9797+ # For ease of use, nest the root node's configuration similarly.
9898 ([ { configuration = node; } ] ++ (builtins.attrValues node.specialisation))
9999 )
100100 );
+1-1
nixos/tests/ntfy-sh-migration.nix
···44# this test works doing a migration and asserting ntfy-sh runs properly. first,
55# ntfy-sh is configured to use a static user and group. then ntfy-sh is
66# started and tested. after that, ntfy-sh is shut down and a systemd drop
77-# in configuration file is used to upate the service configuration to use
77+# in configuration file is used to update the service configuration to use
88# DynamicUser=true. then the ntfy-sh is started again and tested.
991010import ./make-test-python.nix {
+2-2
nixos/tests/sftpgo.nix
···66# - downloading the file over sftp
77# - assert that the ACLs are respected
88# - share a file between alice and bob (using sftp)
99-# - assert that eve cannot acceess the shared folder between alice and bob.
99+# - assert that eve cannot access the shared folder between alice and bob.
1010#
1111# Additional test coverage for the remaining protocols (i.e. ftp, http and webdav)
1212# would be a nice to have for the future.
···333333 testScript =
334334 { nodes, ... }:
335335 let
336336- # A function to generate test cases for wheter
336336+ # A function to generate test cases for whether
337337 # a specified username is expected to access the shared folder.
338338 accessSharedFoldersSubtest =
339339 {
+1-1
nixos/tests/systemd-sysupdate.nix
···11-# Tests downloading a signed update aritfact from a server to a target machine.
11+# Tests downloading a signed update artifact from a server to a target machine.
22# This test does not rely on the `systemd.timer` units provided by the
33# `systemd-sysupdate` module but triggers the `systemd-sysupdate` service
44# manually to make the test more robust.
+1-1
nixos/tests/systemd-timesyncd-nscd-dnssec.nix
···44# correct time, we need to connect to an NTP server, which usually requires resolving its hostname.
55#
66# This test does the following:
77-# - Sets up a DNS server (tinydns) listening on the eth1 ip addess, serving .ntp and fake.ntp records.
77+# - Sets up a DNS server (tinydns) listening on the eth1 ip address, serving .ntp and fake.ntp records.
88# - Configures that DNS server as a resolver and enables DNSSEC in systemd-resolved settings.
99# - Configures systemd-timesyncd to use fake.ntp hostname as an NTP server.
1010# - Performs a regular DNS lookup, to ensure it fails due to broken DNSSEC.
···12401240 mktplcRef = {
12411241 name = "dart-code";
12421242 publisher = "dart-code";
12431243- version = "3.110.0";
12441244- hash = "sha256-YLdhL5xNj8sidZUzMVZgOK6zTXgQnWdKWRrDg0on90s=";
12431243+ version = "3.112.0";
12441244+ hash = "sha256-nnEEKijl5ZdsHyBAWCL+MucjNGIuup75xSJaVzNawrs=";
12451245 };
1246124612471247 meta.license = lib.licenses.mit;
···12511251 mktplcRef = {
12521252 name = "flutter";
12531253 publisher = "dart-code";
12541254- version = "3.110.0";
12551255- hash = "sha256-Zi+q56XcHZGUKgF3TNpaYSwwdqLT8Q1fxf8dFVAEuQY=";
12541254+ version = "3.112.0";
12551255+ hash = "sha256-S+srv0zUCobM3IPXOME5oT0xdXdPmMHSs7rwNTBcnhk=";
12561256 };
1257125712581258 meta.license = lib.licenses.mit;
···57095709 };
5710571057115711 # TODO: add overrides overlay, so that we can have a generated.nix
57125712- # then apply extension specific modifcations to packages.
57125712+ # then apply extension specific modifications to packages.
5713571357145714 # overlays will be applied left to right, overrides should come after aliases.
57155715 overlays = lib.optionals config.allowAliases [
···33333434 <https://github.com/Microsoft/vscode-cpptools/issues/35>
35353636- Once the symbolic link temporary solution taken, everything shoud run smootly.
3636+ Once the symbolic link temporary solution taken, everything should run smootly.
3737*/
38383939let
+1-1
pkgs/applications/graphics/yacreader/default.nix
···4949 libsForQt5.qtmacextras # can be removed when using qt6
5050 ];
51515252- # custom Darwin install instructions taken from the upsteam compileOSX.sh script
5252+ # custom Darwin install instructions taken from the upstream compileOSX.sh script
5353 installPhase = lib.optionalString stdenv.hostPlatform.isDarwin ''
5454 runHook preInstall
5555
···33Go promises that "programs written to the Go 1 specification will continue to compile and run correctly, unchanged, over the lifetime of that specification" [1].
44Newer toolchain versions should build projects developed against older toolchains without problems.
5566+**Definition(a "toolchain-breaking" package):**
67There are however Go packages depending on internal APIs of the toolchain/runtime/stdlib that are not covered by the Go compatibility promise.
77-These packages may break on toolchain updates.
88-We name packages that (often) break on toolchain updates `toolchain-breaking`.
88+These packages may break on toolchain minor version upgrades.
991010-There is another set of packages that depends on the toolchain, but in another way:
1111-Packages providing development support for the Go language (like `gopls`, `golangci-lint`,...) must be compiled with the version they should be used for.
1010+**Definition(a "toolchain-latest" package):**
1111+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.
1212If `gopls` is compiled for Go 1.23, it won't work for projects that require Go 1.24.
1313-We name packages that must be built with the latest toolchain to work as expected `toolchain-latest`.
14131514Go 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.
1615···2625 A comment MUST be added explaining why this is the case for a certain package.
2726 It is important to keep the number of packages using this builder within nixpkgs low, so the bump won't cause a mass rebuild.
28272929- Consumer outside of nixpkgs on the other hand MAY rely on this toolchain/builder if they prefer being upgraded earlier to the newest toolchain.
2828+ `go_latest` MUST not point to release candidates of Go.
2929+3030+ 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.
303131323. Packages in `toolchain-breaking` SHOULD pin a toolchain version by using a builder with a fixed Go version (`buildGo1xxModule`).
3233 The use of `buildGo1xxModule` MUST be accompanied with a comment explaining why this has a dependency on a specific Go version.
···1515 jq,
1616 libiconv,
1717 # Controls codegen parallelization for all crates.
1818- # May be overriden on a per-crate level.
1818+ # May be overridden on a per-crate level.
1919 # See <https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units>
2020 defaultCodegenUnits ? 1,
2121}:
···2020 defaultCrateOverrides ? pkgs.defaultCrateOverrides,
2121 # The features to enable for the root_crate or the workspace_members.
2222 rootFeatures ? [ "default" ],
2323- # If true, throw errors instead of issueing deprecation warnings.
2323+ # If true, throw errors instead of issuing deprecation warnings.
2424 strictDeprecation ? false,
2525 # Used for conditional compilation based on CPU feature detection.
2626 targetFeatures ? [ ],
···44854485 runTests ? false,
44864486 testCrateFlags ? [ ],
44874487 testInputs ? [ ],
44884488- # Any command to run immediatelly before a test is executed.
44884488+ # Any command to run immediately before a test is executed.
44894489 testPreRun ? "",
44904490- # Any command run immediatelly after a test is executed.
44904490+ # Any command run immediately after a test is executed.
44914491 testPostRun ? "",
44924492 }:
44934493 lib.makeOverridable
+1-1
pkgs/by-name/ad/adios2/package.nix
···8585 yaml-cpp
8686 nlohmann_json
87878888- # Todo: add these optional dependcies in nixpkgs.
8888+ # Todo: add these optional dependencies in nixpkgs.
8989 # sz
9090 # mgard
9191 # catalyst
···1313 sha256 = "1l3hlw9rrc11qggbg9a2303p3bhxxx2vqkmlk8avsrbqw15r1ayr";
1414 };
15151616- # credis build system has no install actions, provide our own.
1616+ # credits build system has no install actions, provide our own.
1717 installPhase = ''
1818 mkdir -p "$out/bin"
1919 mkdir -p "$out/lib"
+1-1
pkgs/by-name/mi/miktex/package.nix
···106106 patches = [
107107 ./startup-config-support-nix-store.patch
108108 # Miktex will search exectables in "GetMyPrefix(true)/bin".
109109- # The path evalutate to "/usr/bin" in FHS style linux distrubution,
109109+ # The path evaluate to "/usr/bin" in FHS style linux distribution,
110110 # compared to "/nix/store/.../bin" in NixOS.
111111 # As a result, miktex will fail to find e.g. 'pkexec','ksudo','gksu'
112112 # under /run/wrappers/bin in NixOS.
+1-1
pkgs/by-name/mx/mxnet/package.nix
···1414 perl,
1515 # mxnet cuda support is turned off, but dependencies like opencv can still be built with cudaSupport
1616 # and fail to compile without the cudatoolkit
1717- # mxnet cuda support will not be availaible, as mxnet requires version <=11
1717+ # mxnet cuda support will not be available, as mxnet requires version <=11
1818 cudaSupport ? config.cudaSupport,
1919 cudaPackages ? { },
2020}:
···30303131 patches = [
3232 # Related to https://github.com/stepchowfun/typical/pull/501
3333- # Commiting a slightly different patch because the upstream one doesn't apply cleanly
3333+ # Committing a slightly different patch because the upstream one doesn't apply cleanly
3434 ./lifetime.patch
3535 ];
3636
+1-1
pkgs/by-name/us/usb-reset/package.nix
···88stdenv.mkDerivation {
99 pname = "usb-reset";
1010 # not tagged, but changelog has this with the date of the e9a9d6c commit
1111- # and no significant change occured between bumping the version in the Makefile and that
1111+ # and no significant change occurred between bumping the version in the Makefile and that
1212 # and the changes since then (up to ff822d8) seem snap related
1313 version = "0.3";
1414
···3838 };
39394040 patches = [
4141- # instead of runnning git during the build process
4141+ # instead of running git during the build process
4242 # use the .COMMIT file generated in the fetcher FOD
4343 ./git-rev-parse.patch
4444 ];
···66 copyDesktopItems,
77 autoPatchelfHook,
8899- # Upstream is officialy built with Electron 18
99+ # Upstream is officially built with Electron 18
1010 # (but it works with latest Electron with minor changes, see HACK below)
1111 electron,
1212 asar,
···38383939# Note [Windows Exception Handling]
4040# sjlj (short jump long jump) exception handling makes no sense on x86_64,
4141-# it's forcably slowing programs down as it produces a constant overhead.
4141+# it's forcibly slowing programs down as it produces a constant overhead.
4242# On x86_64 we have SEH (Structured Exception Handling) and we should use
4343# that. On i686, we do not have SEH, and have to use sjlj with dwarf2.
4444# Hence it's now conditional on x86_32 (i686 is 32bit).
···2121# To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead.
2222self: super:
2323{
2424- # Hackage's accelerate is from 2020 and incomptible with our GHC.
2424+ # Hackage's accelerate is from 2020 and incompatible with our GHC.
2525 # The existing derivation also has missing dependencies
2626 # compared to the source from github.
2727 # https://github.com/AccelerateHS/accelerate/issues/553
···820820 katt = dontCheck super.katt;
821821 language-slice = dontCheck super.language-slice;
822822823823- # Bogus lower bound on data-default-class added via Hackage revison
823823+ # Bogus lower bound on data-default-class added via Hackage revision
824824 # https://github.com/mrkkrp/req/pull/180#issuecomment-2628201485
825825 req = overrideCabal {
826826 revision = null;
···19791979 license = lib.licenses.bsd3;
19801980 # ghc-bignum is not buildable if none of the three backends
19811981 # is explicitly enabled. We enable Native for now as it doesn't
19821982- # depend on anything else as oppossed to GMP and FFI.
19821982+ # depend on anything else as opposed to GMP and FFI.
19831983 # Apply patch which fixes a compilation failure we encountered.
19841984 # Will need to be kept until we can drop ghc-bignum entirely,
19851985 # i. e. if GHC 8.10.* and 8.8.* have been removed.
···25422542 # Missing test files https://github.com/kephas/xdg-basedir-compliant/issues/1
25432543 xdg-basedir-compliant = dontCheck super.xdg-basedir-compliant;
2544254425452545- # Test failure after libxcrypt migration, reported upstrem at
25452545+ # Test failure after libxcrypt migration, reported upstream at
25462546 # https://github.com/phadej/crypt-sha512/issues/13
25472547 crypt-sha512 = dontCheck super.crypt-sha512;
25482548
+1-1
pkgs/development/interpreters/ruby/default.nix
···207207 # When using a baseruby, ruby always sets "libdir" to the build
208208 # directory, which nix rejects due to a reference in to /build/ in
209209 # the final product. Removing this reference doesn't seem to break
210210- # anything and fixes cross compliation.
210210+ # anything and fixes cross compilation.
211211 ./dont-refer-to-build-dir.patch
212212 ];
213213
+1-1
pkgs/development/libraries/ffmpeg/generic.nix
···3434 # all dependants in Nixpkgs
3535 withSmallDeps ? ffmpegVariant == "small" || withFullDeps,
36363737- # Everything enabled; only guarded behind platform exclusivity or brokeness.
3737+ # Everything enabled; only guarded behind platform exclusivity or brokenness.
3838 # If you need to depend on ffmpeg-full because ffmpeg is missing some feature
3939 # your package needs, you should enable that feature in regular ffmpeg
4040 # instead.
+1-1
pkgs/development/libraries/openssl/default.nix
···225225 # This avoids conflicts between man pages of openssl subcommands (for
226226 # example 'ts' and 'err') man pages and their equivalent top-level
227227 # command in other packages (respectively man-pages and moreutils).
228228- # This is done in ubuntu and archlinux, and possiibly many other distros.
228228+ # This is done in ubuntu and archlinux, and possibly many other distros.
229229 "MANSUFFIX=ssl"
230230 ];
231231
+1-1
pkgs/development/libraries/vigra/default.nix
···2929 };
30303131 patches = [
3232- # Pathes to fix compiling on LLVM 19 from https://github.com/ukoethe/vigra/pull/592
3232+ # Patches to fix compiling on LLVM 19 from https://github.com/ukoethe/vigra/pull/592
3333 ./fix-llvm-19-1.patch
3434 ./fix-llvm-19-2.patch
3535 ];
···60606161 # AttributeError: jax.core.Var was removed in JAX v0.6.0. Use jax.extend.core.Var instead, and
6262 # see https://docs.jax.dev/en/latest/jax.extend.html for details.
6363- # Alrady on master: https://github.com/google-deepmind/dm-haiku/commit/cfe8480d253a93100bf5e2d24c40435a95399c96
6363+ # Already on master: https://github.com/google-deepmind/dm-haiku/commit/cfe8480d253a93100bf5e2d24c40435a95399c96
6464 # TODO: remove at the next release
6565 postPatch = ''
6666 substituteInPlace haiku/_src/jaxpr_info.py \
···33# requires the CUDA toolkit (via nvcc) to be available.
44#
55# This means that if you plan to use flashinfer, you will need to set the
66-# environment varaible `CUDA_HOME` to `cudatoolkit`.
66+# environment variable `CUDA_HOME` to `cudatoolkit`.
77{
88 lib,
99 config,
+1-1
pkgs/development/python-modules/fmpy/default.nix
···178178 };
179179180180 # FMPy searches for sundials without the "lib"-prefix; strip it
181181- # and symlink the so-files into existance.
181181+ # and symlink the so-files into existence.
182182 postFixup = ''
183183 pushd $out/lib
184184 for so in *.so; do
···2727 # itables has 4 different node packages, each with their own
2828 # package-lock.json, and partially depending on each other.
2929 # Our fetchNpmDeps tooling in nixpkgs doesn't support this yet, so we fetch
3030- # the source tarball from pypi, wich includes the javascript bundle already.
3030+ # the source tarball from pypi, which includes the javascript bundle already.
3131 src = fetchPypi {
3232 inherit pname version;
3333 hash = "sha256-S5HASUVfqTny+Vu15MYSSrEffCaJuL7UhDOc3eudVWI=";
···5454 # Boto @ 1.35 has outstripped the version requirement
5555 "boto3"
5656 # Each component release requests the exact latest core.
5757- # That prevents us from updating individul components.
5757+ # That prevents us from updating individual components.
5858 "langchain-core"
5959 ];
6060
···44444545 pythonRelaxDeps = [
4646 # Each component release requests the exact latest core.
4747- # That prevents us from updating individul components.
4747+ # That prevents us from updating individual components.
4848 "langchain-core"
4949 ];
5050
···32323333 pythonRelaxDeps = [
3434 # Each component release requests the exact latest core.
3535- # That prevents us from updating individul components.
3535+ # That prevents us from updating individual components.
3636 "langchain-core"
3737 "numpy"
3838 ];
···56565757 pythonRelaxDeps = [
5858 # Each component release requests the exact latest langchain and -core.
5959- # That prevents us from updating individul components.
5959+ # That prevents us from updating individual components.
6060 "langchain"
6161 "langchain-core"
6262 "numpy"
···34343535 pythonRelaxDeps = [
3636 # Each component release requests the exact latest core.
3737- # That prevents us from updating individul components.
3737+ # That prevents us from updating individual components.
3838 "langchain-core"
3939 ];
4040
···49495050 pythonRelaxDeps = [
5151 # Each component release requests the exact latest core.
5252- # That prevents us from updating individul components.
5252+ # That prevents us from updating individual components.
5353 "langchain-core"
5454 ];
5555
···39394040 pythonRelaxDeps = [
4141 # Each component release requests the exact latest core.
4242- # That prevents us from updating individul components.
4242+ # That prevents us from updating individual components.
4343 "langchain-core"
4444 "numpy"
4545 ];
···40404141 pythonRelaxDeps = [
4242 # Each component release requests the exact latest core.
4343- # That prevents us from updating individul components.
4343+ # That prevents us from updating individual components.
4444 "langchain-core"
4545 ];
4646
···52525353 pythonRelaxDeps = [
5454 # Each component release requests the exact latest core.
5555- # That prevents us from updating individul components.
5555+ # That prevents us from updating individual components.
5656 "langchain-core"
5757 ];
5858
···42424343 pythonRelaxDeps = [
4444 # Each component release requests the exact latest core.
4545- # That prevents us from updating individul components.
4545+ # That prevents us from updating individual components.
4646 "langchain-core"
4747 "numpy"
4848 ];
···34343535 pythonRelaxDeps = [
3636 # Each component release requests the exact latest core.
3737- # That prevents us from updating individul components.
3737+ # That prevents us from updating individual components.
3838 "langchain-core"
3939 ];
4040
···60606161 pythonRelaxDeps = [
6262 # Each component release requests the exact latest core.
6363- # That prevents us from updating individul components.
6363+ # That prevents us from updating individual components.
6464 "langchain-core"
6565 "numpy"
6666 "tenacity"
···6868 # Project has no tests.
6969 # In order to make pythonImportsCheck work, NUMBA_CACHE_DIR env var need to
7070 # be set to a writable dir (https://github.com/numba/numba/issues/4032#issuecomment-488102702).
7171- # pythonImportsCheck has no pre* hook, use checkPhase to wordaround that.
7171+ # pythonImportsCheck has no pre* hook, use checkPhase to workaround that.
7272 checkPhase = ''
7373 export NUMBA_CACHE_DIR="$(mktemp -d)"
7474 '';
···110110 "MulticastTests.test_multiListen"
111111 ];
112112 "src/twisted/trial/test/test_script.py" = [
113113- # Fails in LXC containers with less than all cores availaible (limits.cpu)
113113+ # Fails in LXC containers with less than all cores available (limits.cpu)
114114 "AutoJobsTests.test_cpuCount"
115115 ];
116116 "src/twisted/internet/test/test_unix.py" = [
···241241 # guarantee that it will always run in any nix context.
242242 #
243243 # See also ./bazel_darwin_sandbox.patch in bazel_5. That patch uses
244244- # NIX_BUILD_TOP env var to conditionnally disable sleep features inside the
244244+ # NIX_BUILD_TOP env var to conditionally disable sleep features inside the
245245 # sandbox.
246246 #
247247 # If you want to investigate the sandbox profile path,
···323323 # --{,tool_}java_runtime_version=local_jdk and rely on the fact no java
324324 # toolchain registered by default uses the local_jdk, making the selection
325325 # unambiguous.
326326- # This toolchain has the advantage that it can use any ambiant java jdk,
326326+ # This toolchain has the advantage that it can use any ambient java jdk,
327327 # not only a given, fixed version. It allows bazel to work correctly in any
328328 # environment where JAVA_HOME is set to the right java version, like inside
329329 # nix derivations.
330330- # However, this patch breaks bazel hermeticity, by picking the ambiant java
330330+ # However, this patch breaks bazel hermeticity, by picking the ambient java
331331 # version instead of the more hermetic remote_jdk prebuilt binaries that
332332 # rules_java provide by default. It also requires the user to have a
333333 # JAVA_HOME set to the exact version required by the project.
···347347 # guarantee that it will always run in any nix context.
348348 #
349349 # See also ./bazel_darwin_sandbox.patch in bazel_5. That patch uses
350350- # NIX_BUILD_TOP env var to conditionnally disable sleep features inside the
350350+ # NIX_BUILD_TOP env var to conditionally disable sleep features inside the
351351 # sandbox.
352352 #
353353 # If you want to investigate the sandbox profile path,
···151151 ];
152152 });
153153154154- # Pinned due to home-assistant still needing 1.10.0 verison
155155- # Remove this when home-assistant upates the jellyfin-apiclient-python version
154154+ # Pinned due to home-assistant still needing 1.10.0 version
155155+ # Remove this when home-assistant updates the jellyfin-apiclient-python version
156156 jellyfin-apiclient-python = super.jellyfin-apiclient-python.overridePythonAttrs (oldAttrs: rec {
157157 version = "1.10.0";
158158 src = fetchFromGitHub {
···120120121121 isMarkedInsecure = attrs: (attrs.meta.knownVulnerabilities or [ ]) != [ ];
122122123123- # Alow granular checks to allow only some unfree packages
123123+ # Allow granular checks to allow only some unfree packages
124124 # Example:
125125 # {pkgs, ...}:
126126 # {
+1-1
pkgs/test/texlive/default.nix
···625625 "outocp"
626626 "pmxab"
627627628628- # GUI scripts that accept no argument or crash without a graphics server; please test manualy
628628+ # GUI scripts that accept no argument or crash without a graphics server; please test manually
629629 "epspdftk"
630630 "texdoctk"
631631 "tlshell"
+6-6
pkgs/top-level/all-packages.nix
···3660366036613661 libhandy = callPackage ../development/libraries/libhandy { };
3662366236633663- # Needed for apps that still depend on the unstable verison of the library (not libhandy-1)
36633663+ # Needed for apps that still depend on the unstable version of the library (not libhandy-1)
36643664 libhandy_0 = callPackage ../development/libraries/libhandy/0.x.nix { };
3665366536663666 libint = callPackage ../development/libraries/libint { };
···4855485548564856 zbar = libsForQt5.callPackage ../tools/graphics/zbar { };
4857485748584858- # Nvidia support does not require any propietary libraries, so CI can build it.
48584858+ # Nvidia support does not require any proprietary libraries, so CI can build it.
48594859 # Note that when enabling this unconditionally, non-nvidia users will always have an empty "GPU" section.
48604860 zenith-nvidia = zenith.override {
48614861 nvidiaSupport = true;
···70597059 # host platform.
70607060 #
70617061 # Because this is the *next* stages choice, it's a bit non-modular to put
70627062- # here. In theory, bootstraping is supposed to not be a chain but at tree,
70627062+ # here. In theory, bootstrapping is supposed to not be a chain but at tree,
70637063 # where each stage supports many "successor" stages, like multiple possible
70647064 # futures. We don't have a better alternative, but with this downside in
70657065 # mind, please be judicious when using this attribute. E.g. for building
···82098209 stdenv = stdenvNoLibc;
82108210 };
8211821182128212- # These are used when buiding compiler-rt / libgcc, prior to building libc.
82128212+ # These are used when building compiler-rt / libgcc, prior to building libc.
82138213 preLibcCrossHeaders =
82148214 let
82158215 inherit (stdenv.targetPlatform) libc;
···10572105721057310573 nginxModules = recurseIntoAttrs (callPackage ../servers/http/nginx/modules.nix { });
10574105741057510575- # We should move to dynmaic modules and create a nginxFull package with all modules
1057510575+ # We should move to dynamic modules and create a nginxFull package with all modules
1057610576 nginxShibboleth = nginxStable.override {
1057710577 modules = [
1057810578 nginxModules.rtmp
···1370013700 jdk = jdk17;
1370113701 };
13702137021370313703- # perhaps there are better apps for this task? It's how I had configured my preivous system.
1370313703+ # perhaps there are better apps for this task? It's how I had configured my previous system.
1370413704 # And I don't want to rewrite all rules
1370513705 profanity = callPackage ../applications/networking/instant-messengers/profanity (
1370613706 {
+1-1
pkgs/top-level/stage.nix
···328328329329 # The complete chain of package set builders, applied from top to bottom.
330330 # stdenvOverlays must be last as it brings package forward from the
331331- # previous bootstrapping phases which have already been overlayed.
331331+ # previous bootstrapping phases which have already been overlaid.
332332 toFix = lib.foldl' (lib.flip lib.extends) (self: { }) (
333333 [
334334 stdenvBootstappingAndPlatforms