···348349- 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.
35000351- `services.gitlab` now requires the setting of `activeRecordPrimaryKeyFile`, `activeRecordDeterministicKeyFile`, `activeRecordSaltFile` as GitLab introduced Rails ActiveRecord encryption.
352353- `python3Packages.bpycv` has been removed due to being incompatible with Blender 4 and unmaintained.
···348349- 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.
350351+- `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.
352+353- `services.gitlab` now requires the setting of `activeRecordPrimaryKeyFile`, `activeRecordDeterministicKeyFile`, `activeRecordSaltFile` as GitLab introduced Rails ActiveRecord encryption.
354355- `python3Packages.bpycv` has been removed due to being incompatible with Blender 4 and unmaintained.
···1237 message = "services.gitlab.secrets.activeRecordSaltFile must be set!";
1238 }
1239 {
1240- assertion = versionAtLeast postgresqlPackage.version "14.9";
1241- 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";
1242 }
1243 ];
1244
···1237 message = "services.gitlab.secrets.activeRecordSaltFile must be set!";
1238 }
1239 {
1240+ assertion = versionAtLeast postgresqlPackage.version "16";
1241+ 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";
1242 }
1243 ];
1244
+4
nixos/tests/brscan5.nix
···48 print(scanimage)
49 assert """device `brother5:net1;dev0' is a Brother b ADS-1200""" in scanimage
50 assert """device `brother5:net1;dev1' is a Brother a ADS-1200""" in scanimage
000051 '';
52 }
53)
···48 print(scanimage)
49 assert """device `brother5:net1;dev0' is a Brother b ADS-1200""" in scanimage
50 assert """device `brother5:net1;dev1' is a Brother a ADS-1200""" in scanimage
51+52+ # Confirm systemd-udevd no longer logs errors about SYSFS
53+ logs = machine.succeed('journalctl --unit systemd-udevd')
54+ assert "Invalid key 'SYSFS'" not in logs
55 '';
56 }
57)
···79 # driver is hardcoded to look in /opt/brother/scanner/brscan5/models for model metadata.
80 # patch it to look in /etc/opt/brother/scanner/models instead, so nixos environment.etc can make it available
81 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
00082 '';
8384 installPhase = ''
···79 # driver is hardcoded to look in /opt/brother/scanner/brscan5/models for model metadata.
80 # patch it to look in /etc/opt/brother/scanner/models instead, so nixos environment.etc can make it available
81 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
82+83+ # remove deprecated SYSFS udev rule
84+ sed -i -e '/^SYSFS/d' opt/brother/scanner/brscan5/udev-rules/*.rules
85 '';
8687 installPhase = ''
···93 openssl
94 webkitgtk_4_1
95 ];
96+97+ # make sure the .desktop file name does not contain whitespace,
98+ # so that the service can register it as an auto-start item
99+ postInstall = ''
100+ mv $out/share/applications/Clash\ Verge.desktop $out/share/applications/clash-verge.desktop
101+ '';
102}
···8}:
9rustPlatform.buildRustPackage rec {
10 pname = "sarif-fmt";
11- version = "0.7.0";
1213 src = fetchCrate {
14 inherit pname version;
15- hash = "sha256-uQQ/UbmyPJbilxP2R+6KyBkf2dzGohN22xCCtU31y0s=";
16 };
1718 useFetchCargoVendor = true;
19- cargoHash = "sha256-naABVC4z5tYfe/Y2Gw4wp2Ye9wIF0Wq7jqhelcRQY30=";
2021 # `test_clippy` (the only test we enable) is broken on Darwin
22 # because `--enable-profiler` is not enabled in rustc on Darwin
···8}:
9rustPlatform.buildRustPackage rec {
10 pname = "sarif-fmt";
11+ version = "0.8.0";
1213 src = fetchCrate {
14 inherit pname version;
15+ hash = "sha256-Xc9uc//5wTBWJ89mcaC/4c8/xtTvnu8g2Aa1viUhluo=";
16 };
1718 useFetchCargoVendor = true;
19+ cargoHash = "sha256-h4g4+2yiqr3CTkSgv8fTHEVQwSunFfYFhIczSGA+M5U=";
2021 # `test_clippy` (the only test we enable) is broken on Darwin
22 # because `--enable-profiler` is not enabled in rustc on Darwin
···1819 vendorHash = "sha256-YununGyB72zE0tmqO3BREJeMTjCuy/1fhPHC5r8OLjg=";
20000021 # Tests need the path to the binary:
22 # https://github.com/tus/tusd/blob/0e52ad650abed02ec961353bb0c3c8bc36650d2c/internal/e2e/e2e_test.go#L37
23 preCheck = ''
···1819 vendorHash = "sha256-YununGyB72zE0tmqO3BREJeMTjCuy/1fhPHC5r8OLjg=";
2021+ ldflags = [
22+ "-X github.com/tus/tusd/v2/cmd/tusd/cli.VersionName=v${version}"
23+ ];
24+25 # Tests need the path to the binary:
26 # https://github.com/tus/tusd/blob/0e52ad650abed02ec961353bb0c3c8bc36650d2c/internal/e2e/e2e_test.go#L37
27 preCheck = ''
···1+# shellcheck shell=bash
2+3+udevCheckHook() {
4+ runHook preUdevCheck
5+ echo Executing udevCheckPhase
6+7+ # as per nixos/modules/services/hardware/udev.nix:
8+ # - both /lib and /etc is valid paths for udev rules
9+ # - udev rules are expected to be part of the $bin output
10+ # However, not all udev rules are actually in $bin (some are in $lib or $out).
11+ # This means we have to actually check all outputs here.
12+ for output in $(getAllOutputNames); do
13+ for path in etc lib ; do
14+ if [ -d "${!output}/$path/udev/rules.d" ]; then
15+ @udevadm@ verify --resolve-names=never --no-style "${!output}/$path/udev/rules.d"
16+ fi
17+ done
18+ done
19+20+ runHook postUdevCheck
21+ echo Finished udevCheckPhase
22+}
23+24+if [[ -z "${dontUdevCheck-}" ]]; then
25+ echo "Using udevCheckHook"
26+ preInstallCheckHooks+=(udevCheckHook)
27+fi
···220in
221222{
223- # Disable on Darwin due to assumptions with __bootPackages
224- __attrsFailEvaluation = stdenv.hostPlatform.isDarwin;
225-226 # tests for hooks in `stdenv.defaultNativeBuildInputs`
227 hooks = lib.recurseIntoAttrs (
228 import ./hooks.nix {
···220in
221222{
000223 # tests for hooks in `stdenv.defaultNativeBuildInputs`
224 hooks = lib.recurseIntoAttrs (
225 import ./hooks.nix {
···1688 SDL_gpu = throw "'SDL_gpu' has been removed due to lack of upstream maintenance and known users"; # Added 2025-03-15
1689 SDL_image_2_0 = throw "'SDL_image_2_0' has been removed in favor of the latest version"; # Added 2025-04-20
1690 SDL2_mixer_2_0 = throw "'SDL2_mixer_2_0' has been removed in favor of the latest version"; # Added 2025-04-27
001691 SDL2_classic_mixer_2_0 = throw "'SDL2_classic_mixer_2_0' has been removed in favor of the latest version"; # Added 2025-04-27
001692 s2n = throw "'s2n' has been renamed to/replaced by 's2n-tls'"; # Converted to throw 2024-10-17
1693 sandboxfs = throw "'sandboxfs' has been removed due to being unmaintained, consider using linux namespaces for sandboxing instead"; # Added 2024-06-06
1694 sane-backends-git = throw "'sane-backends-git' has been renamed to/replaced by 'sane-backends'"; # Converted to throw 2024-10-17
···1688 SDL_gpu = throw "'SDL_gpu' has been removed due to lack of upstream maintenance and known users"; # Added 2025-03-15
1689 SDL_image_2_0 = throw "'SDL_image_2_0' has been removed in favor of the latest version"; # Added 2025-04-20
1690 SDL2_mixer_2_0 = throw "'SDL2_mixer_2_0' has been removed in favor of the latest version"; # Added 2025-04-27
1691+ SDL2_classic = throw "'SDL2_classic' has been removed. Consider upgrading to 'sdl2-compat', also available as 'SDL2'."; # Added 2025-05-20
1692+ 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
1693 SDL2_classic_mixer_2_0 = throw "'SDL2_classic_mixer_2_0' has been removed in favor of the latest version"; # Added 2025-04-27
1694+ 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
1695+ 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
1696 s2n = throw "'s2n' has been renamed to/replaced by 's2n-tls'"; # Converted to throw 2024-10-17
1697 sandboxfs = throw "'sandboxfs' has been removed due to being unmaintained, consider using linux namespaces for sandboxing instead"; # Added 2024-06-06
1698 sane-backends-git = throw "'sane-backends-git' has been renamed to/replaced by 'sane-backends'"; # Converted to throw 2024-10-17