From 237b3cb5ce61562e55fdac015aa2da8a10dd8a1d Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Fri, 17 Oct 2025 16:09:51 +0100 Subject: [PATCH 01/16] testers.testEqualContents: add checkMetadata option Allows ignoring file metadata differences (permissions, ownership) when comparing files. This is especially useful on darwin, where we often run into subtle issues like: -Device: 1,23 Access: (0444/-r--r--r--) Uid: ( 0/ root) Gid: ( 0/ wheel) +Device: 1,23 Access: (0444/-r--r--r--) Uid: ( 0/ root) Gid: ( 350/ nixbld) --- doc/build-helpers/testers.chapter.md | 5 +++++ pkgs/build-support/testers/default.nix | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/build-helpers/testers.chapter.md b/doc/build-helpers/testers.chapter.md index e4e8ddbb2c17..49407c6e9b8e 100644 --- a/doc/build-helpers/testers.chapter.md +++ b/doc/build-helpers/testers.chapter.md @@ -421,6 +421,11 @@ Check that two paths have the same contents. : A message that is printed last if the file system object contents at the two paths don't match exactly. +`checkMetadata` (boolean) + +: Whether to fail on metadata differences, such as permissions or ownership. + Defaults to `true`. + :::{.example #ex-testEqualContents-toyexample} # Check that two paths have the same contents diff --git a/pkgs/build-support/testers/default.nix b/pkgs/build-support/testers/default.nix index c35e03cada76..ac31c22ab4a2 100644 --- a/pkgs/build-support/testers/default.nix +++ b/pkgs/build-support/testers/default.nix @@ -57,6 +57,7 @@ actual, expected, postFailureMessage ? null, + checkMetadata ? true, }: runCommand "equal-contents-${lib.strings.toLower assertion}" { @@ -66,12 +67,13 @@ expected postFailureMessage ; + excludeMetadata = if checkMetadata then "no" else "yes"; nativeBuildInputs = [ diffoscopeMinimal ]; } '' echo "Checking:" printf '%s\n' "$assertion" - if ! diffoscope --no-progress --text-color=always --exclude-directory-metadata=no -- "$actual" "$expected" + if ! diffoscope --no-progress --text-color=always --exclude-directory-metadata="$excludeMetadata" -- "$actual" "$expected" then echo echo 'Contents must be equal, but were not!' From 23cee17542d45203b11044c5b926bc66b91f0d2d Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 18 Oct 2025 03:26:14 +0000 Subject: [PATCH 02/16] xfce.thunar: 4.20.5 -> 4.20.6 https://gitlab.xfce.org/xfce/thunar/-/compare/thunar-4.20.5...thunar-4.20.6 --- pkgs/desktops/xfce/core/thunar/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix index 583506b325df..1433a9e18a11 100644 --- a/pkgs/desktops/xfce/core/thunar/default.nix +++ b/pkgs/desktops/xfce/core/thunar/default.nix @@ -23,9 +23,9 @@ mkXfceDerivation { category = "xfce"; pname = "thunar"; - version = "4.20.5"; + version = "4.20.6"; - sha256 = "sha256-Q8gzXRR2ZO98rbHhxnf472d8rGOLqEv7WP6LDONRgS0="; + sha256 = "sha256-Ll1mJEkkxYGASWQ2z7GRiubNjggqeHXzgGSXQK+10qs="; nativeBuildInputs = [ docbook_xsl From 470de93aff63ee711cbec22895f8e468f945b38d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 18 Oct 2025 11:04:20 +0000 Subject: [PATCH 03/16] ruffle: 0.2.0-nightly-2025-10-12 -> 0.2.0-nightly-2025-10-18 --- pkgs/by-name/ru/ruffle/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ru/ruffle/package.nix b/pkgs/by-name/ru/ruffle/package.nix index 88f21c5a448e..2350c2d3f4c2 100644 --- a/pkgs/by-name/ru/ruffle/package.nix +++ b/pkgs/by-name/ru/ruffle/package.nix @@ -27,13 +27,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "ruffle"; - version = "0.2.0-nightly-2025-10-12"; + version = "0.2.0-nightly-2025-10-18"; src = fetchFromGitHub { owner = "ruffle-rs"; repo = "ruffle"; tag = lib.strings.removePrefix "0.2.0-" finalAttrs.version; - hash = "sha256-QJ1Mz1CR/2NIKiNA7DfjYrurHAtQxvZephJQCLxbmwc="; + hash = "sha256-rFgaquwcQK2U+1qSlxI+VT5OJPftbj4pcMJih71Gl2A="; }; postPatch = @@ -49,7 +49,7 @@ rustPlatform.buildRustPackage (finalAttrs: { "OpenH264Version(${major}, ${minor}, ${patch})" ''; - cargoHash = "sha256-zFmGusWYN0PJ+3Q89JMixehWYigYqmWZCG+lgyLkUhE="; + cargoHash = "sha256-6Q3KBrrfL50AkFkDuxXWKqPtc2ClI3j1WpE/x9ASOJk="; cargoBuildFlags = lib.optional withRuffleTools "--workspace"; env = From 158a72f4b61bc007478724cc7984d7c6ba796fd5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 18 Oct 2025 16:06:04 +0000 Subject: [PATCH 04/16] kdePackages.qodeassist-plugin: 0.7.0 -> 0.7.1 --- pkgs/development/libraries/qodeassist-plugin/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qodeassist-plugin/default.nix b/pkgs/development/libraries/qodeassist-plugin/default.nix index 2716099bf24e..edd9bf28dae0 100644 --- a/pkgs/development/libraries/qodeassist-plugin/default.nix +++ b/pkgs/development/libraries/qodeassist-plugin/default.nix @@ -16,13 +16,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "qodeassist-plugin"; - version = "0.7.0"; + version = "0.7.1"; src = fetchFromGitHub { owner = "Palm1r"; repo = "QodeAssist"; tag = "v${finalAttrs.version}"; - hash = "sha256-XzxuElQQxR2dK7KD0QHUAb7qyizUBhPvGDv3OvnAQjc="; + hash = "sha256-QDs9li8WH27aITe48cxRWaqd0mFCmZcBeb34LadeGmk="; }; dontWrapQtApps = true; From cef2484856ecc76eac991d6aa98f1929a4ae45e7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 18 Oct 2025 16:11:55 +0000 Subject: [PATCH 05/16] files-cli: 2.15.111 -> 2.15.121 --- pkgs/by-name/fi/files-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/fi/files-cli/package.nix b/pkgs/by-name/fi/files-cli/package.nix index 765f6860e3b7..19649c847950 100644 --- a/pkgs/by-name/fi/files-cli/package.nix +++ b/pkgs/by-name/fi/files-cli/package.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "files-cli"; - version = "2.15.111"; + version = "2.15.121"; src = fetchFromGitHub { repo = "files-cli"; owner = "files-com"; rev = "v${version}"; - hash = "sha256-M6SVLloMn/6AmIpfZ0Ib0yUQ33hC9MFjbFTxOlN7kqs="; + hash = "sha256-Lf+kWLmCMbP0FIPxmtroakv1RayqTqMrFhYpVBoHqiA="; }; - vendorHash = "sha256-fxh9YOO0xnYo04HwJyctspipSXgWcDoUu40UwhDf8Uk="; + vendorHash = "sha256-GygNBB7ydaq11vU2wY9i/ZHmmLomMDKr4cJSdpcEoxk="; ldflags = [ "-s" From 38e68c427d900dfd09da502cef3eb6625f1aff47 Mon Sep 17 00:00:00 2001 From: Paul Meyer Date: Sat, 18 Oct 2025 18:22:38 +0200 Subject: [PATCH 06/16] gdu: fix test skipping This wasn't working as intended, as the skip flag was added twice, which caused the second occurrence to overwrite the first, and the build to fail on aarch64-linux, see https://hydra.nixos.org/build/308978158/nixlog/1 Signed-off-by: Paul Meyer --- pkgs/by-name/gd/gdu/package.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/gd/gdu/package.nix b/pkgs/by-name/gd/gdu/package.nix index 39d4e677d915..22594fac7452 100644 --- a/pkgs/by-name/gd/gdu/package.nix +++ b/pkgs/by-name/gd/gdu/package.nix @@ -42,11 +42,14 @@ buildGoModule (finalAttrs: { doCheck = !stdenv.hostPlatform.isDarwin; - checkFlags = [ - # https://github.com/dundee/gdu/issues/371 - "-skip=TestStoredAnalyzer" - "-skip=TestAnalyzePathWithIgnoring" - ]; + checkFlags = + let + skippedTests = [ + "TestStoredAnalyzer" # https://github.com/dundee/gdu/issues/371 + "TestAnalyzePathWithIgnoring" + ]; + in + [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; doInstallCheck = true; From a94805f5eb94c15dfe92ac816ab9b63b0943bbec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sat, 18 Oct 2025 14:11:45 -0700 Subject: [PATCH 07/16] deltachat-desktop: 2.20.0 -> 2.22.0 Diff: https://github.com/deltachat/deltachat-desktop/compare/v2.20.0...v2.22.0 Changelog: https://github.com/deltachat/deltachat-desktop/blob/v2.22.0/CHANGELOG.md --- pkgs/by-name/de/deltachat-desktop/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/de/deltachat-desktop/package.nix b/pkgs/by-name/de/deltachat-desktop/package.nix index 420e9e7e6808..40d3e14f1e59 100644 --- a/pkgs/by-name/de/deltachat-desktop/package.nix +++ b/pkgs/by-name/de/deltachat-desktop/package.nix @@ -19,17 +19,17 @@ let deltachat-rpc-server' = deltachat-rpc-server.overrideAttrs rec { - version = "2.20.0"; + version = "2.22.0"; src = fetchFromGitHub { owner = "chatmail"; repo = "core"; tag = "v${version}"; - hash = "sha256-QPKy88c/GLeazGCjNYHj5kOxwiuvjJ/+pM4SQ4TZ1sw="; + hash = "sha256-DKqqdcG3C7/RF/wz2SqaiPUjZ/7vMFJTR5DIGTXjoTY="; }; cargoDeps = rustPlatform.fetchCargoVendor { pname = "chatmail-core"; inherit version src; - hash = "sha256-2Js4VQsXf1ApRq9Vf1xwX/1BXiFUQgykvofb2ykOdcc="; + hash = "sha256-x71vytk9ytIhHlRR0lDhDcIaDNJGDdPwb6fkB1SI+NQ="; }; }; electron = electron_37; @@ -37,19 +37,19 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "deltachat-desktop"; - version = "2.20.0"; + version = "2.22.0"; src = fetchFromGitHub { owner = "deltachat"; repo = "deltachat-desktop"; tag = "v${finalAttrs.version}"; - hash = "sha256-tzRk4IwMm3qDzQtGKezkiRbnNSF7EabMYMHXMrrDW8w="; + hash = "sha256-IEYfdA1rGg452pZVWW/XuIsNffyhAlI9qyGwcnksgAs="; }; pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) pname version src; fetcherVersion = 1; - hash = "sha256-423I4ZXekDyqIY39hEUo7/hLthb3gjnvQHnVknZQFnI="; + hash = "sha256-fEzp+nrfLakmtUsPef0HG6tZGn5/q+271YwVyBkFKJw="; }; nativeBuildInputs = [ From 242fc8ce1dae2301801b6a7df8625a873ebc5ff3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 18 Oct 2025 21:30:26 +0000 Subject: [PATCH 08/16] lux-cli: 0.18.2 -> 0.18.5 --- pkgs/by-name/lu/lux-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/lu/lux-cli/package.nix b/pkgs/by-name/lu/lux-cli/package.nix index 580eb7693df2..bc98bbf076a2 100644 --- a/pkgs/by-name/lu/lux-cli/package.nix +++ b/pkgs/by-name/lu/lux-cli/package.nix @@ -18,18 +18,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "lux-cli"; - version = "0.18.2"; + version = "0.18.5"; src = fetchFromGitHub { owner = "lumen-oss"; repo = "lux"; tag = "v${finalAttrs.version}"; - hash = "sha256-Lqw6U14fhkz4ZgSH0OBICvuj2ZJWo7p0dwhpn7szu2A="; + hash = "sha256-Ut9MSHl2eE4krf5yLpXdAxPARFuHP+cG8HlY7DqmETw="; }; buildAndTestSubdir = "lux-cli"; - cargoHash = "sha256-Dx6nmB8kmCKNzXVTROI+NIxvvCboACSOLUU1BCLnTUw="; + cargoHash = "sha256-I730Fq9F46aLGeEwMmbeOXIkFWNvskmBl+NuPDfx/ss="; nativeInstallCheckInputs = [ versionCheckHook From 549d1e89252b8c757e37eb0118d05efd69538a49 Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Fri, 17 Oct 2025 14:27:32 +0100 Subject: [PATCH 09/16] keymap-drawer: init tests Add some sanity tests to assert the package's exe can parse and draw keymaps. --- .../python-modules/keymap-drawer/default.nix | 8 ++ .../keymap-drawer/tests/default.nix | 89 +++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 pkgs/development/python-modules/keymap-drawer/tests/default.nix diff --git a/pkgs/development/python-modules/keymap-drawer/default.nix b/pkgs/development/python-modules/keymap-drawer/default.nix index fb6083a90802..fffc10aa8252 100644 --- a/pkgs/development/python-modules/keymap-drawer/default.nix +++ b/pkgs/development/python-modules/keymap-drawer/default.nix @@ -2,9 +2,11 @@ lib, buildPythonPackage, + callPackages, fetchFromGitHub, pythonOlder, + keymap-drawer, nix-update-script, pcpp, platformdirs, @@ -59,6 +61,12 @@ buildPythonPackage { versionCheckProgram = "${placeholder "out"}/bin/keymap"; versionCheckProgramArg = "--version"; + passthru.tests = callPackages ./tests { + # Explicitly pass the correctly scoped package. + # The top-level package will still resolve to itself, because the way + # `toPythonApplication` interacts with scopes is weird. + inherit keymap-drawer; + }; passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/development/python-modules/keymap-drawer/tests/default.nix b/pkgs/development/python-modules/keymap-drawer/tests/default.nix new file mode 100644 index 000000000000..7c94185c41f5 --- /dev/null +++ b/pkgs/development/python-modules/keymap-drawer/tests/default.nix @@ -0,0 +1,89 @@ +{ + lib, + fetchFromGitHub, + runCommand, + stdenv, + testers, + + keymap-drawer, + yamllint, +}: +let + runKeymapDrawer = + name: + runCommand "keymap-drawer-${name}" { + nativeBuildInputs = [ keymap-drawer ]; + }; + + MattSturgeon-example = fetchFromGitHub { + owner = "MattSturgeon"; + repo = "glove80-config"; + rev = "d55267dd26593037256b35a5d6ebba0f75541da5"; + hash = "sha256-MV6cNpgHBuaGvpu2aR1aBNMpwPnDqOSbGf+2ykxocP4="; + nonConeMode = true; + sparseCheckout = [ + "config" + "img" + ]; + }; + + # MattSturgeon's example requires MDI icons + mdi = fetchFromGitHub { + owner = "Templarian"; + repo = "MaterialDesign-SVG"; + tag = "v7.4.47"; + hash = "sha256-NoSSRT1ID38MT70IZ+7h/gMVCNsjNs3A2RX6ePGwuQ0="; + }; +in +{ + dump-config = runKeymapDrawer "dump-config" '' + keymap dump-config --output "$out" + + if [ ! -s "$out" ]; then + >&2 echo 'Expected `dump-config` to have content.' + exit 1 + fi + + ${lib.getExe yamllint} --strict --config-data relaxed "$out" + ''; + + parse-zmk = testers.testEqualContents { + assertion = "keymap parse --zmk-keymap produces expected YAML"; + expected = "${MattSturgeon-example}/img/glove80.yaml"; + actual = runKeymapDrawer "parse" '' + keymap \ + --config ${MattSturgeon-example}/config/keymap_drawer.yaml \ + parse --zmk-keymap ${MattSturgeon-example}/config/glove80.keymap \ + --output "$out" + ''; + checkMetadata = stdenv.buildPlatform.isLinux; + }; + + draw = testers.testEqualContents { + assertion = "keymap draw produces expected SVG"; + expected = "${MattSturgeon-example}/img/glove80.svg"; + actual = runKeymapDrawer "draw" '' + ${lib.optionalString stdenv.buildPlatform.isLinux '' + export XDG_CACHE_HOME="$PWD/cache" + glyphs="$XDG_CACHE_HOME/keymap-drawer/glyphs" + ''} + ${lib.optionalString stdenv.buildPlatform.isDarwin '' + export HOME="$PWD/home" + glyphs="$HOME/Library/Caches/keymap-drawer/glyphs" + ''} + mkdir -p "$glyphs" + + # Unpack MDI icons into the cache + for file in ${mdi}/svg/* + do + ln -s "$file" "$glyphs/mdi:$(basename "$file")" + done + + keymap \ + --config ${MattSturgeon-example}/config/keymap_drawer.yaml \ + draw ${MattSturgeon-example}/img/glove80.yaml \ + --output "$out" + ''; + checkMetadata = stdenv.buildPlatform.isLinux; + }; +} From f69b6b89fb6f493e74bc6558aada338c1304f1fd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 19 Oct 2025 00:46:39 +0000 Subject: [PATCH 10/16] fetchmail: 6.5.6 -> 6.5.7 --- pkgs/applications/misc/fetchmail/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix index a7ff3c629923..f25cc0a69017 100644 --- a/pkgs/applications/misc/fetchmail/default.nix +++ b/pkgs/applications/misc/fetchmail/default.nix @@ -9,11 +9,11 @@ stdenv.mkDerivation rec { pname = "fetchmail"; - version = "6.5.6"; + version = "6.5.7"; src = fetchurl { url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz"; - hash = "sha256-7BDg4OqkFzE1WTee3nbHRhR2bYOLOUcLZkdIY6ppDas="; + hash = "sha256-c+trHUIbWYaGatSmt3fBFAo5AFKYxjv4R95TeXbL+9s="; }; buildInputs = [ From e591b7342d50e169eab3b955c5b6e14bb6188008 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 19 Oct 2025 01:24:43 +0000 Subject: [PATCH 11/16] vimPlugins.avante-nvim: 0.0.27-unstable-2025-10-12 -> 0.0.27-unstable-2025-10-18 --- .../vim/plugins/non-generated/avante-nvim/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/non-generated/avante-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/avante-nvim/default.nix index daf7f0cfd8f5..492b9c5f6a5b 100644 --- a/pkgs/applications/editors/vim/plugins/non-generated/avante-nvim/default.nix +++ b/pkgs/applications/editors/vim/plugins/non-generated/avante-nvim/default.nix @@ -12,12 +12,12 @@ pkgs, }: let - version = "0.0.27-unstable-2025-10-12"; + version = "0.0.27-unstable-2025-10-18"; src = fetchFromGitHub { owner = "yetone"; repo = "avante.nvim"; - rev = "f092bb3ec0acf87b838e082209b6a7eddcbf5940"; - hash = "sha256-zKDp9It/VgUD8BN5ktTmfbQX0s3SBo20T8no8nwsyfY="; + rev = "cc7a41262e4dc38003b7578c3553a75c0ec4b8d2"; + hash = "sha256-L6fOo3OPfMtClmyGW1Bn7YDJtuTKO6F66D1oYsii5so="; }; avante-nvim-lib = rustPlatform.buildRustPackage { pname = "avante-nvim-lib"; From 65e83db1d8cdad1b711805e89790d6475432d780 Mon Sep 17 00:00:00 2001 From: Alexis Williams Date: Thu, 16 Oct 2025 19:05:04 -0700 Subject: [PATCH 12/16] python3Packages.uhashring: init at 2.4 --- .../python-modules/uhashring/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/uhashring/default.nix diff --git a/pkgs/development/python-modules/uhashring/default.nix b/pkgs/development/python-modules/uhashring/default.nix new file mode 100644 index 000000000000..513dd2ddab72 --- /dev/null +++ b/pkgs/development/python-modules/uhashring/default.nix @@ -0,0 +1,41 @@ +{ + lib, + buildPythonPackage, + pytestCheckHook, + fetchFromGitHub, + hatchling, + python-memcached, +}: +buildPythonPackage rec { + pname = "uhashring"; + version = "2.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ultrabug"; + repo = "uhashring"; + tag = version; + hash = "sha256-6zNPExbcwTUne0lT8V6xp2Gf6J1VgG7Q93qizVOAc+k="; + }; + + build-system = [ + hatchling + ]; + + pythonImportsCheck = [ + "uhashring" + ]; + + nativeCheckInputs = [ + pytestCheckHook + python-memcached + ]; + + meta = { + description = "Full featured consistent hashing python library compatible with ketama"; + homepage = "https://github.com/ultrabug/uhashring"; + changelog = "https://github.com/ultrabug/uhashring/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ typedrat ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4cd9c7b53118..e19611edb570 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -19454,6 +19454,8 @@ self: super: with self; { uharfbuzz = callPackage ../development/python-modules/uharfbuzz { }; + uhashring = callPackage ../development/python-modules/uhashring { }; + uhi = callPackage ../development/python-modules/uhi { }; uiprotect = callPackage ../development/python-modules/uiprotect { }; From f6da335e9b5fdb25559936990e7cae6749be0f92 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 19 Oct 2025 00:25:26 +0000 Subject: [PATCH 13/16] python3Packages.castepxbin: 0.3.0 -> 0.3.1 --- .../development/python-modules/castepxbin/default.nix | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/pkgs/development/python-modules/castepxbin/default.nix b/pkgs/development/python-modules/castepxbin/default.nix index 72c6e4513478..04695c2ca3aa 100644 --- a/pkgs/development/python-modules/castepxbin/default.nix +++ b/pkgs/development/python-modules/castepxbin/default.nix @@ -1,7 +1,6 @@ { lib, buildPythonPackage, - pythonOlder, fetchFromGitHub, flit-core, numpy, @@ -11,24 +10,18 @@ buildPythonPackage rec { pname = "castepxbin"; - version = "0.3.0"; + version = "0.3.1"; pyproject = true; - disabled = pythonOlder "3.7"; - src = fetchFromGitHub { owner = "zhubonan"; repo = "castepxbin"; tag = "v${version}"; - hash = "sha256-6kumVnm4PLRxuKO6Uz0iHzfYuu21hFC7EPRsc3S1kxE="; + hash = "sha256-M+OoKr9ODIp47gt64hf47A1PblyZpBzulKI7nEm8hdo="; }; build-system = [ flit-core ]; - pythonRelaxDeps = [ - "numpy" - ]; - dependencies = [ numpy scipy From 7e55fdeac9cc18ac5f406345c26563e3caf34548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sat, 18 Oct 2025 20:06:23 -0700 Subject: [PATCH 14/16] python3Packages.castepxbin: add meta.changelog --- pkgs/development/python-modules/castepxbin/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/castepxbin/default.nix b/pkgs/development/python-modules/castepxbin/default.nix index 04695c2ca3aa..71cc81c5c3bb 100644 --- a/pkgs/development/python-modules/castepxbin/default.nix +++ b/pkgs/development/python-modules/castepxbin/default.nix @@ -29,10 +29,11 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook ]; - meta = with lib; { + meta = { + changelog = "https://github.com/zhubonan/castepxbin/releases/tag/${src.tag}"; description = "Collection of readers for CASTEP binary outputs"; homepage = "https://github.com/zhubonan/castepxbin"; - license = licenses.mit; - maintainers = with maintainers; [ dotlambda ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ dotlambda ]; }; } From 0bd2e2737cc9381cb83b273415e531c8cdc29981 Mon Sep 17 00:00:00 2001 From: Marien Zwart Date: Fri, 17 Oct 2025 20:57:15 +1100 Subject: [PATCH 15/16] emacsPackages.bpr: fix future preBuild We conditionally set `preBuild` depending on version. For a new enough version of the `bpr` package, we would set `preBuild` to the `previousAttrs` attrset. This looks like a copy/paste error, so fix it. This code is currently not reachable: it would need a newer version of `bpr`, which has had no changes upstream for several years. --- .../editors/emacs/elisp-packages/melpa-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix index 246786989209..982ff9759066 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix @@ -897,7 +897,7 @@ let rm --verbose --force test-bpr.el '' else - previousAttrs; + previousAttrs.preBuild or ""; } ); From 17cb17c7009b030aef05ac855f6e85d2a6cfce76 Mon Sep 17 00:00:00 2001 From: Marien Zwart Date: Fri, 17 Oct 2025 20:55:50 +1100 Subject: [PATCH 16/16] emacsPackages: don't set attributes to null Depending on the version of the package from MELPA, nixpkgs can set attributes like `preBuild` or `patches` to `null`. `mkDerivation` filters out `null`, so this has the desirable effect of not unnecessarily changing the actual derivation. But it is inconvenient when using `overrideAttrs`: it breaks the common pattern of `(previousAttrs.preBuild or "") + ''...''` (also used elsewhere in the files this commit changes), which will fail to coerce `null` to a string or list to append to. Fix this everywhere attributes are set to null, by defaulting to `""` or `[ ]` instead. We cannot set the attribute conditionally, because the attributes names returned by `overrideAttrs` cannot depend on `finalAttrs` (only the values can). This changes some helpers that are (indirectly) used by several packages, but that part of the change is effectively a noop, because the attributes involved are always set (either by the helper or on the original derivation). --- .../emacs/elisp-packages/elpa-common-overrides.nix | 4 ++-- .../emacs/elisp-packages/lib-override-helper.nix | 4 ++-- .../emacs/elisp-packages/melpa-packages.nix | 14 +++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-common-overrides.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-common-overrides.nix index 333465e93c29..9a473c284415 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/elpa-common-overrides.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-common-overrides.nix @@ -116,7 +116,7 @@ in }) ] else - previousAttrs.patches or null; + previousAttrs.patches or [ ]; preBuild = if applyOrgRoamMissingPatch then previousAttrs.preBuild or "" @@ -129,7 +129,7 @@ in popd '' else - previousAttrs.preBuild or null; + previousAttrs.preBuild or ""; } ); diff --git a/pkgs/applications/editors/emacs/elisp-packages/lib-override-helper.nix b/pkgs/applications/editors/emacs/elisp-packages/lib-override-helper.nix index 0d44878b480c..91a20bd3647e 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/lib-override-helper.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/lib-override-helper.nix @@ -18,7 +18,7 @@ rec { if predicate finalAttrs previousAttrs then previousAttrs.packageRequires or [ ] ++ packageRequires else - previousAttrs.packageRequires or null; + previousAttrs.packageRequires or [ ]; } ); @@ -89,7 +89,7 @@ rec { if predicate finalAttrs previousAttrs then previousAttrs.nativeBuildInputs or [ ] ++ [ pkgs.writableTmpDirAsHomeHook ] else - previousAttrs.nativeBuildInputs or null; + previousAttrs.nativeBuildInputs or [ ]; } ); } diff --git a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix index 982ff9759066..038cc7024b6e 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix @@ -830,7 +830,7 @@ let rm --recursive --verbose etc/elisp/screenshot '' else - previousAttrs.preBuild or null; + previousAttrs.preBuild or ""; } ); @@ -991,7 +991,7 @@ let }) ] else - previousAttrs.patches or null; + previousAttrs.patches or [ ]; } ) ); @@ -1055,7 +1055,7 @@ let '' + previousAttrs.preBuild or "" else - previousAttrs.preBuild or null; + previousAttrs.preBuild or ""; } ); @@ -1221,7 +1221,7 @@ let rm --verbose packages/javascript/test-suppport.el '' else - previousAttrs.preBuild or null; + previousAttrs.preBuild or ""; } ); @@ -1392,7 +1392,7 @@ let }) ] else - previousAttrs.patches or null; + previousAttrs.patches or [ ]; } ); @@ -1543,7 +1543,7 @@ let }) ] else - previousAttrs.patches or null; + previousAttrs.patches or [ ]; } ); @@ -1561,7 +1561,7 @@ let '' + previousAttrs.preBuild or "" else - previousAttrs.preBuild or null; + previousAttrs.preBuild or ""; } );