From 62092edbd177b401a818cc62d187dff1d5ffded3 Mon Sep 17 00:00:00 2001 From: jcstryker Date: Wed, 3 Sep 2025 17:48:44 -0400 Subject: [PATCH 01/58] docs: updated zfs snapshotter support for k3s --- .../cluster/k3s/docs/examples/STORAGE.md | 44 +++++++------------ 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/pkgs/applications/networking/cluster/k3s/docs/examples/STORAGE.md b/pkgs/applications/networking/cluster/k3s/docs/examples/STORAGE.md index fc9a6440ff9a..f61a13eee01d 100644 --- a/pkgs/applications/networking/cluster/k3s/docs/examples/STORAGE.md +++ b/pkgs/applications/networking/cluster/k3s/docs/examples/STORAGE.md @@ -87,36 +87,22 @@ In order to support Rook/Ceph, the following NixOS kernelModule configuration is boot.kernelModules = [ "rbd" ]; ``` -## ZFS Snapshot Support +## ZFS ContainerD Support -K3s's builtin containerd does not support the zfs snapshotter. However, it is possible to configure it to use an external containerd: +The [ZFS snapshotter](https://github.com/containerd/zfs) can be enabled for k3s' embedded ContainerD though it requires mounting a dataset to a specific path used by k3s: `/var/lib/rancher/k3s/agent/containerd/io.containerd.snapshotter.v1.zfs` + +For example: + +```bash +$ zfs create -o mountpoint=/var/lib/rancher/k3s/agent/containerd/io.containerd.snapshotter.v1.zfs /containerd +``` + +You can now configure k3s to use zfs by passing the `--snapshotter` flag. ``` -virtualisation.containerd = { - enable = true; - settings = - let - fullCNIPlugins = pkgs.buildEnv { - name = "full-cni"; - paths = with pkgs;[ - cni-plugins - cni-plugin-flannel - ]; - }; - in { - plugins."io.containerd.grpc.v1.cri".cni = { - bin_dir = "${fullCNIPlugins}/bin"; - conf_dir = "/var/lib/rancher/k3s/agent/etc/cni/net.d/"; - }; - # Optionally set private registry credentials here instead of using /etc/rancher/k3s/registries.yaml - # plugins."io.containerd.grpc.v1.cri".registry.configs."registry.example.com".auth = { - # username = ""; - # password = ""; - # }; - }; -}; -# TODO describe how to enable zfs snapshotter in containerd -services.k3s.extraFlags = toString [ - "--container-runtime-endpoint unix:///run/containerd/containerd.sock" -]; +services.k3s = { + ... + extraFlags = [ + "--snapshotter=zfs" + ]; ``` From d4e652726610869c931b8f34eb4f31429b38d370 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sat, 20 Sep 2025 19:40:55 +0200 Subject: [PATCH 02/58] fire: 1.0.2-unstable-2025-08-16 -> 1.5.0b-unstable-2025-09-20 --- pkgs/by-name/fi/fire/package.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/fi/fire/package.nix b/pkgs/by-name/fi/fire/package.nix index f1c9268a0da8..c5d17a81a6ff 100644 --- a/pkgs/by-name/fi/fire/package.nix +++ b/pkgs/by-name/fi/fire/package.nix @@ -78,14 +78,14 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "fire"; - version = "1.0.2-unstable-2025-08-16"; + version = "1.5.0b-unstable-2025-09-20"; src = fetchFromGitHub { owner = "jerryuhoo"; repo = "Fire"; - rev = "e74e9351a18921c5b7419646eee377e38524c47a"; + rev = "34a424a4fc50984213b6e98e3aaae3dcb8e960c4"; fetchSubmodules = true; - hash = "sha256-2hx5nba7o+ot+KtypSZJb3pKJk8mUIdI1sNqnT2va0Q="; + hash = "sha256-ZTsZ/J5aeyjg4pxhjjIkgoTB5sSg2jpeKAp/uc4V+aQ="; }; postPatch = @@ -101,6 +101,9 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail 'set(FORMATS' 'set(FORMATS ${formatsListing}) #' \ --replace-fail 'BUNDLE_ID "''${BUNDLE_ID}"' 'BUNDLE_ID "''${BUNDLE_ID}" LV2URI "https://www.bluewingsmusic.com/Fire/"' \ --replace-fail 'COPY_PLUGIN_AFTER_BUILD TRUE' 'COPY_PLUGIN_AFTER_BUILD FALSE' + + # Regression tests require big sound files stored in LFS, skip them + rm -v tests/RegressionTests.cpp '' + lib.optionalString stdenv.hostPlatform.isLinux '' # Remove hardcoded LTO flags: needs extra setup on Linux From 2554cc95eb619314ab0ecfb1a17d3cb52e60ba6d Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Fri, 26 Sep 2025 17:25:42 +0200 Subject: [PATCH 03/58] signal-desktop: 7.70.0 -> 7.72.1 Signed-off-by: Marcin Serwin --- .../si/signal-desktop/libsignal-node.nix | 19 ++++++------------- pkgs/by-name/si/signal-desktop/package.nix | 18 ++++++++++-------- pkgs/by-name/si/signal-desktop/ringrtc.nix | 6 +++--- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/pkgs/by-name/si/signal-desktop/libsignal-node.nix b/pkgs/by-name/si/signal-desktop/libsignal-node.nix index b3b13c42c954..cb5190abb930 100644 --- a/pkgs/by-name/si/signal-desktop/libsignal-node.nix +++ b/pkgs/by-name/si/signal-desktop/libsignal-node.nix @@ -24,23 +24,23 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "libsignal-node"; - version = "0.78.3"; + version = "0.81.0"; src = fetchFromGitHub { owner = "signalapp"; repo = "libsignal"; tag = "v${finalAttrs.version}"; - hash = "sha256-BRNgNE7BR4mlCKS4sydxx7rrfy+s4bTpQkX9GbEfhTg="; + hash = "sha256-SOQyps+iGVQ3RWPLmQHzXwmMwmR1PrGIbViCmNg60P4="; }; - cargoHash = "sha256-T8kSQFTvwAYZad9rQRK6vY8vEiilEKv1+fd/1EBlxjI="; + cargoHash = "sha256-O4v9GgNrs4+HpfgoHh6YLy4dNF1LrF1ZS50RaEHh1iM="; npmRoot = "node"; npmDeps = fetchNpmDeps { name = "${finalAttrs.pname}-npm-deps"; inherit (finalAttrs) version src; sourceRoot = "${finalAttrs.src.name}/${finalAttrs.npmRoot}"; - hash = "sha256-e/WyQlea46qTx7x45QuYdlaShezHV5vuB3ptB2DRCVE="; + hash = "sha256-KvMEQ9nJunqF2CDjiP3s3CMoeF+nbUpZDzSIMsImbPg="; }; nativeBuildInputs = [ @@ -62,15 +62,8 @@ rustPlatform.buildRustPackage (finalAttrs: { ./dont-strip-absolute-paths.patch ]; postPatch = '' - substituteInPlace node/binding.gyp \ - --replace-fail "'--out-dir', '<(PRODUCT_DIR)/'," \ - "'--out-dir', '$out/lib/<(NODE_OS_NAME)-<(target_arch)/'," \ - --replace-fail "'target_name': 'libsignal_client_<(NODE_OS_NAME)_<(target_arch).node'," \ - "'target_name': '@signalapp+libsignal-client'," - substituteInPlace node/build_node_bridge.py \ - --replace-fail "dst_base = 'libsignal_client_%s_%s' % (node_os_name, node_arch)" \ - "dst_base = '@signalapp+libsignal-client'" \ + --replace-fail "'prebuilds'" "'$out/lib'" \ --replace-fail "objcopy = shutil.which('%s-linux-gnu-objcopy' % cargo_target.split('-')[0]) or 'objcopy'" \ "objcopy = os.getenv('OBJCOPY', 'objcopy')" ''; @@ -79,7 +72,7 @@ rustPlatform.buildRustPackage (finalAttrs: { runHook preBuild pushd node - npx node-gyp rebuild + npm run build -- --copy-to-prebuilds popd runHook postBuild diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index 01bf8349b79d..e369ffaf2c6b 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -3,7 +3,7 @@ lib, nodejs_22, pnpm_10, - electron_37, + electron_38, python3, makeWrapper, callPackage, @@ -23,7 +23,7 @@ let nodejs = nodejs_22; pnpm = pnpm_10.override { inherit nodejs; }; - electron = electron_37; + electron = electron_38; libsignal-node = callPackage ./libsignal-node.nix { inherit nodejs; }; signal-sqlcipher = callPackage ./signal-sqlcipher.nix { inherit pnpm nodejs; }; @@ -52,13 +52,13 @@ let ''; }); - version = "7.70.0"; + version = "7.72.1"; src = fetchFromGitHub { owner = "signalapp"; repo = "Signal-Desktop"; tag = "v${version}"; - hash = "sha256-y9i9YQPsLt3SLqROyEZsyIkVy/os3hy+1UMUSFMZJTY="; + hash = "sha256-X+ENbHnlr9VL+flaZAHsOjRSBnXHa32qLNEXntxnRLA="; }; sticker-creator = stdenv.mkDerivation (finalAttrs: { @@ -134,15 +134,15 @@ stdenv.mkDerivation (finalAttrs: { fetcherVersion = 1; hash = if withAppleEmojis then - "sha256-uVVUHvYhBCplKPyuS2+PKCxox8uWU2E/2EXLCG1ot54=" + "sha256-7VDIUyQBhFNrAmpfemKcNgjJEuvQ355uU6oZdWM1Hk8=" else - "sha256-tbfk/tIgqpjDtDiULbTVUOJf5i9eLX9xY7vUPrrjmu0="; + "sha256-gpK4WZjD//jZkxLvhAzXVAKmLjya8D1MVCPD4KKJJdA="; }; env = { ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; SIGNAL_ENV = "production"; - SOURCE_DATE_EPOCH = 1757542492; + SOURCE_DATE_EPOCH = 1758811882; }; preBuild = '' @@ -218,10 +218,12 @@ stdenv.mkDerivation (finalAttrs: { install -Dm644 $icon $out/share/icons/hicolor/`basename ''${icon%.png}`/apps/signal-desktop.png done + # TODO: Remove --ozone-platform=wayland after next electron update, + # see https://github.com/electron/electron/pull/48309 makeWrapper '${lib.getExe electron}' "$out/bin/signal-desktop" \ --add-flags "$out/share/signal-desktop/app.asar" \ --set-default ELECTRON_FORCE_IS_PACKAGED 1 \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ --add-flags ${lib.escapeShellArg commandLineArgs} runHook postInstall diff --git a/pkgs/by-name/si/signal-desktop/ringrtc.nix b/pkgs/by-name/si/signal-desktop/ringrtc.nix index 0f5f892ecc77..7a2ddc5c7c09 100644 --- a/pkgs/by-name/si/signal-desktop/ringrtc.nix +++ b/pkgs/by-name/si/signal-desktop/ringrtc.nix @@ -19,16 +19,16 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "ringrtc"; - version = "2.57.0"; + version = "2.57.1"; src = fetchFromGitHub { owner = "signalapp"; repo = "ringrtc"; tag = "v${finalAttrs.version}"; - hash = "sha256-m73SXjTES1sHGbQRtn9CjurFd/Xby5Yyn6uLVLigfiU="; + hash = "sha256-U3sfNjJInT7QBqLLNK1j/0xzmwi/pfZZGOtL/JZ5gZM="; }; - cargoHash = "sha256-LRCgK/w+GcYBCWUKjytErQCxDtS15EnsVOr5Uq6F8ww="; + cargoHash = "sha256-DcaZmOPVO/eAMZ9NsqmwnI2d7Vdz/aVmvI4COivvDBM="; cargoBuildFlags = [ "-p" From 9bf2277b90a89df5bb857d951fd102f402bbfb13 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Sat, 27 Sep 2025 12:48:09 +0300 Subject: [PATCH 04/58] hushboard: modernize --- pkgs/applications/audio/hushboard/default.nix | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/audio/hushboard/default.nix b/pkgs/applications/audio/hushboard/default.nix index b354be1ac63c..fe925dbaef0e 100644 --- a/pkgs/applications/audio/hushboard/default.nix +++ b/pkgs/applications/audio/hushboard/default.nix @@ -12,12 +12,14 @@ six, wrapGAppsHook3, xlib, + nix-update-script, + setuptools, }: buildPythonApplication { pname = "hushboard"; version = "unstable-2021-03-17"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "stuartlangridge"; @@ -26,6 +28,8 @@ buildPythonApplication { sha256 = "06jav6j0bsxhawrq31cnls8zpf80fpwk0cak5s82js6wl4vw2582"; }; + build-system = [ setuptools ]; + nativeBuildInputs = [ wrapGAppsHook3 gobject-introspection @@ -62,15 +66,21 @@ buildPythonApplication { cp hushboard-512.png $out/share/icons/hicolor/512x512/apps/hushboard.png ''; - # There are no tests + passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; + + # no tests doCheck = false; - meta = with lib; { + pythonImportsCheck = [ + "hushboard" + ]; + + meta = { homepage = "https://kryogenix.org/code/hushboard/"; - license = licenses.mit; + license = lib.licenses.mit; description = "Mute your microphone while typing"; mainProgram = "hushboard"; - platforms = platforms.linux; - maintainers = with maintainers; [ keysmashes ]; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ keysmashes ]; }; } From f4d9842f7d0df311b99801668d25493267f7f401 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Sat, 27 Sep 2025 12:58:07 +0300 Subject: [PATCH 05/58] hushboard: move to by-name --- .../hu/hushboard/package.nix} | 13 ++++--------- pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 4 insertions(+), 11 deletions(-) rename pkgs/{applications/audio/hushboard/default.nix => by-name/hu/hushboard/package.nix} (92%) diff --git a/pkgs/applications/audio/hushboard/default.nix b/pkgs/by-name/hu/hushboard/package.nix similarity index 92% rename from pkgs/applications/audio/hushboard/default.nix rename to pkgs/by-name/hu/hushboard/package.nix index fe925dbaef0e..990f03f3f845 100644 --- a/pkgs/applications/audio/hushboard/default.nix +++ b/pkgs/by-name/hu/hushboard/package.nix @@ -1,22 +1,17 @@ { lib, - buildPythonApplication, + python3Packages, fetchFromGitHub, gobject-introspection, gtk3, libappindicator, libpulseaudio, librsvg, - pycairo, - pygobject3, - six, wrapGAppsHook3, - xlib, nix-update-script, - setuptools, }: -buildPythonApplication { +python3Packages.buildPythonApplication { pname = "hushboard"; version = "unstable-2021-03-17"; pyproject = true; @@ -28,7 +23,7 @@ buildPythonApplication { sha256 = "06jav6j0bsxhawrq31cnls8zpf80fpwk0cak5s82js6wl4vw2582"; }; - build-system = [ setuptools ]; + build-system = with python3Packages; [ setuptools ]; nativeBuildInputs = [ wrapGAppsHook3 @@ -41,7 +36,7 @@ buildPythonApplication { libpulseaudio ]; - propagatedBuildInputs = [ + propagatedBuildInputs = with python3Packages; [ pycairo pygobject3 six diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fb1dcee87fe4..556791e70526 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11879,8 +11879,6 @@ with pkgs; huggle = libsForQt5.callPackage ../applications/misc/huggle { }; - hushboard = python3.pkgs.callPackage ../applications/audio/hushboard { }; - hyperion-ng = libsForQt5.callPackage ../applications/video/hyperion-ng { }; jackline = callPackage ../applications/networking/instant-messengers/jackline { From 0fac624134b1e9828dac928b838a783ececd28d8 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Sat, 27 Sep 2025 13:01:03 +0300 Subject: [PATCH 06/58] hushboard: unstable-2021-03-17 -> 0-unstable-2024-04-28 --- pkgs/by-name/hu/hushboard/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hu/hushboard/package.nix b/pkgs/by-name/hu/hushboard/package.nix index 990f03f3f845..9100ced60c3b 100644 --- a/pkgs/by-name/hu/hushboard/package.nix +++ b/pkgs/by-name/hu/hushboard/package.nix @@ -13,14 +13,14 @@ python3Packages.buildPythonApplication { pname = "hushboard"; - version = "unstable-2021-03-17"; + version = "0-unstable-2024-04-28"; pyproject = true; src = fetchFromGitHub { owner = "stuartlangridge"; repo = "hushboard"; - rev = "c16611c539be111891116a737b02c5fb359ad1fc"; - sha256 = "06jav6j0bsxhawrq31cnls8zpf80fpwk0cak5s82js6wl4vw2582"; + rev = "13f5e62add99355f90798006742f62397be8be0c"; + hash = "sha256-z5ZSqcdKUHWt7kgW7ISZJei2YzVZHJGOqJ2IXv3qiWQ="; }; build-system = with python3Packages; [ setuptools ]; From 2e0944ad8bcdefd1e05d82b4bd2f9de53411b024 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Sat, 27 Sep 2025 17:00:20 +0300 Subject: [PATCH 07/58] hushboard: fix runtime error --- pkgs/by-name/hu/hushboard/package.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/by-name/hu/hushboard/package.nix b/pkgs/by-name/hu/hushboard/package.nix index 9100ced60c3b..16fadc50b2eb 100644 --- a/pkgs/by-name/hu/hushboard/package.nix +++ b/pkgs/by-name/hu/hushboard/package.nix @@ -9,6 +9,7 @@ librsvg, wrapGAppsHook3, nix-update-script, + fetchpatch, }: python3Packages.buildPythonApplication { @@ -23,6 +24,14 @@ python3Packages.buildPythonApplication { hash = "sha256-z5ZSqcdKUHWt7kgW7ISZJei2YzVZHJGOqJ2IXv3qiWQ="; }; + patches = [ + # https://github.com/stuartlangridge/hushboard/pull/30 + (fetchpatch { + url = "https://github.com/stuartlangridge/hushboard/commit/b17b58cd00eb9af8184f8dcb010bbae7f9bc470c.patch"; + hash = "sha256-C03hq2ttXY8DJzrarQvFIzo29d+owZVIHZRA28fq7Z8="; + }) + ]; + build-system = with python3Packages; [ setuptools ]; nativeBuildInputs = [ From 2e5d6ebbec5001e3784a607fa3da2ff660ddce3e Mon Sep 17 00:00:00 2001 From: r-vdp Date: Tue, 26 Aug 2025 00:21:12 +0300 Subject: [PATCH 08/58] nixos/tests/systemd-boot: switch to runTest This saves a lot of time and memory when evaluating these tests --- nixos/tests/all-tests.nix | 2 +- nixos/tests/systemd-boot.nix | 939 ++++++++++++++++++----------------- 2 files changed, 497 insertions(+), 444 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index c0d43a9bea5a..0216ea9d9bd5 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1417,7 +1417,7 @@ in systemd = runTest ./systemd.nix; systemd-analyze = runTest ./systemd-analyze.nix; systemd-binfmt = handleTestOn [ "x86_64-linux" ] ./systemd-binfmt.nix { }; - systemd-boot = handleTest ./systemd-boot.nix { }; + systemd-boot = import ./systemd-boot.nix { inherit runTest runTestOn; }; systemd-bpf = runTest ./systemd-bpf.nix; systemd-capsules = runTest ./systemd-capsules.nix; systemd-confinement = handleTest ./systemd-confinement { }; diff --git a/nixos/tests/systemd-boot.nix b/nixos/tests/systemd-boot.nix index 570cd6b93409..fe0bde317646 100644 --- a/nixos/tests/systemd-boot.nix +++ b/nixos/tests/systemd-boot.nix @@ -1,21 +1,20 @@ { - system ? builtins.currentSystem, - config ? { }, - pkgs ? import ../.. { inherit system config; }, + runTest, + runTestOn, + ... }: -with import ../lib/testing-python.nix { inherit system pkgs; }; -with pkgs.lib; - let - common = { - virtualisation.useBootLoader = true; - virtualisation.useEFIBoot = true; - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - environment.systemPackages = [ pkgs.efibootmgr ]; - system.switch.enable = true; - }; + common = + { pkgs, ... }: + { + virtualisation.useBootLoader = true; + virtualisation.useEFIBoot = true; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + environment.systemPackages = [ pkgs.efibootmgr ]; + system.switch.enable = true; + }; commonXbootldr = { @@ -32,6 +31,9 @@ let partitionTableType = "efixbootldr"; touchEFIVars = true; installBootLoader = true; + # Don't copy the channel to avoid rebuilding this image, and all tests + # that use it, every time that nixpkgs changes + copyChannel = false; }; in { @@ -90,80 +92,23 @@ let ''; in { - basic = makeTest { - name = "systemd-boot"; - meta.maintainers = with pkgs.lib.maintainers; [ - danielfullmer - julienmalka - ]; + basic = runTest ( + { lib, ... }: + { + name = "systemd-boot"; + meta.maintainers = with lib.maintainers; [ + danielfullmer + julienmalka + ]; - nodes.machine = common; - - testScript = '' - machine.start() - machine.wait_for_unit("multi-user.target") - - machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf") - machine.succeed("grep 'sort-key nixos' /boot/loader/entries/nixos-generation-1.conf") - - # Ensure we actually booted using systemd-boot - # Magic number is the vendor UUID used by systemd-boot. - machine.succeed( - "test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f" - ) - - # "bootctl install" should have created an EFI entry - machine.succeed('efibootmgr | grep "Linux Boot Manager"') - ''; - }; - - # Test that systemd-boot works with secure boot - secureBoot = makeTest { - name = "systemd-boot-secure-boot"; - - nodes.machine = { - imports = [ common ]; - environment.systemPackages = [ pkgs.sbctl ]; - virtualisation.useSecureBoot = true; - }; - - testScript = - let - efiArch = pkgs.stdenv.hostPlatform.efiArch; - in - { nodes, ... }: - '' - machine.start(allow_reboot=True) - machine.wait_for_unit("multi-user.target") - - machine.succeed("sbctl create-keys") - machine.succeed("sbctl enroll-keys --yes-this-might-brick-my-machine") - machine.succeed('sbctl sign /boot/EFI/systemd/systemd-boot${efiArch}.efi') - machine.succeed('sbctl sign /boot/EFI/BOOT/BOOT${toUpper efiArch}.EFI') - machine.succeed('sbctl sign /boot/EFI/nixos/*${nodes.machine.system.boot.loader.kernelFile}.efi') - - machine.reboot() - - assert "Secure Boot: enabled (user)" in machine.succeed("bootctl status") - ''; - }; - - basicXbootldr = makeTest { - name = "systemd-boot-xbootldr"; - meta.maintainers = with pkgs.lib.maintainers; [ sdht0 ]; - - nodes.machine = commonXbootldr; - - testScript = - { nodes, ... }: - '' - ${customDiskImage nodes} + nodes.machine = common; + testScript = '' machine.start() machine.wait_for_unit("multi-user.target") - machine.succeed("test -e /efi/EFI/systemd/systemd-bootx64.efi") machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf") + machine.succeed("grep 'sort-key nixos' /boot/loader/entries/nixos-generation-1.conf") # Ensure we actually booted using systemd-boot # Magic number is the vendor UUID used by systemd-boot. @@ -174,140 +119,217 @@ in # "bootctl install" should have created an EFI entry machine.succeed('efibootmgr | grep "Linux Boot Manager"') ''; - }; + } + ); + + # Test that systemd-boot works with secure boot + secureBoot = runTest ( + { pkgs, lib, ... }: + { + name = "systemd-boot-secure-boot"; + + nodes.machine = + { pkgs, ... }: + { + imports = [ common ]; + environment.systemPackages = [ pkgs.sbctl ]; + virtualisation.useSecureBoot = true; + }; + + testScript = + { nodes, ... }: + let + efiArch = pkgs.stdenv.hostPlatform.efiArch; + in + '' + machine.start(allow_reboot=True) + machine.wait_for_unit("multi-user.target") + + machine.succeed("sbctl create-keys") + machine.succeed("sbctl enroll-keys --yes-this-might-brick-my-machine") + machine.succeed('sbctl sign /boot/EFI/systemd/systemd-boot${efiArch}.efi') + machine.succeed('sbctl sign /boot/EFI/BOOT/BOOT${lib.toUpper efiArch}.EFI') + machine.succeed('sbctl sign /boot/EFI/nixos/*${nodes.machine.system.boot.loader.kernelFile}.efi') + + machine.reboot() + + assert "Secure Boot: enabled (user)" in machine.succeed("bootctl status") + ''; + } + ); + + basicXbootldr = runTest ( + { lib, ... }: + { + name = "systemd-boot-xbootldr"; + meta.maintainers = with lib.maintainers; [ sdht0 ]; + + nodes.machine = commonXbootldr; + + testScript = + { nodes, ... }: + '' + ${customDiskImage nodes} + + machine.start() + machine.wait_for_unit("multi-user.target") + + machine.succeed("test -e /efi/EFI/systemd/systemd-bootx64.efi") + machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf") + + # Ensure we actually booted using systemd-boot + # Magic number is the vendor UUID used by systemd-boot. + machine.succeed( + "test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f" + ) + + # "bootctl install" should have created an EFI entry + machine.succeed('efibootmgr | grep "Linux Boot Manager"') + ''; + } + ); # Check that specialisations create corresponding boot entries. - specialisation = makeTest { - name = "systemd-boot-specialisation"; - meta.maintainers = with pkgs.lib.maintainers; [ - lukegb - julienmalka - ]; + specialisation = runTest ( + { pkgs, lib, ... }: + { + name = "systemd-boot-specialisation"; + meta.maintainers = with lib.maintainers; [ + lukegb + julienmalka + ]; - nodes.machine = - { pkgs, lib, ... }: - { - imports = [ common ]; - specialisation.something.configuration = { - boot.loader.systemd-boot.sortKey = "something"; + nodes.machine = + { pkgs, lib, ... }: + { + imports = [ common ]; + specialisation.something.configuration = { + boot.loader.systemd-boot.sortKey = "something"; - # Since qemu will dynamically create a devicetree blob when starting - # up, it is not straight forward to create an export of that devicetree - # blob without knowing before-hand all the flags we would pass to qemu - # (we would then be able to use `dumpdtb`). Thus, the following config - # will not boot, but it does allow us to assert that the boot entry has - # the correct contents. - boot.loader.systemd-boot.installDeviceTree = pkgs.stdenv.hostPlatform.isAarch64; - hardware.deviceTree.name = "dummy.dtb"; - hardware.deviceTree.package = lib.mkForce ( - pkgs.runCommand "dummy-devicetree-package" { } '' - mkdir -p $out - cp ${pkgs.emptyFile} $out/dummy.dtb - '' - ); + # Since qemu will dynamically create a devicetree blob when starting + # up, it is not straight forward to create an export of that devicetree + # blob without knowing before-hand all the flags we would pass to qemu + # (we would then be able to use `dumpdtb`). Thus, the following config + # will not boot, but it does allow us to assert that the boot entry has + # the correct contents. + boot.loader.systemd-boot.installDeviceTree = pkgs.stdenv.hostPlatform.isAarch64; + hardware.deviceTree.name = "dummy.dtb"; + hardware.deviceTree.package = lib.mkForce ( + pkgs.runCommand "dummy-devicetree-package" { } '' + mkdir -p $out + cp ${pkgs.emptyFile} $out/dummy.dtb + '' + ); + }; }; - }; - testScript = - { nodes, ... }: - '' + testScript = + { nodes, ... }: + '' + machine.start() + machine.wait_for_unit("multi-user.target") + + machine.succeed( + "test -e /boot/loader/entries/nixos-generation-1-specialisation-something.conf" + ) + machine.succeed( + "grep -q 'title NixOS (something)' /boot/loader/entries/nixos-generation-1-specialisation-something.conf" + ) + machine.succeed( + "grep 'sort-key something' /boot/loader/entries/nixos-generation-1-specialisation-something.conf" + ) + '' + + pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isAarch64 '' + machine.succeed( + r"grep 'devicetree /EFI/nixos/[a-z0-9]\{32\}.*dummy' /boot/loader/entries/nixos-generation-1-specialisation-something.conf" + ) + ''; + } + ); + + # Boot without having created an EFI entry--instead using default "/EFI/BOOT/BOOTX64.EFI" + fallback = runTest ( + { pkgs, lib, ... }: + { + name = "systemd-boot-fallback"; + meta.maintainers = with lib.maintainers; [ + danielfullmer + julienmalka + ]; + + nodes.machine = + { pkgs, lib, ... }: + { + imports = [ common ]; + boot.loader.efi.canTouchEfiVariables = lib.mkForce false; + }; + + testScript = '' machine.start() machine.wait_for_unit("multi-user.target") + machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf") + + # Ensure we actually booted using systemd-boot + # Magic number is the vendor UUID used by systemd-boot. machine.succeed( - "test -e /boot/loader/entries/nixos-generation-1-specialisation-something.conf" - ) - machine.succeed( - "grep -q 'title NixOS (something)' /boot/loader/entries/nixos-generation-1-specialisation-something.conf" - ) - machine.succeed( - "grep 'sort-key something' /boot/loader/entries/nixos-generation-1-specialisation-something.conf" - ) - '' - + pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isAarch64 '' - machine.succeed( - r"grep 'devicetree /EFI/nixos/[a-z0-9]\{32\}.*dummy' /boot/loader/entries/nixos-generation-1-specialisation-something.conf" + "test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f" ) + + # "bootctl install" should _not_ have created an EFI entry + machine.fail('efibootmgr | grep "Linux Boot Manager"') ''; - }; + } + ); - # Boot without having created an EFI entry--instead using default "/EFI/BOOT/BOOTX64.EFI" - fallback = makeTest { - name = "systemd-boot-fallback"; - meta.maintainers = with pkgs.lib.maintainers; [ - danielfullmer - julienmalka - ]; + update = runTest ( + { lib, ... }: + { + name = "systemd-boot-update"; + meta.maintainers = with lib.maintainers; [ + danielfullmer + julienmalka + ]; - nodes.machine = - { pkgs, lib, ... }: - { - imports = [ common ]; - boot.loader.efi.canTouchEfiVariables = mkForce false; - }; + nodes.machine = common; - testScript = '' - machine.start() - machine.wait_for_unit("multi-user.target") + testScript = '' + machine.succeed("mount -o remount,rw /boot") - machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf") + def switch(): + # Replace version inside sd-boot with something older. See magic[] string in systemd src/boot/efi/boot.c + machine.succeed( + """ + find /boot -iname '*boot*.efi' -print0 | \ + xargs -0 -I '{}' sed -i 's/#### LoaderInfo: systemd-boot .* ####/#### LoaderInfo: systemd-boot 000.0-1-notnixos ####/' '{}' + """ + ) + return machine.succeed("/run/current-system/bin/switch-to-configuration boot 2>&1") - # Ensure we actually booted using systemd-boot - # Magic number is the vendor UUID used by systemd-boot. - machine.succeed( - "test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f" - ) + output = switch() + assert "updating systemd-boot from 000.0-1-notnixos to " in output, "Couldn't find systemd-boot update message" + assert 'to "/boot/EFI/systemd/systemd-bootx64.efi"' in output, "systemd-boot not copied to to /boot/EFI/systemd/systemd-bootx64.efi" + assert 'to "/boot/EFI/BOOT/BOOTX64.EFI"' in output, "systemd-boot not copied to to /boot/EFI/BOOT/BOOTX64.EFI" - # "bootctl install" should _not_ have created an EFI entry - machine.fail('efibootmgr | grep "Linux Boot Manager"') - ''; - }; + with subtest("Test that updating works with lowercase bootx64.efi"): + machine.succeed( + # Move to tmp file name first, otherwise mv complains the new location is the same + "mv /boot/EFI/BOOT/BOOTX64.EFI /boot/EFI/BOOT/bootx64.efi.new", + "mv /boot/EFI/BOOT/bootx64.efi.new /boot/EFI/BOOT/bootx64.efi", + ) + output = switch() + assert "updating systemd-boot from 000.0-1-notnixos to " in output, "Couldn't find systemd-boot update message" + assert 'to "/boot/EFI/systemd/systemd-bootx64.efi"' in output, "systemd-boot not copied to to /boot/EFI/systemd/systemd-bootx64.efi" + assert 'to "/boot/EFI/BOOT/BOOTX64.EFI"' in output, "systemd-boot not copied to to /boot/EFI/BOOT/BOOTX64.EFI" + ''; + } + ); - update = makeTest { - name = "systemd-boot-update"; - meta.maintainers = with pkgs.lib.maintainers; [ - danielfullmer - julienmalka - ]; - - nodes.machine = common; - - testScript = '' - machine.succeed("mount -o remount,rw /boot") - - def switch(): - # Replace version inside sd-boot with something older. See magic[] string in systemd src/boot/efi/boot.c - machine.succeed( - """ - find /boot -iname '*boot*.efi' -print0 | \ - xargs -0 -I '{}' sed -i 's/#### LoaderInfo: systemd-boot .* ####/#### LoaderInfo: systemd-boot 000.0-1-notnixos ####/' '{}' - """ - ) - return machine.succeed("/run/current-system/bin/switch-to-configuration boot 2>&1") - - output = switch() - assert "updating systemd-boot from 000.0-1-notnixos to " in output, "Couldn't find systemd-boot update message" - assert 'to "/boot/EFI/systemd/systemd-bootx64.efi"' in output, "systemd-boot not copied to to /boot/EFI/systemd/systemd-bootx64.efi" - assert 'to "/boot/EFI/BOOT/BOOTX64.EFI"' in output, "systemd-boot not copied to to /boot/EFI/BOOT/BOOTX64.EFI" - - with subtest("Test that updating works with lowercase bootx64.efi"): - machine.succeed( - # Move to tmp file name first, otherwise mv complains the new location is the same - "mv /boot/EFI/BOOT/BOOTX64.EFI /boot/EFI/BOOT/bootx64.efi.new", - "mv /boot/EFI/BOOT/bootx64.efi.new /boot/EFI/BOOT/bootx64.efi", - ) - output = switch() - assert "updating systemd-boot from 000.0-1-notnixos to " in output, "Couldn't find systemd-boot update message" - assert 'to "/boot/EFI/systemd/systemd-bootx64.efi"' in output, "systemd-boot not copied to to /boot/EFI/systemd/systemd-bootx64.efi" - assert 'to "/boot/EFI/BOOT/BOOTX64.EFI"' in output, "systemd-boot not copied to to /boot/EFI/BOOT/BOOTX64.EFI" - ''; - }; - - memtest86 = - with pkgs.lib; - optionalAttrs (meta.availableOn { inherit system; } pkgs.memtest86plus) (makeTest { + memtest86 = runTestOn [ "x86_64-linux" ] ( + { lib, ... }: + { name = "systemd-boot-memtest86"; - meta.maintainers = with maintainers; [ julienmalka ]; + meta.maintainers = with lib.maintainers; [ julienmalka ]; nodes.machine = { pkgs, lib, ... }: @@ -320,282 +342,313 @@ in machine.succeed("test -e /boot/loader/entries/memtest86.conf") machine.succeed("test -e /boot/efi/memtest86/memtest.efi") ''; - }); + } + ); - netbootxyz = makeTest { - name = "systemd-boot-netbootxyz"; - meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ]; + netbootxyz = runTest ( + { lib, ... }: + { + name = "systemd-boot-netbootxyz"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; - nodes.machine = - { pkgs, lib, ... }: - { - imports = [ common ]; - boot.loader.systemd-boot.netbootxyz.enable = true; - }; - - testScript = '' - machine.succeed("test -e /boot/loader/entries/netbootxyz.conf") - machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi") - ''; - }; - - edk2-uefi-shell = makeTest { - name = "systemd-boot-edk2-uefi-shell"; - meta.maintainers = with pkgs.lib.maintainers; [ iFreilicht ]; - - nodes.machine = - { ... }: - { - imports = [ common ]; - boot.loader.systemd-boot.edk2-uefi-shell.enable = true; - }; - - testScript = '' - machine.succeed("test -e /boot/loader/entries/edk2-uefi-shell.conf") - machine.succeed("test -e /boot/efi/edk2-uefi-shell/shell.efi") - ''; - }; - - windows = makeTest { - name = "systemd-boot-windows"; - meta.maintainers = with pkgs.lib.maintainers; [ iFreilicht ]; - - nodes.machine = - { ... }: - { - imports = [ common ]; - boot.loader.systemd-boot.windows = { - "7" = { - efiDeviceHandle = "HD0c1"; - sortKey = "before_all_others"; - }; - "Ten".efiDeviceHandle = "FS0"; - "11" = { - title = "Title with-_-punctuation ...?!"; - efiDeviceHandle = "HD0d4"; - sortKey = "zzz"; - }; + nodes.machine = + { pkgs, lib, ... }: + { + imports = [ common ]; + boot.loader.systemd-boot.netbootxyz.enable = true; }; - }; - testScript = '' - machine.succeed("test -e /boot/efi/edk2-uefi-shell/shell.efi") - - machine.succeed("test -e /boot/loader/entries/windows_7.conf") - machine.succeed("test -e /boot/loader/entries/windows_Ten.conf") - machine.succeed("test -e /boot/loader/entries/windows_11.conf") - - machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_7.conf") - machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_Ten.conf") - machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_11.conf") - - machine.succeed("grep 'HD0c1:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_7.conf") - machine.succeed("grep 'FS0:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_Ten.conf") - machine.succeed("grep 'HD0d4:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_11.conf") - - machine.succeed("grep 'sort-key before_all_others' /boot/loader/entries/windows_7.conf") - machine.succeed("grep 'sort-key o_windows_Ten' /boot/loader/entries/windows_Ten.conf") - machine.succeed("grep 'sort-key zzz' /boot/loader/entries/windows_11.conf") - - machine.succeed("grep 'title Windows 7' /boot/loader/entries/windows_7.conf") - machine.succeed("grep 'title Windows Ten' /boot/loader/entries/windows_Ten.conf") - machine.succeed('grep "title Title with-_-punctuation ...?!" /boot/loader/entries/windows_11.conf') - ''; - }; - - memtestSortKey = makeTest { - name = "systemd-boot-memtest-sortkey"; - meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ]; - - nodes.machine = - { pkgs, lib, ... }: - { - imports = [ common ]; - boot.loader.systemd-boot.memtest86.enable = true; - boot.loader.systemd-boot.memtest86.sortKey = "apple"; - }; - - testScript = '' - machine.succeed("test -e /boot/loader/entries/memtest86.conf") - machine.succeed("test -e /boot/efi/memtest86/memtest.efi") - machine.succeed("grep 'sort-key apple' /boot/loader/entries/memtest86.conf") - ''; - }; - - entryFilenameXbootldr = makeTest { - name = "systemd-boot-entry-filename-xbootldr"; - meta.maintainers = with pkgs.lib.maintainers; [ sdht0 ]; - - nodes.machine = - { pkgs, lib, ... }: - { - imports = [ commonXbootldr ]; - boot.loader.systemd-boot.memtest86.enable = true; - }; - - testScript = - { nodes, ... }: - '' - ${customDiskImage nodes} - - machine.start() - machine.wait_for_unit("multi-user.target") - - machine.succeed("test -e /efi/EFI/systemd/systemd-bootx64.efi") - machine.succeed("test -e /boot/loader/entries/memtest86.conf") - machine.succeed("test -e /boot/EFI/memtest86/memtest.efi") + testScript = '' + machine.succeed("test -e /boot/loader/entries/netbootxyz.conf") + machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi") ''; - }; + } + ); - extraEntries = makeTest { - name = "systemd-boot-extra-entries"; - meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ]; + edk2-uefi-shell = runTest ( + { lib, ... }: + { + name = "systemd-boot-edk2-uefi-shell"; + meta.maintainers = with lib.maintainers; [ iFreilicht ]; - nodes.machine = - { pkgs, lib, ... }: - { - imports = [ common ]; - boot.loader.systemd-boot.extraEntries = { - "banana.conf" = '' - title banana - ''; + nodes.machine = + { ... }: + { + imports = [ common ]; + boot.loader.systemd-boot.edk2-uefi-shell.enable = true; }; - }; - testScript = '' - machine.succeed("test -e /boot/loader/entries/banana.conf") - machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/banana.conf") - ''; - }; + testScript = '' + machine.succeed("test -e /boot/loader/entries/edk2-uefi-shell.conf") + machine.succeed("test -e /boot/efi/edk2-uefi-shell/shell.efi") + ''; + } + ); - extraFiles = makeTest { - name = "systemd-boot-extra-files"; - meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ]; + windows = runTest ( + { lib, ... }: + { + name = "systemd-boot-windows"; + meta.maintainers = with lib.maintainers; [ iFreilicht ]; - nodes.machine = - { pkgs, lib, ... }: - { - imports = [ common ]; - boot.loader.systemd-boot.extraFiles = { - "efi/fruits/tomato.efi" = pkgs.netbootxyz-efi; + nodes.machine = + { ... }: + { + imports = [ common ]; + boot.loader.systemd-boot.windows = { + "7" = { + efiDeviceHandle = "HD0c1"; + sortKey = "before_all_others"; + }; + "Ten".efiDeviceHandle = "FS0"; + "11" = { + title = "Title with-_-punctuation ...?!"; + efiDeviceHandle = "HD0d4"; + sortKey = "zzz"; + }; + }; }; - }; - testScript = '' - machine.succeed("test -e /boot/efi/fruits/tomato.efi") - machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") - ''; - }; + testScript = '' + machine.succeed("test -e /boot/efi/edk2-uefi-shell/shell.efi") - switch-test = makeTest { - name = "systemd-boot-switch-test"; - meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ]; + machine.succeed("test -e /boot/loader/entries/windows_7.conf") + machine.succeed("test -e /boot/loader/entries/windows_Ten.conf") + machine.succeed("test -e /boot/loader/entries/windows_11.conf") - nodes = { - inherit common; + machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_7.conf") + machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_Ten.conf") + machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_11.conf") - machine = - { pkgs, nodes, ... }: + machine.succeed("grep 'HD0c1:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_7.conf") + machine.succeed("grep 'FS0:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_Ten.conf") + machine.succeed("grep 'HD0d4:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_11.conf") + + machine.succeed("grep 'sort-key before_all_others' /boot/loader/entries/windows_7.conf") + machine.succeed("grep 'sort-key o_windows_Ten' /boot/loader/entries/windows_Ten.conf") + machine.succeed("grep 'sort-key zzz' /boot/loader/entries/windows_11.conf") + + machine.succeed("grep 'title Windows 7' /boot/loader/entries/windows_7.conf") + machine.succeed("grep 'title Windows Ten' /boot/loader/entries/windows_Ten.conf") + machine.succeed('grep "title Title with-_-punctuation ...?!" /boot/loader/entries/windows_11.conf') + ''; + } + ); + + memtestSortKey = runTest ( + { lib, ... }: + { + name = "systemd-boot-memtest-sortkey"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes.machine = + { pkgs, lib, ... }: + { + imports = [ common ]; + boot.loader.systemd-boot.memtest86.enable = true; + boot.loader.systemd-boot.memtest86.sortKey = "apple"; + }; + + testScript = '' + machine.succeed("test -e /boot/loader/entries/memtest86.conf") + machine.succeed("test -e /boot/efi/memtest86/memtest.efi") + machine.succeed("grep 'sort-key apple' /boot/loader/entries/memtest86.conf") + ''; + } + ); + + entryFilenameXbootldr = runTest ( + { lib, ... }: + { + name = "systemd-boot-entry-filename-xbootldr"; + meta.maintainers = with lib.maintainers; [ sdht0 ]; + + nodes.machine = + { pkgs, lib, ... }: + { + imports = [ commonXbootldr ]; + boot.loader.systemd-boot.memtest86.enable = true; + }; + + testScript = + { nodes, ... }: + '' + ${customDiskImage nodes} + + machine.start() + machine.wait_for_unit("multi-user.target") + + machine.succeed("test -e /efi/EFI/systemd/systemd-bootx64.efi") + machine.succeed("test -e /boot/loader/entries/memtest86.conf") + machine.succeed("test -e /boot/EFI/memtest86/memtest.efi") + ''; + } + ); + + extraEntries = runTest ( + { lib, ... }: + { + name = "systemd-boot-extra-entries"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes.machine = + { pkgs, lib, ... }: + { + imports = [ common ]; + boot.loader.systemd-boot.extraEntries = { + "banana.conf" = '' + title banana + ''; + }; + }; + + testScript = '' + machine.succeed("test -e /boot/loader/entries/banana.conf") + machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/banana.conf") + ''; + } + ); + + extraFiles = runTest ( + { lib, ... }: + { + name = "systemd-boot-extra-files"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes.machine = + { pkgs, lib, ... }: { imports = [ common ]; boot.loader.systemd-boot.extraFiles = { "efi/fruits/tomato.efi" = pkgs.netbootxyz-efi; }; - - # These are configs for different nodes, but we'll use them here in `machine` - system.extraDependencies = [ - nodes.common.system.build.toplevel - nodes.with_netbootxyz.system.build.toplevel - ]; }; - with_netbootxyz = - { pkgs, ... }: - { - imports = [ common ]; - boot.loader.systemd-boot.netbootxyz.enable = true; - }; - }; - - testScript = - { nodes, ... }: - let - originalSystem = nodes.machine.system.build.toplevel; - baseSystem = nodes.common.system.build.toplevel; - finalSystem = nodes.with_netbootxyz.system.build.toplevel; - in - '' + testScript = '' machine.succeed("test -e /boot/efi/fruits/tomato.efi") machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") - - with subtest("remove files when no longer needed"): - machine.succeed("${baseSystem}/bin/switch-to-configuration boot") - machine.fail("test -e /boot/efi/fruits/tomato.efi") - machine.fail("test -d /boot/efi/fruits") - machine.succeed("test -d /boot/efi/nixos/.extra-files") - machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") - machine.fail("test -d /boot/efi/nixos/.extra-files/efi/fruits") - - with subtest("files are added back when needed again"): - machine.succeed("${originalSystem}/bin/switch-to-configuration boot") - machine.succeed("test -e /boot/efi/fruits/tomato.efi") - machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") - - with subtest("simultaneously removing and adding files works"): - machine.succeed("${finalSystem}/bin/switch-to-configuration boot") - machine.fail("test -e /boot/efi/fruits/tomato.efi") - machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") - machine.succeed("test -e /boot/loader/entries/netbootxyz.conf") - machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi") - machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/netbootxyz.conf") - machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/netbootxyz/netboot.xyz.efi") ''; - }; + } + ); - garbage-collect-entry = makeTest { - name = "systemd-boot-garbage-collect-entry"; - meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ]; + switch-test = runTest ( + { lib, ... }: + { + name = "systemd-boot-switch-test"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; - nodes = { - inherit common; - machine = - { pkgs, nodes, ... }: - { - imports = [ common ]; + nodes = { + inherit common; - # These are configs for different nodes, but we'll use them here in `machine` - system.extraDependencies = [ - nodes.common.system.build.toplevel - ]; - }; - }; + machine = + { pkgs, nodes, ... }: + { + imports = [ common ]; + boot.loader.systemd-boot.extraFiles = { + "efi/fruits/tomato.efi" = pkgs.netbootxyz-efi; + }; - testScript = - { nodes, ... }: - let - baseSystem = nodes.common.system.build.toplevel; - in - '' - machine.succeed("nix-env -p /nix/var/nix/profiles/system --set ${baseSystem}") - machine.succeed("nix-env -p /nix/var/nix/profiles/system --delete-generations 1") - machine.succeed("${baseSystem}/bin/switch-to-configuration boot") - machine.fail("test -e /boot/loader/entries/nixos-generation-1.conf") - machine.succeed("test -e /boot/loader/entries/nixos-generation-2.conf") + # These are configs for different nodes, but we'll use them here in `machine` + system.extraDependencies = [ + nodes.common.system.build.toplevel + nodes.with_netbootxyz.system.build.toplevel + ]; + }; + + with_netbootxyz = + { pkgs, ... }: + { + imports = [ common ]; + boot.loader.systemd-boot.netbootxyz.enable = true; + }; + }; + + testScript = + { nodes, ... }: + let + originalSystem = nodes.machine.system.build.toplevel; + baseSystem = nodes.common.system.build.toplevel; + finalSystem = nodes.with_netbootxyz.system.build.toplevel; + in + '' + machine.succeed("test -e /boot/efi/fruits/tomato.efi") + machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") + + with subtest("remove files when no longer needed"): + machine.succeed("${baseSystem}/bin/switch-to-configuration boot") + machine.fail("test -e /boot/efi/fruits/tomato.efi") + machine.fail("test -d /boot/efi/fruits") + machine.succeed("test -d /boot/efi/nixos/.extra-files") + machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") + machine.fail("test -d /boot/efi/nixos/.extra-files/efi/fruits") + + with subtest("files are added back when needed again"): + machine.succeed("${originalSystem}/bin/switch-to-configuration boot") + machine.succeed("test -e /boot/efi/fruits/tomato.efi") + machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") + + with subtest("simultaneously removing and adding files works"): + machine.succeed("${finalSystem}/bin/switch-to-configuration boot") + machine.fail("test -e /boot/efi/fruits/tomato.efi") + machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") + machine.succeed("test -e /boot/loader/entries/netbootxyz.conf") + machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi") + machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/netbootxyz.conf") + machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/netbootxyz/netboot.xyz.efi") + ''; + } + ); + + garbage-collect-entry = runTest ( + { lib, ... }: + { + name = "systemd-boot-garbage-collect-entry"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes = { + inherit common; + machine = + { pkgs, nodes, ... }: + { + imports = [ common ]; + + # These are configs for different nodes, but we'll use them here in `machine` + system.extraDependencies = [ + nodes.common.system.build.toplevel + ]; + }; + }; + + testScript = + { nodes, ... }: + let + baseSystem = nodes.common.system.build.toplevel; + in + '' + machine.succeed("nix-env -p /nix/var/nix/profiles/system --set ${baseSystem}") + machine.succeed("nix-env -p /nix/var/nix/profiles/system --delete-generations 1") + machine.succeed("${baseSystem}/bin/switch-to-configuration boot") + machine.fail("test -e /boot/loader/entries/nixos-generation-1.conf") + machine.succeed("test -e /boot/loader/entries/nixos-generation-2.conf") + ''; + } + ); + + no-bootspec = runTest ( + { lib, ... }: + { + name = "systemd-boot-no-bootspec"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes.machine = { + imports = [ common ]; + boot.bootspec.enable = false; + }; + + testScript = '' + machine.start() + machine.wait_for_unit("multi-user.target") ''; - }; - - no-bootspec = makeTest { - name = "systemd-boot-no-bootspec"; - meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ]; - - nodes.machine = { - imports = [ common ]; - boot.bootspec.enable = false; - }; - - testScript = '' - machine.start() - machine.wait_for_unit("multi-user.target") - ''; - }; + } + ); } From c4ac7915470e21fcd75def6d816174a596b8b855 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Mon, 29 Sep 2025 14:00:52 -0300 Subject: [PATCH 09/58] nixos/cosmic: add `/share/cosmic-layouts` to pathsToLink --- nixos/modules/services/desktop-managers/cosmic.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/desktop-managers/cosmic.nix b/nixos/modules/services/desktop-managers/cosmic.nix index eae24f71eacc..9404f32e2534 100644 --- a/nixos/modules/services/desktop-managers/cosmic.nix +++ b/nixos/modules/services/desktop-managers/cosmic.nix @@ -72,6 +72,7 @@ in environment.pathsToLink = [ "/share/backgrounds" "/share/cosmic" + "/share/cosmic-layouts" ]; environment.systemPackages = utils.removePackagesByName ( corePkgs From c58cdf08592e279e50ba7f41ecf2d0e3b0035e28 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Mon, 29 Sep 2025 10:59:34 -0700 Subject: [PATCH 10/58] windsurf: 1.12.11 -> 1.12.12 Adds Claude Sonnet 4.5. --- pkgs/by-name/wi/windsurf/info.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/wi/windsurf/info.json b/pkgs/by-name/wi/windsurf/info.json index 852ca8a043ef..6b5a470845cb 100644 --- a/pkgs/by-name/wi/windsurf/info.json +++ b/pkgs/by-name/wi/windsurf/info.json @@ -1,20 +1,20 @@ { "aarch64-darwin": { - "version": "1.12.11", + "version": "1.12.12", "vscodeVersion": "1.99.3", - "url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/869df67af2a3134ce6fe3d8395ac0ae23726fd02/Windsurf-darwin-arm64-1.12.11.zip", - "sha256": "1303ed86901099beac3ea6a8ac8ca532f238130b032153546252b852d8224d95" + "url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/146732d0c28fe6d8f982f1ebf7ab4101ece88c63/Windsurf-darwin-arm64-1.12.12.zip", + "sha256": "dae2809d0d551b1ad4acd03effba65c655d6040b3903e046934b1940e4be063f" }, "x86_64-darwin": { - "version": "1.12.11", + "version": "1.12.12", "vscodeVersion": "1.99.3", - "url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/869df67af2a3134ce6fe3d8395ac0ae23726fd02/Windsurf-darwin-x64-1.12.11.zip", - "sha256": "6a0898186f68125c9f1310f8c2e6867f3e54ab6a72e1295799da1bd607af4825" + "url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/146732d0c28fe6d8f982f1ebf7ab4101ece88c63/Windsurf-darwin-x64-1.12.12.zip", + "sha256": "8696e119dbabf962d465ea6d2395f165a849b0d8abdd1f62d0ea1d49528e92e1" }, "x86_64-linux": { - "version": "1.12.11", + "version": "1.12.12", "vscodeVersion": "1.99.3", - "url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/869df67af2a3134ce6fe3d8395ac0ae23726fd02/Windsurf-linux-x64-1.12.11.tar.gz", - "sha256": "421a27f73c84a6f52bba3cfdc9edd9ea055013ba9c85bdd0777b072ab382637c" + "url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/146732d0c28fe6d8f982f1ebf7ab4101ece88c63/Windsurf-linux-x64-1.12.12.tar.gz", + "sha256": "9f832381f3ea79f3662d728817b05ef33756708e845052d40d1253b7e1a055dc" } } From 57dbd65bc5757a0fd8fe61edccbbb942aea949b4 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:03:20 +0200 Subject: [PATCH 11/58] electron_36-bin: 36.9.1 -> 36.9.2 - Changelog: https://github.com/electron/electron/releases/tag/v36.9.2 - Diff: https://github.com/electron/electron/compare/refs/tags/v36.9.1...v36.9.2 --- pkgs/development/tools/electron/binary/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/electron/binary/info.json b/pkgs/development/tools/electron/binary/info.json index fa6185480737..7139c74d5886 100644 --- a/pkgs/development/tools/electron/binary/info.json +++ b/pkgs/development/tools/electron/binary/info.json @@ -12,14 +12,14 @@ }, "36": { "hashes": { - "aarch64-darwin": "32e25c46dfc1dc52d55a47d197f063534ac9932c7140ba06ac8686025ceb6072", - "aarch64-linux": "ab134d66bdbf558c0a222da59cd3a61e63914154c37186bc9d8299f24d70c9c9", - "armv7l-linux": "031aba9dd2b9041b8144bb6cb1cf4864aec6df1ed68ac96f35d414ba86525804", + "aarch64-darwin": "33892aeb000bd7f3f8a102f3bb3111b6fa1e2ccd92cbb5b787c79423e96d61b8", + "aarch64-linux": "55da6f2d692445f0eff0ee898160ff4da2c2d3f1736aff77fcb12c836f19db5e", + "armv7l-linux": "0631d0dc472c412f4c52def18adf6fddc0aefde37e0b15d0611cd4743f9e1e9b", "headers": "0fv8hz55xk76vksj8sagfhja0xx03ks8awi3sbmlinjb9m02hb9p", - "x86_64-darwin": "6594c103081f9e57fc0a7baebec8c9be6362c674afc3b3804938b510ae4fcb51", - "x86_64-linux": "234ab7c9e9eea1ab2e502ebaea8fcfbcfc10bcfa120f5dca45624c39daee64f2" + "x86_64-darwin": "8448b9f39e6c540b326b2abfcdfd41349482247b936a72914f9c843478b6597c", + "x86_64-linux": "bab89894ad4336ee8f855de3bb5405ee3d872d90b2ba7b196ac24cbc7a3025b8" }, - "version": "36.9.1" + "version": "36.9.2" }, "37": { "hashes": { From 49112f239ab1e7413729bc78aff00cb1a12286bd Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:03:25 +0200 Subject: [PATCH 12/58] electron-chromedriver_36: 36.9.1 -> 36.9.2 - Changelog: https://github.com/electron/electron/releases/tag/v36.9.2 - Diff: https://github.com/electron/electron/compare/refs/tags/v36.9.1...v36.9.2 --- .../tools/electron/chromedriver/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/electron/chromedriver/info.json b/pkgs/development/tools/electron/chromedriver/info.json index b06010d5bd9a..8690bbe89b1d 100644 --- a/pkgs/development/tools/electron/chromedriver/info.json +++ b/pkgs/development/tools/electron/chromedriver/info.json @@ -12,14 +12,14 @@ }, "36": { "hashes": { - "aarch64-darwin": "77ec0308c8dfa3a44c3c0d7254285b622e3d5fa6a5ba990acda5d0a651c2173e", - "aarch64-linux": "02a798cf281bfcb8f1ca27016b92e2b869323bf9338a8f10801f4ba355fe4b45", - "armv7l-linux": "65b958043ee8a39278fe4eaa5fd00932ae5d23d0e279e56a8a39e0db46bdaafa", + "aarch64-darwin": "843592feae9fd5cd698cf5db2bcebe59654b108899fa5987a0b3cb34a0245bad", + "aarch64-linux": "9d6c593a608d8a9eb4e6bd1e6aaa84a6c3417b3080f933100790d22661d6b10e", + "armv7l-linux": "78070ec874d829b836cb929272c6264fff1855a1b85cc562d5d907b3f735715c", "headers": "0fv8hz55xk76vksj8sagfhja0xx03ks8awi3sbmlinjb9m02hb9p", - "x86_64-darwin": "f00ff6f5b3c029427ecd27fb94949bc1abddad64d5fddb23ecb8ce30db4d0cd4", - "x86_64-linux": "07bdcb9f55367caef1cbbe11ee9d15cf479ccead63632713c268123c6a5ef720" + "x86_64-darwin": "c1c4dd9cda4d9b9b31599716fc63dc71e1f1d6e300a4d4c019fe2bc02ef56557", + "x86_64-linux": "609de7bc826d6c858ce7703d8be9abc0a14d35ab745d178893cadf1291f35fa7" }, - "version": "36.9.1" + "version": "36.9.2" }, "37": { "hashes": { From 6fc91cb17bf76e4be9db485a080a46466f6176bd Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:03:29 +0200 Subject: [PATCH 13/58] electron_37-bin: 37.5.1 -> 37.6.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.6.0 - Diff: https://github.com/electron/electron/compare/refs/tags/v37.5.1...v37.6.0 --- pkgs/development/tools/electron/binary/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/electron/binary/info.json b/pkgs/development/tools/electron/binary/info.json index 7139c74d5886..5d1b09d3a803 100644 --- a/pkgs/development/tools/electron/binary/info.json +++ b/pkgs/development/tools/electron/binary/info.json @@ -23,14 +23,14 @@ }, "37": { "hashes": { - "aarch64-darwin": "4594071c44edc118bc9c58175148a0881c05d4ff95b8e9d7a24465c7a54131a3", - "aarch64-linux": "87ff5353f05b7d4ed83b0131dc73923957c5a9948c4748c9c696e94b90c5546b", - "armv7l-linux": "3fb1c01cadd627e7bb2126629557c277441dc1064de1c7e1946f7ce26f743abb", + "aarch64-darwin": "82869e916e74cb763c03fefb5fcee1fc99536e597716d4f3a9c716f9c37effab", + "aarch64-linux": "7c76a5147a9870b8bcbd859278148e1e326f98ea6a5dcb3ac2707d39bd22b2d5", + "armv7l-linux": "0d4a49b5f462972173daf6e919664cc04cad7a7d2a96b074cb181ea07bb0cd74", "headers": "0pxwny0ynvyqb3zqnharc4mkgj6acipqra1jjmf4hbr2a8m5fnc6", - "x86_64-darwin": "27cd4f024df5c7bc377a5e93dc4815567ac301ee8bb1ebd5ba04bf448bdebc28", - "x86_64-linux": "00873612a8c1b0c29dff6d3c759585013deaacf64e38b4cb173b7b18d0f272fc" + "x86_64-darwin": "258a104f781c50939ec6b45177a6f810da646ade15567a09cf9d14ec81b82cb2", + "x86_64-linux": "02e644d75392a1ea8991106bc77e1db243ee1fc0c23107dc3b253ed545dd4c66" }, - "version": "37.5.1" + "version": "37.6.0" }, "38": { "hashes": { From 801b18455007b01536421cbed81d3d8a81902d32 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:03:33 +0200 Subject: [PATCH 14/58] electron-chromedriver_37: 37.5.1 -> 37.6.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.6.0 - Diff: https://github.com/electron/electron/compare/refs/tags/v37.5.1...v37.6.0 --- .../tools/electron/chromedriver/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/electron/chromedriver/info.json b/pkgs/development/tools/electron/chromedriver/info.json index 8690bbe89b1d..44949b840663 100644 --- a/pkgs/development/tools/electron/chromedriver/info.json +++ b/pkgs/development/tools/electron/chromedriver/info.json @@ -23,14 +23,14 @@ }, "37": { "hashes": { - "aarch64-darwin": "402c841a5fc2638f50b8b9e409d877e78bb6d597cc341fd320502a3845444d62", - "aarch64-linux": "b2c813e32f2336817682fe978a8045091c0e3ee1c4aa795c8e891bbd865b6276", - "armv7l-linux": "39371e49f3ae7b24b9c1f7577db6eff8e9928862884cb6fe578159bcf7882368", + "aarch64-darwin": "ea1b52ec0af04037b419897585ebb2e81f65ccd79dd8f331e26578d042c01a2f", + "aarch64-linux": "5c588569bbbca2bcef0881ea877d70dafcf7955e0d19765797f60e2c4d228c8a", + "armv7l-linux": "87a781e82f4fc530820311edc059eafe30e9cec673704c8e73ebf452c5382bc6", "headers": "0pxwny0ynvyqb3zqnharc4mkgj6acipqra1jjmf4hbr2a8m5fnc6", - "x86_64-darwin": "f3cfb979890539a28692b885a07be17707c953f538bd28630afe14a8d1526574", - "x86_64-linux": "bd5370472537117793e99ca7019e8cb626117de3f6058e5fdcea0adeed364699" + "x86_64-darwin": "667a9067a774a5ada82a44bc310a23657dc2942067732b6c2879ae0042e2faf2", + "x86_64-linux": "e1c04c3826e506765e90d95738d1cf0ecbb3a798f2f3a7bf17d0cc03fe0be1fe" }, - "version": "37.5.1" + "version": "37.6.0" }, "38": { "hashes": { From fbcdbf9983d3d35e7288e096720bbd72f30ec2c5 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:03:37 +0200 Subject: [PATCH 15/58] electron_38-bin: 38.1.2 -> 38.2.0 - Changelog: https://github.com/electron/electron/releases/tag/v38.2.0 - Diff: https://github.com/electron/electron/compare/refs/tags/v38.1.2...v38.2.0 --- pkgs/development/tools/electron/binary/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/electron/binary/info.json b/pkgs/development/tools/electron/binary/info.json index 5d1b09d3a803..255219b50cba 100644 --- a/pkgs/development/tools/electron/binary/info.json +++ b/pkgs/development/tools/electron/binary/info.json @@ -34,13 +34,13 @@ }, "38": { "hashes": { - "aarch64-darwin": "2b47e58564eea4e7de76c337b5257e8538e657b3e7c9d403d03834ace0e6b358", - "aarch64-linux": "e28841bb9e47617cec0eea9abed88ea6b5e87d378d59553fb646c789df13f089", - "armv7l-linux": "6cea25eadd6c9af1e5015dd23d2f2a06f1f8d6c3aa6eb5574e0a76c081a96859", + "aarch64-darwin": "cff178e2cb9ae0d957d43009ef46d249d5594bc107d7704130bc0ce2e234bbd1", + "aarch64-linux": "76116429b368c883f93eb98cbdb053f98d811c35943133fe3cf9b408018ebe2f", + "armv7l-linux": "a4345bb87504b6b2bef29c0dc53b99770b203a7052fd2c5d38fd3e16177d3e68", "headers": "096wv1fp5m6nlsv11hsa2jj4yr8mb8pjh16s7ip5amj0phlx5783", - "x86_64-darwin": "0bbd87ff8fc608ebc340b425e69b7489421bb51ba5fb623ece8cdc85e4e041ab", - "x86_64-linux": "12944d0afa00b107d6f918216059aa9b3838f55301eeb752dd5321b5f56b1b63" + "x86_64-darwin": "232a83cb11b37f67dc0683402463ef30ac0309afb8e96f3bc1ea53e72fafa789", + "x86_64-linux": "f0028975282a6f2946797175ac406a95096f29c5dcda98048148668dfa36eff8" }, - "version": "38.1.2" + "version": "38.2.0" } } From 4be3d7bbcd26537649150db0d9400357716fb128 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:03:40 +0200 Subject: [PATCH 16/58] electron-chromedriver_38: 38.1.2 -> 38.2.0 - Changelog: https://github.com/electron/electron/releases/tag/v38.2.0 - Diff: https://github.com/electron/electron/compare/refs/tags/v38.1.2...v38.2.0 --- .../tools/electron/chromedriver/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/electron/chromedriver/info.json b/pkgs/development/tools/electron/chromedriver/info.json index 44949b840663..70d8453feddb 100644 --- a/pkgs/development/tools/electron/chromedriver/info.json +++ b/pkgs/development/tools/electron/chromedriver/info.json @@ -34,13 +34,13 @@ }, "38": { "hashes": { - "aarch64-darwin": "e0ce8aa3fe8e2bf36478e406197f3926f1cfc57ec862c3eaceef8f33792933a8", - "aarch64-linux": "6bbfa5d1a0d8b1619f6676c0771675bc5d037fccc143df2c42f658e30e7347df", - "armv7l-linux": "3f464df339753efcb14038be3588c85fd29e913f46d266de4b3d7f31f3c2f377", + "aarch64-darwin": "97345d6f601c009ae810ee82dea77d90ff32040f95aefa7d1dbd95ab76ccebc7", + "aarch64-linux": "a1402389fe0b9687308020bc9b58909fa0987e5af3f5368557a88f18c9576a02", + "armv7l-linux": "7d038066c6c708517c08f06972dc688364a60b4537e1b83c3bf1db1baf290e45", "headers": "096wv1fp5m6nlsv11hsa2jj4yr8mb8pjh16s7ip5amj0phlx5783", - "x86_64-darwin": "871bbf03fce46eee78b067e17d4fc917ada1f55b6aedc1d0762f7078ab482ddd", - "x86_64-linux": "ebaa24fecc77539ae0f6b20bee9ce37da0143775ea168a48bc4e455d8bdb8c3f" + "x86_64-darwin": "d116d52170eecf0b982c0019f538aa7f01646c8b32b85512ec36096d18a3ed68", + "x86_64-linux": "0ad0238eedb81f71ade28056288b13a3c6a5223654300c423eb266ac0163765c" }, - "version": "38.1.2" + "version": "38.2.0" } } From cb27ac7b52815d10a2f20c2109b6c33584ef3081 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:09:41 +0200 Subject: [PATCH 17/58] electron-source.electron_36: 36.9.1 -> 36.9.2 - Changelog: https://github.com/electron/electron/releases/tag/v36.9.2 - Diff: https://github.com/electron/electron/compare/refs/tags/v36.9.1...v36.9.2 --- pkgs/development/tools/electron/info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json index c0b3171d3910..1487c5713777 100644 --- a/pkgs/development/tools/electron/info.json +++ b/pkgs/development/tools/electron/info.json @@ -56,10 +56,10 @@ }, "src/electron": { "args": { - "hash": "sha256-36H0FNNB3QUFdO22BqtHcIys/J3WBsghaoA/3a8gaTM=", + "hash": "sha256-iVs4TcW6ymx+vmYabOZnYbHLwHsnuTb/2iXfQYOZnho=", "owner": "electron", "repo": "electron", - "tag": "v36.9.1" + "tag": "v36.9.2" }, "fetcher": "fetchFromGitHub" }, @@ -1321,7 +1321,7 @@ "electron_yarn_hash": "1lqvsfr1w32n4as7g7ms49jjdfw7sl1fyvg2640cpdgjs4dd96ky", "modules": "135", "node": "22.19.0", - "version": "36.9.1" + "version": "36.9.2" }, "37": { "chrome": "138.0.7204.251", From 37bb5e648e6ea1176cae3f298c60a369b63e0166 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:09:55 +0200 Subject: [PATCH 18/58] electron-source.electron_37: 37.5.1 -> 37.6.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.6.0 - Diff: https://github.com/electron/electron/compare/refs/tags/v37.5.1...v37.6.0 --- pkgs/development/tools/electron/info.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json index 1487c5713777..c1673a10b84f 100644 --- a/pkgs/development/tools/electron/info.json +++ b/pkgs/development/tools/electron/info.json @@ -1380,10 +1380,10 @@ }, "src/electron": { "args": { - "hash": "sha256-lE8WyIAjLQqZZyuIHPgA217lqCFUEh0mzPhvzOzQ39c=", + "hash": "sha256-bmXyAQGG2oORXDALL5sV6ZLtrpZls4PzBOD0vQINcsg=", "owner": "electron", "repo": "electron", - "tag": "v37.5.1" + "tag": "v37.6.0" }, "fetcher": "fetchFromGitHub" }, @@ -2650,10 +2650,10 @@ "fetcher": "fetchFromGitiles" } }, - "electron_yarn_hash": "1lqvsfr1w32n4as7g7ms49jjdfw7sl1fyvg2640cpdgjs4dd96ky", + "electron_yarn_hash": "0hm126bl9cscs2mjb3yx2yr4b22agqp9r0c5kv25r3lvc020r9pk", "modules": "136", "node": "22.19.0", - "version": "37.5.1" + "version": "37.6.0" }, "38": { "chrome": "140.0.7339.133", From 90e05d91183390fb46de646e9620c4aab9b5e0d6 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:10:11 +0200 Subject: [PATCH 19/58] electron-source.electron_38: 38.1.2 -> 38.2.0 - Changelog: https://github.com/electron/electron/releases/tag/v38.2.0 - Diff: https://github.com/electron/electron/compare/refs/tags/v38.1.2...v38.2.0 --- pkgs/development/tools/electron/info.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json index c1673a10b84f..6bc1079b6481 100644 --- a/pkgs/development/tools/electron/info.json +++ b/pkgs/development/tools/electron/info.json @@ -2712,10 +2712,10 @@ }, "src/electron": { "args": { - "hash": "sha256-xeRBL6x0kzPTjzCk9eR7aDFJcdZtKgxAZN7SSCPbRJQ=", + "hash": "sha256-XlMLp3I7nQmlaqTbwwAzg4r17t4f5/C69nGDtJj/r0g=", "owner": "electron", "repo": "electron", - "tag": "v38.1.2" + "tag": "v38.2.0" }, "fetcher": "fetchFromGitHub" }, @@ -3974,9 +3974,9 @@ "fetcher": "fetchFromGitiles" } }, - "electron_yarn_hash": "0iqvdzggcb35yiarmd1n72sdkzy482qzj385286vnwanc93hls6s", + "electron_yarn_hash": "1knhw3blk3bl2a8nl58ik272qj2q0cpqiih5gcsds1na3bbkbn2z", "modules": "139", "node": "22.19.0", - "version": "38.1.2" + "version": "38.2.0" } } From eb37ad93869091ee69bb8f1eb00f8484497e85f6 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Tue, 30 Sep 2025 15:28:42 +0530 Subject: [PATCH 20/58] linux/common-config: only enable BCACHEFS things between versions 6.7 and 6.17 Bcachefs core code has been removed from upstream linux for 6.18. Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f2c61db29f277b9c80de92102fc532cc247495cd --- pkgs/os-specific/linux/kernel/common-config.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 069f4b6c94a3..e5016ccb87fa 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -708,8 +708,8 @@ let BTRFS_FS_POSIX_ACL = yes; - BCACHEFS_QUOTA = whenAtLeast "6.7" (option yes); - BCACHEFS_POSIX_ACL = whenAtLeast "6.7" (option yes); + BCACHEFS_QUOTA = whenBetween "6.7" "6.18" (option yes); + BCACHEFS_POSIX_ACL = whenBetween "6.7" "6.18" (option yes); UBIFS_FS_ADVANCED_COMPR = option yes; From ca9ad858fb1e16a5a7e22c43f3beb96251e43740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Tue, 30 Sep 2025 04:07:00 -0700 Subject: [PATCH 21/58] python3Packages.momongo: init at 0.1.5 --- .../python-modules/momonga/default.nix | 39 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 41 insertions(+) create mode 100644 pkgs/development/python-modules/momonga/default.nix diff --git a/pkgs/development/python-modules/momonga/default.nix b/pkgs/development/python-modules/momonga/default.nix new file mode 100644 index 000000000000..d894d4f698e6 --- /dev/null +++ b/pkgs/development/python-modules/momonga/default.nix @@ -0,0 +1,39 @@ +{ + buildPythonPackage, + fetchFromGitHub, + lib, + pyserial, + setuptools, +}: + +buildPythonPackage rec { + pname = "momonga"; + version = "0.1.5"; + pyproject = true; + + src = fetchFromGitHub { + owner = "nbtk"; + repo = "momonga"; + tag = "v${version}"; + hash = "sha256-sc81L71DJq+XiIYUSMH6knfaPfV7cng/Sp0ZTY6N7ZI="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + pyserial + ]; + + pythonImportsCheck = [ "momonga" ]; + + # tests require access to the API + doCheck = false; + + meta = { + changelog = "https://github.com/nbtk/momonga/releases/tag/${src.tag}"; + description = "Python Route B Library: A Communicator for Low-voltage Smart Electric Energy Meters"; + homepage = "https://github.com/nbtk/momonga"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.dotlambda ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index cb45c286334a..65f5c9b8bb8d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9602,6 +9602,8 @@ self: super: with self; { momepy = callPackage ../development/python-modules/momepy { }; + momonga = callPackage ../development/python-modules/momonga { }; + monai = callPackage ../development/python-modules/monai { }; monai-deploy = callPackage ../development/python-modules/monai-deploy { }; From 6dfb3e7ea058dd6e77b98779893863ce2c83bd1f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 30 Sep 2025 11:49:29 +0000 Subject: [PATCH 22/58] cloudflared: 2025.8.1 -> 2025.9.1 --- pkgs/by-name/cl/cloudflared/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cl/cloudflared/package.nix b/pkgs/by-name/cl/cloudflared/package.nix index 9b9324b7e867..502042599017 100644 --- a/pkgs/by-name/cl/cloudflared/package.nix +++ b/pkgs/by-name/cl/cloudflared/package.nix @@ -9,13 +9,13 @@ buildGoModule rec { pname = "cloudflared"; - version = "2025.8.1"; + version = "2025.9.1"; src = fetchFromGitHub { owner = "cloudflare"; repo = "cloudflared"; tag = version; - hash = "sha256-7qPyzxsCgRs/Jzwdg4MrtqD7arS7o420BkmbtXTlJe4="; + hash = "sha256-xFkRwbRfJCpwTW9T9g2Tnn6qAwoTT9bxOCEkTM01+B4="; }; vendorHash = null; From 869cb02e54beb8e6e76ad1c90d8a8dff17872712 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 30 Sep 2025 15:12:44 +0000 Subject: [PATCH 23/58] nf-test: 0.9.2 -> 0.9.3 --- pkgs/by-name/nf/nf-test/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/nf/nf-test/package.nix b/pkgs/by-name/nf/nf-test/package.nix index d49cbfc2613e..014465db1d19 100644 --- a/pkgs/by-name/nf/nf-test/package.nix +++ b/pkgs/by-name/nf/nf-test/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "nf-test"; - version = "0.9.2"; + version = "0.9.3"; src = fetchurl { url = "https://github.com/askimed/nf-test/releases/download/v${version}/nf-test-${version}.tar.gz"; - hash = "sha256-v7LgbfKdTvQbMcs1ajdKmSQr742YQ0uL4wN79rPV1No="; + hash = "sha256-LLylgv34HiMXg+sjBbMdeLVPMV5+h+Z2xEWCiBqbNEY="; }; sourceRoot = "."; From d0607f5012795697f91a66a4d9c4d48a89de0e68 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sat, 13 Sep 2025 21:00:08 +0200 Subject: [PATCH 24/58] tart: 2.28.1 -> 2.28.6 --- pkgs/by-name/ta/tart/package.nix | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/ta/tart/package.nix b/pkgs/by-name/ta/tart/package.nix index f8e4fa92ab32..357a77a53d82 100644 --- a/pkgs/by-name/ta/tart/package.nix +++ b/pkgs/by-name/ta/tart/package.nix @@ -9,14 +9,16 @@ # See https://github.com/cirruslabs/softnet#installing enableSoftnet ? false, softnet, + nix-update-script, + versionCheckHook, }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "tart"; - version = "2.28.1"; + version = "2.28.6"; src = fetchurl { url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart.tar.gz"; - hash = "sha256-rV5hAJk46e9PAdEo8Qc6/17WqZ9aihj5+A1nLp3fJro="; + hash = "sha256-F6bYWVHtzXo6TH4CAvdF6qx7OCVvKACsh2KdRYFsxOw="; }; sourceRoot = "."; @@ -37,8 +39,14 @@ stdenvNoCC.mkDerivation (finalAttrs: { runHook postInstall ''; + nativeInstallCheckInputs = [ + versionCheckHook + ]; + doInstallCheck = true; + passthru.updateScript = nix-update-script { }; + meta = with lib; { - description = "macOS VMs on Apple Silicon to use in CI and other automations"; + description = "macOS and Linux VMs on Apple Silicon to use in CI and other automations"; homepage = "https://tart.run"; license = licenses.fairsource09; maintainers = with maintainers; [ @@ -46,10 +54,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { aduh95 ]; mainProgram = "tart"; - platforms = [ - "aarch64-darwin" - "x86_64-darwin" - ]; + platforms = platforms.darwin; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; }) From d5330e38cac0ef67717c3a58b8bc3cb30b3d98d4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 30 Sep 2025 16:48:20 +0000 Subject: [PATCH 25/58] platformsh: 5.3.0 -> 5.5.0 --- pkgs/by-name/pl/platformsh/versions.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/pl/platformsh/versions.json b/pkgs/by-name/pl/platformsh/versions.json index 1c568061e52e..f2ef24a2f407 100644 --- a/pkgs/by-name/pl/platformsh/versions.json +++ b/pkgs/by-name/pl/platformsh/versions.json @@ -1,19 +1,19 @@ { - "version": "5.3.0", + "version": "5.5.0", "darwin-amd64": { - "hash": "sha256-9ntTHPC58qq9aasbXHqcfoK5X7dpDWoGhQEQpKmIcGw=", - "url": "https://github.com/platformsh/cli/releases/download/5.3.0/platform_5.3.0_darwin_all.tar.gz" + "hash": "sha256-cuLDYW0kr6D2qMhVW+avwbnqq6KI4zRyNBbNSNOpY2o=", + "url": "https://github.com/platformsh/cli/releases/download/5.5.0/platform_5.5.0_darwin_all.tar.gz" }, "darwin-arm64": { - "hash": "sha256-9ntTHPC58qq9aasbXHqcfoK5X7dpDWoGhQEQpKmIcGw=", - "url": "https://github.com/platformsh/cli/releases/download/5.3.0/platform_5.3.0_darwin_all.tar.gz" + "hash": "sha256-cuLDYW0kr6D2qMhVW+avwbnqq6KI4zRyNBbNSNOpY2o=", + "url": "https://github.com/platformsh/cli/releases/download/5.5.0/platform_5.5.0_darwin_all.tar.gz" }, "linux-amd64": { - "hash": "sha256-puQ+Wpzmfqs9hM+UDAuicRjbNODbGDbMGiXPe4hrKzU=", - "url": "https://github.com/platformsh/cli/releases/download/5.3.0/platform_5.3.0_linux_amd64.tar.gz" + "hash": "sha256-7WUjkF8u8AvCFT1MtNjYQI3jlmoABmmEUyg4pctCrGo=", + "url": "https://github.com/platformsh/cli/releases/download/5.5.0/platform_5.5.0_linux_amd64.tar.gz" }, "linux-arm64": { - "hash": "sha256-V509gDeX0jpMwWLVbNpe3HP17hy1xlY7Kk6ZTOTyCMI=", - "url": "https://github.com/platformsh/cli/releases/download/5.3.0/platform_5.3.0_linux_arm64.tar.gz" + "hash": "sha256-WTATvnvCF1GDObO14wHWN290/qz24f3gOKgnjNW0xF8=", + "url": "https://github.com/platformsh/cli/releases/download/5.5.0/platform_5.5.0_linux_arm64.tar.gz" } } From a0201020e257d19cc716ddb3ce0891e39d64ed34 Mon Sep 17 00:00:00 2001 From: dish Date: Sat, 20 Sep 2025 12:49:21 -0400 Subject: [PATCH 26/58] amdvlk,nixos/amdvlk: drop AMDVLK has been deprecated by upstream and has been replaced by RADV. Drop it for 25.11. --- .../manual/configuration/gpu-accel.chapter.md | 31 +--- .../manual/release-notes/rl-2411.section.md | 2 +- .../manual/release-notes/rl-2511.section.md | 2 + nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 5 + nixos/modules/services/hardware/amdgpu.nix | 1 - nixos/modules/services/hardware/amdvlk.nix | 65 -------- pkgs/by-name/am/amdvlk/package.nix | 141 ------------------ pkgs/by-name/am/amdvlk/test.nix | 58 ------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 1 - 11 files changed, 11 insertions(+), 297 deletions(-) delete mode 100644 nixos/modules/services/hardware/amdvlk.nix delete mode 100644 pkgs/by-name/am/amdvlk/package.nix delete mode 100644 pkgs/by-name/am/amdvlk/test.nix diff --git a/nixos/doc/manual/configuration/gpu-accel.chapter.md b/nixos/doc/manual/configuration/gpu-accel.chapter.md index 2cbf2c51bb70..0046337320a5 100644 --- a/nixos/doc/manual/configuration/gpu-accel.chapter.md +++ b/nixos/doc/manual/configuration/gpu-accel.chapter.md @@ -91,16 +91,7 @@ All successfully loaded drivers are exposed to the application as different GPUs. In NixOS, there are two ways to make ICD files visible to Vulkan applications: an environment variable and a module option. -The first option is through the `VK_ICD_FILENAMES` environment variable. -This variable can contain multiple JSON files, separated by `:`. For -example: - -```ShellSession -$ export \ - VK_ICD_FILENAMES=`nix-build '' --no-out-link -A amdvlk`/share/vulkan/icd.d/amd_icd64.json -``` - -The second mechanism is to add the Vulkan driver package to +The way to do this is to add the Vulkan driver package to [](#opt-hardware.graphics.extraPackages). This links the ICD file under `/run/opengl-driver`, where it will be visible to the ICD loader. @@ -129,25 +120,7 @@ vulkan-tools package. Modern AMD [Graphics Core Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are -supported through either radv, which is part of mesa, or the amdvlk -package. Adding the amdvlk package to -[](#opt-hardware.graphics.extraPackages) -makes amdvlk the default driver and hides radv and lavapipe from the device list. -A specific driver can be forced as follows: - -```nix -{ - hardware.graphics.extraPackages = [ pkgs.amdvlk ]; - - # To enable Vulkan support for 32-bit applications, also add: - hardware.graphics.extraPackages32 = [ pkgs.driversi686Linux.amdvlk ]; - - # Force radv - environment.variables.AMD_VULKAN_ICD = "RADV"; - # Or - environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"; -} -``` +supported through the RADV driver, which is part of mesa. ## VA-API {#sec-gpu-accel-va-api} diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 997c0bf1f325..f0fac1194f2f 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -29,7 +29,7 @@ - Convenience options for `amdgpu`, the open source driver for Radeon cards, are now available under [`hardware.amdgpu`](#opt-hardware.amdgpu.initrd.enable). -- [AMDVLK](https://github.com/GPUOpen-Drivers/AMDVLK), AMD's open source Vulkan driver, is now available to be configured under the [`hardware.amdgpu.amdvlk`](#opt-hardware.amdgpu.amdvlk.enable) option. +- [AMDVLK](https://github.com/GPUOpen-Drivers/AMDVLK), AMD's open source Vulkan driver, is now available to be configured under the {option}`hardware.amdgpu.amdvlk` option. This also allows configuring runtime settings for AMDVLK, including enabling experimental features. - The `moonlight-qt` package (for [Moonlight game streaming](https://moonlight-stream.org/)) now has HDR support on Linux systems. diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 6b3b2e9536f1..0ee259066638 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -150,6 +150,8 @@ - The `no-broken-symlink` build hook now also fails builds whose output derivation contains links to $TMPDIR (typically /build, which contains the build directory). +- `hardware.amdgpu.amdvlk` and the `amdvlk` package have been removed, as they have been deprecated by AMD. These have been replaced with the RADV driver from Mesa, which is enabled by default. + - The `services.polipo` module has been removed as `polipo` is unmaintained and archived upstream. - `virtualisation.lxd` has been removed due to lack of Nixpkgs maintenance. Users can migrate to `virtualisation.incus`, a fork of LXD, as a replacement. See [Incus migration documentation](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for migration information. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 9507f4472eb9..7163e87c704d 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -631,7 +631,6 @@ ./services/hardware/acpid.nix ./services/hardware/actkbd.nix ./services/hardware/amdgpu.nix - ./services/hardware/amdvlk.nix ./services/hardware/argonone.nix ./services/hardware/asusd.nix ./services/hardware/auto-cpufreq.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index c7e541c8a628..6c59f1c5c5e4 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -34,6 +34,11 @@ in "fontconfig" "penultimate" ] "The corresponding package has removed from nixpkgs.") + (mkRemovedOptionModule [ + "hardware" + "amdgpu" + "amdvlk" + ] "'amdvlk' has been removed. The replacement driver RADV, part of Mesa, is enabled by default.") (mkRemovedOptionModule [ "hardware" "brightnessctl" ] '' The brightnessctl module was removed because newer versions of brightnessctl don't require the udev rules anymore (they can use the diff --git a/nixos/modules/services/hardware/amdgpu.nix b/nixos/modules/services/hardware/amdgpu.nix index 4aff9cdd077d..0958ef58b4b0 100644 --- a/nixos/modules/services/hardware/amdgpu.nix +++ b/nixos/modules/services/hardware/amdgpu.nix @@ -40,7 +40,6 @@ in }; opencl.enable = lib.mkEnableOption ''OpenCL support using ROCM runtime library''; - # cfg.amdvlk option is defined in ./amdvlk.nix module }; config = { diff --git a/nixos/modules/services/hardware/amdvlk.nix b/nixos/modules/services/hardware/amdvlk.nix deleted file mode 100644 index ba0349a069bc..000000000000 --- a/nixos/modules/services/hardware/amdvlk.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -let - cfg = config.hardware.amdgpu.amdvlk; -in -{ - options.hardware.amdgpu.amdvlk = { - enable = lib.mkEnableOption "AMDVLK Vulkan driver"; - - package = lib.mkPackageOption pkgs "amdvlk" { }; - - supportExperimental.enable = lib.mkEnableOption "Experimental features support"; - - support32Bit.enable = lib.mkEnableOption "32-bit driver support"; - support32Bit.package = lib.mkPackageOption pkgs [ "driversi686Linux" "amdvlk" ] { }; - - settings = lib.mkOption { - type = with lib.types; attrsOf (either str int); - default = { }; - example = { - AllowVkPipelineCachingToDisk = 1; - ShaderCacheMode = 1; - IFH = 0; - EnableVmAlwaysValid = 1; - IdleAfterSubmitGpuMask = 1; - }; - description = '' - Runtime settings for AMDVLK to be configured {file}`/etc/amd/amdVulkanSettings.cfg`. - See [AMDVLK GitHub page](https://github.com/GPUOpen-Drivers/AMDVLK?tab=readme-ov-file#runtime-settings). - ''; - }; - }; - - config = lib.mkIf cfg.enable { - hardware.graphics = { - enable = true; - extraPackages = [ cfg.package ]; - } - // lib.optionalAttrs cfg.support32Bit.enable { - enable32Bit = true; - extraPackages32 = [ cfg.support32Bit.package ]; - }; - - environment.sessionVariables = lib.mkIf cfg.supportExperimental.enable { - AMDVLK_ENABLE_DEVELOPING_EXT = "all"; - }; - - environment.etc = lib.mkIf (cfg.settings != { }) { - "amd/amdVulkanSettings.cfg".text = lib.concatStrings ( - lib.mapAttrsToList (n: v: '' - ${n},${builtins.toString v} - '') cfg.settings - ); - }; - }; - - meta = { - maintainers = with lib.maintainers; [ johnrtitor ]; - }; -} diff --git a/pkgs/by-name/am/amdvlk/package.nix b/pkgs/by-name/am/amdvlk/package.nix deleted file mode 100644 index 8b6d97d3bcae..000000000000 --- a/pkgs/by-name/am/amdvlk/package.nix +++ /dev/null @@ -1,141 +0,0 @@ -{ - stdenv, - callPackage, - lib, - fetchRepoProject, - nix-update-script, - cmake, - directx-shader-compiler, - glslang, - ninja, - patchelf, - perl, - pkg-config, - python3, - expat, - libdrm, - ncurses, - openssl, - wayland, - xorg, - zlib, -}: -let - - suffix = if stdenv.system == "x86_64-linux" then "64" else "32"; - -in -stdenv.mkDerivation (finalAttrs: { - pname = "amdvlk"; - version = "2025.Q1.3"; - - src = fetchRepoProject { - name = "amdvlk-src"; - manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git"; - rev = "refs/tags/v-${finalAttrs.version}"; - hash = "sha256-ZXou5g0emeK++NyV/hQllZAdZAMEY9TYs9c+umFdcfo="; - }; - - buildInputs = [ - expat - libdrm - ncurses - openssl - wayland - zlib - ] - ++ (with xorg; [ - libX11 - libxcb - xcbproto - libXext - libXrandr - libXft - libxshmfence - ]); - - nativeBuildInputs = [ - cmake - directx-shader-compiler - glslang - ninja - patchelf - perl - pkg-config - python3 - ] - ++ (with python3.pkgs; [ - jinja2 - ruamel-yaml - ]); - - rpath = lib.makeLibraryPath ( - [ - libdrm - openssl - stdenv.cc.cc - zlib - ] - ++ (with xorg; [ - libX11 - libxcb - libxshmfence - ]) - ); - - cmakeDir = "../drivers/xgl"; - - cmakeFlags = [ - # There is some incredibly cursed issue with - # `directx-shader-compiler` flagging up compiler errors only on - # `i686-linux` and only when it has been compiled with a recent - # GCC. Since few 32‐bit games are going to use ray tracing anyway, - # we just disable it for now. Arch has done this since 2022. - # - # See: - # * - # * - # * - (lib.cmakeBool "VKI_RAY_TRACING" (!(stdenv.hostPlatform.isx86 && stdenv.hostPlatform.is32bit))) - ]; - - installPhase = '' - runHook preInstall - - install -Dm755 -t $out/lib icd/amdvlk${suffix}.so - install -Dm644 -t $out/share/vulkan/icd.d icd/amd_icd${suffix}.json - install -Dm644 -t $out/share/vulkan/implicit_layer.d icd/amd_icd${suffix}.json - - patchelf --set-rpath "$rpath" $out/lib/amdvlk${suffix}.so - - runHook postInstall - ''; - - # Keep the rpath, otherwise vulkaninfo and vkcube segfault - dontPatchELF = true; - - passthru.updateScript = nix-update-script { - extraArgs = [ - "--url" - "https://github.com/GPUOpen-Drivers/AMDVLK" - "--version-regex" - "v-(.*)" - ]; - }; - - passthru.impureTests = { - amdvlk = callPackage ./test.nix { }; - }; - - meta = { - description = "AMD Open Source Driver For Vulkan"; - homepage = "https://github.com/GPUOpen-Drivers/AMDVLK"; - changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${finalAttrs.version}"; - license = lib.licenses.mit; - platforms = [ - "x86_64-linux" - "i686-linux" - ]; - maintainers = with lib.maintainers; [ Flakebi ]; - }; -}) diff --git a/pkgs/by-name/am/amdvlk/test.nix b/pkgs/by-name/am/amdvlk/test.nix deleted file mode 100644 index 40da948c6836..000000000000 --- a/pkgs/by-name/am/amdvlk/test.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - lib, - makeImpureTest, - coreutils, - amdvlk, - vulkan-tools, -}: -makeImpureTest { - name = "amdvlk"; - testedPackage = "amdvlk"; - - sandboxPaths = [ - "/sys" - "/dev/dri" - ]; - - nativeBuildInputs = [ vulkan-tools ]; - - VK_ICD_FILENAMES = "${amdvlk}/share/vulkan/icd.d/amd_icd64.json"; - XDG_RUNTIME_DIR = "/tmp"; - - # AMDVLK needs access to /dev/dri/card0 (or another card), but normally it is rw-rw---- - # Change the permissions to be rw for everyone - prepareRunCommands = '' - function reset_perms() - { - # Reset permissions to previous state - for card in /dev/dri/card*; do - sudo ${coreutils}/bin/chmod "0''${cardPerms[$card]}" $card - done - } - - # Save permissions on /dev/dri/card* - declare -A cardPerms - for card in /dev/dri/card*; do - cardPerms[$card]=$(stat -c "%a" $card) - done - - sudo ${coreutils}/bin/chmod o+rw /dev/dri/card* - trap reset_perms EXIT - ''; - - testScript = '' - # Check that there is at least one card with write-access - if ! ls -l /dev/dri/card* | cut -b8-9 | grep -q rw; then - echo 'AMDVLK needs rw access to /dev/dri/card0 or a fitting card, please run `sudo chmod o+rw /dev/dri/card*`' - exit 1 - fi - - vulkaninfo --summary - echo "Checking version" - vulkaninfo --summary | grep '= ${amdvlk.version}' - ''; - - meta = with lib.maintainers; { - maintainers = [ Flakebi ]; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 8f20ddd0dd3e..1224f7448b39 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -431,6 +431,7 @@ mapAliases { alsaTools = throw "'alsaTools' has been renamed to/replaced by 'alsa-tools'"; # Converted to throw 2024-10-17 alsaUtils = throw "'alsaUtils' has been renamed to/replaced by 'alsa-utils'"; # Converted to throw 2024-10-17 amazon-qldb-shell = throw "'amazon-qldb-shell' has been removed due to being unmaintained upstream"; # Added 2025-07-30 + amdvlk = throw "'amdvlk' has been removed since it was deprecated by AMD. Its replacement, RADV, is enabled by default."; # Added 2025-09-20 angelfish = throw "'angelfish' has been renamed to/replaced by 'libsForQt5.kdeGear.angelfish'"; # Converted to throw 2024-10-17 animeko = throw "'animeko' has been removed since it is unmaintained"; # Added 2025-08-20 ansible_2_14 = throw "Ansible 2.14 goes end of life in 2024/05 and can't be supported throughout the 24.05 release cycle"; # Added 2024-04-11 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 727a3546353b..a1a6b68d5852 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7302,7 +7302,6 @@ with pkgs; # Multi-arch "drivers" which we want to build for i686. driversi686Linux = recurseIntoAttrs { inherit (pkgsi686Linux) - amdvlk intel-media-driver intel-vaapi-driver mesa From 0781719b5f1e2304c49b79f6b1b6f38432b376a3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 30 Sep 2025 17:40:02 +0000 Subject: [PATCH 27/58] python3Packages.pyhive-integration: 1.0.3 -> 1.0.5 --- .../development/python-modules/pyhive-integration/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyhive-integration/default.nix b/pkgs/development/python-modules/pyhive-integration/default.nix index d6e26b78ab0f..8ecacc3fdb59 100644 --- a/pkgs/development/python-modules/pyhive-integration/default.nix +++ b/pkgs/development/python-modules/pyhive-integration/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "pyhive-integration"; - version = "1.0.3"; + version = "1.0.5"; pyproject = true; src = fetchFromGitHub { owner = "Pyhass"; repo = "Pyhiveapi"; tag = "v${version}"; - hash = "sha256-g3dEB41bYT2XygAIRqXpdCeYuh7IH9O3ZG1zr5Sm7+8="; + hash = "sha256-chAIFBd51a4QHVhAm5jsQvDhe7huSMyv8oARZKEc2Qw="; }; pythonRemoveDeps = [ "pre-commit" ]; From 0496b73589e57ea9e8019296e81186e6577cb795 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Tue, 30 Sep 2025 14:02:17 -0500 Subject: [PATCH 28/58] vimPlugins.sidekick-nvim: 2025-09-27 -> 2025-09-30 Signed-off-by: Austin Horstman --- pkgs/applications/editors/vim/plugins/generated.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 1c98e93803df..a9f5e45ed759 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -13707,12 +13707,12 @@ final: prev: { sidekick-nvim = buildVimPlugin { pname = "sidekick.nvim"; - version = "2025-09-27"; + version = "2025-09-30"; src = fetchFromGitHub { owner = "folke"; repo = "sidekick.nvim"; - rev = "242b2bd216191c151d24f665cc8f596cb63288ea"; - sha256 = "11qg13y57437pjwdsg0khj0wrwp86m779847isnb3a35kia7b2cc"; + rev = "7b3d28bbb883e898f6a8b4f2d7a9ab6ad5cef9f8"; + sha256 = "1m2af27xvagdq6q8kyahcsrbraaw4x2yvrg35xxcpgp0vi0m9h6a"; }; meta.homepage = "https://github.com/folke/sidekick.nvim/"; meta.hydraPlatforms = [ ]; From d205b6564563fdbe58db2c48a8249c62beff2506 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 17:36:58 -0300 Subject: [PATCH 29/58] nixos/cosmic: add `/share/cosmic-themes` to pathsToLink --- nixos/modules/services/desktop-managers/cosmic.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/desktop-managers/cosmic.nix b/nixos/modules/services/desktop-managers/cosmic.nix index 9404f32e2534..342e1d7e3d5a 100644 --- a/nixos/modules/services/desktop-managers/cosmic.nix +++ b/nixos/modules/services/desktop-managers/cosmic.nix @@ -73,6 +73,7 @@ in "/share/backgrounds" "/share/cosmic" "/share/cosmic-layouts" + "/share/cosmic-themes" ]; environment.systemPackages = utils.removePackagesByName ( corePkgs From c5b7bdc65da309be155475e195d8e2d05f5b97b3 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 17:44:13 -0300 Subject: [PATCH 30/58] cosmic-initial-setup: fix theme and layouts page --- pkgs/by-name/co/cosmic-initial-setup/package.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/by-name/co/cosmic-initial-setup/package.nix b/pkgs/by-name/co/cosmic-initial-setup/package.nix index 08aad02cf6b4..63558e905a57 100644 --- a/pkgs/by-name/co/cosmic-initial-setup/package.nix +++ b/pkgs/by-name/co/cosmic-initial-setup/package.nix @@ -3,6 +3,7 @@ stdenv, rustPlatform, fetchFromGitHub, + fetchpatch2, just, libcosmicAppHook, libinput, @@ -24,6 +25,8 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoHash = "sha256-orwK9gcFXK4/+sfwRubcz0PP6YAFqsENRHnlSLttLxM="; + buildFeatures = [ "nixos" ]; + # cargo-auditable fails during the build when compiling the `crabtime::function` # procedural macro. It panics because the `--out-dir` flag is not passed to # the rustc wrapper. @@ -47,6 +50,12 @@ rustPlatform.buildRustPackage (finalAttrs: { patches = [ ./disable-language-page.patch ./disable-timezone-page.patch + # TODO: Remove in next update + (fetchpatch2 { + name = "fix-layout-and-themes-page.patch"; + url = "https://patch-diff.githubusercontent.com/raw/pop-os/cosmic-initial-setup/pull/53.diff?full_index=1"; + hash = "sha256-081qyQnPhh+FRPU/JKJVCK+l3SKjHAIV5b6/7WN6lb8="; + }) ]; postPatch = '' From 7877b8b95e1af26a45c63fdf91de7f17fad71bc6 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:18:17 -0300 Subject: [PATCH 31/58] cosmic-applibrary: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-applibrary/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-applibrary/package.nix b/pkgs/by-name/co/cosmic-applibrary/package.nix index 9d6bcc14f575..50b5681da369 100644 --- a/pkgs/by-name/co/cosmic-applibrary/package.nix +++ b/pkgs/by-name/co/cosmic-applibrary/package.nix @@ -36,8 +36,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-app-library" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; postPatch = '' From bc7f07b59046c1ec4e839a17958e8b015fb073bf Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:27:37 -0300 Subject: [PATCH 32/58] cosmic-applibrary: remove unnecessary patch This patch currently does nothing, so we can remove it --- pkgs/by-name/co/cosmic-applibrary/package.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/by-name/co/cosmic-applibrary/package.nix b/pkgs/by-name/co/cosmic-applibrary/package.nix index 50b5681da369..2f60f0f352b0 100644 --- a/pkgs/by-name/co/cosmic-applibrary/package.nix +++ b/pkgs/by-name/co/cosmic-applibrary/package.nix @@ -40,10 +40,6 @@ rustPlatform.buildRustPackage (finalAttrs: { "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; - postPatch = '' - substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)" - ''; - passthru = { tests = { inherit (nixosTests) From b0cf080f74491bdef113d10bf820dce75baf61a7 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:22:33 -0300 Subject: [PATCH 33/58] cosmic-bg: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-bg/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-bg/package.nix b/pkgs/by-name/co/cosmic-bg/package.nix index db22e05c964e..719f4650bde2 100644 --- a/pkgs/by-name/co/cosmic-bg/package.nix +++ b/pkgs/by-name/co/cosmic-bg/package.nix @@ -45,8 +45,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-bg" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; passthru = { From 25b335a4305fd2350941b1595c2bad312709e603 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:38:26 -0300 Subject: [PATCH 34/58] cosmic-edit: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-edit/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-edit/package.nix b/pkgs/by-name/co/cosmic-edit/package.nix index 1b8e42fab2e0..c861f9a5ead8 100644 --- a/pkgs/by-name/co/cosmic-edit/package.nix +++ b/pkgs/by-name/co/cosmic-edit/package.nix @@ -53,8 +53,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-edit" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; passthru = { From bfb9e3ee6cbe7e13aa2b94f3c6eb56a8aaba05f8 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:41:27 -0300 Subject: [PATCH 35/58] cosmic-files: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-files/package.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/co/cosmic-files/package.nix b/pkgs/by-name/co/cosmic-files/package.nix index ba97add394a1..f931d3df52e6 100644 --- a/pkgs/by-name/co/cosmic-files/package.nix +++ b/pkgs/by-name/co/cosmic-files/package.nix @@ -40,11 +40,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-files" - "--set" - "applet-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-files-applet" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; # This is needed since by setting cargoBuildFlags, it would build both the applet and the main binary From 126826a0638e54a1245a4c6a6ec0ceb6c8b2d36a Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:42:23 -0300 Subject: [PATCH 36/58] cosmic-greeter: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-greeter/package.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/co/cosmic-greeter/package.nix b/pkgs/by-name/co/cosmic-greeter/package.nix index 5c8a30e81af9..a66a3ac5a144 100644 --- a/pkgs/by-name/co/cosmic-greeter/package.nix +++ b/pkgs/by-name/co/cosmic-greeter/package.nix @@ -57,11 +57,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-greeter" - "--set" - "daemon-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-greeter-daemon" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; postPatch = '' From 1536ce175975553aee14733c21fc04187976fd55 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:44:39 -0300 Subject: [PATCH 37/58] cosmic-idle: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-idle/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-idle/package.nix b/pkgs/by-name/co/cosmic-idle/package.nix index ce660c1ad14d..9847ce7966f0 100644 --- a/pkgs/by-name/co/cosmic-idle/package.nix +++ b/pkgs/by-name/co/cosmic-idle/package.nix @@ -41,8 +41,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-idle" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; postPatch = '' From c6d3b8a0c7e8c656050c99e9b3cc2496bff3534f Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:46:01 -0300 Subject: [PATCH 38/58] cosmic-launcher: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-launcher/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-launcher/package.nix b/pkgs/by-name/co/cosmic-launcher/package.nix index 6595b2bd6595..f2617f151cc7 100644 --- a/pkgs/by-name/co/cosmic-launcher/package.nix +++ b/pkgs/by-name/co/cosmic-launcher/package.nix @@ -36,8 +36,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-launcher" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; env."CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_RUSTFLAGS" = "--cfg tokio_unstable"; From 74f3d97d54fa4c976d08617a768298c03cdf2542 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:47:27 -0300 Subject: [PATCH 39/58] cosmic-notifications: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-notifications/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-notifications/package.nix b/pkgs/by-name/co/cosmic-notifications/package.nix index 470359ee8e12..9ff3f7ac8299 100644 --- a/pkgs/by-name/co/cosmic-notifications/package.nix +++ b/pkgs/by-name/co/cosmic-notifications/package.nix @@ -39,8 +39,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-notifications" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; passthru = { From 8b35a5e393bb73983ef5091a1e393f92642cd3e0 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:54:06 -0300 Subject: [PATCH 40/58] cosmic-panel: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-panel/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-panel/package.nix b/pkgs/by-name/co/cosmic-panel/package.nix index 1f9ad5881177..ff40a8512385 100644 --- a/pkgs/by-name/co/cosmic-panel/package.nix +++ b/pkgs/by-name/co/cosmic-panel/package.nix @@ -36,8 +36,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-panel" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; passthru = { From 888a2e75b127f0eb3e745dfb0855940a7d0f5683 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:56:58 -0300 Subject: [PATCH 41/58] cosmic-player: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-player/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-player/package.nix b/pkgs/by-name/co/cosmic-player/package.nix index 5cd04cc15067..4d6c54988d6a 100644 --- a/pkgs/by-name/co/cosmic-player/package.nix +++ b/pkgs/by-name/co/cosmic-player/package.nix @@ -64,8 +64,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-player" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; postInstall = '' From ef28795fe5918fd5270fc6ee2c5e491bde21200f Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:57:19 -0300 Subject: [PATCH 42/58] cosmic-player: remove unneeded patch It doesn't do anything, so removed it --- pkgs/by-name/co/cosmic-player/package.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/by-name/co/cosmic-player/package.nix b/pkgs/by-name/co/cosmic-player/package.nix index 4d6c54988d6a..a213b228531a 100644 --- a/pkgs/by-name/co/cosmic-player/package.nix +++ b/pkgs/by-name/co/cosmic-player/package.nix @@ -30,10 +30,6 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoHash = "sha256-DodFIfthiGFSvXWfPsPjFhNY6G7z3lb6pfc5HtUXhMo="; - postPatch = '' - substituteInPlace justfile --replace-fail '#!/usr/bin/env' "#!$(command -v env)" - ''; - nativeBuildInputs = [ just pkg-config From c0780d221c27ea0c486794b2bc30b3a0b007b6ee Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:59:00 -0300 Subject: [PATCH 43/58] cosmic-randr: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-randr/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-randr/package.nix b/pkgs/by-name/co/cosmic-randr/package.nix index c1885e1fc39c..95f1be48c2fc 100644 --- a/pkgs/by-name/co/cosmic-randr/package.nix +++ b/pkgs/by-name/co/cosmic-randr/package.nix @@ -39,8 +39,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-randr" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; passthru = { From 8d9674d3c296a6bb1c6c5ef1514c56162f058fd5 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 19:00:07 -0300 Subject: [PATCH 44/58] cosmic-screenshot: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-screenshot/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-screenshot/package.nix b/pkgs/by-name/co/cosmic-screenshot/package.nix index 43052df88163..19e6b35a9007 100644 --- a/pkgs/by-name/co/cosmic-screenshot/package.nix +++ b/pkgs/by-name/co/cosmic-screenshot/package.nix @@ -34,8 +34,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-screenshot" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; passthru.tests = { From 71791a8d407b37793549dd0e2a52dc80d3834874 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 19:03:13 -0300 Subject: [PATCH 45/58] cosmic-settings: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-settings/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-settings/package.nix b/pkgs/by-name/co/cosmic-settings/package.nix index fcc20c1b18ee..31c4217cca33 100644 --- a/pkgs/by-name/co/cosmic-settings/package.nix +++ b/pkgs/by-name/co/cosmic-settings/package.nix @@ -66,8 +66,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-settings" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; preFixup = '' From a73b39c50422c8e4a58617b7115944ec0001f2ac Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 19:03:58 -0300 Subject: [PATCH 46/58] cosmic-store: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-store/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-store/package.nix b/pkgs/by-name/co/cosmic-store/package.nix index 96b3f223db9a..234b522ceb37 100644 --- a/pkgs/by-name/co/cosmic-store/package.nix +++ b/pkgs/by-name/co/cosmic-store/package.nix @@ -47,8 +47,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-store" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; passthru = { From 17e3bb62c97a78598a9f318e37ca4d9f48def776 Mon Sep 17 00:00:00 2001 From: Heitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com> Date: Tue, 30 Sep 2025 19:04:55 -0300 Subject: [PATCH 47/58] cosmic-term: `bin-src` -> `cargo-target-dir` Avoids hardcoding the path to the binary, making the packaging more robust. --- pkgs/by-name/co/cosmic-term/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/cosmic-term/package.nix b/pkgs/by-name/co/cosmic-term/package.nix index 390b2a7bab0a..cbd95303c28d 100644 --- a/pkgs/by-name/co/cosmic-term/package.nix +++ b/pkgs/by-name/co/cosmic-term/package.nix @@ -47,8 +47,8 @@ rustPlatform.buildRustPackage (finalAttrs: { "prefix" (placeholder "out") "--set" - "bin-src" - "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-term" + "cargo-target-dir" + "target/${stdenv.hostPlatform.rust.cargoShortTarget}" ]; passthru = { From b1fa67523dca94d7cb0c956d885edba99b5f1103 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 30 Sep 2025 23:04:20 +0000 Subject: [PATCH 48/58] python3Packages.docling-mcp: 1.2.0 -> 1.3.1 --- pkgs/development/python-modules/docling-mcp/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/docling-mcp/default.nix b/pkgs/development/python-modules/docling-mcp/default.nix index 58801822260f..4e5f5599105d 100644 --- a/pkgs/development/python-modules/docling-mcp/default.nix +++ b/pkgs/development/python-modules/docling-mcp/default.nix @@ -30,14 +30,14 @@ buildPythonPackage rec { pname = "docling-mcp"; - version = "1.2.0"; + version = "1.3.1"; pyproject = true; src = fetchFromGitHub { owner = "docling-project"; repo = "docling-mcp"; tag = "v${version}"; - hash = "sha256-ktJ5K+1Qb7/lUHPkmv2FMnSe6PiIQ1BvWj5qIG8xfdE="; + hash = "sha256-MEGj/tPHDZqvgqmzXsoeEIWWU7vlLo8H4KhMFgf6q2c="; }; pythonRemoveDeps = [ From 6cd3cca0934074f65c4241010433e00caccdb221 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 1 Oct 2025 01:27:35 +0200 Subject: [PATCH 49/58] checkov: 3.2.471 -> 3.2.473 Diff: https://github.com/bridgecrewio/checkov/compare/3.2.471...3.2.473 Changelog: https://github.com/bridgecrewio/checkov/releases/tag/3.2.473 --- pkgs/by-name/ch/checkov/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ch/checkov/package.nix b/pkgs/by-name/ch/checkov/package.nix index 0e0683eda207..339d80d64f0a 100644 --- a/pkgs/by-name/ch/checkov/package.nix +++ b/pkgs/by-name/ch/checkov/package.nix @@ -37,14 +37,14 @@ with py.pkgs; python3.pkgs.buildPythonApplication rec { pname = "checkov"; - version = "3.2.471"; + version = "3.2.473"; pyproject = true; src = fetchFromGitHub { owner = "bridgecrewio"; repo = "checkov"; tag = version; - hash = "sha256-dAUokMpBvd2lAKNQJJqAthBUNoI3S1C7gat4Jda7bZk="; + hash = "sha256-FfzAMuFF+ftjcKn+6uYgoeUPoBDnkVTBCPSeom6KR5k="; }; pythonRelaxDeps = [ From d026e4d7fb7942798536eae6f31abf10490e3b60 Mon Sep 17 00:00:00 2001 From: kyehn Date: Fri, 26 Sep 2025 14:07:47 +0800 Subject: [PATCH 50/58] snakefmt: 0.11.0 -> 0.11.2 Changelog: https://github.com/snakemake/snakefmt/releases/tag/v0.11.2 --- pkgs/by-name/sn/snakefmt/package.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/sn/snakefmt/package.nix b/pkgs/by-name/sn/snakefmt/package.nix index 44735da75e42..9aa688267d78 100644 --- a/pkgs/by-name/sn/snakefmt/package.nix +++ b/pkgs/by-name/sn/snakefmt/package.nix @@ -8,26 +8,27 @@ python3.pkgs.buildPythonApplication rec { pname = "snakefmt"; - version = "0.11.0"; + version = "0.11.2"; pyproject = true; disabled = python3.pythonOlder "3.11"; src = fetchPypi { inherit pname version; - hash = "sha256-r8O5LhA8/agP/35381f2zB2rdCJy7nY0K6NC8w5yHzA="; + hash = "sha256-6a03WEAeApH3pFNgB1xXODhrWKGxYNOIJ7QGMNn3NeE="; }; - build-system = [ python3.pkgs.poetry-core ]; + build-system = with python3.pkgs; [ hatchling ]; dependencies = with python3.pkgs; [ black click - importlib-metadata - toml ]; - pythonRelaxDeps = [ "black" ]; + pythonRelaxDeps = [ + "black" + "click" + ]; pythonImportsCheck = [ "snakefmt" ]; From 5dcf5e899d7a00cc8caa24f2096eaace027a65b8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 1 Oct 2025 03:57:50 +0000 Subject: [PATCH 51/58] fishPlugins.forgit: 25.09.0 -> 25.10.0 --- pkgs/shells/fish/plugins/forgit.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/shells/fish/plugins/forgit.nix b/pkgs/shells/fish/plugins/forgit.nix index 11b15ef56db4..333ea768fffe 100644 --- a/pkgs/shells/fish/plugins/forgit.nix +++ b/pkgs/shells/fish/plugins/forgit.nix @@ -6,13 +6,13 @@ buildFishPlugin rec { pname = "forgit"; - version = "25.09.0"; + version = "25.10.0"; src = fetchFromGitHub { owner = "wfxr"; repo = "forgit"; rev = version; - hash = "sha256-hbPiuuiyPOCtnByInhoA0atVDwNaMRfzp1n9dusg59I="; + hash = "sha256-MG60GzRG0NFQsGXBXBedSweucxo88S/NACXTme7ixRM="; }; postInstall = '' From 89bd31053cd789c520e6964b2a30ced65264eea7 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Wed, 1 Oct 2025 14:14:48 +1000 Subject: [PATCH 52/58] zfs_unstable: 2.4.0-rc1 -> 2.4.0-rc2 https://github.com/openzfs/zfs/releases/tag/zfs-2.4.0-rc2 --- pkgs/os-specific/linux/zfs/generic.nix | 2 +- pkgs/os-specific/linux/zfs/unstable.nix | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/os-specific/linux/zfs/generic.nix b/pkgs/os-specific/linux/zfs/generic.nix index 98d0236bcd90..bf615d8716de 100644 --- a/pkgs/os-specific/linux/zfs/generic.nix +++ b/pkgs/os-specific/linux/zfs/generic.nix @@ -156,7 +156,7 @@ let --replace-fail "bashcompletiondir=/etc/bash_completion.d" \ "bashcompletiondir=$out/share/bash-completion/completions" - substituteInPlace ./cmd/arc_summary --replace-fail "/sbin/modinfo" "modinfo" + substituteInPlace ./cmd/zarcsummary --replace-fail "/sbin/modinfo" "modinfo" '' + '' echo 'Supported Kernel versions:' diff --git a/pkgs/os-specific/linux/zfs/unstable.nix b/pkgs/os-specific/linux/zfs/unstable.nix index e115be3336a0..8c9b35be6056 100644 --- a/pkgs/os-specific/linux/zfs/unstable.nix +++ b/pkgs/os-specific/linux/zfs/unstable.nix @@ -10,20 +10,20 @@ callPackage ./generic.nix args { kernelModuleAttribute = "zfs_unstable"; kernelMinSupportedMajorMinor = "4.18"; - kernelMaxSupportedMajorMinor = "6.16"; + kernelMaxSupportedMajorMinor = "6.17"; # this package should point to a version / git revision compatible with the latest kernel release # IMPORTANT: Always use a tagged release candidate or commits from the # zfs--staging branch, because this is tested by the OpenZFS # maintainers. - version = "2.4.0-rc1"; + version = "2.4.0-rc2"; # rev = ""; tests = { inherit (nixosTests.zfs) unstable; }; - hash = "sha256-6BU/Cotu+Lp7Pqp0eyECzAwsl82vKyDBkacxAh9wHPo="; + hash = "sha256-NoY8lXQ/qxO0cQLmU0tIjqqWUThfWzVioigpS2crbeE="; extraLongDescription = '' This is "unstable" ZFS, and will usually be a pre-release version of ZFS. From 63fa10f9913f31366fa465906653a6b1b98ba3a3 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 1 Oct 2025 08:41:44 +0200 Subject: [PATCH 53/58] python313Packages.pyicloud: 1.0.0 -> 2.1.0 Changelog: https://github.com/timlaing/pyicloud/releases/tag/2.1.0 --- .../python-modules/pyicloud/default.nix | 39 ++++++++++++------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/pyicloud/default.nix b/pkgs/development/python-modules/pyicloud/default.nix index 2d87062de302..a7d1bc73ef6e 100644 --- a/pkgs/development/python-modules/pyicloud/default.nix +++ b/pkgs/development/python-modules/pyicloud/default.nix @@ -1,56 +1,69 @@ { lib, buildPythonPackage, - fetchFromGitHub, - pythonAtLeast, - setuptools, certifi, click, + fetchFromGitHub, + fido2, keyring, keyrings-alt, - requests, - tzlocal, pytest-mock, + pytest-socket, pytestCheckHook, + pythonAtLeast, + requests, + setuptools, + setuptools-scm, + srp, + tzlocal, }: buildPythonPackage rec { pname = "pyicloud"; - version = "1.0.0"; + version = "2.1.0"; pyproject = true; src = fetchFromGitHub { - owner = "picklepete"; + owner = "timlaing"; repo = "pyicloud"; - rev = version; - hash = "sha256-2E1pdHHt8o7CGpdG+u4xy5OyNCueUGVw5CY8oicYd5w="; + tag = version; + hash = "sha256-bGS5yAizdaZUdwKNoZPKP/DSpJs5XI70hyTLfJg9QmI="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ + setuptools + setuptools-scm + ]; - propagatedBuildInputs = [ + dependencies = [ certifi click + fido2 keyring keyrings-alt requests + srp tzlocal ]; nativeCheckInputs = [ pytest-mock + pytest-socket pytestCheckHook ]; + pythonImportsCheck = [ "pyicloud" ]; + disabledTests = lib.optionals (pythonAtLeast "3.12") [ # https://github.com/picklepete/pyicloud/issues/446 "test_storage" ]; meta = with lib; { - description = "PyiCloud is a module which allows pythonistas to interact with iCloud webservices"; + description = "Module to interact with iCloud webservices"; mainProgram = "icloud"; - homepage = "https://github.com/picklepete/pyicloud"; + homepage = "https://github.com/timlaing/pyicloud"; + changelog = "https://github.com/timlaing/pyicloud/releases/tag/${src.tag}"; license = licenses.mit; maintainers = [ maintainers.mic92 ]; }; From edbe92d26dc7c414e9524e0bad49acb17b1c4903 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 1 Oct 2025 07:28:43 +0000 Subject: [PATCH 54/58] terraform-providers.google-beta: 7.3.0 -> 7.5.0 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 9bc45762bb02..f3818b557f35 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -534,13 +534,13 @@ "vendorHash": "sha256-cQybnUaDLVmQrtFkiI5k3OwqN9Oks+J1H2kbkNjO4jc=" }, "google-beta": { - "hash": "sha256-HDTjSxx3TE69B7DvJbn/b67IH/S4IXvXGVTFwrgAWZE=", + "hash": "sha256-efZ/NHcYSv7CSO6gN6DY43px6kJR7KrlOp+HamrvssY=", "homepage": "https://registry.terraform.io/providers/hashicorp/google-beta", "owner": "hashicorp", "repo": "terraform-provider-google-beta", - "rev": "v7.3.0", + "rev": "v7.5.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-9tXElUSD6WSfEn6Urt0GZFkxGXj/iUO83ZkKw3GfAgo=" + "vendorHash": "sha256-Bii3UrY1WbhewgsURxq7gGVqT1WSszFkif0V88hiyZo=" }, "googleworkspace": { "hash": "sha256-dedYnsKHizxJZibuvJOMbJoux0W6zgKaK5fxIofKqCY=", From 06d40e889f6b16d014965d3c803f846975df99ac Mon Sep 17 00:00:00 2001 From: isomo Date: Wed, 1 Oct 2025 17:25:29 +0800 Subject: [PATCH 55/58] vscode: 1.104.1 -> 1.104.2 --- pkgs/applications/editors/vscode/vscode.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix index cb741ef730fd..25663ca9e60c 100644 --- a/pkgs/applications/editors/vscode/vscode.nix +++ b/pkgs/applications/editors/vscode/vscode.nix @@ -36,20 +36,20 @@ let hash = { - x86_64-linux = "sha256-y0Bjrxmp7DYV4iUDnQGC0aIYrQNM3oPicajbeVuEtqc="; - x86_64-darwin = "sha256-6/BiMvVp955PW0hz22+NzdvC+IC+pNYjz25n3Op6V/k="; - aarch64-linux = "sha256-DF8QnqvVFqNyxjrphR6NaUXOKr8Koe34NitRa5mTBYs="; - aarch64-darwin = "sha256-v+m8AMpPph6CztUCjneBKC9txEOAKvcHsAXr/8KjIeA="; - armv7l-linux = "sha256-py1FZYd77YVNloQbXm36ou4HGowmteY8HzOiUioGD8Y="; + x86_64-linux = "sha256-0zgsR0nk9zsOeEcKhrmAFbAhvKKFNsC8fXjCnxFcndE="; + x86_64-darwin = "sha256-4+3T3axXNfePEkevhLwRPeqoxKs2OTL7B7TiV2BxZWc="; + aarch64-linux = "sha256-iGLtuVFA5NphiF1PU9Pus/nZ8PyCNNzDOpcQ+utYE2I="; + aarch64-darwin = "sha256-E4BopxbqH1lg1Q2NlyWjH8jytabiv5y4hG5ZJW4nqzs="; + armv7l-linux = "sha256-YIidKSsqK3DSAfPd7O1pbft1C/ny/iB+CFbR/T9u7L8="; } .${system} or throwSystem; # Please backport all compatible updates to the stable release. # This is important for the extension ecosystem. - version = "1.104.1"; + version = "1.104.2"; # This is used for VS Code - Remote SSH test - rev = "0f0d87fa9e96c856c5212fc86db137ac0d783365"; + rev = "e3a5acfb517a443235981655413d566533107e92"; in callPackage ./generic.nix { pname = "vscode" + lib.optionalString isInsiders "-insiders"; @@ -82,7 +82,7 @@ callPackage ./generic.nix { src = fetchurl { name = "vscode-server-${rev}.tar.gz"; url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable"; - hash = "sha256-o0O/WDH+hr3R9np+WPLJo+/nIVBRjP8H2JVwa8volfg="; + hash = "sha256-Tz1P8eGokG+8thao9dRllAdTxvllhfOEDKH9lC2QwB0="; }; stdenv = stdenvNoCC; }; From 7cc7c1ec3b24f6fbc5f498603ab0f4bae17ea299 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 1 Oct 2025 10:01:55 +0000 Subject: [PATCH 56/58] python3Packages.databricks-sdk: 0.65.0 -> 0.67.0 --- pkgs/development/python-modules/databricks-sdk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/databricks-sdk/default.nix b/pkgs/development/python-modules/databricks-sdk/default.nix index 3e4c205684f6..fcd5efe78395 100644 --- a/pkgs/development/python-modules/databricks-sdk/default.nix +++ b/pkgs/development/python-modules/databricks-sdk/default.nix @@ -21,14 +21,14 @@ buildPythonPackage rec { pname = "databricks-sdk"; - version = "0.65.0"; + version = "0.67.0"; pyproject = true; src = fetchFromGitHub { owner = "databricks"; repo = "databricks-sdk-py"; tag = "v${version}"; - hash = "sha256-57qaTymMOkEJ+DzBDshhMoCJQk1UqJ796mv5uTOkUDw="; + hash = "sha256-3UGPB3KEO7M4QFYiniU4hcaOUmCMq3vW4yBIxDUhHLk="; }; build-system = [ From 8f73592c7a1fc3c31634ea174ec95dc0d21152f3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 1 Oct 2025 10:14:54 +0000 Subject: [PATCH 57/58] gale: 1.9.7 -> 1.10.0 --- pkgs/by-name/ga/gale/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ga/gale/package.nix b/pkgs/by-name/ga/gale/package.nix index 124107d22a61..63674e57902b 100644 --- a/pkgs/by-name/ga/gale/package.nix +++ b/pkgs/by-name/ga/gale/package.nix @@ -20,13 +20,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "gale"; - version = "1.9.7"; + version = "1.10.0"; src = fetchFromGitHub { owner = "Kesomannen"; repo = "gale"; tag = finalAttrs.version; - hash = "sha256-XEc8h7A1q+WfPl2HojFt2oIlAnNswq3X0o6jMZrEjCQ="; + hash = "sha256-SnPYuMYdoY69CWMztuDxw0ohRDU2uECNhBs46hLg+eA="; }; postPatch = '' @@ -36,13 +36,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pnpmDeps = pnpm_10.fetchDeps { inherit (finalAttrs) pname version src; fetcherVersion = 1; - hash = "sha256-QQXP/x7AjDtUpe6h+pC6vUsIAptv1kN/1MJZjHAIdMo="; + hash = "sha256-DYhPe59qfsSjyMIN31RL0mrHfmE6/I1SF+XutettkO8="; }; cargoRoot = "src-tauri"; buildAndTestSubdir = finalAttrs.cargoRoot; - cargoHash = "sha256-zaTbb1+JK9mA9Tvnatw8lse5PBhKknDM48mN/sWLQ6w="; + cargoHash = "sha256-tWQRYD6hMU7cvtelGryLdpfoEnUKYt7yYNwHTFZ4pLw="; nativeBuildInputs = [ jq From 91c1aa5bc75337801278e743da81f5100d1d640d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 1 Oct 2025 10:50:06 +0000 Subject: [PATCH 58/58] libretro.snes9x: 0-unstable-2025-09-18 -> 0-unstable-2025-09-24 --- pkgs/applications/emulators/libretro/cores/snes9x.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/snes9x.nix b/pkgs/applications/emulators/libretro/cores/snes9x.nix index effe46dde609..908f8094aacd 100644 --- a/pkgs/applications/emulators/libretro/cores/snes9x.nix +++ b/pkgs/applications/emulators/libretro/cores/snes9x.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "snes9x"; - version = "0-unstable-2025-09-18"; + version = "0-unstable-2025-09-24"; src = fetchFromGitHub { owner = "snes9xgit"; repo = "snes9x"; - rev = "b43619754a595ec6feb089a387638118037ef74b"; - hash = "sha256-b6YC4qisHPdJtM1IEsrwUjCBZ6JElZuKvakApOLGGvY="; + rev = "94115094ead4da7342bd638bb4cc293ae7d297c0"; + hash = "sha256-tXSQursZcV/gsLlydVRD1KUR8t2zztfby7cDno1xtHc="; }; makefile = "Makefile";