···348348349349- The behavior of the `networking.nat.externalIP` and `networking.nat.externalIPv6` options has been changed. `networking.nat.forwardPorts` now only forwards packets destined for the specified IP addresses.
350350351351+- `gitlab` has been updated from 17.x to 18.x and requires `postgresql` >= 16, as stated in the [documentation](https://docs.gitlab.com/18.0/install/requirements/#postgresql). Check the [upgrade guide](#module-services-postgres-upgrading) in the NixOS manual on how to upgrade your PostgreSQL installation.
352352+351353- `services.gitlab` now requires the setting of `activeRecordPrimaryKeyFile`, `activeRecordDeterministicKeyFile`, `activeRecordSaltFile` as GitLab introduced Rails ActiveRecord encryption.
352354353355- `python3Packages.bpycv` has been removed due to being incompatible with Blender 4 and unmaintained.
···12371237 message = "services.gitlab.secrets.activeRecordSaltFile must be set!";
12381238 }
12391239 {
12401240- assertion = versionAtLeast postgresqlPackage.version "14.9";
12411241- message = "PostgreSQL >= 14.9 is required to run GitLab 17. Follow the instructions in the manual section for upgrading PostgreSQL here: https://nixos.org/manual/nixos/stable/index.html#module-services-postgres-upgrading";
12401240+ assertion = versionAtLeast postgresqlPackage.version "16";
12411241+ message = "PostgreSQL >= 16 is required to run GitLab 18. Follow the instructions in the manual section for upgrading PostgreSQL here: https://nixos.org/manual/nixos/stable/index.html#module-services-postgres-upgrading";
12421242 }
12431243 ];
12441244
+4
nixos/tests/brscan5.nix
···4848 print(scanimage)
4949 assert """device `brother5:net1;dev0' is a Brother b ADS-1200""" in scanimage
5050 assert """device `brother5:net1;dev1' is a Brother a ADS-1200""" in scanimage
5151+5252+ # Confirm systemd-udevd no longer logs errors about SYSFS
5353+ logs = machine.succeed('journalctl --unit systemd-udevd')
5454+ assert "Invalid key 'SYSFS'" not in logs
5155 '';
5256 }
5357)
···7979 # driver is hardcoded to look in /opt/brother/scanner/brscan5/models for model metadata.
8080 # patch it to look in /etc/opt/brother/scanner/models instead, so nixos environment.etc can make it available
8181 printf '/etc/opt/brother/scanner/models\x00' | dd of=opt/brother/scanner/brscan5/libsane-brother5.so.1.0.7 bs=1 seek=${toString patchOffsetBytes} conv=notrunc
8282+8383+ # remove deprecated SYSFS udev rule
8484+ sed -i -e '/^SYSFS/d' opt/brother/scanner/brscan5/udev-rules/*.rules
8285 '';
83868487 installPhase = ''
···9393 openssl
9494 webkitgtk_4_1
9595 ];
9696+9797+ # make sure the .desktop file name does not contain whitespace,
9898+ # so that the service can register it as an auto-start item
9999+ postInstall = ''
100100+ mv $out/share/applications/Clash\ Verge.desktop $out/share/applications/clash-verge.desktop
101101+ '';
96102}
···88}:
99rustPlatform.buildRustPackage rec {
1010 pname = "sarif-fmt";
1111- version = "0.7.0";
1111+ version = "0.8.0";
12121313 src = fetchCrate {
1414 inherit pname version;
1515- hash = "sha256-uQQ/UbmyPJbilxP2R+6KyBkf2dzGohN22xCCtU31y0s=";
1515+ hash = "sha256-Xc9uc//5wTBWJ89mcaC/4c8/xtTvnu8g2Aa1viUhluo=";
1616 };
17171818 useFetchCargoVendor = true;
1919- cargoHash = "sha256-naABVC4z5tYfe/Y2Gw4wp2Ye9wIF0Wq7jqhelcRQY30=";
1919+ cargoHash = "sha256-h4g4+2yiqr3CTkSgv8fTHEVQwSunFfYFhIczSGA+M5U=";
20202121 # `test_clippy` (the only test we enable) is broken on Darwin
2222 # because `--enable-profiler` is not enabled in rustc on Darwin
···11+# shellcheck shell=bash
22+33+udevCheckHook() {
44+ runHook preUdevCheck
55+ echo Executing udevCheckPhase
66+77+ # as per nixos/modules/services/hardware/udev.nix:
88+ # - both /lib and /etc is valid paths for udev rules
99+ # - udev rules are expected to be part of the $bin output
1010+ # However, not all udev rules are actually in $bin (some are in $lib or $out).
1111+ # This means we have to actually check all outputs here.
1212+ for output in $(getAllOutputNames); do
1313+ for path in etc lib ; do
1414+ if [ -d "${!output}/$path/udev/rules.d" ]; then
1515+ @udevadm@ verify --resolve-names=never --no-style "${!output}/$path/udev/rules.d"
1616+ fi
1717+ done
1818+ done
1919+2020+ runHook postUdevCheck
2121+ echo Finished udevCheckPhase
2222+}
2323+2424+if [[ -z "${dontUdevCheck-}" ]]; then
2525+ echo "Using udevCheckHook"
2626+ preInstallCheckHooks+=(udevCheckHook)
2727+fi
···220220in
221221222222{
223223- # Disable on Darwin due to assumptions with __bootPackages
224224- __attrsFailEvaluation = stdenv.hostPlatform.isDarwin;
225225-226223 # tests for hooks in `stdenv.defaultNativeBuildInputs`
227224 hooks = lib.recurseIntoAttrs (
228225 import ./hooks.nix {
···16881688 SDL_gpu = throw "'SDL_gpu' has been removed due to lack of upstream maintenance and known users"; # Added 2025-03-15
16891689 SDL_image_2_0 = throw "'SDL_image_2_0' has been removed in favor of the latest version"; # Added 2025-04-20
16901690 SDL2_mixer_2_0 = throw "'SDL2_mixer_2_0' has been removed in favor of the latest version"; # Added 2025-04-27
16911691+ SDL2_classic = throw "'SDL2_classic' has been removed. Consider upgrading to 'sdl2-compat', also available as 'SDL2'."; # Added 2025-05-20
16921692+ SDL2_classic_image = throw "'SDL2_classic_image' has been removed as part of the deprecation of 'SDL2_classic'. Consider upgrading to 'SDL2_image' built with 'sdl2-compat'."; # Added 2025-05-20
16911693 SDL2_classic_mixer_2_0 = throw "'SDL2_classic_mixer_2_0' has been removed in favor of the latest version"; # Added 2025-04-27
16941694+ SDL2_classic_mixer = throw "'SDL2_classic_mixer' has been removed as part of the deprecation of 'SDL2_classic'. Consider upgrading to 'SDL2_mixer' built with 'sdl2-compat'."; # Added 2025-05-20
16951695+ SDL2_classic_ttf = throw "'SDL2_classic_ttf' has been removed as part of the deprecation of 'SDL2_classic'. Consider upgrading to 'SDL2_ttf' built with 'sdl2-compat'."; # Added 2025-05-20
16921696 s2n = throw "'s2n' has been renamed to/replaced by 's2n-tls'"; # Converted to throw 2024-10-17
16931697 sandboxfs = throw "'sandboxfs' has been removed due to being unmaintained, consider using linux namespaces for sandboxing instead"; # Added 2024-06-06
16941698 sane-backends-git = throw "'sane-backends-git' has been renamed to/replaced by 'sane-backends'"; # Converted to throw 2024-10-17