From 9d5859c1249fea128d39b621ae0c5520ed23a5ca Mon Sep 17 00:00:00 2001 From: Malix Date: Fri, 12 Sep 2025 20:35:18 +0200 Subject: [PATCH 001/122] nixos/pipewire: pin the linked docs --- nixos/modules/services/desktops/pipewire/pipewire.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/desktops/pipewire/pipewire.nix b/nixos/modules/services/desktops/pipewire/pipewire.nix index dca78ef6d301..db3c2f27e16d 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire.nix +++ b/nixos/modules/services/desktops/pipewire/pipewire.nix @@ -144,7 +144,7 @@ in Enabling system-wide PipeWire is however not recommended and disabled by default according to - https://github.com/PipeWire/pipewire/blob/master/NEWS + https://github.com/PipeWire/pipewire/blob/0.3.11/NEWS#L14-L16 ''; }; From 8cbbb07d014822e6e0144cb9cfdfd257abe2e19b Mon Sep 17 00:00:00 2001 From: mahmoud Date: Tue, 30 Dec 2025 08:38:14 -0800 Subject: [PATCH 002/122] pixelorama: 1.1.5 -> 1.1.8 --- pkgs/by-name/pi/pixelorama/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pi/pixelorama/package.nix b/pkgs/by-name/pi/pixelorama/package.nix index 6d3063de2812..4bfcc81eea7c 100644 --- a/pkgs/by-name/pi/pixelorama/package.nix +++ b/pkgs/by-name/pi/pixelorama/package.nix @@ -2,7 +2,7 @@ lib, stdenv, fetchFromGitHub, - godot_4_4, + godot_4_5, nix-update-script, }: @@ -16,17 +16,17 @@ let presets.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - godot = godot_4_4; + godot = godot_4_5; in stdenv.mkDerivation (finalAttrs: { pname = "pixelorama"; - version = "1.1.5"; + version = "1.1.8"; src = fetchFromGitHub { owner = "Orama-Interactive"; repo = "Pixelorama"; rev = "v${finalAttrs.version}"; - hash = "sha256-5ODSGZM39FO+6tTLoosnrf5ngh+fSHpNsphTgjlux48="; + hash = "sha256-21DNwr5D8Bl2fkMnOtyB3tZrYS/1yZAxo9OkCqV+SYs="; }; strictDeps = true; From ac2a607d711c840b83e22b4e5db00e475444f267 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Wed, 21 Jan 2026 17:47:41 +0100 Subject: [PATCH 003/122] nixos/tuwunel: set systemd service type to notify tuwunel uses service manager notification to signal readiness and allow configuration reloading. --- nixos/modules/services/matrix/tuwunel.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/services/matrix/tuwunel.nix b/nixos/modules/services/matrix/tuwunel.nix index b3a66017734c..1c760c6293cb 100644 --- a/nixos/modules/services/matrix/tuwunel.nix +++ b/nixos/modules/services/matrix/tuwunel.nix @@ -216,6 +216,8 @@ in startLimitBurst = 5; startLimitIntervalSec = 60; serviceConfig = { + Type = "notify"; + DynamicUser = true; User = cfg.user; Group = cfg.group; From 4624d62e93ccbb39e35316149081b66c7a58f0da Mon Sep 17 00:00:00 2001 From: Samuel Rounce Date: Fri, 23 Jan 2026 02:04:24 +0000 Subject: [PATCH 004/122] gerbv: Add patch to fix build --- ...0001-fix-invalid-function-signatures.patch | 93 +++++++++++++++++++ .../science/electronics/gerbv/default.nix | 4 + 2 files changed, 97 insertions(+) create mode 100644 pkgs/applications/science/electronics/gerbv/0001-fix-invalid-function-signatures.patch diff --git a/pkgs/applications/science/electronics/gerbv/0001-fix-invalid-function-signatures.patch b/pkgs/applications/science/electronics/gerbv/0001-fix-invalid-function-signatures.patch new file mode 100644 index 000000000000..4bd435a9fa9b --- /dev/null +++ b/pkgs/applications/science/electronics/gerbv/0001-fix-invalid-function-signatures.patch @@ -0,0 +1,93 @@ +From ef744d7b8a663f5b9a3e40233eccf8243773e864 Mon Sep 17 00:00:00 2001 +From: Samuel Rounce +Date: Fri, 23 Jan 2026 01:55:55 +0000 +Subject: [PATCH] fix invalid function signatures + +--- + src/attribute.c | 4 ++-- + src/callbacks.c | 12 ++++++------ + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/attribute.c b/src/attribute.c +index 67a622d..6d207bb 100644 +--- a/src/attribute.c ++++ b/src/attribute.c +@@ -193,7 +193,7 @@ static void + ghid_spin_button (GtkWidget * box, GtkWidget ** spin_button, gfloat value, + gfloat low, gfloat high, gfloat step0, gfloat step1, + gint digits, gint width, +- void (*cb_func) (), gpointer data, gboolean right_align, ++ void (*cb_func) (GtkWidget *, void *), gpointer data, gboolean right_align, + gchar * string) + { + GtkWidget *hbox = NULL, *label, *spin_but; +@@ -248,7 +248,7 @@ ghid_check_button_connected (GtkWidget * box, + gboolean expand, + gboolean fill, + gint pad, +- void (*cb_func) (), ++ void (*cb_func) (GtkToggleButton *, gboolean *), + gpointer data, gchar * string) + { + GtkWidget *b; +diff --git a/src/callbacks.c b/src/callbacks.c +index 6b4c90e..9428bde 100644 +--- a/src/callbacks.c ++++ b/src/callbacks.c +@@ -1066,7 +1066,7 @@ callbacks_toggle_layer_visibility_activate (GtkMenuItem *menuitem, gpointer user + if (screenRenderInfo.renderType <= GERBV_RENDER_TYPE_GDK_XOR) { + render_refresh_rendered_image_on_screen (); + } else { +- render_recreate_composite_surface (screen.drawing_area); ++ render_recreate_composite_surface (); + callbacks_force_expose_event_for_screen (); + } + } +@@ -2185,7 +2185,7 @@ callbacks_layer_tree_visibility_toggled (gint index) + if (screenRenderInfo.renderType <= GERBV_RENDER_TYPE_GDK_XOR) { + render_refresh_rendered_image_on_screen (); + } else { +- render_recreate_composite_surface (screen.drawing_area); ++ render_recreate_composite_surface (); + callbacks_force_expose_event_for_screen (); + } + } +@@ -2437,7 +2437,7 @@ callbacks_remove_layer_button_clicked (GtkButton *button, gpointer user_data) + if (screenRenderInfo.renderType <= GERBV_RENDER_TYPE_GDK_XOR) { + render_refresh_rendered_image_on_screen (); + } else { +- render_recreate_composite_surface (screen.drawing_area); ++ render_recreate_composite_surface (); + callbacks_force_expose_event_for_screen (); + } + } +@@ -2468,7 +2468,7 @@ callbacks_move_layer_down_button_clicked (GtkButton *button, gpointer user_da + render_refresh_rendered_image_on_screen (); + } + else { +- render_recreate_composite_surface (screen.drawing_area); ++ render_recreate_composite_surface (); + callbacks_force_expose_event_for_screen (); + } + } +@@ -2497,7 +2497,7 @@ callbacks_move_layer_up_button_clicked (GtkButton *button, gpointer user_data + render_refresh_rendered_image_on_screen(); + } + else { +- render_recreate_composite_surface (screen.drawing_area); ++ render_recreate_composite_surface (); + callbacks_force_expose_event_for_screen (); + } + } +@@ -2525,7 +2525,7 @@ void callbacks_layer_tree_row_inserted (GtkTreeModel *tree_model, GtkTreePath * + render_refresh_rendered_image_on_screen(); + } + else { +- render_recreate_composite_surface (screen.drawing_area); ++ render_recreate_composite_surface (); + callbacks_force_expose_event_for_screen (); + } + /* select the new line */ +-- +2.52.0 + diff --git a/pkgs/applications/science/electronics/gerbv/default.nix b/pkgs/applications/science/electronics/gerbv/default.nix index 2865286b8d19..46a51950cda4 100644 --- a/pkgs/applications/science/electronics/gerbv/default.nix +++ b/pkgs/applications/science/electronics/gerbv/default.nix @@ -23,6 +23,10 @@ stdenv.mkDerivation rec { hash = "sha256-sr48RGLYcMKuyH9p+5BhnR6QpKBvNOqqtRryw3+pbBk="; }; + patches = [ + ./0001-fix-invalid-function-signatures.patch + ]; + postPatch = '' sed -i '/AC_INIT/s/m4_esyscmd.*/${version}])/' configure.ac ''; From 96da21df3424171df23bb644cc7f65c150444562 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 2 Nov 2025 17:34:39 +0100 Subject: [PATCH 005/122] transmission_4: Unvendor fast-float --- pkgs/applications/networking/p2p/transmission/4.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/p2p/transmission/4.nix b/pkgs/applications/networking/p2p/transmission/4.nix index 95650f52160f..acf9ef6ef7bd 100644 --- a/pkgs/applications/networking/p2p/transmission/4.nix +++ b/pkgs/applications/networking/p2p/transmission/4.nix @@ -17,6 +17,7 @@ libutp, libdeflate, utf8cpp, + fast-float, fmt, libpsl, miniupnpc, @@ -109,12 +110,13 @@ stdenv.mkDerivation (finalAttrs: { # Excluding gtest since it is hardcoded to vendored version. The rest of the listed libraries are not packaged. pushd third-party for f in *; do - if [[ ! $f =~ googletest|wildmat|fast_float|wide-integer|jsonsl ]]; then + if [[ ! $f =~ googletest|wildmat|wide-integer|jsonsl ]]; then rm -r "$f" fi done popd rm \ + cmake/FindFastFloat.cmake \ cmake/FindFmt.cmake \ cmake/FindUtfCpp.cmake # Upstream uses different config file name. @@ -137,6 +139,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ curl dht + fast-float fmt libb64 libdeflate From 540d7365649d7de2a14725a0c270ef7af931a55a Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 2 Nov 2025 19:09:22 +0100 Subject: [PATCH 006/122] small: init at 0.2.2 --- pkgs/by-name/sm/small/package.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 pkgs/by-name/sm/small/package.nix diff --git a/pkgs/by-name/sm/small/package.nix b/pkgs/by-name/sm/small/package.nix new file mode 100644 index 000000000000..99aa50cff700 --- /dev/null +++ b/pkgs/by-name/sm/small/package.nix @@ -0,0 +1,30 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "small"; + version = "0.2.2"; + + src = fetchFromGitHub { + owner = "alandefreitas"; + repo = "small"; + tag = "v${finalAttrs.version}"; + hash = "sha256-+aPieFls2u2A57CKQz/q+ZqGjNyscDlWDryAp3VM1Lk="; + }; + + nativeBuildInputs = [ + cmake + ]; + + meta = { + description = "C++ small containers"; + homepage = "https://github.com/alandefreitas/small"; + license = lib.licenses.boost; + maintainers = [ ]; + platforms = lib.platforms.all; + }; +}) From a9bd863a5690d99bd3a5665cf3ab49ddf8a27a3b Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 2 Nov 2025 22:05:05 +0100 Subject: [PATCH 007/122] =?UTF-8?q?transmission=5F4:=204.0.6=20=E2=86=92?= =?UTF-8?q?=204.1.0-beta.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/transmission/transmission/releases/tag/4.1.0-beta.2 https://github.com/transmission/transmission/releases/tag/4.1.0-beta.1 --- .../networking/p2p/transmission/4.nix | 30 +++++++------------ 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/pkgs/applications/networking/p2p/transmission/4.nix b/pkgs/applications/networking/p2p/transmission/4.nix index acf9ef6ef7bd..1650fc0cfaaa 100644 --- a/pkgs/applications/networking/p2p/transmission/4.nix +++ b/pkgs/applications/networking/p2p/transmission/4.nix @@ -2,7 +2,6 @@ stdenv, lib, fetchFromGitHub, - fetchpatch2, cmake, pkg-config, python3, @@ -13,6 +12,8 @@ systemd, zlib, pcre, + rapidjson, + small, libb64, libutp, libdeflate, @@ -63,30 +64,16 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "transmission"; - version = "4.0.6"; + version = "4.1.0-beta.2"; src = fetchFromGitHub { owner = "transmission"; repo = "transmission"; rev = finalAttrs.version; - hash = "sha256-KBXvBFgrJ3njIoXrxHbHHLsiocwfd7Eba/GNI8uZA38="; + hash = "sha256-eGBlXgNQ/6Xt//9KPCNCKAL1jnk/2uRb4nM01Ha68dE="; fetchSubmodules = true; }; - patches = [ - (fetchpatch2 { - url = "https://github.com/transmission/transmission/commit/febfe49ca3ecab1a7142ecb34012c1f0b2bcdee8.patch?full_index=1"; - hash = "sha256-Ge0+AXf/ilfMieGBAdvvImY7JOb0gGIdeKprC37AROs="; - excludes = [ - # The submodule that we don't use (we use our miniupnp) - "third-party/miniupnp" - # Hunk fails for this one, but we don't care because we don't rely upon - # xcode definitions even for the Darwin build. - "Transmission.xcodeproj/project.pbxproj" - ]; - }) - ]; - outputs = [ "out" "apparmor" @@ -118,9 +105,12 @@ stdenv.mkDerivation (finalAttrs: { rm \ cmake/FindFastFloat.cmake \ cmake/FindFmt.cmake \ + cmake/FindRapidJSON.cmake \ + cmake/FindSmall.cmake \ cmake/FindUtfCpp.cmake # Upstream uses different config file name. - substituteInPlace CMakeLists.txt --replace 'find_package(UtfCpp)' 'find_package(utf8cpp)' + substituteInPlace CMakeLists.txt \ + --replace-fail 'find_package(UtfCpp)' 'find_package(utf8cpp)' # Use gettext even on Darwin substituteInPlace libtransmission/utils.h \ @@ -150,6 +140,8 @@ stdenv.mkDerivation (finalAttrs: { miniupnpc openssl pcre + rapidjson + small utf8cpp zlib ] @@ -196,7 +188,7 @@ stdenv.mkDerivation (finalAttrs: { include if exists } EOF - install -Dm0444 -t $out/share/icons ../qt/icons/transmission.svg + install -Dm0444 -t $out/share/icons ../icons/hicolor_apps_scalable_transmission.svg ''; passthru.tests = { From d3f0b664a1205089b8e97e2480e8a218a5e5cc8f Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Tue, 27 Jan 2026 10:10:36 +0100 Subject: [PATCH 008/122] =?UTF-8?q?transmission=5F4:=204.1.0-beta.2=20?= =?UTF-8?q?=E2=86=92=204.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/transmission/transmission/releases/tag/4.1.0-beta.3 https://github.com/transmission/transmission/releases/tag/4.1.0-beta.4 https://github.com/transmission/transmission/releases/tag/4.1.0-beta.5 https://github.com/transmission/transmission/releases/tag/4.1.0 --- pkgs/applications/networking/p2p/transmission/4.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/networking/p2p/transmission/4.nix b/pkgs/applications/networking/p2p/transmission/4.nix index 1650fc0cfaaa..98594f6bc78a 100644 --- a/pkgs/applications/networking/p2p/transmission/4.nix +++ b/pkgs/applications/networking/p2p/transmission/4.nix @@ -22,6 +22,7 @@ fmt, libpsl, miniupnpc, + crc32c, dht, libnatpmp, libiconv, @@ -64,13 +65,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "transmission"; - version = "4.1.0-beta.2"; + version = "4.1.0"; src = fetchFromGitHub { owner = "transmission"; repo = "transmission"; - rev = finalAttrs.version; - hash = "sha256-eGBlXgNQ/6Xt//9KPCNCKAL1jnk/2uRb4nM01Ha68dE="; + tag = finalAttrs.version; + hash = "sha256-glmwa06+jCyL9G2Rc58Yrvzo+/6Qu3bqwqy02RWgG64="; fetchSubmodules = true; }; @@ -111,10 +112,6 @@ stdenv.mkDerivation (finalAttrs: { # Upstream uses different config file name. substituteInPlace CMakeLists.txt \ --replace-fail 'find_package(UtfCpp)' 'find_package(utf8cpp)' - - # Use gettext even on Darwin - substituteInPlace libtransmission/utils.h \ - --replace-fail '#if defined(HAVE_GETTEXT) && !defined(__APPLE__)' '#if defined(HAVE_GETTEXT)' ''; nativeBuildInputs = [ @@ -128,6 +125,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ curl + crc32c dht fast-float fmt From f43e03027c26cdf49b0ddf9a9d952f9e9f4ede56 Mon Sep 17 00:00:00 2001 From: ilkecan Date: Sat, 31 Jan 2026 19:02:23 +0300 Subject: [PATCH 009/122] oscar: 1.6.1 -> 1.7.0 --- pkgs/by-name/os/oscar/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/os/oscar/package.nix b/pkgs/by-name/os/oscar/package.nix index ee5806eb40c3..c48c1c1abcab 100644 --- a/pkgs/by-name/os/oscar/package.nix +++ b/pkgs/by-name/os/oscar/package.nix @@ -8,13 +8,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "oscar"; - version = "1.6.1"; + version = "1.7.0"; src = fetchFromGitLab { owner = "CrimsonNape"; repo = "OSCAR-code"; rev = "v${finalAttrs.version}"; - hash = "sha256-idooSDmozMtf0akhbaQP1aBIv6Ae9UMhMmN1P48u7FE="; + hash = "sha256-4ekhhzX//u/UFrqIriPmhxdjEGJ1LXczZU2ZCmC+Uvo="; }; buildInputs = [ From 14ca6d303ceffe3cdacc045a0ba93f935eb408c2 Mon Sep 17 00:00:00 2001 From: Heno Pied <13500516+henopied@users.noreply.github.com> Date: Sun, 1 Feb 2026 02:29:58 -0600 Subject: [PATCH 010/122] mdbook-pandoc: 0.10.5 -> 0.11.0 Upgrades to mdbook v0.5. https://github.com/max-heller/mdbook-pandoc/releases/tag/v0.11.0 Also, tests seem to be passing, so they are reenabled. --- pkgs/by-name/md/mdbook-pandoc/package.nix | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/pkgs/by-name/md/mdbook-pandoc/package.nix b/pkgs/by-name/md/mdbook-pandoc/package.nix index 51d25f543b6d..c485436d90f8 100644 --- a/pkgs/by-name/md/mdbook-pandoc/package.nix +++ b/pkgs/by-name/md/mdbook-pandoc/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage rec { pname = "mdbook-pandoc"; - version = "0.10.5"; + version = "0.11.0"; src = fetchFromGitHub { owner = "max-heller"; repo = "mdbook-pandoc"; tag = "v${version}"; - hash = "sha256-ihKju9XXJy4JciuMLw4EcKhqSQjrBiUJDG0Rd5DbFdk="; + hash = "sha256-lLuw6CZPWHZ8DZz/lWTd+eEv688HcbkvsxLRvW38RKs="; }; - cargoHash = "sha256-SXXzGOBvfyLYhed5EMFUCzkFWoGEMM73PD3uWjkUcic="; + cargoHash = "sha256-TMFnF/aTJ2UrtnPZ4UOQke6dtUZbUxywf4JIX53mhKY="; nativeBuildInputs = [ makeWrapper ]; @@ -30,21 +30,6 @@ rustPlatform.buildRustPackage rec { texliveSmall ]; - checkFlags = - let - skippedTests = [ - # failing subtly - "tests::html::rust_reference_regression_nested_elements" - "tests::css::css" - "tests::definition_lists::dt_attributes" - "tests::html::attach_id_to_div_of_stripped_html_elements" - "tests::html::link_to_element_by_id" - "tests::images::images" - ] - ++ lib.optional stdenv.buildPlatform.isDarwin "pandoc::tests::five_item_deep_list"; - in - builtins.map (x: "--skip=" + x) skippedTests; - passthru = { wrapper = callPackage ./wrapper.nix { }; }; From 2cc3de7a161aa0f9d47be194344faf1ba0ab85b0 Mon Sep 17 00:00:00 2001 From: r-vdp Date: Sun, 1 Feb 2026 14:20:39 +0200 Subject: [PATCH 011/122] nixos/dysnomia: replace activation script See https://github.com/NixOS/nixpkgs/issues/475305 --- nixos/modules/services/misc/dysnomia.nix | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/nixos/modules/services/misc/dysnomia.nix b/nixos/modules/services/misc/dysnomia.nix index acdc9c55555f..2d25c974296b 100644 --- a/nixos/modules/services/misc/dysnomia.nix +++ b/nixos/modules/services/misc/dysnomia.nix @@ -288,15 +288,9 @@ in boot.extraSystemdUnitPaths = [ "/etc/systemd-mutable/system" ]; - system.activationScripts.dysnomia = '' - mkdir -p /etc/systemd-mutable/system - if [ ! -f /etc/systemd-mutable/system/dysnomia.target ] - then - ( echo "[Unit]" - echo "Description=Services that are activated and deactivated by Dysnomia" - echo "After=final.target" - ) > /etc/systemd-mutable/system/dysnomia.target - fi - ''; + systemd.targets.dysnomia = { + description = "Services that are activated and deactivated by Dysnomia"; + after = "final.target"; + }; }; } From 00d77c1a004cb0348da8600a4742f6dbf9e8fb76 Mon Sep 17 00:00:00 2001 From: ilkecan Date: Sat, 31 Jan 2026 19:10:12 +0300 Subject: [PATCH 012/122] oscar: add ilkecan to maintainers --- pkgs/by-name/os/oscar/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/os/oscar/package.nix b/pkgs/by-name/os/oscar/package.nix index c48c1c1abcab..c67308279db1 100644 --- a/pkgs/by-name/os/oscar/package.nix +++ b/pkgs/by-name/os/oscar/package.nix @@ -63,7 +63,10 @@ stdenv.mkDerivation (finalAttrs: { description = "Software for reviewing and exploring data produced by CPAP and related machines used in the treatment of sleep apnea"; mainProgram = "OSCAR"; license = lib.licenses.gpl3Only; - maintainers = [ lib.maintainers.roconnor ]; + maintainers = with lib.maintainers; [ + roconnor + ilkecan + ]; # Someone needs to create a suitable installPhase for Darwin and Windows. # See https://gitlab.com/pholy/OSCAR-code/-/tree/master/Building. platforms = lib.platforms.linux; From 4d03aa4c5d9f5b9092774568d5535d131850a2fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=B7=F0=90=91=91=F0=90=91=B4=F0=90=91=95=F0=90=91=91?= =?UTF-8?q?=F0=90=91=A9=F0=90=91=A4?= Date: Sun, 8 Feb 2026 01:27:23 +0700 Subject: [PATCH 013/122] nix-prefetch-fossil: use datetime instead of date like other prefetchers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The common name “date” in prefetch returns was a poor choice. --- .../build-support/fetchfossil/nix-prefetch-fossil | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkgs/build-support/fetchfossil/nix-prefetch-fossil b/pkgs/build-support/fetchfossil/nix-prefetch-fossil index 1f3c2636355e..b1bf33789914 100755 --- a/pkgs/build-support/fetchfossil/nix-prefetch-fossil +++ b/pkgs/build-support/fetchfossil/nix-prefetch-fossil @@ -89,10 +89,15 @@ fossil open "$tmpPath/fossil-clone.fossil" "$rev" >&2 # Get the actual commit hash and date checkoutLine=$(fossil info | grep ^checkout:) -# Remove 'checkout:' prefix and squeeze multiple spaces, then extract fields -actualRev=$(echo "$checkoutLine" | sed 's/^checkout:[[:space:]]*//' | tr -s ' ' | cut -d' ' -f1) -# Extract date (format: checkout: HASH YYYY-MM-DD HH:MM:SS UTC) -actualDate=$(echo "$checkoutLine" | sed 's/^checkout:[[:space:]]*//' | tr -s ' ' | cut -d' ' -f2) +# Remove 'checkout:' prefix & remove whitespace +checkoutData=$(echo "$checkoutLine" | sed 's/^checkout:[[:space:]]*//' | tr -s ' ') +# Extract fields: HASH YYYY-MM-DD HH:MM:SS UTC +actualRev=$(echo "$checkoutData" | cut -d' ' -f1) +# Get datetime parts +rawDate=$(echo "$checkoutData" | cut -d' ' -f2) +rawTime=$(echo "$checkoutData" | cut -d' ' -f3) +# Combine into ISO 8601 RFC 3339 format +actualDatetime="${rawDate}T${rawTime}Z" cd - >/dev/null # Remove the fossil checkout file @@ -118,7 +123,7 @@ cat < Date: Sun, 8 Feb 2026 01:31:00 +0700 Subject: [PATCH 014/122] nix-prefetch-fossil: add path to JSON output --- pkgs/build-support/fetchfossil/nix-prefetch-fossil | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/build-support/fetchfossil/nix-prefetch-fossil b/pkgs/build-support/fetchfossil/nix-prefetch-fossil index b1bf33789914..0e1ce4d9c060 100755 --- a/pkgs/build-support/fetchfossil/nix-prefetch-fossil +++ b/pkgs/build-support/fetchfossil/nix-prefetch-fossil @@ -124,6 +124,7 @@ cat < Date: Sun, 8 Feb 2026 01:31:15 +0700 Subject: [PATCH 015/122] nix-prefetch-fossil: expose just nix-prefetch-fossil @ top-level --- pkgs/top-level/all-packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3e48ec77acdb..53bac7ecb07b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12710,6 +12710,7 @@ with pkgs; nix-prefetch-bzr nix-prefetch-cvs nix-prefetch-darcs + nix-prefetch-fossil nix-prefetch-git nix-prefetch-hg nix-prefetch-pijul From 1a03b108dcf8fdf44ad2b6759a2f5379d1262614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=B7=F0=90=91=91=F0=90=91=B4=F0=90=91=95=F0=90=91=91?= =?UTF-8?q?=F0=90=91=A9=F0=90=91=A4?= Date: Sun, 8 Feb 2026 01:33:54 +0700 Subject: [PATCH 016/122] nix-prefetch-fossil: add missing dependencies --- pkgs/tools/package-management/nix-prefetch-scripts/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix index 64a94eb494d3..0a4164966b28 100644 --- a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix +++ b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix @@ -70,6 +70,8 @@ rec { mkPrefetchScript "fossil" ../../../build-support/fetchfossil/nix-prefetch-fossil [ fossil + gnugrep + gnused ]; nix-prefetch-git = mkPrefetchScript "git" ../../../build-support/fetchgit/nix-prefetch-git [ findutils From 2b115ef0cc14ebbc2ce66873873531eb7ba67b44 Mon Sep 17 00:00:00 2001 From: Jeremy Fleischman Date: Tue, 3 Feb 2026 11:58:06 -0800 Subject: [PATCH 017/122] doc: update references to `nixfmt-rfc-style` to `treefmt` This completes https://github.com/NixOS/nixpkgs/issues/425583. Rather than putting `nixfmt` everywhere, I opted to teach people to use `treefmt` instead. This is more correct, as we have formatting rules for non-nix files, and also may invoke `nixfmt` with non-default options. --- doc/languages-frameworks/python.section.md | 2 +- pkgs/applications/editors/vscode/extensions/README.md | 2 +- pkgs/by-name/ni/nixfmt-tree/package.nix | 2 +- pkgs/development/lisp-modules/import/main.lisp | 2 +- pkgs/development/lisp-modules/shell.nix | 8 +++++--- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index f7a0ba9e4ba9..ce7ac04dd9b1 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -2136,7 +2136,7 @@ The following rules are desired to be respected: * `pythonImportsCheck` is set. This is still a good smoke test even if `pytestCheckHook` is set. * `meta.platforms` takes the default value in many cases. It does not need to be set explicitly unless the package requires a specific platform. -* The file is formatted with `nixfmt-rfc-style`. +* The file is formatted correctly (e.g., `nix-shell --run treefmt`). * Commit names of Python libraries must reflect that they are Python libraries (e.g. `python3Packages.numpy: 1.11 -> 1.12` rather than `numpy: 1.11 -> 1.12`). See also [`pkgs/README.md`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#commit-conventions). diff --git a/pkgs/applications/editors/vscode/extensions/README.md b/pkgs/applications/editors/vscode/extensions/README.md index 9cbbd2b8f94d..2b36a38de2bb 100644 --- a/pkgs/applications/editors/vscode/extensions/README.md +++ b/pkgs/applications/editors/vscode/extensions/README.md @@ -7,7 +7,7 @@ * When adding a new extension, place its definition in a `default.nix` file in a directory with the extension's ID (e.g. `publisher.extension-name/default.nix`) and refer to it in `./default.nix`, e.g. `publisher.extension-name = callPackage ./publisher.extension-name { };`. -* Currently `nixfmt-rfc-style` formatter is being used to format the VSCode extensions. +* Use `nix-shell --run treefmt` to format the VSCode extensions. * Respect `alphabetical order` whenever adding extensions. If out of order, please kindly open a PR re-establishing the order. diff --git a/pkgs/by-name/ni/nixfmt-tree/package.nix b/pkgs/by-name/ni/nixfmt-tree/package.nix index d66d23ef3d2e..2d5c3a7f1422 100644 --- a/pkgs/by-name/ni/nixfmt-tree/package.nix +++ b/pkgs/by-name/ni/nixfmt-tree/package.nix @@ -95,7 +95,7 @@ treefmtWithConfig.overrideAttrs { You can achieve similar results by manually configuring `treefmt`: ```nix pkgs.treefmt.withConfig { - runtimeInputs = [ pkgs.nixfmt-rfc-style ]; + runtimeInputs = [ pkgs.nixfmt ]; settings = { # Log level for files treefmt won't format diff --git a/pkgs/development/lisp-modules/import/main.lisp b/pkgs/development/lisp-modules/import/main.lisp index 6671b8f22b4f..c131dc6efdb5 100644 --- a/pkgs/development/lisp-modules/import/main.lisp +++ b/pkgs/development/lisp-modules/import/main.lisp @@ -49,7 +49,7 @@ (truename "imported.nix"))) (defun run-nix-formatter () - (uiop:run-program '("nixfmt" "imported.nix"))) + (uiop:run-program '("treefmt" "imported.nix"))) (defun main () (format t "~%") diff --git a/pkgs/development/lisp-modules/shell.nix b/pkgs/development/lisp-modules/shell.nix index 811e8d3c1d28..02f9f2360828 100644 --- a/pkgs/development/lisp-modules/shell.nix +++ b/pkgs/development/lisp-modules/shell.nix @@ -1,10 +1,12 @@ let - pkgs = import ../../../. { }; - inherit (pkgs) mkShellNoCC sbcl nixfmt-rfc-style; + # Use CI-pinned (Hydra-cached) packages and formatter, + # rather than the local nixpkgs checkout. + inherit (import ../../../ci { }) pkgs fmt; + inherit (pkgs) mkShellNoCC sbcl; in mkShellNoCC { packages = [ - nixfmt-rfc-style + fmt.pkg (sbcl.withPackages ( ps: builtins.attrValues { From a2dd50b23c1927d5ca6bfd80efa3c87ab1395835 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Mon, 9 Feb 2026 09:57:13 +0100 Subject: [PATCH 018/122] pkgsStatic.ghc: 9.4 -> 9.12 Should have happened in 6cfb065e3fe7a15f6818bbb3e5ba81cd529279ca. --- pkgs/top-level/all-packages.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6155a0f10347..5aa2a931c831 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4316,10 +4316,9 @@ with pkgs; ghc = targetPackages.haskellPackages.ghc or ( # Prefer native-bignum to avoid linking issues with gmp; - # TemplateHaskell doesn't work with hadrian built GHCs yet - # https://github.com/NixOS/nixpkgs/issues/275304 - if stdenv.targetPlatform.isStatic then - haskell.compiler.native-bignum.ghc94 + # GHC 9.10 doesn't work too well with iserv-proxy. + if stdenv.hostPlatform.isStatic then + haskell.packages.native-bignum.ghc912 # JS backend can't use GMP else if stdenv.targetPlatform.isGhcjs then haskell.compiler.native-bignum.ghc910 From 2fe88c3f4e5472078d25831c78d6404d893354e8 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 9 Feb 2026 12:26:30 -0500 Subject: [PATCH 019/122] trivial-builders: Improve derivation positioning --- .../trivial-builders/default.nix | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index b350d51455cd..7a73baea2388 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -111,7 +111,7 @@ rec { allowSubstitutes ? false, preferLocalBuild ? true, derivationArgs ? { }, - }: + }@args: assert lib.assertMsg (destination != "" -> (lib.hasPrefix "/" destination && destination != "/")) '' destination must be an absolute path, relative to the derivation's out path, got '${destination}' instead. @@ -125,6 +125,7 @@ rec { runCommand name ( { + pos = builtins.unsafeGetAttrPos "name" args; inherit text executable @@ -333,7 +334,7 @@ rec { Type: Bool */ inheritPath ? true, - }: + }@args: writeTextFile { inherit name @@ -613,6 +614,13 @@ rec { "failOnMissing" ] // { + # Allow getting the proper position of the output derivation. + # Since one of these are required, it should be fairly accurate. + pos = + if args_ ? pname then + builtins.unsafeGetAttrPos "pname" args_ + else + builtins.unsafeGetAttrPos "name" args_; inherit preferLocalBuild allowSubstitutes; paths = mapPaths (path: "${path}${stripPrefix}") paths; passAsFile = [ "paths" ]; @@ -675,6 +683,14 @@ rec { in runCommand name { + # Get the position from the `entries` attrset if it exists. + # This is the best we can do since the other attrs are either defined here, or curried values that + # we cannot extract a position from + pos = + if lib.isAttrs entries then + builtins.unsafeGetAttrPos (builtins.head (builtins.attrNames entries)) entries + else + null; preferLocalBuild = true; allowSubstitutes = false; passthru.entries = entries'; @@ -744,12 +760,15 @@ rec { meta ? { }, passthru ? { }, substitutions ? { }, - }: + }@args: script: runCommand name ( substitutions // { + # Make the position of the derivation accurate. + # Since not having `name` is deprecated, this should be fairly accurate. + pos = lib.unsafeGetAttrPos "name" args; # TODO(@Artturin:) substitutions should be inside the env attrset # but users are likely passing non-substitution arguments through substitutions # turn off __structuredAttrs to unbreak substituteAll From c54e477305b0f4d0973f5e2953224d476e369c32 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:15:30 -0500 Subject: [PATCH 020/122] applyPatches: migrate to extendMkDerivation naive translation --- .../trivial-builders/default.nix | 114 +++++++++--------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index b350d51455cd..bf93fa840a39 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1000,33 +1000,34 @@ rec { ]; } */ - applyPatches = - { - src, - name ? - ( - if builtins.typeOf src == "path" then - baseNameOf src - else if builtins.isAttrs src && builtins.hasAttr "name" src then - src.name - else - throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute." - ) - + "-patched", - patches ? [ ], - prePatch ? "", - postPatch ? "", - ... - }@args: - assert lib.assertMsg ( - !args ? meta - ) "applyPatches will not merge 'meta', change it in 'src' instead"; - assert lib.assertMsg ( - !args ? passthru - ) "applyPatches will not merge 'passthru', change it in 'src' instead"; - if patches == [ ] && prePatch == "" && postPatch == "" then - src # nothing to do, so use original src to avoid additional drv - else + applyPatches = lib.extendMkDerivation { + constructDrv = stdenvNoCC.mkDerivation; + + extendDrvArgs = + finalAttrs: + { + src, + name ? + ( + if builtins.typeOf src == "path" then + baseNameOf src + else if builtins.isAttrs src && builtins.hasAttr "name" src then + src.name + else + throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute." + ) + + "-patched", + patches ? [ ], + prePatch ? "", + postPatch ? "", + ... + }@args: + assert lib.assertMsg ( + !args ? meta + ) "applyPatches will not merge 'meta', change it in 'src' instead"; + assert lib.assertMsg ( + !args ? passthru + ) "applyPatches will not merge 'passthru', change it in 'src' instead"; let keepAttrs = names: lib.filterAttrs (name: val: lib.elem name names); # enables tools like nix-update to determine what src attributes to replace @@ -1040,36 +1041,35 @@ rec { ] src ); in - stdenvNoCC.mkDerivation ( - { - inherit - name - src - patches - prePatch - postPatch - ; - preferLocalBuild = true; - allowSubstitutes = false; - phases = "unpackPhase patchPhase installPhase"; - installPhase = "cp -R ./ $out"; - } - # Carry (and merge) information from the underlying `src` if present. - // (optionalAttrs (src ? meta) { - inherit (src) meta; - }) - // (optionalAttrs (extraPassthru != { } || src ? passthru) { - passthru = extraPassthru // src.passthru or { }; - }) - # Forward any additional arguments to the derivation - // (removeAttrs args [ - "src" - "name" - "patches" - "prePatch" - "postPatch" - ]) - ); + { + inherit + name + src + patches + prePatch + postPatch + ; + preferLocalBuild = true; + allowSubstitutes = false; + phases = "unpackPhase patchPhase installPhase"; + installPhase = "cp -R ./ $out"; + } + # Carry (and merge) information from the underlying `src` if present. + // (optionalAttrs (src ? meta) { + inherit (src) meta; + }) + // (optionalAttrs (extraPassthru != { } || src ? passthru) { + passthru = extraPassthru // src.passthru or { }; + }) + # Forward any additional arguments to the derivation + // (removeAttrs args [ + "src" + "name" + "patches" + "prePatch" + "postPatch" + ]); + }; # TODO: move docs to Nixpkgs manual # An immutable file in the store with a length of 0 bytes. From 3b4c6073c14a9e4a4b9ec003de7e9c2ee2707fed Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:17:32 -0500 Subject: [PATCH 021/122] applyPatches: use extendMkDerivation machinery for arg inheritance --- pkgs/build-support/trivial-builders/default.nix | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index bf93fa840a39..7ebde268f9f0 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1017,9 +1017,6 @@ rec { throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute." ) + "-patched", - patches ? [ ], - prePatch ? "", - postPatch ? "", ... }@args: assert lib.assertMsg ( @@ -1044,10 +1041,6 @@ rec { { inherit name - src - patches - prePatch - postPatch ; preferLocalBuild = true; allowSubstitutes = false; @@ -1060,15 +1053,7 @@ rec { }) // (optionalAttrs (extraPassthru != { } || src ? passthru) { passthru = extraPassthru // src.passthru or { }; - }) - # Forward any additional arguments to the derivation - // (removeAttrs args [ - "src" - "name" - "patches" - "prePatch" - "postPatch" - ]); + }); }; # TODO: move docs to Nixpkgs manual From 4b67bd98f4cd63c91cb54dd40143e9fdac4a892b Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:21:13 -0500 Subject: [PATCH 022/122] applyPatches: remove explicit phases --- pkgs/build-support/trivial-builders/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index 7ebde268f9f0..ed447c9be101 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1044,7 +1044,11 @@ rec { ; preferLocalBuild = true; allowSubstitutes = false; - phases = "unpackPhase patchPhase installPhase"; + + dontConfigure = true; + dontBuild = true; + doCheck = false; + installPhase = "cp -R ./ $out"; } # Carry (and merge) information from the underlying `src` if present. From 9268517647203e379f54eb98736457d5e8892045 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:50:24 -0500 Subject: [PATCH 023/122] applyPatches: remove inherited meta.position --- pkgs/build-support/trivial-builders/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index ed447c9be101..3051885345ae 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1053,7 +1053,7 @@ rec { } # Carry (and merge) information from the underlying `src` if present. // (optionalAttrs (src ? meta) { - inherit (src) meta; + meta = removeAttrs src.meta [ "position" ]; }) // (optionalAttrs (extraPassthru != { } || src ? passthru) { passthru = extraPassthru // src.passthru or { }; From 315a3525ceca8f442d419114233b98cd5bd57cb1 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:50:24 -0500 Subject: [PATCH 024/122] applyPatches: reorganize name handling, and fix meta.position --- .../trivial-builders/default.nix | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index 3051885345ae..88e4ef6dbe88 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1007,16 +1007,6 @@ rec { finalAttrs: { src, - name ? - ( - if builtins.typeOf src == "path" then - baseNameOf src - else if builtins.isAttrs src && builtins.hasAttr "name" src then - src.name - else - throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute." - ) - + "-patched", ... }@args: assert lib.assertMsg ( @@ -1039,9 +1029,23 @@ rec { ); in { - inherit - name - ; + name = + args.name or ( + if builtins.isPath src then + baseNameOf src + "-patched" + else if builtins.isAttrs src && (src ? name) then + let + srcName = builtins.parseDrvName src; + in + "${srcName.name}-patched${lib.optionalString (srcName.version != "") "-${srcName.version}"}" + else + throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute." + ); + + # Manually setting `name` can mess up positioning. + # This should fix it. + pos = builtins.unsafeGetAttrPos "src" args; + preferLocalBuild = true; allowSubstitutes = false; From c7609637eb119bf0bd54ee6f52067ae826b967b4 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:50:24 -0500 Subject: [PATCH 025/122] applyPatches: unconditionally set attrsets that are always set regardless --- pkgs/build-support/trivial-builders/default.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index 88e4ef6dbe88..6a4daf3809ac 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1054,14 +1054,12 @@ rec { doCheck = false; installPhase = "cp -R ./ $out"; - } - # Carry (and merge) information from the underlying `src` if present. - // (optionalAttrs (src ? meta) { - meta = removeAttrs src.meta [ "position" ]; - }) - // (optionalAttrs (extraPassthru != { } || src ? passthru) { + passthru = extraPassthru // src.passthru or { }; - }); + + # Carry (and merge) information from the underlying `src` if present. + meta = lib.optionalAttrs (src ? meta) removeAttrs src.meta [ "position" ]; + }; }; # TODO: move docs to Nixpkgs manual From 652080d15f0945d249f2c6ab9fbb945995fffa12 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 9 Feb 2026 16:09:53 -0500 Subject: [PATCH 026/122] applyPatches: ensure overrides are carried down --- .../trivial-builders/default.nix | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index 6a4daf3809ac..686271082928 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1018,24 +1018,24 @@ rec { let keepAttrs = names: lib.filterAttrs (name: val: lib.elem name names); # enables tools like nix-update to determine what src attributes to replace - extraPassthru = lib.optionalAttrs (lib.isAttrs src) ( + extraPassthru = lib.optionalAttrs (lib.isAttrs finalAttrs.src) ( keepAttrs [ "rev" "tag" "url" "outputHash" "outputHashAlgo" - ] src + ] finalAttrs.src ); in { name = args.name or ( - if builtins.isPath src then - baseNameOf src + "-patched" - else if builtins.isAttrs src && (src ? name) then + if builtins.isPath finalAttrs.src then + baseNameOf finalAttrs.src + "-patched" + else if builtins.isAttrs finalAttrs.src && (finalAttrs.src ? name) then let - srcName = builtins.parseDrvName src; + srcName = builtins.parseDrvName finalAttrs.src.name; in "${srcName.name}-patched${lib.optionalString (srcName.version != "") "-${srcName.version}"}" else @@ -1055,10 +1055,13 @@ rec { installPhase = "cp -R ./ $out"; - passthru = extraPassthru // src.passthru or { }; + # passthru the git and hash info for nix-update, as well + # as all the src's passthru attrs. + passthru = extraPassthru // finalAttrs.src.passthru or { }; # Carry (and merge) information from the underlying `src` if present. - meta = lib.optionalAttrs (src ? meta) removeAttrs src.meta [ "position" ]; + # If there is not src.meta, this meta block will be blank regardless. + meta = lib.optionalAttrs (finalAttrs.src ? meta) removeAttrs finalAttrs.src.meta [ "position" ]; }; }; From fe1a3f1631d7e1ee06deabe06710421ea3bf2bec Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Tue, 10 Feb 2026 02:58:40 +0200 Subject: [PATCH 027/122] gopro-tool: move overrides to package.nix --- pkgs/by-name/go/gopro-tool/package.nix | 6 +++++- pkgs/top-level/all-packages.nix | 6 ------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/go/gopro-tool/package.nix b/pkgs/by-name/go/gopro-tool/package.nix index a5b848d28b5d..460b498dd2bc 100644 --- a/pkgs/by-name/go/gopro-tool/package.nix +++ b/pkgs/by-name/go/gopro-tool/package.nix @@ -5,7 +5,11 @@ makeWrapper, ffmpeg, vlc, + vlc' ? vlc.overrideAttrs (old: { + buildInputs = old.buildInputs ++ [ x264 ]; + }), jq, + x264, }: stdenv.mkDerivation { @@ -30,7 +34,7 @@ stdenv.mkDerivation { --prefix PATH : ${ lib.makeBinPath [ ffmpeg - vlc + vlc' jq ] } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fa357ead5f9b..ebd26f56c63e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4528,12 +4528,6 @@ with pkgs; dotnetPackages = recurseIntoAttrs (callPackage ./dotnet-packages.nix { }); - gopro-tool = callPackage ../by-name/go/gopro-tool/package.nix { - vlc = vlc.overrideAttrs (old: { - buildInputs = old.buildInputs ++ [ x264 ]; - }); - }; - gwe = callPackage ../tools/misc/gwe { nvidia_x11 = linuxPackages.nvidia_x11; }; From eb955cdba5981d6d121c4ed47f7a56080ab8c324 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Tue, 10 Feb 2026 02:58:57 +0200 Subject: [PATCH 028/122] gopro-tool: enable strictDeps and structuredAttrs --- pkgs/by-name/go/gopro-tool/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/go/gopro-tool/package.nix b/pkgs/by-name/go/gopro-tool/package.nix index 460b498dd2bc..e7b53ca984c9 100644 --- a/pkgs/by-name/go/gopro-tool/package.nix +++ b/pkgs/by-name/go/gopro-tool/package.nix @@ -25,6 +25,9 @@ stdenv.mkDerivation { nativeBuildInputs = [ makeWrapper ]; + strictDeps = true; + __structuredAttrs = true; + installPhase = '' mkdir -p $out/bin cp $src/gopro-tool $out/bin/gopro-tool From db5fa7acafcbe7835f10ffcac683fab888cedf52 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Tue, 10 Feb 2026 02:59:14 +0200 Subject: [PATCH 029/122] gopro-tool: add passthru.tests --- pkgs/by-name/go/gopro-tool/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/go/gopro-tool/package.nix b/pkgs/by-name/go/gopro-tool/package.nix index e7b53ca984c9..8f9f7306300d 100644 --- a/pkgs/by-name/go/gopro-tool/package.nix +++ b/pkgs/by-name/go/gopro-tool/package.nix @@ -10,6 +10,7 @@ }), jq, x264, + nixosTests, }: stdenv.mkDerivation { @@ -43,6 +44,10 @@ stdenv.mkDerivation { } ''; + passthru.tests = { + inherit (nixosTests) gopro-tool; + }; + meta = { description = "Tool to control GoPro webcam mode in Linux (requires v4l2loopback kernel module and a firewall rule)"; license = lib.licenses.bsd3; From 662fd4baf42ff3ffe1fb8d61abcad16bb7e6d661 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Tue, 10 Feb 2026 02:59:31 +0200 Subject: [PATCH 030/122] gopro-tool: 0-unstable-2024-04-18 -> 1.18 --- pkgs/by-name/go/gopro-tool/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/go/gopro-tool/package.nix b/pkgs/by-name/go/gopro-tool/package.nix index 8f9f7306300d..475d2df02067 100644 --- a/pkgs/by-name/go/gopro-tool/package.nix +++ b/pkgs/by-name/go/gopro-tool/package.nix @@ -13,15 +13,15 @@ nixosTests, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "gopro-tool"; - version = "0-unstable-2024-04-18"; + version = "1.18"; src = fetchFromGitHub { owner = "juchem"; repo = "gopro-tool"; - rev = "a678f0ea65e24dca9b8d848b245bd2d487d3c8ca"; - sha256 = "0sh3s38m17pci24x4kdlmlhn0gwgm28aaa6p7qs16wysk0q0h6wz"; + tag = "v${finalAttrs.version}"; + hash = "sha256-nxsIMJjacxM0PtcopZCojz9gIa20TdKJiOyeUNHQA2o="; }; nativeBuildInputs = [ makeWrapper ]; @@ -54,4 +54,4 @@ stdenv.mkDerivation { maintainers = with lib.maintainers; [ ZMon3y ]; platforms = lib.platforms.linux; }; -} +}) From e958308ebcc4722c789367703efd7786638357e8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 10 Feb 2026 04:27:46 +0000 Subject: [PATCH 031/122] mediainfo: 25.10 -> 26.01 --- pkgs/by-name/me/mediainfo/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/me/mediainfo/package.nix b/pkgs/by-name/me/mediainfo/package.nix index dd9f50623d80..07f6a45dd05a 100644 --- a/pkgs/by-name/me/mediainfo/package.nix +++ b/pkgs/by-name/me/mediainfo/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "mediainfo"; - version = "25.10"; + version = "26.01"; src = fetchurl { url = "https://mediaarea.net/download/source/mediainfo/${finalAttrs.version}/mediainfo_${finalAttrs.version}.tar.xz"; - hash = "sha256-NmsyUQGrGppO55+9uOPdnni8wKIcD5sZZjE6rtPTNQI="; + hash = "sha256-FQZWytiO9O+k6Cmc/CTZt6cjVFdqaTSZIFiKzuLMPHY="; }; nativeBuildInputs = [ From 16bb20476516f7a57e96b474d4246a78a3a9ea0a Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 10 Feb 2026 23:09:09 +0800 Subject: [PATCH 032/122] =?UTF-8?q?webkitgtk=5F6=5F0:=202.50.4=20=E2=86=92?= =?UTF-8?q?=202.50.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/WebKit/WebKit/compare/webkitgtk-2.50.4...webkitgtk-2.50.5 https://webkitgtk.org/2026/02/09/webkitgtk2.50.5-released.html --- pkgs/development/libraries/webkitgtk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index 3b56d3c9bc39..251fe2886d19 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -84,7 +84,7 @@ in # https://webkitgtk.org/2024/10/04/webkitgtk-2.46.html recommends building with clang. clangStdenv.mkDerivation (finalAttrs: { pname = "webkitgtk"; - version = "2.50.4"; + version = "2.50.5"; name = "webkitgtk-${finalAttrs.version}+abi=${abiVersion}"; outputs = [ @@ -99,7 +99,7 @@ clangStdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz"; - hash = "sha256-07+kc4Raz6tyY1utpeDRNP2meSxblcXFzRQbRhJb2OQ="; + hash = "sha256-hzdjG6w+nHrT5SCPk3DgdsCdnEWzmYACHOVO2tzG+U8="; }; patches = lib.optionals clangStdenv.hostPlatform.isLinux [ From eabee7d804c2c4328b5d65162f1550cde3940bf6 Mon Sep 17 00:00:00 2001 From: Ryan Omasta Date: Tue, 10 Feb 2026 16:12:51 -0700 Subject: [PATCH 033/122] limine: 10.6.6 -> 10.7.0 https://codeberg.org/Limine/Limine/releases/tag/v10.7.0 Diff: https://codeberg.org/Limine/Limine/compare/v10.6.6...v10.7.0 --- pkgs/by-name/li/limine/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/limine/package.nix b/pkgs/by-name/li/limine/package.nix index 547fb8c08d5f..442f393016f8 100644 --- a/pkgs/by-name/li/limine/package.nix +++ b/pkgs/by-name/li/limine/package.nix @@ -47,14 +47,14 @@ in # as bootloader for various platforms and corresponding binary and helper files. stdenv.mkDerivation (finalAttrs: { pname = "limine"; - version = "10.6.6"; + version = "10.7.0"; # We don't use the Git source but the release tarball, as the source has a # `./bootstrap` script performing network access to download resources. # Packaging that in Nix is very cumbersome. src = fetchurl { url = "https://codeberg.org/Limine/Limine/releases/download/v${finalAttrs.version}/limine-${finalAttrs.version}.tar.gz"; - hash = "sha256-xU0uygvqeWfsy5FsYQQAEwc0H15j8amW0097Fojw1DM="; + hash = "sha256-1gwgzyISeOj4QE8hZ/KDCVW8qCQYvpQE6lf/N1jt0J4="; }; enableParallelBuilding = true; From f2d82d6ffe9785041e374af3561dfccba29ff641 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 11 Feb 2026 01:34:44 +0000 Subject: [PATCH 034/122] vscode-extensions.github.copilot-chat: 0.33.1 -> 0.37.4 --- .../editors/vscode/extensions/github.copilot-chat/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/github.copilot-chat/default.nix b/pkgs/applications/editors/vscode/extensions/github.copilot-chat/default.nix index 00c61c3b9020..6410adb3f6de 100644 --- a/pkgs/applications/editors/vscode/extensions/github.copilot-chat/default.nix +++ b/pkgs/applications/editors/vscode/extensions/github.copilot-chat/default.nix @@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { publisher = "github"; name = "copilot-chat"; - version = "0.33.1"; - hash = "sha256-qiWuoxd/CXTxYtlOcj1Aww16wLvTZbQ7qJYhPPEndqk="; + version = "0.37.4"; + hash = "sha256-as8aU8NIAe60qV2VihBa4ueOm23nBAos3AAyLA0Smhs="; }; meta = { From 638fcc5fce609bcb6db71125efebae1205ca119a Mon Sep 17 00:00:00 2001 From: Markus Hauck Date: Wed, 11 Feb 2026 07:55:13 +0100 Subject: [PATCH 035/122] claude-code: 2.1.37 -> 2.1.39 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md --- pkgs/by-name/cl/claude-code/package-lock.json | 4 ++-- pkgs/by-name/cl/claude-code/package.nix | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/cl/claude-code/package-lock.json b/pkgs/by-name/cl/claude-code/package-lock.json index 26a33c2e9b46..6f9384dd5bfe 100644 --- a/pkgs/by-name/cl/claude-code/package-lock.json +++ b/pkgs/by-name/cl/claude-code/package-lock.json @@ -1,12 +1,12 @@ { "name": "@anthropic-ai/claude-code", - "version": "2.1.37", + "version": "2.1.39", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@anthropic-ai/claude-code", - "version": "2.1.37", + "version": "2.1.39", "license": "SEE LICENSE IN README.md", "bin": { "claude": "cli.js" diff --git a/pkgs/by-name/cl/claude-code/package.nix b/pkgs/by-name/cl/claude-code/package.nix index b9395fe9e37f..1bac26c3ee75 100644 --- a/pkgs/by-name/cl/claude-code/package.nix +++ b/pkgs/by-name/cl/claude-code/package.nix @@ -15,14 +15,14 @@ }: buildNpmPackage (finalAttrs: { pname = "claude-code"; - version = "2.1.37"; + version = "2.1.39"; src = fetchzip { url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz"; - hash = "sha256-ijyZCT4LEEtXWOBds8WzizcfED9hVgaJByygJ4P4Yss="; + hash = "sha256-NLLiaJkU91ZnEcQUWIAX9oUTt+C5fnWXFFPelTtWmdo="; }; - npmDepsHash = "sha256-2if3LsTEnC2OQjEgojqgzs8YOXdpoqJijEmVlxmEfzw="; + npmDepsHash = "sha256-VWw1bYkFch95JDlOwKoTAQYOr8R80ICJ8QUI4E64W7o="; strictDeps = true; From b078ebecb6cbcf2e66bffffccb0920ccc5d3e64b Mon Sep 17 00:00:00 2001 From: Markus Hauck Date: Wed, 11 Feb 2026 07:55:17 +0100 Subject: [PATCH 036/122] claude-code-bin: 2.1.37 -> 2.1.39 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md --- pkgs/by-name/cl/claude-code-bin/manifest.json | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/pkgs/by-name/cl/claude-code-bin/manifest.json b/pkgs/by-name/cl/claude-code-bin/manifest.json index 8232b3c85e95..404e75d75689 100644 --- a/pkgs/by-name/cl/claude-code-bin/manifest.json +++ b/pkgs/by-name/cl/claude-code-bin/manifest.json @@ -1,41 +1,41 @@ { - "version": "2.1.37", - "buildDate": "2026-02-07T18:40:47Z", + "version": "2.1.39", + "buildDate": "2026-02-10T21:13:30Z", "platforms": { "darwin-arm64": { "binary": "claude", - "checksum": "00ed10afb7a562440773de31284568ce9c33385d79d3a912a12af262aefd130e", - "size": 181423280 + "checksum": "d8d7a2b996a691036a53933a259a532254a400934aee452e289e1f4443026d82", + "size": 182876336 }, "darwin-x64": { "binary": "claude", - "checksum": "5ad9639bf34affa47066fb98f2d7ad7b0f236009744d309077b194d896fc011d", - "size": 186482592 + "checksum": "2cba24a410a5226f9750b8fe7e83dbe9a61485ef9b0eb286b0b00438aa990d05", + "size": 187935648 }, "linux-arm64": { "binary": "claude", - "checksum": "d725cc73060f400a7ac03a769969397daec9d411dbd5b1c7bb1fa60427bf657e", - "size": 218584946 + "checksum": "8f66e02a5be8a620e286f6e634fb424b5ac065731b048af3d745cf719b2c7851", + "size": 220025668 }, "linux-x64": { "binary": "claude", - "checksum": "f967a4d06e16a32436b6329e2dbed459a9fa4d34f07635a1fb271b74f706c91f", - "size": 221426063 + "checksum": "68e4775b293d95e06d168581c523fc5c1523968179229d31a029f285b2aceaff", + "size": 222867057 }, "linux-arm64-musl": { "binary": "claude", - "checksum": "8b1852e9922ecb67a6eef467d5d8f4408d58d71e51c785e155cd0c8efe417754", - "size": 211768338 + "checksum": "82055ce3ec2bbcfcd11b8eae4b6f08226dfad29b10ac8b6231feb59e55b8730d", + "size": 213209060 }, "linux-x64-musl": { "binary": "claude", - "checksum": "df4f2a657f4e5c21b1907d7fb10a36622aced68d5ac4c94e709862298d1e2aac", - "size": 213926119 + "checksum": "ab8161c8102f031de34f617648d250432433fbf6c2945cbe5a6bd09a841fd5b6", + "size": 215367113 }, "win32-x64": { "binary": "claude.exe", - "checksum": "8a54bdc2c7d60e84b92f5aeedb9b66791006cfff992415e58e15a6df52842859", - "size": 231153824 + "checksum": "f0357538ba50c80d02deb44a9aa4e02e577b34158284edeca99f5d9ba1183fc9", + "size": 232531616 } } } From a7acea02bcf59353524ea8fe387b1bdc00867355 Mon Sep 17 00:00:00 2001 From: Markus Hauck Date: Wed, 11 Feb 2026 07:55:20 +0100 Subject: [PATCH 037/122] vscode-extensions.anthropic.claude-code: 2.1.37 -> 2.1.39 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md --- .../vscode/extensions/anthropic.claude-code/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix index f9c2b3006210..8a6faa45e21b 100644 --- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix +++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix @@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "claude-code"; publisher = "anthropic"; - version = "2.1.37"; - hash = "sha256-Lc3TNj74BW/M1sK+bz/xw4L5B6KKBUh2uzXckScwPr8="; + version = "2.1.39"; + hash = "sha256-8OaNOwG9lRHca/hjqGpmcuY+2OGkv7rPSt0faO72vIc="; }; postInstall = '' From 871ac174bf787fc6de81610d51b176ee80a70fd4 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 11 Feb 2026 20:45:21 +0800 Subject: [PATCH 038/122] pantheon.gala: 8.4.0-unstable-2026-01-06 -> 8.4.1 https://github.com/elementary/gala/compare/8fb60a9c9b04245913733208df1c061d6c353a35...8.4.1 --- pkgs/desktops/pantheon/desktop/gala/default.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix index 77ede83f3b64..6d1ed151e028 100644 --- a/pkgs/desktops/pantheon/desktop/gala/default.nix +++ b/pkgs/desktops/pantheon/desktop/gala/default.nix @@ -26,17 +26,15 @@ nix-update-script, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "gala"; - version = "8.4.0-unstable-2026-01-06"; + version = "8.4.1"; src = fetchFromGitHub { owner = "elementary"; repo = "gala"; - # Contains crash fixes for mutter 48. - # nixpkgs-update: no auto update - rev = "8fb60a9c9b04245913733208df1c061d6c353a35"; - hash = "sha256-GBNrcUAC7UBdyrqoja81bD1oVHjLXWhnDz3gtjMbjII="; + tag = finalAttrs.version; + hash = "sha256-CBgrHd9euRuOxBR+hut5J1d0S2qZ5hVU3b8pjJuNG7s="; }; depsBuildBuild = [ pkg-config ]; @@ -85,4 +83,4 @@ stdenv.mkDerivation { teams = [ lib.teams.pantheon ]; mainProgram = "gala"; }; -} +}) From 86bcf3adad255d8f6cc7f5f08fca59701c18a5e5 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 11 Feb 2026 20:48:02 +0800 Subject: [PATCH 039/122] pantheon.elementary-dock: 8.3.1 -> 8.3.2 https://github.com/elementary/dock/compare/8.3.1...8.3.2 --- pkgs/desktops/pantheon/apps/elementary-dock/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix index 2ca1a95f47c1..8271addfc595 100644 --- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "elementary-dock"; - version = "8.3.1"; + version = "8.3.2"; outputs = [ "out" @@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "elementary"; repo = "dock"; rev = finalAttrs.version; - hash = "sha256-BJkJ6U9fnGSFeY/Z9tcomZ0umRDENxPl0koioUYhFYg="; + hash = "sha256-knnr9uKBf27tovucAgAX5N//3t70KtO++Ei/1l74ZFg="; }; depsBuildBuild = [ pkg-config ]; From 2b72677636dead9d3d27ad6cde9d41d67efd3679 Mon Sep 17 00:00:00 2001 From: tarzst Date: Sat, 24 Jan 2026 18:26:16 +0530 Subject: [PATCH 040/122] =?UTF-8?q?bpftune:=200-unstable-2025-03-20=20?= =?UTF-8?q?=E2=86=92=200.4-2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nixos/modules/services/system/bpftune.nix | 5 ++++- pkgs/by-name/bp/bpftune/package.nix | 15 ++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/nixos/modules/services/system/bpftune.nix b/nixos/modules/services/system/bpftune.nix index c69a53b6d554..6b91e9efab79 100644 --- a/nixos/modules/services/system/bpftune.nix +++ b/nixos/modules/services/system/bpftune.nix @@ -22,6 +22,9 @@ in config = lib.mkIf cfg.enable { systemd.packages = [ cfg.package ]; - systemd.services.bpftune.wantedBy = [ "multi-user.target" ]; + systemd.services.bpftune = { + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.kmod ]; # bpftune calls modprobe + }; }; } diff --git a/pkgs/by-name/bp/bpftune/package.nix b/pkgs/by-name/bp/bpftune/package.nix index 14ac6330b4a2..f1ffcc8f6c74 100644 --- a/pkgs/by-name/bp/bpftune/package.nix +++ b/pkgs/by-name/bp/bpftune/package.nix @@ -9,29 +9,27 @@ libcap, libnl, nixosTests, - unstableGitUpdater, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "bpftune"; - version = "0-unstable-2025-03-20"; + version = "0.4-2"; src = fetchFromGitHub { owner = "oracle"; repo = "bpftune"; - rev = "8c6a3ffc09265bd44ed89b75c400ef97959d1aff"; - hash = "sha256-TQ8WaGvMcvyeZC4B9gSjJ2k5NOxpTaV4n7Qi36aA78Q="; + tag = finalAttrs.version; + hash = "sha256-clfR2nZKB9ztfUEw+znr9/Rdefv4K+mTeRCSBLIBmVY="; }; postPatch = '' # otherwise shrink rpath would drop $out/lib from rpath substituteInPlace src/Makefile \ - --replace-fail /sbin /bin \ + --replace-fail /sbin /bin \ --replace-fail ldconfig true substituteInPlace src/bpftune.service \ --replace-fail /usr/sbin/bpftune "$out/bin/bpftune" - substituteInPlace src/libbpftune.c \ - --replace-fail /lib/modules /run/booted-system/kernel-modules/lib/modules ''; nativeBuildInputs = [ @@ -56,7 +54,6 @@ stdenv.mkDerivation (finalAttrs: { ]; hardeningDisable = [ - "stackprotector" "zerocallusedregs" ]; @@ -64,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: { tests = { inherit (nixosTests) bpftune; }; - updateScript = unstableGitUpdater { }; + updateScript = nix-update-script { }; }; enableParallelBuilding = true; From ce00ee56de4286dec326fbe669337b530fab191b Mon Sep 17 00:00:00 2001 From: Mynacol Date: Sun, 14 Dec 2025 10:59:00 +0000 Subject: [PATCH 041/122] zotero: initial commit for building from source Firefox 115 is needed to match upstream and avoid endless patch failures of zotero. It requires cbindgen 0.26 to compile (Firefox 128 supports cbindgen 0.27+). See https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/234 --- .../zo/zotero/avoid-xulrunner-fetch.patch | 118 ++++++ pkgs/by-name/zo/zotero/darwin.nix | 33 -- pkgs/by-name/zo/zotero/git-revs.patch | 17 + pkgs/by-name/zo/zotero/linux.nix | 139 ------- pkgs/by-name/zo/zotero/package.nix | 357 +++++++++++++++++- .../tools/rust/cbindgen/default.nix | 52 +++ 6 files changed, 531 insertions(+), 185 deletions(-) create mode 100644 pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch delete mode 100644 pkgs/by-name/zo/zotero/darwin.nix create mode 100644 pkgs/by-name/zo/zotero/git-revs.patch delete mode 100644 pkgs/by-name/zo/zotero/linux.nix create mode 100644 pkgs/development/tools/rust/cbindgen/default.nix diff --git a/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch b/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch new file mode 100644 index 000000000000..e17e361d554c --- /dev/null +++ b/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch @@ -0,0 +1,118 @@ +diff --git a/app/scripts/fetch_xulrunner b/app/scripts/fetch_xulrunner +index 0d871782c3..bea85feae9 100755 +--- a/app/scripts/fetch_xulrunner ++++ b/app/scripts/fetch_xulrunner +@@ -422,73 +422,11 @@ cd xulrunner + + if [ $BUILD_MAC == 1 ]; then + GECKO_VERSION="$GECKO_VERSION_MAC" +- DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION" +- rm -rf Firefox.app + +- if [ -e "Firefox $GECKO_VERSION.app.zip" ]; then +- echo "Using Firefox $GECKO_VERSION.app.zip" +- unzip "Firefox $GECKO_VERSION.app.zip" +- else +- curl -o Firefox.dmg "$DOWNLOAD_URL/mac/en-US/Firefox%20$GECKO_VERSION.dmg" +- set +e +- hdiutil detach -quiet /Volumes/Firefox 2>/dev/null +- set -e +- hdiutil attach -quiet Firefox.dmg +- cp -a /Volumes/Firefox/Firefox.app . +- hdiutil detach -quiet /Volumes/Firefox +- fi +- +- # Download custom components (e.g., XUL), as an xz-compressed tarball of the MacOS folder with +- # custom files in it +- echo +- rm -rf MacOS +- if [ -n "$custom_components_hash_mac" ]; then +- if [ -e "Firefox $GECKO_VERSION MacOS.zip" ]; then +- echo "Using Firefox $GECKO_VERSION MacOS.zip" +- unzip "Firefox $GECKO_VERSION MacOS.zip" +- else +- echo "Downloading custom Firefox components" +- echo +- curl -o MacOS.tar.xz "${custom_components_url}mac/$custom_components_hash_mac.tar.xz" +- +- # Verify hash +- if [[ "`uname`" = "Darwin" ]]; then +- shasum=shasum +- else +- shasum=sha256sum +- fi +- echo +- echo "$custom_components_hash_mac MacOS.tar.xz" | $shasum -c - +- echo +- +- tar xvf MacOS.tar.xz +- fi +- echo +- fi +- +- pushd Firefox.app/Contents/Resources ++ pushd firefox + modify_omni mac + popd + +- # Replace "FirefoxCP" with "ZoteroCP" for subprocesses ("Isolated Web Content", "Socket Process", "Web Content", etc.) +- info_plist=Firefox.app/Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings +- from=$(get_utf16_chars "FirefoxCP") +- to=$(get_utf16_chars "ZoteroCP") +- perl -pi -e "s/$from/$to/" $info_plist +- # Check for UTF-16 "ZoteroCP" +- if ! grep -a -q "Z.o.t.e.r.o.C.P." $info_plist; then +- echo '"ZoteroCP" not found in InfoPlist.strings after replacement' +- exit 1 +- fi +- +- if [ ! -e "Firefox $GECKO_VERSION.app.zip" ]; then +- rm "Firefox.dmg" +- fi +- +- #if [ ! -e "Firefox $GECKO_VERSION MacOS.zip" ]; then +- # rm "MacOS.zip" +- #fi +- echo $("$SCRIPT_DIR/xulrunner_hash" -p m) > hash-mac + fi + + if [ $BUILD_WIN == 1 ]; then +@@ -563,36 +501,9 @@ fi + + if [ $BUILD_LINUX == 1 ]; then + GECKO_VERSION="$GECKO_VERSION_LINUX" +- DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION" +- +- +- # Include 32-bit build if not in CI +- if [[ "${CI:-}" = "1" ]] || [[ "${SKIP_32:-}" = "1" ]]; then +- arches="x86_64" +- else +- arches="i686 x86_64" +- fi +- for arch in $arches; do +- xdir="firefox-$arch" +- rm -rf $xdir +- +- archived_file="firefox-$GECKO_VERSION-$arch.tar.bz2" +- if [ -e "$archived_file" ]; then +- echo "Using $archived_file" +- cp "$archived_file" "firefox-$GECKO_VERSION.tar.bz2" +- else +- curl -O "$DOWNLOAD_URL/linux-$arch/en-US/firefox-$GECKO_VERSION.tar.bz2" +- fi +- +- tar xvf firefox-$GECKO_VERSION.tar.bz2 +- mv firefox firefox-$arch +- +- pushd firefox-$arch +- modify_omni $arch ++ pushd firefox ++ modify_omni linux + popd +- echo $($SCRIPT_DIR/xulrunner_hash -p l) > hash-linux +- rm "firefox-$GECKO_VERSION.tar.bz2" +- done + fi + + echo Done diff --git a/pkgs/by-name/zo/zotero/darwin.nix b/pkgs/by-name/zo/zotero/darwin.nix deleted file mode 100644 index 6f27faac3d3f..000000000000 --- a/pkgs/by-name/zo/zotero/darwin.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - pname, - version, - meta, - stdenv, - fetchurl, - undmg, -}: - -stdenv.mkDerivation (finalAttrs: { - inherit pname version meta; - - src = fetchurl { - url = "https://download.zotero.org/client/release/${finalAttrs.version}/Zotero-${finalAttrs.version}.dmg"; - hash = "sha256-lDf/jULLQyzxNVGRUKuF2df+FTbJK08z+fFQbVgwjsY="; - }; - sourceRoot = "."; - - nativeBuildInputs = [ undmg ]; - - dontConfigure = true; - dontBuild = true; - dontFixup = true; # breaks notarization - - installPhase = '' - runHook preInstall - - mkdir -p $out/Applications - cp -r Zotero.app $out/Applications - - runHook postInstall - ''; -}) diff --git a/pkgs/by-name/zo/zotero/git-revs.patch b/pkgs/by-name/zo/zotero/git-revs.patch new file mode 100644 index 000000000000..e6a89af707e3 --- /dev/null +++ b/pkgs/by-name/zo/zotero/git-revs.patch @@ -0,0 +1,17 @@ +diff --git a/js-build/build.js b/js-build/build.js +index 5e920db6d8..befe280606 100644 +--- a/js-build/build.js ++++ b/js-build/build.js +@@ -36,9 +36,9 @@ if (require.main === module) { + ...scssFiles.map(scf => getSass(scf, { ignore: ignoreMask }, signatures)), + getSymlinks(symlinks, { nodir: true, ignore: ignoreMask }, signatures), + getSymlinks(symlinkDirs, { ignore: ignoreMask }, signatures), +- getPDFReader(signatures), +- getPDFWorker(signatures), +- getZoteroNoteEditor(signatures) ++ //getPDFReader(signatures), ++ //getPDFWorker(signatures), ++ //getZoteroNoteEditor(signatures) + ]); + + await writeSignatures(signatures); diff --git a/pkgs/by-name/zo/zotero/linux.nix b/pkgs/by-name/zo/zotero/linux.nix deleted file mode 100644 index e192ca642823..000000000000 --- a/pkgs/by-name/zo/zotero/linux.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ - pname, - version, - meta, - lib, - stdenv, - fetchurl, - wrapGAppsHook3, - makeDesktopItem, - atk, - cairo, - dbus-glib, - gdk-pixbuf, - glib, - gtk3, - libGL, - libva, - libxtst, - libxrandr, - libxi, - libxfixes, - libxext, - libxdamage, - libxcursor, - libxcomposite, - libx11, - libxcb, - libgbm, - pango, - pciutils, - alsaSupport ? true, - alsa-lib, - jackSupport ? true, - libjack2, - pulseSupport ? true, - libpulseaudio, - sndioSupport ? true, - sndio, -}: - -stdenv.mkDerivation (finalAttrs: { - inherit pname version meta; - - src = fetchurl { - url = "https://download.zotero.org/client/release/${finalAttrs.version}/Zotero-${finalAttrs.version}_linux-x86_64.tar.bz2"; - hash = "sha256-uV0R0L8EoZt59hMKXFlJ+EhONArPpRbb/tIV+wZKLgY="; - }; - - dontPatchELF = true; - nativeBuildInputs = [ wrapGAppsHook3 ]; - - libPath = - lib.makeLibraryPath ( - [ - atk - cairo - dbus-glib - gdk-pixbuf - glib - gtk3 - libGL - libva - libx11 - libxcomposite - libxcursor - libxdamage - libxext - libxfixes - libxi - libxrandr - libxtst - libxcb - libgbm - pango - pciutils - ] - ++ lib.optional alsaSupport alsa-lib - ++ lib.optional jackSupport libjack2 - ++ lib.optional pulseSupport libpulseaudio - ++ lib.optional sndioSupport sndio - ) - + ":" - + lib.makeSearchPathOutput "lib" "lib" [ stdenv.cc.cc ]; - - desktopItem = makeDesktopItem { - name = "zotero"; - exec = "zotero -url %U"; - icon = "zotero"; - comment = finalAttrs.meta.description; - desktopName = "Zotero"; - genericName = "Reference Management"; - categories = [ - "Office" - "Database" - ]; - startupNotify = true; - mimeTypes = [ - "x-scheme-handler/zotero" - "text/plain" - ]; - }; - - installPhase = '' - runHook preInstall - - # Copy package contents to the output directory - mkdir -p "$prefix/usr/lib/zotero-bin-${finalAttrs.version}" - cp -r * "$prefix/usr/lib/zotero-bin-${finalAttrs.version}" - mkdir -p "$out/bin" - ln -s "$prefix/usr/lib/zotero-bin-${finalAttrs.version}/zotero" "$out/bin/" - - # Install desktop file and icons - mkdir -p $out/share/applications - cp ${finalAttrs.desktopItem}/share/applications/* $out/share/applications/ - for size in 32 64 128; do - install -Dm444 icons/icon''${size}.png \ - $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png - done - install -Dm444 icons/symbolic.svg \ - $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg - - runHook postInstall - ''; - - postFixup = '' - for executable in \ - zotero-bin plugin-container updater vaapitest \ - minidump-analyzer glxtest - do - if [ -e "$out/usr/lib/zotero-bin-${finalAttrs.version}/$executable" ]; then - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - "$out/usr/lib/zotero-bin-${finalAttrs.version}/$executable" - fi - done - find . -executable -type f -exec \ - patchelf --set-rpath "$libPath" \ - "$out/usr/lib/zotero-bin-${finalAttrs.version}/{}" \; - ''; -}) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index f76a17632fd9..a5913d28df04 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -1,30 +1,361 @@ { lib, stdenv, - callPackage, -}: + fetchurl, + fetchFromGitHub, + buildNpmPackage, + which, + git, + nodejs_20, + nodejs_24, + perl, + python3, + curl, + wget, + zip, + unzip, + xz, + gawk, + rsync, + buildMozillaMach, + python311, + rustPlatform, + cmake, + python3Packages, + + wrapGAppsHook3, + makeDesktopItem, + atk, + cairo, + dbus-glib, + gdk-pixbuf, + glib, + gtk3, + libGL, + libva, + xorg, + libgbm, + pango, + pciutils, + alsaSupport ? true, + alsa-lib, + jackSupport ? true, + libjack2, + pulseSupport ? true, + libpulseaudio, + sndioSupport ? true, + sndio, +}: let + nodejs = nodejs_20; + pname = "zotero"; version = "7.0.30"; + + src = fetchFromGitHub { + owner = "zotero"; + repo = "zotero"; + tag = version; + hash = "sha256-/DDtKtRM5ddNekItHI6wAY1YoJmqSk77Lfubo/I6KxU="; + fetchSubmodules = true; + }; + + pdf-js = buildNpmPackage { + pname = "zotero-pdf-js"; + inherit version; + nodejs = nodejs_24; + src = "${src}/pdf-worker/pdf.js"; + npmDepsHash = "sha256-/me+tZdxChpPw0bsvD1fWqBgZezsN8EhL/pC7wTDuFE="; + prePatch = '' + # Drop unmaintained @jazzer fuzzer, it leads to `prebuild: command not found` and is not needed for builds. + # TODO: use https://gitlab.alpinelinux.org/alpine/aports/-/raw/master/community/zotero/zotero_drop-jazzer.patch?inline=false instead + substituteInPlace package.json \ + --replace-fail '"@jazzer.js/core": "^2.1.0",' "" + ''; + buildPhase = '' + npm exec gulp lib-legacy + npm exec gulp generic-legacy + npm exec gulp minified-legacy + ''; + installPhase = '' + mkdir -p $out + cp -r . $out + ''; + }; + + epub-js = buildNpmPackage { + pname = "zotero-epub-js"; + inherit version nodejs; + src = "${src}/reader/epubjs/epub.js"; + npmDepsHash = "sha256-JYOEDX6SxB4Epwq5PZ5Y+EJO6UGKsOBIm2XIAqOwDO8="; + npmBuildScript = "prepare"; + installPhase = '' + mkdir -p $out + cp -r . $out + ''; + }; + + pdf-reader = buildNpmPackage { + pname = "zotero-pdf-reader"; + inherit version; + nodejs = nodejs_24; + src = "${src}/reader"; + npmDepsHash = "sha256-kD3xA3N0gETKnB1nNl0c7Zkh+3zQEcQtsY7cZBdh8KQ="; + postPatch = '' + rm -rf pdfjs/pdf.js + cp -r ${pdf-js} pdfjs/pdf.js + + rm -rf epubjs/epub.js + cp -r ${epub-js} epubjs/epub.js + chmod -R u+w epubjs/epub.js + + substituteInPlace epubjs/epub.js/package.json \ + --replace-fail '"prepare":' '"prepare_old":' + ''; + installPhase = '' + mkdir -p $out + cp -r . $out + ''; + }; + + pdf-worker = buildNpmPackage { + pname = "zotero-pdf-worker"; + inherit version nodejs; + src = "${src}/pdf-worker"; + npmDepsHash = "sha256-TGuN1fZOClzm6xD2rmn5BAemN4mbyOVaLbSRyMeDIm8="; + nativeBuildInputs = [ + rsync + ]; + postPatch = '' + rm -rf pdf.js + cp -r ${pdf-js} pdf.js + ''; + installPhase = '' + mkdir -p $out + cp -r . $out + ''; + }; + + note-editor = buildNpmPackage { + pname = "zotero-note-editor"; + inherit version nodejs; + src = "${src}/note-editor"; + npmDepsHash = "sha256-9DJNlbyRgiipjrpiXGVFOl5zALJOwLCyw8TRkfwm5Ns="; + makeCacheWritable = true; + installPhase = '' + mkdir -p $out + cp -r . $out + ''; + }; + + rust-cbindgen-026 = rustPlatform.buildRustPackage rec { + pname = "rust-cbindgen"; + version = "0.26.0"; + + src = fetchFromGitHub { + owner = "mozilla"; + repo = "cbindgen"; + rev = "v${version}"; + hash = "sha256-gyNZAuxpeOjuC+Rh9jAyHSBQRRYUlYoIrBKuCFg3Hao="; + }; + + cargoHash = "sha256-Mn6TigV/+zqG5CsjHMDYAN54P6qw4G03g7JuUM7GbPw="; + + #buildInputs = lib.optional stdenv.isDarwin Security; + + nativeCheckInputs = [ + cmake + python3Packages.cython + ]; + + checkFlags = [ + # Disable tests that require rust unstable features + # https://github.com/eqrion/cbindgen/issues/338 + "--skip test_expand" + "--skip test_bitfield" + "--skip lib_default_uses_debug_build" + "--skip lib_explicit_debug_build" + "--skip lib_explicit_release_build" + "--skip bin_explicit_release_build" + "--skip bin_default_uses_debug_build" + "--skip bin_explicit_debug_build" + ] + ++ lib.optionals stdenv.isDarwin [ + # WORKAROUND: test_body fails when using clang + # https://github.com/eqrion/cbindgen/issues/628 + "--skip test_body" + ]; + + meta = { + license = lib.licenses.mpl20; + }; + }; + + firefox-115 = + (buildMozillaMach rec { + pname = "firefox-esr-115"; + version = "115.31.0esr"; + applicationName = "Mozilla Firefox ESR"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; + sha512 = "5a56764be6f3d1a4c9f2ee289ec2f220670ad3b99e9ab83a63e24f5fcd023611af7c9bdb81f9baef0d5fe003576d56cee01cf563f6686905363d4c925e4022e2"; + }; + + meta = { + platforms = lib.platforms.unix; + badPlatforms = lib.platforms.darwin; + broken = stdenv.buildPlatform.is32bit; + # since Firefox 60, build on 32-bit platforms fails with "out of memory". + # not in `badPlatforms` because cross-compilation on 64-bit machine might work. + license = lib.licenses.mpl20; + }; + }).override + { + python3 = python311; + elfhackSupport = false; + rust-cbindgen = rust-cbindgen-026; + }; + +in +buildNpmPackage rec { + inherit + pname + version + src + nodejs + ; + + npmDepsHash = "sha256-qWeUeiwM6sCNovSoaEP3b42VTnCFSWLK9y8qPnWcSTE="; + + nativeBuildInputs = [ + #which + git + nodejs + perl + python3 + curl + wget + zip + unzip + xz + gawk + rsync + ]; + + patches = [ + ./git-revs.patch + ./avoid-xulrunner-fetch.patch + ]; + + postPatch = '' + substituteInPlace app/scripts/dir_build \ + --replace-quiet 'hash=`git -C "$ROOT_DIR" rev-parse --short HEAD`' 'hash="e9281c51fd464246b60eee4b3ba999eb4f67d36f"' + + rm -rf reader + cp -r ${pdf-reader} reader + + rm -rf pdf-worker + cp -r ${pdf-worker} pdf-worker + + rm -rf note-editor + cp -r ${note-editor} note-editor + + patchShebangs --build app/ + ''; + + #preBuild = "app/scripts/check_requirements"; + + buildPhase = '' + runHook preBuild + + npm run build + + # Place firefox files at the right place + mkdir -p app/xulrunner + cp -r ${firefox-115}/lib/firefox/ app/xulrunner/ + chmod -R u+w app/xulrunner/ + + app/scripts/dir_build + + runHook postBuild + ''; + + desktopItem = makeDesktopItem { + name = "zotero"; + exec = "zotero -url %U"; + icon = "zotero"; + comment = meta.description; + desktopName = "Zotero"; + genericName = "Reference Management"; + categories = [ + "Office" + "Database" + ]; + startupNotify = true; + mimeTypes = [ + "x-scheme-handler/zotero" + "text/plain" + ]; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib/ + cp -r app/staging/*/. $out/lib/ + + runHook postInstall + ''; + + /* + installPhase = '' + runHook preInstall + + # Copy package contents to the output directory + mkdir -p "$prefix/usr/lib/zotero-bin-${version}" + cp -r * "$prefix/usr/lib/zotero-bin-${version}" + mkdir -p "$out/bin" + ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/" + + # Install desktop file and icons + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications/ + for size in 32 64 128; do + install -Dm444 icons/icon''${size}.png \ + $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png + done + install -Dm444 icons/symbolic.svg \ + $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg + + runHook postInstall + ''; + + postFixup = '' + for executable in \ + zotero-bin plugin-container updater vaapitest \ + minidump-analyzer glxtest + do + if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$out/usr/lib/zotero-bin-${version}/$executable" + fi + done + find . -executable -type f -exec \ + patchelf --set-rpath "$libPath" \ + "$out/usr/lib/zotero-bin-${version}/{}" \; + ''; + */ + meta = { homepage = "https://www.zotero.org"; description = "Collect, organize, cite, and share your research sources"; mainProgram = "zotero"; - sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; license = lib.licenses.agpl3Only; - platforms = [ - "x86_64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; + platforms = lib.platforms.all; maintainers = with lib.maintainers; [ atila justanotherariel ]; }; -in -if stdenv.hostPlatform.isDarwin then - callPackage ./darwin.nix { inherit pname version meta; } -else - callPackage ./linux.nix { inherit pname version meta; } +} diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix new file mode 100644 index 000000000000..1e4d755fde0b --- /dev/null +++ b/pkgs/development/tools/rust/cbindgen/default.nix @@ -0,0 +1,52 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, cmake +, python3Packages +, Security +}: + +rustPlatform.buildRustPackage rec { + pname = "rust-cbindgen"; + version = "0.26.0"; + + src = fetchFromGitHub { + owner = "mozilla"; + repo = "cbindgen"; + rev = "v${version}"; + hash = "sha256-gyNZAuxpeOjuC+Rh9jAyHSBQRRYUlYoIrBKuCFg3Hao="; + }; + + cargoHash = "sha256-pdTxhECAZzBx5C01Yx7y/OGwhhAdlEDpqLBdvQcb8bc="; + + buildInputs = lib.optional stdenv.isDarwin Security; + + nativeCheckInputs = [ + cmake + python3Packages.cython + ]; + + checkFlags = [ + # Disable tests that require rust unstable features + # https://github.com/eqrion/cbindgen/issues/338 + "--skip test_expand" + "--skip test_bitfield" + "--skip lib_default_uses_debug_build" + "--skip lib_explicit_debug_build" + "--skip lib_explicit_release_build" + ] ++ lib.optionals stdenv.isDarwin [ + # WORKAROUND: test_body fails when using clang + # https://github.com/eqrion/cbindgen/issues/628 + "--skip test_body" + ]; + + meta = with lib; { + changelog = "https://github.com/mozilla/cbindgen/blob/v${version}/CHANGES"; + description = "Project for generating C bindings from Rust code"; + mainProgram = "cbindgen"; + homepage = "https://github.com/mozilla/cbindgen"; + license = licenses.mpl20; + maintainers = with maintainers; [ hexa ]; + }; +} From 5893fdca25ce124464a168e93905975692adf60a Mon Sep 17 00:00:00 2001 From: Mynacol Date: Wed, 7 Jan 2026 12:35:00 +0000 Subject: [PATCH 042/122] zotero: 7.0.30 -> 8.0-unstable-2026-01-06 This lets us use the already packaged and built Firefox 140 ESR. Many npm-related annoyances/patches were fixed, other new problems were introduced (locale download). --- .../zo/zotero/avoid-xulrunner-fetch.patch | 81 ++++--- pkgs/by-name/zo/zotero/build-fixes.patch | 56 +++++ pkgs/by-name/zo/zotero/git-revs.patch | 22 +- pkgs/by-name/zo/zotero/package.nix | 219 ++++-------------- .../zo/zotero/pdf-reader-locales.patch | 13 ++ .../tools/rust/cbindgen/default.nix | 52 ----- 6 files changed, 180 insertions(+), 263 deletions(-) create mode 100644 pkgs/by-name/zo/zotero/build-fixes.patch create mode 100644 pkgs/by-name/zo/zotero/pdf-reader-locales.patch delete mode 100644 pkgs/development/tools/rust/cbindgen/default.nix diff --git a/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch b/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch index e17e361d554c..a5601bacd2d4 100644 --- a/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch +++ b/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch @@ -1,14 +1,30 @@ diff --git a/app/scripts/fetch_xulrunner b/app/scripts/fetch_xulrunner -index 0d871782c3..bea85feae9 100755 +index 30c3a9073d..fb7c2f367d 100755 --- a/app/scripts/fetch_xulrunner +++ b/app/scripts/fetch_xulrunner -@@ -422,73 +422,11 @@ cd xulrunner +@@ -148,15 +148,6 @@ function modify_omni { + # Continue using app.update.auto in prefs.js on Windows + replace_line 'PER_INSTALLATION_PREFS_PLATFORMS = \["win"\]' 'PER_INSTALLATION_PREFS_PLATFORMS = []' modules/UpdateUtils.sys.mjs + +- # Prompt if major update is available instead of installing automatically on restart +- replace_line 'if \(!updateAuto\) \{' 'if (update.type == "major") { +- LOG("UpdateService:_selectAndInstallUpdate - prompting because it is a major update"); +- AUSTLMY.pingCheckCode(this._pingSuffix, AUSTLMY.CHK_SHOWPROMPT_PREF); +- Services.obs.notifyObservers(update, "update-available", "show-prompt"); +- return; +- } +- if (!updateAuto) {' modules/UpdateService.sys.mjs +- + # Avoid console warning about resource://gre/modules/FxAccountsCommon.js + replace_line 'const logins = this._data.logins;' 'const logins = this._data.logins; if (this._data.logins.length != -1) return;' modules/LoginStore.sys.mjs + +@@ -506,70 +497,9 @@ cd xulrunner if [ $BUILD_MAC == 1 ]; then GECKO_VERSION="$GECKO_VERSION_MAC" - DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION" - rm -rf Firefox.app - +- - if [ -e "Firefox $GECKO_VERSION.app.zip" ]; then - echo "Using Firefox $GECKO_VERSION.app.zip" - unzip "Firefox $GECKO_VERSION.app.zip" @@ -19,6 +35,8 @@ index 0d871782c3..bea85feae9 100755 - set -e - hdiutil attach -quiet Firefox.dmg - cp -a /Volumes/Firefox/Firefox.app . +- # Store local copy of unmodified app +- zip -r "Firefox $GECKO_VERSION.app.zip" Firefox.app - hdiutil detach -quiet /Volumes/Firefox - fi - @@ -37,7 +55,7 @@ index 0d871782c3..bea85feae9 100755 - - # Verify hash - if [[ "`uname`" = "Darwin" ]]; then -- shasum=shasum +- shasum="shasum -a 256" - else - shasum=sha256sum - fi @@ -54,7 +72,7 @@ index 0d871782c3..bea85feae9 100755 + pushd firefox modify_omni mac popd - +- - # Replace "FirefoxCP" with "ZoteroCP" for subprocesses ("Isolated Web Content", "Socket Process", "Web Content", etc.) - info_plist=Firefox.app/Contents/MacOS/plugin-container.app/Contents/Resources/English.lproj/InfoPlist.strings - from=$(get_utf16_chars "FirefoxCP") @@ -66,52 +84,55 @@ index 0d871782c3..bea85feae9 100755 - exit 1 - fi - -- if [ ! -e "Firefox $GECKO_VERSION.app.zip" ]; then -- rm "Firefox.dmg" -- fi +- rm -f Firefox.dmg - -- #if [ ! -e "Firefox $GECKO_VERSION MacOS.zip" ]; then -- # rm "MacOS.zip" -- #fi - echo $("$SCRIPT_DIR/xulrunner_hash" -p m) > hash-mac fi if [ $BUILD_WIN == 1 ]; then -@@ -563,36 +501,9 @@ fi +@@ -709,44 +639,9 @@ if [ $BUILD_WIN == 1 ]; then + fi if [ $BUILD_LINUX == 1 ]; then - GECKO_VERSION="$GECKO_VERSION_LINUX" +- GECKO_VERSION="$GECKO_VERSION_LINUX" - DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION" -- -- -- # Include 32-bit build if not in CI -- if [[ "${CI:-}" = "1" ]] || [[ "${SKIP_32:-}" = "1" ]]; then -- arches="x86_64" +- +- if [[ -n $arch ]]; then +- arch_list=("$arch") - else -- arches="i686 x86_64" +- arch_list=(x86_64 arm64 i686) - fi -- for arch in $arches; do -- xdir="firefox-$arch" +- for arch in "${arch_list[@]}"; do +- xdir="firefox-linux-$arch" - rm -rf $xdir - -- archived_file="firefox-$GECKO_VERSION-$arch.tar.bz2" +- archived_file="firefox-$GECKO_VERSION-$arch.tar.xz" - if [ -e "$archived_file" ]; then - echo "Using $archived_file" -- cp "$archived_file" "firefox-$GECKO_VERSION.tar.bz2" +- cp "$archived_file" "firefox-$GECKO_VERSION.tar.xz" - else -- curl -O "$DOWNLOAD_URL/linux-$arch/en-US/firefox-$GECKO_VERSION.tar.bz2" +- if [ $arch = "arm64" ]; then +- moz_arch=aarch64 +- else +- moz_arch=$arch +- fi +- curl -O "$DOWNLOAD_URL/linux-$moz_arch/en-US/firefox-$GECKO_VERSION.tar.xz" +- # Store local copy of unmodified app +- cp "firefox-$GECKO_VERSION.tar.xz" "$archived_file" - fi - -- tar xvf firefox-$GECKO_VERSION.tar.bz2 -- mv firefox firefox-$arch +- tar xvf firefox-$GECKO_VERSION.tar.xz +- mv firefox $xdir - -- pushd firefox-$arch +- pushd $xdir - modify_omni $arch -+ pushd firefox ++ pushd firefox-linux-x86_64 + modify_omni linux popd -- echo $($SCRIPT_DIR/xulrunner_hash -p l) > hash-linux -- rm "firefox-$GECKO_VERSION.tar.bz2" +- +- rm "firefox-$GECKO_VERSION.tar.xz" +- +- echo "$( $SCRIPT_DIR/xulrunner_hash -p l -a "$arch" )" > "hash-linux-${arch}" - done fi diff --git a/pkgs/by-name/zo/zotero/build-fixes.patch b/pkgs/by-name/zo/zotero/build-fixes.patch new file mode 100644 index 000000000000..0d71d3d446d3 --- /dev/null +++ b/pkgs/by-name/zo/zotero/build-fixes.patch @@ -0,0 +1,56 @@ +diff --git a/app/build.sh b/app/build.sh +index de092bde16..b2d92287a7 100755 +--- a/app/build.sh ++++ b/app/build.sh +@@ -244,7 +244,7 @@ if [ -z "$UPDATE_CHANNEL" ]; then UPDATE_CHANNEL="default"; fi + BUILD_ID=`date +%Y%m%d%H%M%S` + + # Paths to Gecko runtimes +-MAC_RUNTIME_PATH="$CALLDIR/xulrunner/Firefox.app" ++MAC_RUNTIME_PATH="$CALLDIR/xulrunner/firefox" + WIN_RUNTIME_PATH_PREFIX="$CALLDIR/xulrunner/firefox-" + LINUX_RUNTIME_PATH_PREFIX="$CALLDIR/xulrunner/firefox-linux-" + +@@ -272,8 +272,8 @@ cd "$app_dir" + # This works around https://bugzilla.mozilla.org/show_bug.cgi?id=1772900 + set +e + if [ $BUILD_MAC == 1 ]; then +- cp -Rp "$MAC_RUNTIME_PATH"/Contents/Resources/browser/omni "$app_dir" +- unzip -qj "$MAC_RUNTIME_PATH"/Contents/Resources/omni.ja "hyphenation/*" -d "$app_dir"/hyphenation/ ++ cp -Rp "$MAC_RUNTIME_PATH"/browser/omni "$app_dir" ++ unzip -qj "$MAC_RUNTIME_PATH"/omni.ja "hyphenation/*" -d "$app_dir"/hyphenation/ + + elif [[ $BUILD_WIN == 1 ]]; then + # These are non-arch-specific files, so just find a runtime we fetched: +@@ -644,11 +644,6 @@ if [ $BUILD_MAC == 1 ]; then + cp "$MAC_RUNTIME_PATH/../MacOS/XUL" "$CONTENTSDIR/MacOS/" + fi + +- # Use our own updater, because Mozilla's requires updates signed by Mozilla +- cd "$CONTENTSDIR/MacOS" +- check_lfs_file "$CALLDIR/mac/updater.tar.xz" +- tar xf "$CALLDIR/mac/updater.tar.xz" +- + # Modify Info.plist + perl -pi -e "s/\{\{VERSION\}\}/$VERSION/" "$CONTENTSDIR/Info.plist" + perl -pi -e "s/\{\{VERSION_NUMERIC\}\}/$VERSION_NUMERIC/" "$CONTENTSDIR/Info.plist" +@@ -1028,11 +1023,6 @@ if [ $BUILD_LINUX == 1 ]; then + cp "$CALLDIR/linux/zotero.desktop" "$APPDIR" + cp "$CALLDIR/linux/set_launcher_icon" "$APPDIR" + +- # Use our own updater, because Mozilla's requires updates signed by Mozilla +- check_lfs_file "$CALLDIR/linux/updater.tar.xz" +- tar xf "$CALLDIR/linux/updater.tar.xz" --to-stdout updater-$arch > "$APPDIR/updater" +- chmod 755 "$APPDIR/updater" +- + # Copy app files + rsync -a "$base_dir/" "$APPDIR/" + +@@ -1041,6 +1031,7 @@ if [ $BUILD_LINUX == 1 ]; then + cp -RH "$CALLDIR/modules/zotero-libreoffice-integration/install" "$APPDIR/integration/libreoffice" + + # Copy icons ++ mkdir "$APPDIR/icons/" + cp "$CALLDIR/linux/icons/icon32.png" "$APPDIR/icons/" + cp "$CALLDIR/linux/icons/icon64.png" "$APPDIR/icons/" + cp "$CALLDIR/linux/icons/icon128.png" "$APPDIR/icons/" diff --git a/pkgs/by-name/zo/zotero/git-revs.patch b/pkgs/by-name/zo/zotero/git-revs.patch index e6a89af707e3..da77a12c3526 100644 --- a/pkgs/by-name/zo/zotero/git-revs.patch +++ b/pkgs/by-name/zo/zotero/git-revs.patch @@ -1,17 +1,27 @@ +diff --git a/app/scripts/dir_build b/app/scripts/dir_build +index 493288ad47..213b6d45b0 100755 +--- a/app/scripts/dir_build ++++ b/app/scripts/dir_build +@@ -86,7 +86,7 @@ fi + + CHANNEL="source" + +-hash=$(git -C "$ROOT_DIR" rev-parse --short HEAD) ++hash="8c8da79116b97a8221d4ab223c769ce3e0f26332" + + build_dir=$(mktemp -d) + cleanup() { rm -rf "$build_dir"; } diff --git a/js-build/build.js b/js-build/build.js -index 5e920db6d8..befe280606 100644 +index 6b39260812..910b715298 100644 --- a/js-build/build.js +++ b/js-build/build.js -@@ -36,9 +36,9 @@ if (require.main === module) { +@@ -36,9 +36,6 @@ if (require.main === module) { ...scssFiles.map(scf => getSass(scf, { ignore: ignoreMask }, signatures)), getSymlinks(symlinks, { nodir: true, ignore: ignoreMask }, signatures), getSymlinks(symlinkDirs, { ignore: ignoreMask }, signatures), -- getPDFReader(signatures), +- getReader(signatures), - getPDFWorker(signatures), - getZoteroNoteEditor(signatures) -+ //getPDFReader(signatures), -+ //getPDFWorker(signatures), -+ //getZoteroNoteEditor(signatures) ]); await writeSignatures(signatures); diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index a5913d28df04..645c35369fca 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -1,78 +1,40 @@ { lib, stdenv, - fetchurl, fetchFromGitHub, buildNpmPackage, - - which, - git, nodejs_20, - nodejs_24, perl, python3, - curl, - wget, zip, unzip, xz, gawk, rsync, - buildMozillaMach, - python311, - rustPlatform, - cmake, - python3Packages, - - wrapGAppsHook3, + firefox-esr-140-unwrapped, makeDesktopItem, - atk, - cairo, - dbus-glib, - gdk-pixbuf, - glib, - gtk3, - libGL, - libva, - xorg, - libgbm, - pango, - pciutils, - alsaSupport ? true, - alsa-lib, - jackSupport ? true, - libjack2, - pulseSupport ? true, - libpulseaudio, - sndioSupport ? true, - sndio, + copyDesktopItems, }: let + # note-editor needs nodejs 20. Any newer version fails to build zotero's fork of @benrbray/prosemirror-math during npm install. nodejs = nodejs_20; pname = "zotero"; - version = "7.0.30"; + version = "8.0-unstable-2026-01-06"; src = fetchFromGitHub { owner = "zotero"; repo = "zotero"; - tag = version; - hash = "sha256-/DDtKtRM5ddNekItHI6wAY1YoJmqSk77Lfubo/I6KxU="; + rev = "8c8da79116b97a8221d4ab223c769ce3e0f26332"; + hash = "sha256-I5gaxzgN+mHSLqV3AJmXCLhKHEh2EmEw2/sf+YRURIk="; fetchSubmodules = true; }; pdf-js = buildNpmPackage { pname = "zotero-pdf-js"; - inherit version; - nodejs = nodejs_24; + inherit version nodejs; src = "${src}/pdf-worker/pdf.js"; - npmDepsHash = "sha256-/me+tZdxChpPw0bsvD1fWqBgZezsN8EhL/pC7wTDuFE="; - prePatch = '' - # Drop unmaintained @jazzer fuzzer, it leads to `prebuild: command not found` and is not needed for builds. - # TODO: use https://gitlab.alpinelinux.org/alpine/aports/-/raw/master/community/zotero/zotero_drop-jazzer.patch?inline=false instead - substituteInPlace package.json \ - --replace-fail '"@jazzer.js/core": "^2.1.0",' "" - ''; + npmDepsHash = "sha256-KeYAY6EWBZVd3QucDEDtI6lwtTahCEFBFf2Ebib9HKg="; buildPhase = '' npm exec gulp lib-legacy npm exec gulp generic-legacy @@ -88,8 +50,11 @@ let pname = "zotero-epub-js"; inherit version nodejs; src = "${src}/reader/epubjs/epub.js"; - npmDepsHash = "sha256-JYOEDX6SxB4Epwq5PZ5Y+EJO6UGKsOBIm2XIAqOwDO8="; - npmBuildScript = "prepare"; + npmDepsHash = "sha256-6XY6uczPOpMpRHDQbkQRHKBDDRQ/MXIVepGBx1V+h5Q="; + buildPhase = '' + npm run compile + npm run build + ''; installPhase = '' mkdir -p $out cp -r . $out @@ -98,20 +63,21 @@ let pdf-reader = buildNpmPackage { pname = "zotero-pdf-reader"; - inherit version; - nodejs = nodejs_24; + inherit version nodejs; src = "${src}/reader"; - npmDepsHash = "sha256-kD3xA3N0gETKnB1nNl0c7Zkh+3zQEcQtsY7cZBdh8KQ="; + npmDepsHash = "sha256-p8O2gIF0S7QO0AR9TPPQsWUtRnKnf58zSl3JZN0lnuc="; + patches = [ ./pdf-reader-locales.patch ]; postPatch = '' rm -rf pdfjs/pdf.js cp -r ${pdf-js} pdfjs/pdf.js + chmod -R u+w pdfjs/pdf.js rm -rf epubjs/epub.js cp -r ${epub-js} epubjs/epub.js chmod -R u+w epubjs/epub.js - substituteInPlace epubjs/epub.js/package.json \ - --replace-fail '"prepare":' '"prepare_old":' + mkdir -p locales/en-US/ + cp -r ${src}/chrome/locale/en-US/zotero/* locales/en-US/ ''; installPhase = '' mkdir -p $out @@ -141,82 +107,19 @@ let pname = "zotero-note-editor"; inherit version nodejs; src = "${src}/note-editor"; - npmDepsHash = "sha256-9DJNlbyRgiipjrpiXGVFOl5zALJOwLCyw8TRkfwm5Ns="; + npmDepsHash = "sha256-3KSSm8oCNOIDN/ZHhDbx7+cF20qtjtZwpnCOOWe3WQc="; makeCacheWritable = true; + patches = [ ./pdf-reader-locales.patch ]; + postPatch = '' + mkdir -p locales/en-US/ + cp -r ${src}/chrome/locale/en-US/zotero/* locales/en-US/ + ''; installPhase = '' mkdir -p $out cp -r . $out ''; }; - rust-cbindgen-026 = rustPlatform.buildRustPackage rec { - pname = "rust-cbindgen"; - version = "0.26.0"; - - src = fetchFromGitHub { - owner = "mozilla"; - repo = "cbindgen"; - rev = "v${version}"; - hash = "sha256-gyNZAuxpeOjuC+Rh9jAyHSBQRRYUlYoIrBKuCFg3Hao="; - }; - - cargoHash = "sha256-Mn6TigV/+zqG5CsjHMDYAN54P6qw4G03g7JuUM7GbPw="; - - #buildInputs = lib.optional stdenv.isDarwin Security; - - nativeCheckInputs = [ - cmake - python3Packages.cython - ]; - - checkFlags = [ - # Disable tests that require rust unstable features - # https://github.com/eqrion/cbindgen/issues/338 - "--skip test_expand" - "--skip test_bitfield" - "--skip lib_default_uses_debug_build" - "--skip lib_explicit_debug_build" - "--skip lib_explicit_release_build" - "--skip bin_explicit_release_build" - "--skip bin_default_uses_debug_build" - "--skip bin_explicit_debug_build" - ] - ++ lib.optionals stdenv.isDarwin [ - # WORKAROUND: test_body fails when using clang - # https://github.com/eqrion/cbindgen/issues/628 - "--skip test_body" - ]; - - meta = { - license = lib.licenses.mpl20; - }; - }; - - firefox-115 = - (buildMozillaMach rec { - pname = "firefox-esr-115"; - version = "115.31.0esr"; - applicationName = "Mozilla Firefox ESR"; - src = fetchurl { - url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; - sha512 = "5a56764be6f3d1a4c9f2ee289ec2f220670ad3b99e9ab83a63e24f5fcd023611af7c9bdb81f9baef0d5fe003576d56cee01cf563f6686905363d4c925e4022e2"; - }; - - meta = { - platforms = lib.platforms.unix; - badPlatforms = lib.platforms.darwin; - broken = stdenv.buildPlatform.is32bit; - # since Firefox 60, build on 32-bit platforms fails with "out of memory". - # not in `badPlatforms` because cross-compilation on 64-bit machine might work. - license = lib.licenses.mpl20; - }; - }).override - { - python3 = python311; - elfhackSupport = false; - rust-cbindgen = rust-cbindgen-026; - }; - in buildNpmPackage rec { inherit @@ -226,32 +129,26 @@ buildNpmPackage rec { nodejs ; - npmDepsHash = "sha256-qWeUeiwM6sCNovSoaEP3b42VTnCFSWLK9y8qPnWcSTE="; + npmDepsHash = "sha256-IVaT/O83kCGT7MGsTSblMKfVWeNBIpA9VJIWyikJrpk="; nativeBuildInputs = [ - #which - git - nodejs perl python3 - curl - wget zip unzip xz gawk rsync + copyDesktopItems ]; patches = [ ./git-revs.patch ./avoid-xulrunner-fetch.patch + ./build-fixes.patch ]; postPatch = '' - substituteInPlace app/scripts/dir_build \ - --replace-quiet 'hash=`git -C "$ROOT_DIR" rev-parse --short HEAD`' 'hash="e9281c51fd464246b60eee4b3ba999eb4f67d36f"' - rm -rf reader cp -r ${pdf-reader} reader @@ -271,9 +168,10 @@ buildNpmPackage rec { npm run build - # Place firefox files at the right place - mkdir -p app/xulrunner - cp -r ${firefox-115}/lib/firefox/ app/xulrunner/ + # Place firefox files at the right place. + # The correct firefox version can be found in zotero/app/config.sh at `GECKO_VERSION_LINUX`. + mkdir -p app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${stdenv.targetPlatform.parsed.cpu.name} + cp -r ${firefox-esr-140-unwrapped}/lib/firefox/. app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${stdenv.targetPlatform.parsed.cpu.name} chmod -R u+w app/xulrunner/ app/scripts/dir_build @@ -302,57 +200,28 @@ buildNpmPackage rec { installPhase = '' runHook preInstall - mkdir -p $out/lib/ + # Copy package contents + mkdir -p $out/lib/ $out/bin/ cp -r app/staging/*/. $out/lib/ + # Add binary to bin/ + ln -s ../lib/zotero $out/bin/zotero + + # Install icons + for size in 32 64 128; do + install -Dm444 "app/linux/icons/icon$size.png" "$out/share/icons/hicolor/''${size}x$size/apps/zotero.png" + done + install -Dm444 "app/linux/icons/symbolic.svg" "$out/share/icons/hicolor/scalable/apps/zotero-symbolic.svg" + runHook postInstall ''; - /* - installPhase = '' - runHook preInstall - - # Copy package contents to the output directory - mkdir -p "$prefix/usr/lib/zotero-bin-${version}" - cp -r * "$prefix/usr/lib/zotero-bin-${version}" - mkdir -p "$out/bin" - ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/" - - # Install desktop file and icons - mkdir -p $out/share/applications - cp ${desktopItem}/share/applications/* $out/share/applications/ - for size in 32 64 128; do - install -Dm444 icons/icon''${size}.png \ - $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png - done - install -Dm444 icons/symbolic.svg \ - $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg - - runHook postInstall - ''; - - postFixup = '' - for executable in \ - zotero-bin plugin-container updater vaapitest \ - minidump-analyzer glxtest - do - if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - "$out/usr/lib/zotero-bin-${version}/$executable" - fi - done - find . -executable -type f -exec \ - patchelf --set-rpath "$libPath" \ - "$out/usr/lib/zotero-bin-${version}/{}" \; - ''; - */ - meta = { homepage = "https://www.zotero.org"; description = "Collect, organize, cite, and share your research sources"; mainProgram = "zotero"; license = lib.licenses.agpl3Only; - platforms = lib.platforms.all; + platforms = firefox-esr-140-unwrapped.meta.platforms; maintainers = with lib.maintainers; [ atila justanotherariel diff --git a/pkgs/by-name/zo/zotero/pdf-reader-locales.patch b/pkgs/by-name/zo/zotero/pdf-reader-locales.patch new file mode 100644 index 000000000000..643ac3388cf1 --- /dev/null +++ b/pkgs/by-name/zo/zotero/pdf-reader-locales.patch @@ -0,0 +1,13 @@ +diff --git a/webpack.zotero-locale-plugin.js b/webpack.zotero-locale-plugin.js +index fb6eb28..e5e040f 100644 +--- a/webpack.zotero-locale-plugin.js ++++ b/webpack.zotero-locale-plugin.js +@@ -52,7 +52,7 @@ class ZoteroLocalePlugin { + } + + // If the commit hash has changed +- if (lastCommitHash !== this.commitHash) { ++ if (false) { + console.log(`Detected commit hash change (was: ${lastCommitHash}, now: ${this.commitHash}). Clearing and downloading locale files...`); + + // Remove and recreate the output directory diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix deleted file mode 100644 index 1e4d755fde0b..000000000000 --- a/pkgs/development/tools/rust/cbindgen/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, rustPlatform -, cmake -, python3Packages -, Security -}: - -rustPlatform.buildRustPackage rec { - pname = "rust-cbindgen"; - version = "0.26.0"; - - src = fetchFromGitHub { - owner = "mozilla"; - repo = "cbindgen"; - rev = "v${version}"; - hash = "sha256-gyNZAuxpeOjuC+Rh9jAyHSBQRRYUlYoIrBKuCFg3Hao="; - }; - - cargoHash = "sha256-pdTxhECAZzBx5C01Yx7y/OGwhhAdlEDpqLBdvQcb8bc="; - - buildInputs = lib.optional stdenv.isDarwin Security; - - nativeCheckInputs = [ - cmake - python3Packages.cython - ]; - - checkFlags = [ - # Disable tests that require rust unstable features - # https://github.com/eqrion/cbindgen/issues/338 - "--skip test_expand" - "--skip test_bitfield" - "--skip lib_default_uses_debug_build" - "--skip lib_explicit_debug_build" - "--skip lib_explicit_release_build" - ] ++ lib.optionals stdenv.isDarwin [ - # WORKAROUND: test_body fails when using clang - # https://github.com/eqrion/cbindgen/issues/628 - "--skip test_body" - ]; - - meta = with lib; { - changelog = "https://github.com/mozilla/cbindgen/blob/v${version}/CHANGES"; - description = "Project for generating C bindings from Rust code"; - mainProgram = "cbindgen"; - homepage = "https://github.com/mozilla/cbindgen"; - license = licenses.mpl20; - maintainers = with maintainers; [ hexa ]; - }; -} From de7214e12f05fc5f2a04a6765cfae0d757e42964 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Sun, 11 Jan 2026 16:40:00 +0000 Subject: [PATCH 043/122] zotero: Setup check phase When running the tests, the build phase has to be built with `ZOTERO_TEST` set. Also generously skip tests that fail. --- pkgs/by-name/zo/zotero/package.nix | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 645c35369fca..e714109ee265 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -14,6 +14,8 @@ firefox-esr-140-unwrapped, makeDesktopItem, copyDesktopItems, + xvfb-run, + doCheck ? false, }: let # note-editor needs nodejs 20. Any newer version fails to build zotero's fork of @benrbray/prosemirror-math during npm install. @@ -158,7 +160,20 @@ buildNpmPackage rec { rm -rf note-editor cp -r ${note-editor} note-editor - patchShebangs --build app/ + patchShebangs --build app/ test/ + + # Skip some flaky/failing tests + rm test/tests/retractionsTest.js + for test in \ + "should throw error on broken symlink" \ + "should use BrowserDownload for 403 when enforcing file type" \ + "should use BrowserDownload for a JS redirect page" \ + "should keep attachments pane status after changing selection" \ + "should render preview robustly after making dense calls to render and discard" \ + "should discard attachment pane preview after becoming invisible" \ + ; do + sed -i "s|it(\"$test|it.skip(\"$test|" test/tests/*.js + done ''; #preBuild = "app/scripts/check_requirements"; @@ -179,6 +194,18 @@ buildNpmPackage rec { runHook postBuild ''; + inherit doCheck; + # Build with test support if `doCheck` is enabled. + ZOTERO_TEST = doCheck; + + nativeCheckInputs = [ + xvfb-run + ]; + + checkPhase = '' + CI=true xvfb-run test/runtests.sh + ''; + desktopItem = makeDesktopItem { name = "zotero"; exec = "zotero -url %U"; From 845342dee5a83995b032df576828d35435439286 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 23 Jan 2026 10:04:00 +0000 Subject: [PATCH 044/122] zotero: 8.0-unstable -> 8.0.0 --- pkgs/by-name/zo/zotero/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index e714109ee265..54bb6e4e67ad 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -22,13 +22,13 @@ let nodejs = nodejs_20; pname = "zotero"; - version = "8.0-unstable-2026-01-06"; + version = "8.0.0"; src = fetchFromGitHub { owner = "zotero"; repo = "zotero"; - rev = "8c8da79116b97a8221d4ab223c769ce3e0f26332"; - hash = "sha256-I5gaxzgN+mHSLqV3AJmXCLhKHEh2EmEw2/sf+YRURIk="; + tag = version; + hash = "sha256-SG5fTsQgtVX8Pmla2W91sETSR1D7ThmnrdUQwycNsPA="; fetchSubmodules = true; }; From 3d8c36c7952ac411cc73f97d53296ae2d1a0e81b Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 23 Jan 2026 11:34:00 +0000 Subject: [PATCH 045/122] zotero: Fix reader availability the js-build/reader.js etc. files also copied the files to another folder. This was missing to make zotero fully functional. Additionally, with `leaveDotGit` and by providing git as dependency, we can avoid explicitly giving a git hash. --- pkgs/by-name/zo/zotero/git-revs.patch | 27 -------------- pkgs/by-name/zo/zotero/js-build-fixes.patch | 39 +++++++++++++++++++++ pkgs/by-name/zo/zotero/package.nix | 10 ++++-- 3 files changed, 47 insertions(+), 29 deletions(-) delete mode 100644 pkgs/by-name/zo/zotero/git-revs.patch create mode 100644 pkgs/by-name/zo/zotero/js-build-fixes.patch diff --git a/pkgs/by-name/zo/zotero/git-revs.patch b/pkgs/by-name/zo/zotero/git-revs.patch deleted file mode 100644 index da77a12c3526..000000000000 --- a/pkgs/by-name/zo/zotero/git-revs.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/app/scripts/dir_build b/app/scripts/dir_build -index 493288ad47..213b6d45b0 100755 ---- a/app/scripts/dir_build -+++ b/app/scripts/dir_build -@@ -86,7 +86,7 @@ fi - - CHANNEL="source" - --hash=$(git -C "$ROOT_DIR" rev-parse --short HEAD) -+hash="8c8da79116b97a8221d4ab223c769ce3e0f26332" - - build_dir=$(mktemp -d) - cleanup() { rm -rf "$build_dir"; } -diff --git a/js-build/build.js b/js-build/build.js -index 6b39260812..910b715298 100644 ---- a/js-build/build.js -+++ b/js-build/build.js -@@ -36,9 +36,6 @@ if (require.main === module) { - ...scssFiles.map(scf => getSass(scf, { ignore: ignoreMask }, signatures)), - getSymlinks(symlinks, { nodir: true, ignore: ignoreMask }, signatures), - getSymlinks(symlinkDirs, { ignore: ignoreMask }, signatures), -- getReader(signatures), -- getPDFWorker(signatures), -- getZoteroNoteEditor(signatures) - ]); - - await writeSignatures(signatures); diff --git a/pkgs/by-name/zo/zotero/js-build-fixes.patch b/pkgs/by-name/zo/zotero/js-build-fixes.patch new file mode 100644 index 000000000000..56798cb01edc --- /dev/null +++ b/pkgs/by-name/zo/zotero/js-build-fixes.patch @@ -0,0 +1,39 @@ +diff --git a/js-build/note-editor.js b/js-build/note-editor.js +index 1435730342..c58af27eae 100644 +--- a/js-build/note-editor.js ++++ b/js-build/note-editor.js +@@ -37,8 +37,6 @@ async function getZoteroNoteEditor(signatures) { + } + catch (e) { + console.error(e); +- await exec('npm ci', { cwd: modulePath }); +- await exec('npm run build', { cwd: modulePath }); + await fs.copy(path.join(modulePath, 'build', 'zotero'), targetDir); + } + signatures['note-editor'] = { hash }; +diff --git a/js-build/pdf-worker.js b/js-build/pdf-worker.js +index b820304f3a..3053275dde 100644 +--- a/js-build/pdf-worker.js ++++ b/js-build/pdf-worker.js +@@ -34,8 +34,6 @@ async function getPDFWorker(signatures) { + } + catch (e) { + console.error(e); +- await exec('npm ci', { cwd: modulePath }); +- await exec('npm run build', { cwd: modulePath }); + await fs.copy(path.join(modulePath, 'build', 'worker.js'), path.join(targetDir, 'worker.js')); + } + signatures['pdf-worker'] = { hash }; +diff --git a/js-build/reader.js b/js-build/reader.js +index 67a02a3ad2..14834d80a2 100644 +--- a/js-build/reader.js ++++ b/js-build/reader.js +@@ -37,8 +37,6 @@ async function getReader(signatures) { + } + catch (e) { + console.error(e); +- await exec('npm ci', { cwd: modulePath }); +- await exec('npm run build', { cwd: modulePath }); + await fs.copy(path.join(modulePath, 'build', 'zotero'), targetDir); + } + signatures['reader'] = { hash }; diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 54bb6e4e67ad..eb58bf2591ad 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -4,6 +4,7 @@ fetchFromGitHub, buildNpmPackage, nodejs_20, + git, perl, python3, zip, @@ -28,8 +29,9 @@ let owner = "zotero"; repo = "zotero"; tag = version; - hash = "sha256-SG5fTsQgtVX8Pmla2W91sETSR1D7ThmnrdUQwycNsPA="; + hash = "sha256-vjGTlb4LM7wjOZqD/VsHXX59EA1f9a3LDz+Mgo4wHb0="; fetchSubmodules = true; + leaveDotGit = true; }; pdf-js = buildNpmPackage { @@ -134,6 +136,7 @@ buildNpmPackage rec { npmDepsHash = "sha256-IVaT/O83kCGT7MGsTSblMKfVWeNBIpA9VJIWyikJrpk="; nativeBuildInputs = [ + git perl python3 zip @@ -145,7 +148,7 @@ buildNpmPackage rec { ]; patches = [ - ./git-revs.patch + ./js-build-fixes.patch ./avoid-xulrunner-fetch.patch ./build-fixes.patch ]; @@ -153,12 +156,15 @@ buildNpmPackage rec { postPatch = '' rm -rf reader cp -r ${pdf-reader} reader + chmod -R u+w reader rm -rf pdf-worker cp -r ${pdf-worker} pdf-worker + chmod -R u+w pdf-worker rm -rf note-editor cp -r ${note-editor} note-editor + chmod -R u+w note-editor patchShebangs --build app/ test/ From f767b3ad8fdc3210808a842793ae6853a027d499 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 23 Jan 2026 12:59:00 +0000 Subject: [PATCH 046/122] zotero: Fix darwin By placing firefox at the expected place. Also adapt installPhase. --- .../zo/zotero/avoid-xulrunner-fetch.patch | 34 ++++++++--------- pkgs/by-name/zo/zotero/build-fixes.patch | 30 +++------------ pkgs/by-name/zo/zotero/package.nix | 38 +++++++++++++------ 3 files changed, 46 insertions(+), 56 deletions(-) diff --git a/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch b/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch index a5601bacd2d4..b0761e4a8c41 100644 --- a/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch +++ b/pkgs/by-name/zo/zotero/avoid-xulrunner-fetch.patch @@ -1,5 +1,5 @@ diff --git a/app/scripts/fetch_xulrunner b/app/scripts/fetch_xulrunner -index 30c3a9073d..fb7c2f367d 100755 +index 30c3a9073d..aa953744f8 100755 --- a/app/scripts/fetch_xulrunner +++ b/app/scripts/fetch_xulrunner @@ -148,15 +148,6 @@ function modify_omni { @@ -68,8 +68,7 @@ index 30c3a9073d..fb7c2f367d 100755 - echo - fi - -- pushd Firefox.app/Contents/Resources -+ pushd firefox + pushd Firefox.app/Contents/Resources modify_omni mac popd - @@ -90,20 +89,20 @@ index 30c3a9073d..fb7c2f367d 100755 fi if [ $BUILD_WIN == 1 ]; then -@@ -709,44 +639,9 @@ if [ $BUILD_WIN == 1 ]; then +@@ -709,9 +639,6 @@ if [ $BUILD_WIN == 1 ]; then fi if [ $BUILD_LINUX == 1 ]; then - GECKO_VERSION="$GECKO_VERSION_LINUX" - DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION" - -- if [[ -n $arch ]]; then -- arch_list=("$arch") -- else -- arch_list=(x86_64 arm64 i686) -- fi -- for arch in "${arch_list[@]}"; do -- xdir="firefox-linux-$arch" + if [[ -n $arch ]]; then + arch_list=("$arch") + else +@@ -719,33 +646,11 @@ if [ $BUILD_LINUX == 1 ]; then + fi + for arch in "${arch_list[@]}"; do + xdir="firefox-linux-$arch" - rm -rf $xdir - - archived_file="firefox-$GECKO_VERSION-$arch.tar.xz" @@ -123,17 +122,14 @@ index 30c3a9073d..fb7c2f367d 100755 - - tar xvf firefox-$GECKO_VERSION.tar.xz - mv firefox $xdir -- -- pushd $xdir -- modify_omni $arch -+ pushd firefox-linux-x86_64 -+ modify_omni linux + + pushd $xdir + modify_omni $arch popd -- + - rm "firefox-$GECKO_VERSION.tar.xz" - - echo "$( $SCRIPT_DIR/xulrunner_hash -p l -a "$arch" )" > "hash-linux-${arch}" -- done + done fi - echo Done diff --git a/pkgs/by-name/zo/zotero/build-fixes.patch b/pkgs/by-name/zo/zotero/build-fixes.patch index 0d71d3d446d3..2d4a5334a9dd 100644 --- a/pkgs/by-name/zo/zotero/build-fixes.patch +++ b/pkgs/by-name/zo/zotero/build-fixes.patch @@ -1,27 +1,7 @@ diff --git a/app/build.sh b/app/build.sh -index de092bde16..b2d92287a7 100755 +index de092bde16..af6008e25c 100755 --- a/app/build.sh +++ b/app/build.sh -@@ -244,7 +244,7 @@ if [ -z "$UPDATE_CHANNEL" ]; then UPDATE_CHANNEL="default"; fi - BUILD_ID=`date +%Y%m%d%H%M%S` - - # Paths to Gecko runtimes --MAC_RUNTIME_PATH="$CALLDIR/xulrunner/Firefox.app" -+MAC_RUNTIME_PATH="$CALLDIR/xulrunner/firefox" - WIN_RUNTIME_PATH_PREFIX="$CALLDIR/xulrunner/firefox-" - LINUX_RUNTIME_PATH_PREFIX="$CALLDIR/xulrunner/firefox-linux-" - -@@ -272,8 +272,8 @@ cd "$app_dir" - # This works around https://bugzilla.mozilla.org/show_bug.cgi?id=1772900 - set +e - if [ $BUILD_MAC == 1 ]; then -- cp -Rp "$MAC_RUNTIME_PATH"/Contents/Resources/browser/omni "$app_dir" -- unzip -qj "$MAC_RUNTIME_PATH"/Contents/Resources/omni.ja "hyphenation/*" -d "$app_dir"/hyphenation/ -+ cp -Rp "$MAC_RUNTIME_PATH"/browser/omni "$app_dir" -+ unzip -qj "$MAC_RUNTIME_PATH"/omni.ja "hyphenation/*" -d "$app_dir"/hyphenation/ - - elif [[ $BUILD_WIN == 1 ]]; then - # These are non-arch-specific files, so just find a runtime we fetched: @@ -644,11 +644,6 @@ if [ $BUILD_MAC == 1 ]; then cp "$MAC_RUNTIME_PATH/../MacOS/XUL" "$CONTENTSDIR/MacOS/" fi @@ -34,18 +14,18 @@ index de092bde16..b2d92287a7 100755 # Modify Info.plist perl -pi -e "s/\{\{VERSION\}\}/$VERSION/" "$CONTENTSDIR/Info.plist" perl -pi -e "s/\{\{VERSION_NUMERIC\}\}/$VERSION_NUMERIC/" "$CONTENTSDIR/Info.plist" -@@ -1028,11 +1023,6 @@ if [ $BUILD_LINUX == 1 ]; then +@@ -1027,11 +1022,6 @@ if [ $BUILD_LINUX == 1 ]; then + # Copy Ubuntu launcher files cp "$CALLDIR/linux/zotero.desktop" "$APPDIR" cp "$CALLDIR/linux/set_launcher_icon" "$APPDIR" - +- - # Use our own updater, because Mozilla's requires updates signed by Mozilla - check_lfs_file "$CALLDIR/linux/updater.tar.xz" - tar xf "$CALLDIR/linux/updater.tar.xz" --to-stdout updater-$arch > "$APPDIR/updater" - chmod 755 "$APPDIR/updater" -- + # Copy app files rsync -a "$base_dir/" "$APPDIR/" - @@ -1041,6 +1031,7 @@ if [ $BUILD_LINUX == 1 ]; then cp -RH "$CALLDIR/modules/zotero-libreoffice-integration/install" "$APPDIR/integration/libreoffice" diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index eb58bf2591ad..193acf1f22e3 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -191,8 +191,12 @@ buildNpmPackage rec { # Place firefox files at the right place. # The correct firefox version can be found in zotero/app/config.sh at `GECKO_VERSION_LINUX`. - mkdir -p app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${stdenv.targetPlatform.parsed.cpu.name} - cp -r ${firefox-esr-140-unwrapped}/lib/firefox/. app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${stdenv.targetPlatform.parsed.cpu.name} + mkdir -p app/xulrunner/ + if ${lib.boolToString stdenv.targetPlatform.isDarwin}; then + cp -r '${firefox-esr-140-unwrapped}/Applications/Firefox ESR.app' app/xulrunner/Firefox.app + else + cp -r '${firefox-esr-140-unwrapped}/lib/firefox' app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${stdenv.targetPlatform.parsed.cpu.name} + fi chmod -R u+w app/xulrunner/ app/scripts/dir_build @@ -233,18 +237,28 @@ buildNpmPackage rec { installPhase = '' runHook preInstall - # Copy package contents - mkdir -p $out/lib/ $out/bin/ - cp -r app/staging/*/. $out/lib/ + if ${lib.boolToString stdenv.targetPlatform.isDarwin}; then - # Add binary to bin/ - ln -s ../lib/zotero $out/bin/zotero + # Copy package contents + mkdir -p $out/Applications + cp -r app/staging/Zotero.app $out/Applications/ - # Install icons - for size in 32 64 128; do - install -Dm444 "app/linux/icons/icon$size.png" "$out/share/icons/hicolor/''${size}x$size/apps/zotero.png" - done - install -Dm444 "app/linux/icons/symbolic.svg" "$out/share/icons/hicolor/scalable/apps/zotero-symbolic.svg" + else + + # Copy package contents + mkdir -p $out/lib/ $out/bin/ + cp -r app/staging/*/. $out/lib/ + + # Add binary to bin/ + ln -s ../lib/zotero $out/bin/zotero + + # Install icons + for size in 32 64 128; do + install -Dm444 "app/linux/icons/icon$size.png" "$out/share/icons/hicolor/''${size}x$size/apps/zotero.png" + done + install -Dm444 "app/linux/icons/symbolic.svg" "$out/share/icons/hicolor/scalable/apps/zotero-symbolic.svg" + + fi runHook postInstall ''; From 20c8c8b0986da3b2a50964fcafb3591adb182e1f Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 23 Jan 2026 14:51:00 +0000 Subject: [PATCH 047/122] zotero: Cleanups - Always run pre/post phase hooks - Hide some expected errors - Update to nodejs 22 - Some other cleanups --- pkgs/by-name/zo/zotero/build-fixes.patch | 4 +-- pkgs/by-name/zo/zotero/js-build-fixes.patch | 21 ++++++------ pkgs/by-name/zo/zotero/package.nix | 36 ++++++++++++++++++--- 3 files changed, 46 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/zo/zotero/build-fixes.patch b/pkgs/by-name/zo/zotero/build-fixes.patch index 2d4a5334a9dd..73854217084a 100644 --- a/pkgs/by-name/zo/zotero/build-fixes.patch +++ b/pkgs/by-name/zo/zotero/build-fixes.patch @@ -1,5 +1,5 @@ diff --git a/app/build.sh b/app/build.sh -index de092bde16..af6008e25c 100755 +index de092bde16..2e58b687e7 100755 --- a/app/build.sh +++ b/app/build.sh @@ -644,11 +644,6 @@ if [ $BUILD_MAC == 1 ]; then @@ -30,7 +30,7 @@ index de092bde16..af6008e25c 100755 cp -RH "$CALLDIR/modules/zotero-libreoffice-integration/install" "$APPDIR/integration/libreoffice" # Copy icons -+ mkdir "$APPDIR/icons/" ++ mkdir -p "$APPDIR/icons/" cp "$CALLDIR/linux/icons/icon32.png" "$APPDIR/icons/" cp "$CALLDIR/linux/icons/icon64.png" "$APPDIR/icons/" cp "$CALLDIR/linux/icons/icon128.png" "$APPDIR/icons/" diff --git a/pkgs/by-name/zo/zotero/js-build-fixes.patch b/pkgs/by-name/zo/zotero/js-build-fixes.patch index 56798cb01edc..446a476a0115 100644 --- a/pkgs/by-name/zo/zotero/js-build-fixes.patch +++ b/pkgs/by-name/zo/zotero/js-build-fixes.patch @@ -1,37 +1,40 @@ diff --git a/js-build/note-editor.js b/js-build/note-editor.js -index 1435730342..c58af27eae 100644 +index 1435730342..bfd552f863 100644 --- a/js-build/note-editor.js +++ b/js-build/note-editor.js -@@ -37,8 +37,6 @@ async function getZoteroNoteEditor(signatures) { +@@ -36,9 +36,6 @@ async function getZoteroNoteEditor(signatures) { + await fs.remove(path.join(targetDir, 'zotero')); } catch (e) { - console.error(e); +- console.error(e); - await exec('npm ci', { cwd: modulePath }); - await exec('npm run build', { cwd: modulePath }); await fs.copy(path.join(modulePath, 'build', 'zotero'), targetDir); } signatures['note-editor'] = { hash }; diff --git a/js-build/pdf-worker.js b/js-build/pdf-worker.js -index b820304f3a..3053275dde 100644 +index b820304f3a..aafb6b1ef5 100644 --- a/js-build/pdf-worker.js +++ b/js-build/pdf-worker.js -@@ -34,8 +34,6 @@ async function getPDFWorker(signatures) { +@@ -33,9 +33,6 @@ async function getPDFWorker(signatures) { + ); } catch (e) { - console.error(e); +- console.error(e); - await exec('npm ci', { cwd: modulePath }); - await exec('npm run build', { cwd: modulePath }); await fs.copy(path.join(modulePath, 'build', 'worker.js'), path.join(targetDir, 'worker.js')); } signatures['pdf-worker'] = { hash }; diff --git a/js-build/reader.js b/js-build/reader.js -index 67a02a3ad2..14834d80a2 100644 +index 67a02a3ad2..5de2f3ada8 100644 --- a/js-build/reader.js +++ b/js-build/reader.js -@@ -37,8 +37,6 @@ async function getReader(signatures) { +@@ -36,9 +36,6 @@ async function getReader(signatures) { + await fs.remove(path.join(targetDir, 'zotero')); } catch (e) { - console.error(e); +- console.error(e); - await exec('npm ci', { cwd: modulePath }); - await exec('npm run build', { cwd: modulePath }); await fs.copy(path.join(modulePath, 'build', 'zotero'), targetDir); diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 193acf1f22e3..ffe8b1f8b2d1 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -3,7 +3,7 @@ stdenv, fetchFromGitHub, buildNpmPackage, - nodejs_20, + nodejs_22, git, perl, python3, @@ -19,8 +19,8 @@ doCheck ? false, }: let - # note-editor needs nodejs 20. Any newer version fails to build zotero's fork of @benrbray/prosemirror-math during npm install. - nodejs = nodejs_20; + # note-editor needs nodejs 22. Any newer version fails to build zotero's fork of @benrbray/prosemirror-math during npm install. + nodejs = nodejs_22; pname = "zotero"; version = "8.0.0"; @@ -40,13 +40,21 @@ let src = "${src}/pdf-worker/pdf.js"; npmDepsHash = "sha256-KeYAY6EWBZVd3QucDEDtI6lwtTahCEFBFf2Ebib9HKg="; buildPhase = '' + runHook preBuild + npm exec gulp lib-legacy npm exec gulp generic-legacy npm exec gulp minified-legacy + + runHook postBuild ''; installPhase = '' + runHook preInstall + mkdir -p $out cp -r . $out + + runHook postInstall ''; }; @@ -56,12 +64,20 @@ let src = "${src}/reader/epubjs/epub.js"; npmDepsHash = "sha256-6XY6uczPOpMpRHDQbkQRHKBDDRQ/MXIVepGBx1V+h5Q="; buildPhase = '' + runHook preBuild + npm run compile npm run build + + runHook postBuild ''; installPhase = '' + runHook preInstall + mkdir -p $out cp -r . $out + + runHook postInstall ''; }; @@ -84,8 +100,12 @@ let cp -r ${src}/chrome/locale/en-US/zotero/* locales/en-US/ ''; installPhase = '' + runHook preInstall + mkdir -p $out cp -r . $out + + runHook postInstall ''; }; @@ -102,8 +122,12 @@ let cp -r ${pdf-js} pdf.js ''; installPhase = '' + runHook preInstall + mkdir -p $out cp -r . $out + + runHook postInstall ''; }; @@ -119,8 +143,12 @@ let cp -r ${src}/chrome/locale/en-US/zotero/* locales/en-US/ ''; installPhase = '' + runHook preInstall + mkdir -p $out cp -r . $out + + runHook postInstall ''; }; @@ -206,7 +234,7 @@ buildNpmPackage rec { inherit doCheck; # Build with test support if `doCheck` is enabled. - ZOTERO_TEST = doCheck; + env.ZOTERO_TEST = doCheck; nativeCheckInputs = [ xvfb-run From 20ad8f2fd6b0e0a5bf475e2950701ebbffa7ca66 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 23 Jan 2026 15:57:00 +0000 Subject: [PATCH 048/122] zotero: Don't depend on git The leaveDotGit setting was causing unstable hashes. Instead avoid requiring git and .git folders by stubbing hashes. They are seeming not used besides build-related machinery. --- pkgs/by-name/zo/zotero/avoid-git.patch | 58 ++++++++++++++++++++++++++ pkgs/by-name/zo/zotero/package.nix | 6 +-- 2 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 pkgs/by-name/zo/zotero/avoid-git.patch diff --git a/pkgs/by-name/zo/zotero/avoid-git.patch b/pkgs/by-name/zo/zotero/avoid-git.patch new file mode 100644 index 000000000000..7bfed744434e --- /dev/null +++ b/pkgs/by-name/zo/zotero/avoid-git.patch @@ -0,0 +1,58 @@ +diff --git a/app/scripts/dir_build b/app/scripts/dir_build +index 493288ad47..e357770ced 100755 +--- a/app/scripts/dir_build ++++ b/app/scripts/dir_build +@@ -84,9 +84,9 @@ else + fi + fi + +-CHANNEL="source" ++CHANNEL="release" + +-hash=$(git -C "$ROOT_DIR" rev-parse --short HEAD) ++hash="" + + build_dir=$(mktemp -d) + cleanup() { rm -rf "$build_dir"; } +diff --git a/js-build/note-editor.js b/js-build/note-editor.js +index 1435730342..6eebb10c50 100644 +--- a/js-build/note-editor.js ++++ b/js-build/note-editor.js +@@ -12,8 +12,7 @@ async function getZoteroNoteEditor(signatures) { + + const modulePath = path.join(__dirname, '..', 'note-editor'); + +- const { stdout } = await exec('git rev-parse HEAD', { cwd: modulePath }); +- const hash = stdout.trim(); ++ const hash = ''; + + if (!('note-editor' in signatures) || signatures['note-editor'].hash !== hash) { + const targetDir = path.join(__dirname, '..', 'build', 'resource', 'note-editor'); +diff --git a/js-build/pdf-worker.js b/js-build/pdf-worker.js +index b820304f3a..6bbd0708c9 100644 +--- a/js-build/pdf-worker.js ++++ b/js-build/pdf-worker.js +@@ -12,8 +12,7 @@ async function getPDFWorker(signatures) { + + const modulePath = path.join(__dirname, '..', 'pdf-worker'); + +- const { stdout } = await exec('git rev-parse HEAD', { cwd: modulePath }); +- const hash = stdout.trim(); ++ const hash = ''; + + if (!('pdf-worker' in signatures) || signatures['pdf-worker'].hash !== hash) { + const targetDir = path.join(__dirname, '..', 'build', 'chrome', 'content', 'zotero', 'xpcom', 'pdfWorker'); +diff --git a/js-build/reader.js b/js-build/reader.js +index 67a02a3ad2..2127f680df 100644 +--- a/js-build/reader.js ++++ b/js-build/reader.js +@@ -12,8 +12,7 @@ async function getReader(signatures) { + + const modulePath = path.join(__dirname, '..', 'reader'); + +- const { stdout } = await exec('git rev-parse HEAD', { cwd: modulePath }); +- const hash = stdout.trim(); ++ const hash = ''; + + if (!('reader' in signatures) || signatures['reader'].hash !== hash) { + const targetDir = path.join(__dirname, '..', 'build', 'resource', 'reader'); diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index ffe8b1f8b2d1..48aac7ce667d 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -4,7 +4,6 @@ fetchFromGitHub, buildNpmPackage, nodejs_22, - git, perl, python3, zip, @@ -29,9 +28,8 @@ let owner = "zotero"; repo = "zotero"; tag = version; - hash = "sha256-vjGTlb4LM7wjOZqD/VsHXX59EA1f9a3LDz+Mgo4wHb0="; + hash = "sha256-SG5fTsQgtVX8Pmla2W91sETSR1D7ThmnrdUQwycNsPA="; fetchSubmodules = true; - leaveDotGit = true; }; pdf-js = buildNpmPackage { @@ -164,7 +162,6 @@ buildNpmPackage rec { npmDepsHash = "sha256-IVaT/O83kCGT7MGsTSblMKfVWeNBIpA9VJIWyikJrpk="; nativeBuildInputs = [ - git perl python3 zip @@ -176,6 +173,7 @@ buildNpmPackage rec { ]; patches = [ + ./avoid-git.patch ./js-build-fixes.patch ./avoid-xulrunner-fetch.patch ./build-fixes.patch From 3d3503f47aed8dd5583bb700b01346051fc3e957 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 23 Jan 2026 17:24:00 +0000 Subject: [PATCH 049/122] zotero: Fix aarch64-linux build It requires "arm64" instead of "aarch64". --- pkgs/by-name/zo/zotero/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 48aac7ce667d..246e5fbadeaf 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -221,7 +221,9 @@ buildNpmPackage rec { if ${lib.boolToString stdenv.targetPlatform.isDarwin}; then cp -r '${firefox-esr-140-unwrapped}/Applications/Firefox ESR.app' app/xulrunner/Firefox.app else - cp -r '${firefox-esr-140-unwrapped}/lib/firefox' app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${stdenv.targetPlatform.parsed.cpu.name} + cp -r '${firefox-esr-140-unwrapped}/lib/firefox' app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${ + lib.replaceString "aarch64" "arm64" stdenv.targetPlatform.parsed.cpu.name + } fi chmod -R u+w app/xulrunner/ From 035938e39f98820df364bd93217baca4d2245200 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 23 Jan 2026 18:24:00 +0000 Subject: [PATCH 050/122] zotero: Fix x86_64-darwin build It complains on a build path that only triggers when the channel is not `source`. This commit reverts back to `source`. To avoid issues with the git hash, we just provide a valid hash filled with zeroes. --- pkgs/by-name/zo/zotero/avoid-git.patch | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/zo/zotero/avoid-git.patch b/pkgs/by-name/zo/zotero/avoid-git.patch index 7bfed744434e..f0c6b4ffdeaf 100644 --- a/pkgs/by-name/zo/zotero/avoid-git.patch +++ b/pkgs/by-name/zo/zotero/avoid-git.patch @@ -1,16 +1,13 @@ diff --git a/app/scripts/dir_build b/app/scripts/dir_build -index 493288ad47..e357770ced 100755 +index 493288ad47..ccabb3722b 100755 --- a/app/scripts/dir_build +++ b/app/scripts/dir_build -@@ -84,9 +84,9 @@ else - fi - fi +@@ -86,7 +86,7 @@ fi --CHANNEL="source" -+CHANNEL="release" + CHANNEL="source" -hash=$(git -C "$ROOT_DIR" rev-parse --short HEAD) -+hash="" ++hash="0000000000000000000000000000000000000000" build_dir=$(mktemp -d) cleanup() { rm -rf "$build_dir"; } From 2269809a93ee6e730629fdb601c3fcb49efd63be Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 23 Jan 2026 22:46:00 +0000 Subject: [PATCH 051/122] zotero: Add nix-update-script --- pkgs/by-name/zo/zotero/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 246e5fbadeaf..2dce3064cc7e 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -14,6 +14,7 @@ firefox-esr-140-unwrapped, makeDesktopItem, copyDesktopItems, + nix-update-script, xvfb-run, doCheck ? false, }: @@ -291,6 +292,8 @@ buildNpmPackage rec { runHook postInstall ''; + passthru.updateScript = nix-update-script { }; + meta = { homepage = "https://www.zotero.org"; description = "Collect, organize, cite, and share your research sources"; From deba72580588ac0d2c5b0974b8a761f491dddaa2 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Tue, 27 Jan 2026 08:47:00 +0000 Subject: [PATCH 052/122] zotero: Replace rec with finalAttrs --- pkgs/by-name/zo/zotero/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 2dce3064cc7e..3dbb4f71c767 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -152,7 +152,7 @@ let }; in -buildNpmPackage rec { +buildNpmPackage (finalAttrs: { inherit pname version @@ -249,7 +249,7 @@ buildNpmPackage rec { name = "zotero"; exec = "zotero -url %U"; icon = "zotero"; - comment = meta.description; + comment = finalAttrs.meta.description; desktopName = "Zotero"; genericName = "Reference Management"; categories = [ @@ -305,4 +305,4 @@ buildNpmPackage rec { justanotherariel ]; }; -} +}) From caf8f437191c159f9b607c71dcd3e8f335084ddb Mon Sep 17 00:00:00 2001 From: Mynacol Date: Tue, 27 Jan 2026 10:02:00 +0000 Subject: [PATCH 053/122] zotero: Add myself as maintainer --- pkgs/by-name/zo/zotero/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 3dbb4f71c767..1b87a1daf47c 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -303,6 +303,7 @@ buildNpmPackage (finalAttrs: { maintainers = with lib.maintainers; [ atila justanotherariel + mynacol ]; }; }) From 9a3fce016e3c0ab6798fbd1e3eea6e73cf5a7cec Mon Sep 17 00:00:00 2001 From: Mynacol Date: Wed, 28 Jan 2026 11:46:00 +0000 Subject: [PATCH 054/122] zotero: 8.0.0 -> 8.0.1 --- pkgs/by-name/zo/zotero/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 1b87a1daf47c..d77bfc2688ca 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -23,13 +23,13 @@ let nodejs = nodejs_22; pname = "zotero"; - version = "8.0.0"; + version = "8.0.1"; src = fetchFromGitHub { owner = "zotero"; repo = "zotero"; tag = version; - hash = "sha256-SG5fTsQgtVX8Pmla2W91sETSR1D7ThmnrdUQwycNsPA="; + hash = "sha256-Rm93Xclspb7cp4tTxr6OegLYf+ndyGz3YCwbf+6uGKM="; fetchSubmodules = true; }; From 0be81806404e46afab01017abdbb38230aa86743 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 30 Jan 2026 10:13:35 +0100 Subject: [PATCH 055/122] zotero: Improve build script - Use simpler os-dependent parts - Add preCheck and postCheck hooks - Explicitly call the build script in the local directory Co-authored-by: Alex Epelde --- pkgs/by-name/zo/zotero/package.nix | 64 ++++++++++++++++-------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index d77bfc2688ca..38df69d24022 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -219,16 +219,19 @@ buildNpmPackage (finalAttrs: { # Place firefox files at the right place. # The correct firefox version can be found in zotero/app/config.sh at `GECKO_VERSION_LINUX`. mkdir -p app/xulrunner/ - if ${lib.boolToString stdenv.targetPlatform.isDarwin}; then - cp -r '${firefox-esr-140-unwrapped}/Applications/Firefox ESR.app' app/xulrunner/Firefox.app - else - cp -r '${firefox-esr-140-unwrapped}/lib/firefox' app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${ - lib.replaceString "aarch64" "arm64" stdenv.targetPlatform.parsed.cpu.name - } - fi + '' + + lib.optionalString stdenv.targetPlatform.isDarwin '' + cp -r "${firefox-esr-140-unwrapped}/Applications/Firefox ESR.app" app/xulrunner/Firefox.app + '' + + lib.optionalString (!stdenv.targetPlatform.isDarwin) '' + cp -r "${firefox-esr-140-unwrapped}/lib/firefox" "app/xulrunner/firefox-${stdenv.targetPlatform.parsed.kernel.name}-${ + lib.replaceString "aarch64" "arm64" stdenv.targetPlatform.parsed.cpu.name + }" + '' + + '' chmod -R u+w app/xulrunner/ - app/scripts/dir_build + ./app/scripts/dir_build runHook postBuild ''; @@ -242,7 +245,11 @@ buildNpmPackage (finalAttrs: { ]; checkPhase = '' + runHook preCheck + CI=true xvfb-run test/runtests.sh + + runHook postCheck ''; desktopItem = makeDesktopItem { @@ -265,30 +272,27 @@ buildNpmPackage (finalAttrs: { installPhase = '' runHook preInstall + '' + + lib.optionalString stdenv.targetPlatform.isDarwin '' + # Copy package contents + mkdir -p $out/Applications + cp -r app/staging/Zotero.app $out/Applications/ + '' + + lib.optionalString (!stdenv.targetPlatform.isDarwin) '' + # Copy package contents + mkdir -p $out/lib/ + cp -r app/staging/*/. $out/lib/ - if ${lib.boolToString stdenv.targetPlatform.isDarwin}; then - - # Copy package contents - mkdir -p $out/Applications - cp -r app/staging/Zotero.app $out/Applications/ - - else - - # Copy package contents - mkdir -p $out/lib/ $out/bin/ - cp -r app/staging/*/. $out/lib/ - - # Add binary to bin/ - ln -s ../lib/zotero $out/bin/zotero - - # Install icons - for size in 32 64 128; do - install -Dm444 "app/linux/icons/icon$size.png" "$out/share/icons/hicolor/''${size}x$size/apps/zotero.png" - done - install -Dm444 "app/linux/icons/symbolic.svg" "$out/share/icons/hicolor/scalable/apps/zotero-symbolic.svg" - - fi + # Add binary to bin/ + mkdir -p $out/bin/ + ln -s ../lib/zotero $out/bin/zotero + # Install icons + for size in 32 64 128; do install -Dm444 "app/linux/icons/icon''${size}.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png" + done + install -Dm444 "app/linux/icons/symbolic.svg" "$out/share/icons/hicolor/scalable/apps/zotero-symbolic.svg" + '' + + '' runHook postInstall ''; From c50276c24324f4797e9c506bf577fb9cbd49595b Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 30 Jan 2026 10:15:38 +0100 Subject: [PATCH 056/122] zotero: Fix empty dropdown menus, missing libpci warnings Co-authored-by: Alex Epelde --- pkgs/by-name/zo/zotero/package.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 38df69d24022..13a0904db3d4 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -14,6 +14,10 @@ firefox-esr-140-unwrapped, makeDesktopItem, copyDesktopItems, + makeWrapper, + libGL, + pciutils, + wrapGAppsHook4, nix-update-script, xvfb-run, doCheck ? false, @@ -171,6 +175,8 @@ buildNpmPackage (finalAttrs: { gawk rsync copyDesktopItems + makeWrapper + wrapGAppsHook4 ]; patches = [ @@ -296,6 +302,15 @@ buildNpmPackage (finalAttrs: { runHook postInstall ''; + preFixup = lib.optionalString (!stdenv.targetPlatform.isDarwin) '' + gappsWrapperArgs+=(--suffix LD_LIBRARY_PATH : ${ + lib.makeLibraryPath [ + libGL + pciutils + ] + }) + ''; + passthru.updateScript = nix-update-script { }; meta = { From ac3878869f5b98c725221c9a016fde65599ab4c9 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 30 Jan 2026 14:45:26 +0100 Subject: [PATCH 057/122] zotero: Cleanup build Remove/format some remaining annoyances. Co-authored-by: Alex Epelde --- pkgs/by-name/zo/zotero/package.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 13a0904db3d4..4d9160995f45 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -14,7 +14,6 @@ firefox-esr-140-unwrapped, makeDesktopItem, copyDesktopItems, - makeWrapper, libGL, pciutils, wrapGAppsHook4, @@ -175,7 +174,6 @@ buildNpmPackage (finalAttrs: { gawk rsync copyDesktopItems - makeWrapper wrapGAppsHook4 ]; @@ -215,7 +213,9 @@ buildNpmPackage (finalAttrs: { done ''; - #preBuild = "app/scripts/check_requirements"; + #preBuild = '' + # ./app/scripts/check_requirements + #''; buildPhase = '' runHook preBuild @@ -294,7 +294,8 @@ buildNpmPackage (finalAttrs: { ln -s ../lib/zotero $out/bin/zotero # Install icons - for size in 32 64 128; do install -Dm444 "app/linux/icons/icon''${size}.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png" + for size in 32 64 128; do + install -Dm444 "app/linux/icons/icon''${size}.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png" done install -Dm444 "app/linux/icons/symbolic.svg" "$out/share/icons/hicolor/scalable/apps/zotero-symbolic.svg" '' From 62a011c7f9f87204b90651a339b0525793775939 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 30 Jan 2026 14:47:11 +0100 Subject: [PATCH 058/122] zotero: Restrict platforms to linux + darwin The build scripts of Zotero and also our patches only consider mac/darwin and linux systems. Anything else will probably fail to build. --- pkgs/by-name/zo/zotero/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 4d9160995f45..42e373fb84b6 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -319,7 +319,7 @@ buildNpmPackage (finalAttrs: { description = "Collect, organize, cite, and share your research sources"; mainProgram = "zotero"; license = lib.licenses.agpl3Only; - platforms = firefox-esr-140-unwrapped.meta.platforms; + platforms = lib.platforms.linux ++ lib.platforms.darwin; maintainers = with lib.maintainers; [ atila justanotherariel From 545d8bcede9dca295b0ea23e3e96ba3aee3f0116 Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 30 Jan 2026 16:04:32 +0100 Subject: [PATCH 059/122] zotero: Fix file chooser > It looks like org.gtk.Settings.FileChooser.gschema.xml is provided by `gtk3` but not `gtk4`. Co-authored-by: locnide <49921473+locnide@users.noreply.github.com> --- pkgs/by-name/zo/zotero/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 42e373fb84b6..c267d7150e65 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -16,7 +16,7 @@ copyDesktopItems, libGL, pciutils, - wrapGAppsHook4, + wrapGAppsHook3, nix-update-script, xvfb-run, doCheck ? false, @@ -174,7 +174,7 @@ buildNpmPackage (finalAttrs: { gawk rsync copyDesktopItems - wrapGAppsHook4 + wrapGAppsHook3 ]; patches = [ From f39b6cc8bd979b37ae236f08e29e56c6dfe5315e Mon Sep 17 00:00:00 2001 From: Mynacol Date: Tue, 3 Feb 2026 12:47:20 +0100 Subject: [PATCH 060/122] zotero: Remove unused and confusing check_requirements script This script is unused and will report some failures, as we patch out the dependency of e.g. git. As such, no one should use it here. Co-authored-by: Sandro --- pkgs/by-name/zo/zotero/package.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index c267d7150e65..76cfaf681bc6 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -213,10 +213,6 @@ buildNpmPackage (finalAttrs: { done ''; - #preBuild = '' - # ./app/scripts/check_requirements - #''; - buildPhase = '' runHook preBuild From ac6cbaa885293b88761db9d6feaa0dd272fc165a Mon Sep 17 00:00:00 2001 From: Mynacol Date: Tue, 3 Feb 2026 21:27:06 +0100 Subject: [PATCH 061/122] zotero: Actually provide desktop file Co-authored-by: Alex Epelde --- pkgs/by-name/zo/zotero/package.nix | 36 ++++++++++++++++-------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index 76cfaf681bc6..a61e57b845f3 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -254,23 +254,25 @@ buildNpmPackage (finalAttrs: { runHook postCheck ''; - desktopItem = makeDesktopItem { - name = "zotero"; - exec = "zotero -url %U"; - icon = "zotero"; - comment = finalAttrs.meta.description; - desktopName = "Zotero"; - genericName = "Reference Management"; - categories = [ - "Office" - "Database" - ]; - startupNotify = true; - mimeTypes = [ - "x-scheme-handler/zotero" - "text/plain" - ]; - }; + desktopItems = [ + (makeDesktopItem { + name = "zotero"; + exec = "zotero -url %U"; + icon = "zotero"; + comment = finalAttrs.meta.description; + desktopName = "Zotero"; + genericName = "Reference Management"; + categories = [ + "Office" + "Database" + ]; + startupNotify = true; + mimeTypes = [ + "x-scheme-handler/zotero" + "text/plain" + ]; + }) + ]; installPhase = '' runHook preInstall From fbbca38ddee3337f1e133110ce757d51033988dc Mon Sep 17 00:00:00 2001 From: Mynacol Date: Fri, 6 Feb 2026 12:20:00 +0000 Subject: [PATCH 062/122] zotero: 8.0.1 -> 8.0.2 This time generated with nix-update. I additionally manually tested that no npm deps changed in the subprojects. I'm still not sure if nix-update also automatically updates them. --- pkgs/by-name/zo/zotero/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/zo/zotero/package.nix b/pkgs/by-name/zo/zotero/package.nix index a61e57b845f3..78e8292923fb 100644 --- a/pkgs/by-name/zo/zotero/package.nix +++ b/pkgs/by-name/zo/zotero/package.nix @@ -26,13 +26,13 @@ let nodejs = nodejs_22; pname = "zotero"; - version = "8.0.1"; + version = "8.0.2"; src = fetchFromGitHub { owner = "zotero"; repo = "zotero"; tag = version; - hash = "sha256-Rm93Xclspb7cp4tTxr6OegLYf+ndyGz3YCwbf+6uGKM="; + hash = "sha256-zGcTZjrbFYbE4qJH5g3betnSLCdxYU2nZBOU55HunYU="; fetchSubmodules = true; }; @@ -163,7 +163,7 @@ buildNpmPackage (finalAttrs: { nodejs ; - npmDepsHash = "sha256-IVaT/O83kCGT7MGsTSblMKfVWeNBIpA9VJIWyikJrpk="; + npmDepsHash = "sha256-dtbA1V38u26gqWoN+kW/tnccl6HFX7p8fPAneq+mw6U="; nativeBuildInputs = [ perl From 9359589e004547b5b382550be0c6ff86e2bd9dad Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 11 Feb 2026 19:40:07 +0000 Subject: [PATCH 063/122] app2unit: 1.2.1 -> 1.3.0 --- pkgs/by-name/ap/app2unit/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ap/app2unit/package.nix b/pkgs/by-name/ap/app2unit/package.nix index 904eb912f24d..21879d196f59 100644 --- a/pkgs/by-name/ap/app2unit/package.nix +++ b/pkgs/by-name/ap/app2unit/package.nix @@ -9,13 +9,13 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "app2unit"; - version = "1.2.1"; + version = "1.3.0"; src = fetchFromGitHub { owner = "Vladimir-csp"; repo = "app2unit"; tag = "v${finalAttrs.version}"; - sha256 = "sha256-DZ0W7SygOUmjIO0+K8hS9K1U+gSp1gA6Q15eXr6rOmo="; + sha256 = "sha256-HkwcYYGNReDtPxZumnz3ZDb1sr1JcngAOqs/inO/350="; }; passthru.updateScript = nix-update-script { }; From 32eadde6c57f0cb847791b1babb75e219b3396ec Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Wed, 11 Feb 2026 20:57:58 +0100 Subject: [PATCH 064/122] throne: improve instructions for TUN mode option --- pkgs/by-name/th/throne/nixos-disable-setuid-request.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/th/throne/nixos-disable-setuid-request.patch b/pkgs/by-name/th/throne/nixos-disable-setuid-request.patch index 9febc59f65f6..3b3eaec2b69d 100644 --- a/pkgs/by-name/th/throne/nixos-disable-setuid-request.patch +++ b/pkgs/by-name/th/throne/nixos-disable-setuid-request.patch @@ -36,7 +36,7 @@ index d31c311..ce4c357 100644 + QMessageBox::critical( + GetMessageBoxParent(), + tr("Unable to elevate privileges when installed with Nix"), -+ tr("Due to the read-only property of Nix store, we cannot set suid for throne-core. If you are using NixOS, please set `programs.throne.tunMode.enable` option to elevate privileges."), ++ tr("Due to the read-only property of Nix store, we cannot set suid for throne-core. If you are using NixOS, please install Throne via `programs.throne.enable` and then set the `programs.throne.tunMode.enable` option to elevate privileges."), + QMessageBox::Ok + ); + return false; From 2749936147d9370fc2df3ce1ef4faa001bac2b8e Mon Sep 17 00:00:00 2001 From: Shaw Vrana Date: Mon, 5 Jan 2026 09:33:48 -0800 Subject: [PATCH 065/122] commafeed: 5.11.1 -> 6.2.0 --- pkgs/by-name/co/commafeed/package.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/co/commafeed/package.nix b/pkgs/by-name/co/commafeed/package.nix index ff78a7f22e9e..3d8308e8a08d 100644 --- a/pkgs/by-name/co/commafeed/package.nix +++ b/pkgs/by-name/co/commafeed/package.nix @@ -3,7 +3,7 @@ biome, buildNpmPackage, fetchFromGitHub, - jre, + jdk25, maven, makeWrapper, unzip, @@ -11,13 +11,13 @@ writeText, }: let - version = "5.11.1"; + version = "6.2.0"; src = fetchFromGitHub { owner = "Athou"; repo = "commafeed"; tag = version; - hash = "sha256-B0ztra7j5V5Qm0DRpu4cl04tmOE1gS89NOV2kyMrzOg="; + hash = "sha256-M5p3nzlEIuIEMADZyQUqE6WAzlMmP/e4Zh9J8nbhZ9Q="; }; frontend = buildNpmPackage { @@ -27,7 +27,7 @@ let sourceRoot = "${src.name}/commafeed-client"; - npmDepsHash = "sha256-TD57bDY/7/zYT1T/HOl0+G59/hct8fzJaKaMC8/bBEI="; + npmDepsHash = "sha256-XkUlsRdqIXwVExvSofZJLKMUSzjxJRRpV549UTP9Cjo="; nativeBuildInputs = [ biome ]; @@ -53,7 +53,8 @@ maven.buildMavenPackage { pname = "commafeed"; - mvnHash = "sha256-ipGxdX/LHEn2mQa2JhfeMTmg0esj5Z+7fJ3W2ipLfto="; + mvnHash = "sha256-vZ7BPA2N3jgRnTwF3k9En2Pn+zTrXbtB9FGbmU4wJgY="; + mvnJdk = jdk25; mvnParameters = lib.escapeShellArgs [ "-Dskip.installnodenpm" @@ -85,7 +86,7 @@ maven.buildMavenPackage { mkdir -p $out/bin $out/share unzip -d $out/share/ commafeed-server/target/commafeed-$version-h2-jvm.zip - makeWrapper ${jre}/bin/java $out/bin/commafeed \ + makeWrapper ${jdk25}/bin/java $out/bin/commafeed \ --add-flags "-jar $out/share/commafeed-$version-h2/quarkus-run.jar" runHook postInstall From 7b679486b03dad8f0eec30af1bc9e99d777e9b7f Mon Sep 17 00:00:00 2001 From: Daniel Nagy Date: Sun, 8 Feb 2026 11:15:00 +0100 Subject: [PATCH 066/122] chickenPackages.chickenEggs: update --- .../development/compilers/chicken/5/deps.toml | 298 +++++++++++------- .../compilers/chicken/5/overrides.nix | 8 +- 2 files changed, 198 insertions(+), 108 deletions(-) diff --git a/pkgs/development/compilers/chicken/5/deps.toml b/pkgs/development/compilers/chicken/5/deps.toml index 1a258fdc8a27..8652d50b20a4 100644 --- a/pkgs/development/compilers/chicken/5/deps.toml +++ b/pkgs/development/compilers/chicken/5/deps.toml @@ -114,9 +114,9 @@ version = "0.6" [apropos] dependencies = ["utf8", "srfi-1", "symbol-utils", "check-errors"] license = "bsd" -sha256 = "0z546hhrva65kgfm1620w0hg95h016yq2r1mjnx89r0bmmibviv3" +sha256 = "0l121cy671szi9g4d1shfb6nb4s09m26961lpyw87jcxpw2h76b2" synopsis = "CHICKEN apropos" -version = "3.11.3" +version = "3.12.2" [arcadedb] dependencies = ["medea"] @@ -366,9 +366,9 @@ version = "1.0.2" [brev-separate] dependencies = ["matchable", "miscmacros", "srfi-1", "srfi-69"] license = "bsd-1-clause" -sha256 = "08mczqjyaf5bhm64hnb80r0237mq9w2kj4grn2a8ahzc7870h7jm" +sha256 = "1ak9n8rdccnkhg8bnin7j4wqqj15wjp7r1mjc7z9627zas9jsj8w" synopsis = "Hodge podge of macros and combinators" -version = "1.98" +version = "1.99" [brev] dependencies = ["anaphora", "brev-separate", "clojurian", "combinators", "define-options", "dwim-sort", "fix-me-now", "acetone", "html-parser", "match-generics", "http-client", "matchable", "miscmacros", "scsh-process", "sequences", "srfi-1", "srfi-42", "srfi-69", "strse", "sxml-serializer", "sxml-transforms", "sxpath", "tree", "uri-common"] @@ -497,11 +497,11 @@ synopsis = "Explore Chicken documentation locally" version = "0.7.0" [chicken-update] -dependencies = ["srfi-1", "srfi-13", "fmt", "sxpath", "http-client", "uri-common", "optimism", "ssax"] +dependencies = ["srfi-1", "http-client", "uri-common", "getopt-long"] license = "public-domain" -sha256 = "1kbxk93k7p9x2594q4zsya93m7rzpnhixksvdvmiwq42dj72hyid" +sha256 = "0fk5197x9ap6cax6flspnyszhr5y54g3dglnki7zn2nh03g8pgpg" synopsis = "Update installed eggs" -version = "0.1.6" +version = "0.1.8" [cis] dependencies = [] @@ -618,9 +618,9 @@ version = "1.0" [condition-utils] dependencies = ["srfi-1", "srfi-69", "check-errors"] license = "bsd" -sha256 = "09y01vdwi54acwg0nq1vdf10w9w1a0mdmp1fc2vaxh69zfjzxaiq" +sha256 = "13zz6fp6dswn4pv20hv95m03lk8xnymfnpgjyhp5mwjgnri9jvc4" synopsis = "SRFI 12 Condition Utilities" -version = "2.4.1" +version = "2.4.2" [continuations] dependencies = [] @@ -667,9 +667,9 @@ version = "1.4" [csm] dependencies = ["matchable", "srfi-1", "srfi-13", "srfi-14", "miscmacros"] license = "bsd" -sha256 = "02y11q6lgsk4w7qdsz4af3y7lcxk3cl1hy8dycsqfaai6kvjndjg" +sha256 = "1pa85qy5s2mb6ra7nd2g3f30ylvsg7pzw0m5a2zlwbz27xq231n0" synopsis = "a build system" -version = "0.7" +version = "0.7.1" [cst] dependencies = ["brev-separate", "srfi-1", "define-options", "match-generics"] @@ -744,9 +744,9 @@ version = "0.2.0" [defstruct] dependencies = ["srfi-1"] license = "bsd" -sha256 = "1n8qy9bxlnacdq9gr4z4zjkwqsh9m34ij66qffah5nvqwskcavfy" +sha256 = "0sm5d7cbdgpb70qy7jc0yxri2wazcxj2q5ii6gcsbpkzjmfd2fka" synopsis = "A more convenient form of define-record" -version = "2.0" +version = "2.1" [digraph] dependencies = ["dyn-vector", "matchable", "yasos", "srfi-1"] @@ -790,6 +790,13 @@ sha256 = "13fndcyk4xavn694k1a8kcv3c02a2scxn0z3s56mya2nw4wns88z" synopsis = "advisory locking mechanism based on standard file operations" version = "0.4" +[dotenv] +dependencies = ["srfi-13"] +license = "mit" +sha256 = "07nlsxmavc1r4hil3361hda3mhlzf6z75r46nsxlyvd779lyydaj" +synopsis = "A simple .env file loader" +version = "v1.0.1" + [dotted-lambdas] dependencies = [] license = "bsd" @@ -821,9 +828,9 @@ version = "2.1" [dynamic-import] dependencies = [] license = "public-domain" -sha256 = "1xb22gv5zip4x32qyssiyxlskxz6l8kp54k7i4x8lv88p0y3ybkp" +sha256 = "1c877knzlcg9azdjmg1461cq5bczjakk4z0kffwqmwssc14wvprh" synopsis = "Dynamic Import" -version = "1.1.0" +version = "1.3.2" [edn] dependencies = ["r7rs", "srfi-69", "srfi-1", "chalk"] @@ -891,9 +898,9 @@ version = "0.2.2" [error-utils] dependencies = ["srfi-1"] license = "bsd" -sha256 = "0rc32v4l2mn0q92vdksh4nirz7ycvmzszi65ixg7h7s42wrx7x78" +sha256 = "116d4128wb51lvchkkvcahq1xx22k4xl9az32pfvzvgm34jpgl1w" synopsis = "Error Utilities" -version = "2.1.1" +version = "2.1.2" [ersatz] dependencies = ["datatype", "silex", "lalr", "utf8", "uri-generic", "srfi-1"] @@ -926,9 +933,9 @@ version = "1.2" [expand-full] dependencies = ["srfi-1", "test-utils"] license = "bsd" -sha256 = "1cy595kqrgd1y9xlvcg5wrp74vdh8wx602p8nc1xadx4jxy5dn4q" +sha256 = "1428r5740mckvkg6hg8ddhcwsm0lpik9igzf3qds89s877aqp6jd" synopsis = "Full macro expansion" -version = "2.2.0" +version = "2.2.1" [expat] dependencies = ["bind", "silex"] @@ -982,9 +989,9 @@ version = "0.2.0" [filepath] dependencies = ["matchable", "srfi-1", "srfi-13", "srfi-14"] license = "bsd" -sha256 = "14mrpq6g4hirj2qsirnxpj4b9b48m8fk80r23wm95wrcir9cjqmr" +sha256 = "1qn9h1xb9kacbpsp7mnhxv1wbpqc729zxvmn9kn3dnqm58s4kk2m" synopsis = "Cross-platform file path manipulation." -version = "1.6" +version = "1.7" [fix-me-now] dependencies = ["strse", "srfi-1", "sxml-transforms"] @@ -1056,6 +1063,13 @@ sha256 = "1ywgjrhkr45837xf5vnb2i3aacby7yjkhm62drdf70c09za860dd" synopsis = "Filesystems in Userspace" version = "0.1.1" +[futures] +dependencies = ["srfi-18"] +license = "bsd" +sha256 = "0wp5yy588k49xfvghidf023hzdfrpxxklacqr460bxm3hhdh2w4l" +synopsis = "Concurrent evaluation of expressions" +version = "2.0.2" + [fx-utils] dependencies = [] license = "bsd" @@ -1094,16 +1108,16 @@ version = "1.5" [genann] dependencies = [] license = "zlib" -sha256 = "15q4ybxb04y4alkik99dkl5i3brh8dazahgmwjn51xk2s389gba1" +sha256 = "1x59f0pridbdlx1l3jhjbya17gqb2licqrkpz38kxww5ayali8xs" synopsis = "Chicken bindings to genann - a simple neural network library in ANSI C" -version = "0.2.2" +version = "0.2.3" [generalized-arrays] -dependencies = ["r7rs", "srfi-48", "srfi-128", "srfi-133", "srfi-143", "srfi-160", "srfi-253", "transducers"] +dependencies = ["r7rs", "srfi-128", "srfi-133", "srfi-143", "srfi-160", "srfi-253", "transducers"] license = "bsd-3" -sha256 = "0yzzy553mawvh270zsrfgj4gyhmxjwz0l85i1h9d3hg8rvm8zsgy" +sha256 = "0j4spxk36llwxkwdlvb3ljr78v2bd1mknn3pcdw80mh4s2ampapw" synopsis = "Provides generalized arrays, intervals, and storage classes for CHICKEN Scheme." -version = "2.1.1" +version = "2.2.2" [generics] dependencies = ["simple-cells"] @@ -1252,6 +1266,13 @@ sha256 = "1p7i8vmh4pg9q0k1ml2n8wbrl7hq8b7x9xgxz5jsb8ywwax74fk4" synopsis = "In-source documentation" version = "0.10.1" +[hascheme] +dependencies = ["r7rs"] +license = "bsd-0-clause" +sha256 = "0zafgldajj0wrdvw4n6ah7ms5ifql6wq8ighxhsnhqqh9x447s2i" +synopsis = "Implictly Lazy Scheme embedded into Scheme" +version = "0.2.0" + [hash-trie] dependencies = [] license = "mit" @@ -1276,9 +1297,9 @@ version = "0.0.1" [henrietta-cache] dependencies = ["http-client", "matchable", "srfi-1"] license = "bsd" -sha256 = "1ac3d4bb28cwzbamcz4ak62w4xbh7j15q0445b6c4z06cbfz0bj3" +sha256 = "15pk51smzimvr2s1wa22q60kkgnxsn2wzlx47s7rshq2rczxb325" synopsis = "Fetch and cache extensions from various sources for Henrietta to consume" -version = "1.7" +version = "1.8" [henrietta] dependencies = ["regex", "srfi-1"] @@ -1360,9 +1381,9 @@ version = "2.0" [icu] dependencies = ["utf8", "srfi-13", "srfi-1", "foreigners", "chalk"] license = "unicode" -sha256 = "1hii4n3mraqaznaiwznwbx06yy99157pxxarkj558zarkn43k82y" +sha256 = "0ql50rymyzqaglv1q396shmlv1fi6qdgkbx0zdsjjj54j7ivw1ca" synopsis = "Chicken bindings to the ICU unicode library" -version = "0.3.3" +version = "0.3.4" [image-dimensions] dependencies = ["srfi-1"] @@ -1437,9 +1458,9 @@ version = "0.4" [ipfs] dependencies = ["http-client", "intarweb", "medea", "srfi-1", "srfi-13", "srfi-189", "srfi-197", "uri-common"] license = "unlicense" -sha256 = "1qi0z6mgvlmvcjam03n6ly6n35crkfhmjpaz1m8rabl4sh2bx1qd" +sha256 = "07dknmklg035wr5yqqjnghv162dfdryr87xilrkrwpg88v1wzrs4" synopsis = "IPFS HTTP API for Scheme" -version = "0.0.20" +version = "0.0.22" [irc] dependencies = ["matchable", "regex", "srfi-1"] @@ -1542,9 +1563,9 @@ version = "0.3" [lay] dependencies = [] license = "bsd" -sha256 = "16dq7w93yg0m0df76lf506kg30715n932sv3ww4p1fn0b5mn0g27" +sha256 = "09f0fd9gcv9yrl81vh9bfh1ywda9gljpa48w3vvmya0aknh1x05q" synopsis = "Lay eggs efficiently" -version = "0.3.3" +version = "0.3.4" [lazy-ffi] dependencies = ["bind", "srfi-1", "srfi-69"] @@ -1556,9 +1577,9 @@ version = "1.8.6" [lazy-seq] dependencies = ["srfi-1"] license = "bsd" -sha256 = "12gz8999g73fa20v067gs4v6zs65w8qajwjfsngbcdaqadv2733g" +sha256 = "0yg2vc6njcf2zfrmd4ija1y9cpcg7sylcmh8iv3xk5sadxws5j5b" synopsis = "Clojure-like lazy sequences" -version = "2" +version = "3" [ldif-sexpr] dependencies = ["uri-common", "base64", "srfi-1", "srfi-13", "srfi-14", "matchable"] @@ -1577,9 +1598,9 @@ version = "1.2" [levenshtein] dependencies = ["srfi-1", "srfi-13", "srfi-63", "srfi-69", "vector-lib", "utf8", "miscmacros", "record-variants", "check-errors"] license = "bsd" -sha256 = "07i97va0ajg1zhbnpc5lyp8qdpa7rhg579y0xhvpp370sa6qrchf" +sha256 = "16zj9k22fdxs8z9nrgb0x1y3l2gmi6vyzdqf7w2jswdxkb79p0dd" synopsis = "Levenshtein edit distance" -version = "2.4.4" +version = "2.4.5" [lexgen] dependencies = ["srfi-1", "utf8", "srfi-127"] @@ -1588,6 +1609,13 @@ sha256 = "1dbvs2g5772w8nvh62rvnsqsmivr76ypkbncbs8l0rx9qi8ir9fn" synopsis = "Lexer combinators" version = "8.2" +[libyaml] +dependencies = ["varg"] +license = "mit" +sha256 = "1wj0gmry0jj1ni50grkh96a56pc0fgal26djlzk6h0qxb9cb58k1" +synopsis = "A yaml parser based on libyaml" +version = "1.0.3" + [linenoise] dependencies = [] license = "bsd" @@ -1623,6 +1651,13 @@ sha256 = "07g7b9yp9h1r2zgdaqgzm5vpv77x74n34gij1fbw2l57h9r69yk8" synopsis = "Inference with Llama2 model." version = "1.2" +[llm] +dependencies = ["medea", "base64", "uri-common", "http-client", "intarweb", "openssl", "srfi-1", "srfi-13", "logger"] +license = "bsd-3-clause" +sha256 = "15xf195jkjk1lkn6xkr455h3nkmvllpmwpcsl1b0xd5jdqnwly75" +synopsis = "Provider-agnostic LLM chat API client with tool calling support" +version = "0.0.6" + [llrb-syntax] dependencies = [] license = "bsd" @@ -1665,6 +1700,13 @@ sha256 = "15wpww2qjv87k0j8lqvf4za16y7ip4s2949ax1h9ibfb4g21c11b" synopsis = "local declarations inspired by ML" version = "1.0.1" +[logger] +dependencies = ["srfi-1", "medea"] +license = "bsd-3-clause" +sha256 = "0k85w08p1b6r2gdrqcrgczc3qpg64rw49ch2i76apzdxl088fijm" +synopsis = "Simple structured logging with per-module level control" +version = "0.0.2" + [loop] dependencies = ["srfi-1"] license = "gpl-2" @@ -1759,9 +1801,9 @@ version = "1.2" [math-utils] dependencies = ["memoize", "miscmacros", "srfi-1", "vector-lib"] license = "public-domain" -sha256 = "0dbglbhj9bb1fbhb5ckssalvvpvmqmq71lzifzmpqlpjqra12ql5" +sha256 = "0k5gb9jmcjyf29icdyf81956x70df15fxmb0rb0vz3ysl5spw49q" synopsis = "Miscellaneous math utilities" -version = "1.12.0" +version = "1.14.1" [math] dependencies = ["srfi-1", "r6rs-bytevectors", "miscmacros", "srfi-133", "srfi-42"] @@ -1773,9 +1815,9 @@ version = "0.3.4" [mathh] dependencies = [] license = "public-domain" -sha256 = "1dh0clclb8bh7jl0xk806cz4gc41nzyav9zk4lpiw8pliagwal4m" +sha256 = "0ir3w0fpfrnkjf5c75zbqac896r45sf7fqfv9v99ksdinqbdqdg2" synopsis = "ISO C math functions and constants" -version = "4.7.1" +version = "4.7.2" [matrico] dependencies = [] @@ -1869,25 +1911,25 @@ synopsis = "Creating algebraic- and abstract-types based on vectors" version = "0.7" [micro-benchmark] -dependencies = ["micro-stats", "srfi-1"] +dependencies = ["micro-stats"] license = "gplv3" -sha256 = "0v1w94p4ijwv6lhnhxb9v3rc2vxa8jy0jfh1qgyv658200q4ja77" +sha256 = "1jc0s53qhighcvpzfzgsc2fl9h9whri32jgxpb1f7vs92hmhh0ys" synopsis = "Easily create micro-benchmarks" -version = "0.1.0" +version = "0.3.4" [micro-stats] dependencies = ["srfi-1", "sequences", "sequences-utils"] license = "gplv3" -sha256 = "1l605zjij8xbj55skqr7mbmpfibf7ijzz7q8i320g7iav9z8vjmk" +sha256 = "1xwf5jqrbsl8xsnp497lzxc8vdabc98za9lmbnwpi2kyaz4ncw3w" synopsis = "Easily create micro-stats" -version = "0.3.0" +version = "0.4.1" [mini-kanren] -dependencies = ["srfi-1"] +dependencies = [] license = "mit" -sha256 = "036i34dzdnpb62951n7qh253q7gzg0rwhjj7nw1c43zn1hb5zw5j" +sha256 = "147mlnc82vhzxh90rzncbr2z25kp1pplwz5kdffihsb11zx1imgr" synopsis = "Packages the canonical miniKanren implementation for CHICKEN Scheme." -version = "1.2.0" +version = "1.3.2" [minissh] dependencies = ["tweetnacl", "matchable", "gochan", "base64", "queues", "srfi-13", "srfi-18", "srfi-69", "message-digest-utils", "sha2"] @@ -1980,6 +2022,13 @@ sha256 = "10ik64k5hi7i78nwnc3q9ms49zvn794n6k3imnjr6hhvi9hxy0vy" synopsis = "Reads & decodes HTTP multipart/form-data requests." version = "0.2" +[nanograd] +dependencies = ["test", "srfi-1", "srfi-4", "srfi-42", "srfi-69", "mathh", "vector-lib", "blas", "yasos", "s11n"] +license = "lgpl-3" +sha256 = "0dyxfi1qmjzkf3fx0xqx0d4cd8f7pyzfwvmgmg788xbacmcg53jd" +synopsis = "Minimalistic automatic differentiation framework." +version = "2.3" + [nanomsg] dependencies = ["foreigners", "srfi-18"] license = "mit" @@ -2008,6 +2057,13 @@ sha256 = "1cdkicn3zmb8vcnqwd4rk19ywc7kfj3zsmi2wl6g41b4gdyd3xw8" synopsis = "An interface to the UNIX ncurses package" version = "2.0" +[nitrate] +dependencies = ["r7rs", "srfi-225"] +license = "bsd-0-clause" +sha256 = "0jf95nh4z4b6rrh337v27d7zvpmzcr3r7731cg41vdnxh5w6sji3" +synopsis = "Combinator based pattern matching" +version = "1.0.0" + [noise] dependencies = ["glls"] license = "bsd" @@ -2032,9 +2088,9 @@ version = "5.1.0" [number-limits] dependencies = [] license = "bsd" -sha256 = "0cn8ikb474qns94qh2xnpswqljkw6dczrcqlnyf8paj3fiyqqxmj" +sha256 = "0rr68djpkcw6qc4d0kv6ckiky0psyz1v3d7qqf0ik2m5kv4m6nbz" synopsis = "Limit constants for numbers" -version = "3.0.10" +version = "3.0.11" [oauth] dependencies = ["srfi-1", "srfi-13", "uri-common", "intarweb", "http-client", "hmac", "sha1", "base64"] @@ -2046,9 +2102,9 @@ version = "0.3" [oauthtoothy] dependencies = ["schematra", "openssl", "http-client", "intarweb", "uri-common", "medea", "schematra", "schematra-session"] license = "bsd" -sha256 = "02r2lmf1mqlqji0v4x808gw6hc3lciq860kf51dr9bkn3smcg1j7" +sha256 = "0i88m3v20w5wjij9m10596aw9a447jhxnl511fkkq6341wvgdgyj" synopsis = "Oauth2 support for Schematra" -version = "0.1.0" +version = "0.2.3" [object-evict] dependencies = ["srfi-69"] @@ -2060,9 +2116,9 @@ version = "0.1.1" [opencl] dependencies = [] license = "bsd" -sha256 = "18xbnw47abkxyqm8irlk38qak8m2zmnw3z53ixzck97260hyy03y" +sha256 = "18pybrrn81dm34abg2g3vacl6bkw6vw1mdxrj2f4z2mhq6342gxl" synopsis = "Bindings to OpenCL" -version = "1.3" +version = "1.4" [opengl] dependencies = ["bind", "silex"] @@ -2148,6 +2204,13 @@ sha256 = "1klqq78pcdg2r8simcyjkdjb9664h5cz2indksjdlpj3ma3zb3ax" synopsis = "A library for PDF generation." version = "1.1" +[phosphate] +dependencies = ["r7rs", "utf8", "srfi-225"] +license = "bsd-0-clause" +sha256 = "1k5r3scv9r5f3bsqm0s0i2i6wqz49q38lrbwhb2v7m6msra7amck" +synopsis = "Parser combinators with error recovery using call/cc" +version = "0.1.0" + [pigeon-hole] dependencies = ["srfi-18"] license = "bsd" @@ -2214,9 +2277,9 @@ version = "1.4" [posix-utils] dependencies = ["srfi-1", "utf8", "check-errors"] license = "bsd" -sha256 = "1x5591jxyz31b2d0s5ywp6ywd5ia57nv1pavwf4iizyifs500bm8" +sha256 = "11vb7g36lk5abxzgbi52jf2vlr13cf2mw7zffralfc7l9kw789qq" synopsis = "posix-utils" -version = "2.1.5" +version = "2.1.6" [postgresql] dependencies = ["sql-null", "srfi-1", "srfi-13", "srfi-69"] @@ -2354,16 +2417,16 @@ version = "0.1" [qwiki] dependencies = ["intarweb", "uri-common", "spiffy", "sxml-transforms", "svn-client", "estraier-client", "sxpath", "simple-sha1", "svnwiki-sxml", "html-parser", "colorize", "srfi-1", "srfi-13", "srfi-14"] license = "bsd" -sha256 = "14m75v6a2bfqag646zx95hqhn6g16dm921klkmj1xvf8f19nf2mb" +sha256 = "0l60pjyczyglnr3gaqsv5cj0h8rb3syp7l6id9v9dbf5na09akf0" synopsis = "qwiki - the quick wiki" -version = "2.2" +version = "2.2.1" [r6rs-bytevectors] dependencies = ["utf8"] license = "mit" -sha256 = "1qah1bym1q3ww0fkyqvz048q9brv7ffsz2x3cqpx0cp7yk41by9m" +sha256 = "1p0ghpcdai93clcbp6yjbrnqz2by7g1xwizm30qanxp8pk5v1fvj" synopsis = "An implementation of r6rs bytevectors" -version = "0.1.7" +version = "0.1.8" [r7rs-tools] dependencies = ["r7rs", "srfi-1"] @@ -2393,6 +2456,13 @@ sha256 = "0swkhz2ifg2f5cwpi4njfgjfzvdhr0crkz4w77bnsk4fip86vk6h" synopsis = "MT19937 random number generator with Marsaglia and Tang's Ziggurat algorithm to generate random numbers from a non-uniform distribution." version = "5.1" +[raylib] +dependencies = ["foreigners"] +license = "mit" +sha256 = "1d9lx18525iya1lmlrfr43vjn40wiyyy819cfpa1a8z7dxz7lhiq" +synopsis = "Bindings for raylib: A simple and easy-to-use library to enjoy videogames programming" +version = "1.1.1" + [rb-tree] dependencies = ["datatype", "matchable", "yasos", "srfi-1"] license = "gpl-3" @@ -2414,6 +2484,13 @@ sha256 = "1ha392k88389ls5yj08mf7gnnlysy5vzcz30ndiihlcwk2q49sq5" synopsis = "Optimized record access" version = "1.1" +[record-vector] +dependencies = ["vector-lib"] +license = "bsd" +sha256 = "19h1f4gbsnh1z9393w5as9fgx8zn417c88r5hyy5kq5kqwllngq0" +synopsis = "The dumb simple inplace data records without type tag." +version = "1.0.2" + [records] dependencies = ["srfi-1"] license = "public-domain" @@ -2513,18 +2590,18 @@ synopsis = "basic Scheme48 module syntax" version = "0.7" [s9fes-char-graphics-shapes] -dependencies = [] +dependencies = ["srfi-1", "utf8", "record-variants", "s9fes-char-graphics"] license = "public-domain" -sha256 = "18v3gspj8wirkzdy42bc199j4l3s0j0n0751hxli1m3b145agf01" +sha256 = "177586papy5w6dwcby2yjgkm4aqy1kqq73xp8wf7fa6c0gnbfn00" synopsis = "Scheme 9 from Empty Space Char Graphics Shapes" -version = "1.5.0" +version = "1.5.2" [s9fes-char-graphics] -dependencies = [] +dependencies = ["srfi-1", "utf8", "record-variants"] license = "public-domain" -sha256 = "09fklvrpss4ysgviy9bf1g569c6al93vg374s44prmlmwpcbynfj" +sha256 = "1av13fh565jh2y3nrfhkj5miqzz1bvhfvg596ilvbihmwpjgxamr" synopsis = "Scheme 9 from Empty Space Char Graphics" -version = "1.19.0" +version = "1.21.1" [salmonella-diff] dependencies = ["salmonella", "salmonella-html-report", "srfi-1", "srfi-13", "sxml-transforms"] @@ -2550,9 +2627,9 @@ version = "1.7.2" [salmonella] dependencies = [] license = "bsd" -sha256 = "1hafbvhcscksjwf3s9ch7f2szk24i653zhnnlpcmx9dra6kzp8hj" +sha256 = "0g7wfap92skmr8hvhj6mx933z1hq0njsy0zg6bavf9w95hk5xj45" synopsis = "A tool for testing eggs" -version = "3.2.0" +version = "3.2.1" [salt] dependencies = ["datatype", "matchable", "make", "mathh", "lalr", "datatype", "unitconv", "fmt"] @@ -2599,9 +2676,9 @@ version = "0.1.0" [schematra] dependencies = ["spiffy", "base64", "nrepl", "srfi-1", "srfi-13", "srfi-18", "srfi-69", "chiccup", "medea"] license = "bsd" -sha256 = "02h3a7jjpl0czymj5qp3fj2ph2qy1a44fl5cp6bm5divmba274js" +sha256 = "0sdjdswgrh6fq5bf1793w6vnc12a1mn406xbiq1rfypf6xmb6077" synopsis = "Schematra is a minimalistic web server built on top of spiffy" -version = "0.2.3" +version = "0.4.3" [scheme-indent] dependencies = ["srfi-1"] @@ -2674,11 +2751,11 @@ synopsis = "Bindings to Simple DirectMedia Layer 2 (SDL2)" version = "0.4.1" [semantic-version] -dependencies = ["utf8", "srfi-1", "vector-lib", "srfi-69", "srfi-128", "record-variants"] +dependencies = ["utf8", "srfi-1", "srfi-69", "vector-lib", "record-variants"] license = "bsd" -sha256 = "0xwy5jimqqq7h3sfvvhhs5kb29a9x57k4jcbmkrmsxizb3fqdl18" +sha256 = "1x8s5znvdsikbrx9z1ys46lm5mavphlvrv9y289z59r7kxncwc7i" synopsis = "Semantic Version Utilities" -version = "0.0.18" +version = "0.0.22" [sendfile] dependencies = ["memory-mapped-files"] @@ -3012,9 +3089,9 @@ version = "2.0" [sqlite3] dependencies = ["srfi-1", "srfi-13", "srfi-18", "srfi-69", "object-evict", "check-errors", "synch", "miscmacros", "matchable", "sql-null"] license = "bsd" -sha256 = "1i9387ph1l7ky30in2v9y8zqc4rqzl0xmzb4hqjpipsxv6haa98s" +sha256 = "1c68y9g6qph2pb2pzj2ph086x0p92w6a613aq5p8mb5x76j8ykcl" synopsis = "Bindings to version 3.x of the SQLite API" -version = "3.7.2" +version = "3.7.3" [sqlite3pth] dependencies = ["pthreads", "srfi-34", "llrb-tree", "miscmacros", "srfi-1"] @@ -3054,9 +3131,9 @@ version = "0.5" [srfi-113] dependencies = ["r7rs", "srfi-69", "srfi-128"] license = "bsd" -sha256 = "1dwik86f7hi3q5ppvnr38y22hkawknrx9yc2fkvynpkc9xjpdv5k" +sha256 = "0x653zdkrplc40xmmvn88ljy1qbvqyihsbmfywzzhwc1v8yac0jb" synopsis = "SRFI-113: Sets and Bags" -version = "1.2.1" +version = "2.0.0" [srfi-115] dependencies = ["srfi-14", "srfi-152"] @@ -3173,9 +3250,9 @@ version = "1.0.0" [srfi-143] dependencies = ["r7rs"] license = "mit" -sha256 = "1zfl2mv6ma97yf6p1ql5a3v50brk5b0h61p2dzyz2n2qi81mrfgm" +sha256 = "0dkg9h3wrqippgigviaq2pf9d1h2wzqan69ya5jv48ai1h5xrpl6" synopsis = "SRFI 143: Fixnums" -version = "1.0.0" +version = "1.1.0" [srfi-144] dependencies = ["r7rs"] @@ -3222,9 +3299,9 @@ version = "0.1" [srfi-160] dependencies = ["srfi-128"] license = "mit" -sha256 = "1zwvc79q46rdb06p3skvqb7v0akgj80z56g8hhbk9qni6hjkq938" +sha256 = "0ykdv7pg68dakkpgjirlivgy2qkpl03gg2lnl44dbjl5h0bb94lz" synopsis = "SRFI 160: Homogeneous numeric vector libraries" -version = "0.5.3" +version = "0.5.4" [srfi-171] dependencies = ["r6rs-bytevectors", "vector-lib", "srfi-1", "srfi-69"] @@ -3257,9 +3334,9 @@ version = "1.0.2" [srfi-179] dependencies = ["srfi-1", "srfi-133", "srfi-160"] license = "mit" -sha256 = "0y5y6sr0flmhnkfbazihi72hyc3cs067i00c0zcd6jcpr28ki103" +sha256 = "1lyl21nw9z44k90z8yfy21rqpc9sbs7kdlhpjik2bnmzsspcgd90" synopsis = "SRFI-179: Nonempty Intervals and Generalized Arrays (Updated)" -version = "0.2.3" +version = "0.3.0" [srfi-18] dependencies = [] @@ -3285,9 +3362,9 @@ version = "1.0.3" [srfi-19] dependencies = ["srfi-1", "utf8", "srfi-18", "srfi-29", "miscmacros", "locale", "record-variants", "check-errors"] license = "bsd" -sha256 = "05wc234bai2qgszqbpl2s1070ir2xkhq3xwpsyjwg9n1s1022v6z" +sha256 = "07dbqmj40w2p4jja8jl7icv1i626vv1sm5m8r4iql5g2jaby8n8a" synopsis = "Time Data Types and Procedures" -version = "4.12.1" +version = "4.13.0" [srfi-193] dependencies = [] @@ -3320,9 +3397,9 @@ version = "1.0.1" [srfi-197] dependencies = [] license = "mit" -sha256 = "19lxc4id9k7hqi1d8fm2mxn32gh18lv35xiash018r6cscz9hh01" +sha256 = "1ra6y49x3qhcihrs36libdij5is0fflwn7a6npkjlb7qr6732spg" synopsis = "SRFI-197: Pipeline Operators" -version = "0.2.0" +version = "0.2.1" [srfi-203] dependencies = [] @@ -3411,9 +3488,9 @@ version = "1.0.0" [srfi-253] dependencies = ["r7rs"] license = "mit" -sha256 = "1b7lrsv5fhl9s3swz0abfx3y2wqrk07n3fwhymg9cz3908cjqms3" +sha256 = "0lqf45ymbl53c6ysvd2v4kslxxql6i94z18n290nhyvib7g7hgyy" synopsis = "SRFI 253: Data (Type-)Checking" -version = "0.1.0" +version = "0.2.0" [srfi-259] dependencies = ["r7rs", "integer-map"] @@ -3474,9 +3551,9 @@ version = "1.5" [srfi-41] dependencies = ["srfi-1", "record-variants", "check-errors"] license = "bsd" -sha256 = "0nia0iazpkn04hnl4k9m5xlksa9bq85crx07vf76zl8hkw57pjs4" +sha256 = "0rm6n0gfcrmwpg2cic7c5fgdhbpi05h6zg5p89m048hz8rpnlvvq" synopsis = "SRFI 41 (Streams)" -version = "2.3.2" +version = "2.3.3" [srfi-42] dependencies = ["srfi-1", "srfi-13"] @@ -3558,9 +3635,9 @@ version = "0.1" [srfi-69-weak] dependencies = [] license = "bsd" -sha256 = "14kxp8zkxrnc0rxj6sm282bznn4i0a9w86pw0v75g199q7kahhk3" +sha256 = "1s13jsp0ig4ivgclc7lajcm0qmphcri48rkcz0ilhc3lqj8vs2la" synopsis = "SRFI-69/90 hash-table library (w/ weak references)" -version = "0.8.0" +version = "1.0.0" [srfi-69] dependencies = [] @@ -3656,9 +3733,9 @@ version = "1.0" [statistics] dependencies = ["srfi-1", "srfi-25", "srfi-69", "vector-lib", "random-mtzig", "yasos", "compile-file", "srfi-13"] license = "gpl-3" -sha256 = "0s659vg9na72brl1bs336vbv7jxy3blf113mifax7ya5vpvxnl71" +sha256 = "189ka9kyxc6c1y96m5c1gsppvyv5mnajhkwfiq235hn7h3d6qdmc" synopsis = "Statistics library" -version = "0.13" +version = "0.14" [stb-image-resize] dependencies = [] @@ -3780,11 +3857,11 @@ synopsis = "The sxpath bits of sxml-tools from the SSAX project at Sourceforge" version = "1.0" [symbol-utils] -dependencies = ["utf8"] +dependencies = ["utf8", "srfi-1"] license = "bsd" -sha256 = "1234p97sagl4bn1rgkrvp7xn22m6qrisnnpabmf51a6zn6ffj286" +sha256 = "0jkgkg0fy40lys2ph03n51nmz5643wxshkjsr34cycjzlwwd5fay" synopsis = "Symbol Utilities" -version = "2.6.2" +version = "2.8.0" [synch] dependencies = ["srfi-18", "check-errors"] @@ -3873,9 +3950,9 @@ version = "1.6.1" [test] dependencies = [] license = "bsd" -sha256 = "1l88lb8cnb0i49qvpdj1rnlj06srp5myg0vhs0fv23gzrzjspxh8" +sha256 = "12136zb4q0p7j9ahsgq97jbxx3q4kqz5fn04ck93b6813vabclvg" synopsis = "Yet Another Testing Utility" -version = "1.2" +version = "1.3" [this] dependencies = [] @@ -3941,11 +4018,11 @@ synopsis = "tracing and breakpoints" version = "2.0" [transducers] -dependencies = ["r7rs", "srfi-1", "srfi-128", "srfi-133", "srfi-143", "srfi-146", "srfi-160", "srfi-253"] +dependencies = ["r7rs", "srfi-128", "srfi-143", "srfi-146", "srfi-160", "srfi-253"] license = "mit" -sha256 = "0fyypwr9syd3iwhwayglff2rg6xsc4w3hcaz4k6ldm2y2f16g7yv" +sha256 = "00phm1lsc0k3fxcyvfjvdpfjxrcl67djm3794p8bdx7jd3gvhgln" synopsis = "Transducers for working with foldable data types." -version = "0.7.1" +version = "0.8.0" [transmission] dependencies = ["http-client", "intarweb", "medea", "r7rs", "srfi-1", "srfi-189", "uri-common"] @@ -3978,9 +4055,9 @@ version = "1.50" [trie] dependencies = ["srfi-1"] license = "bsd" -sha256 = "1k7hq31px236s25wqfqh22wb4kpm97hl2kcvj4amsyvlxc1y4w96" +sha256 = "1f7ykc0gjxh2i1ci027gyjm9gdqifpcniplxbd2gvm58sfxq1kmp" synopsis = "A trie (prefix tree) implementation" -version = "2" +version = "3" [tweetnacl] dependencies = [] @@ -4101,6 +4178,13 @@ sha256 = "0279v7nwwd2zgr9dkpnhpn430lb6byigny3ci0mg30z293iv2fmx" synopsis = "A cheeky IRC bot" version = "0.15" +[varg] +dependencies = [] +license = "mit" +sha256 = "1v9j09q76prls2vq8s6yfrwzvw50fb1mi6id8dp1kc6jfkiqi2qg" +synopsis = "A template for defining dynamic arguments procedure" +version = "1.0.2" + [vector-lib] dependencies = [] license = "bsd" diff --git a/pkgs/development/compilers/chicken/5/overrides.nix b/pkgs/development/compilers/chicken/5/overrides.nix index 4e0c60b91527..ef48b8c0232c 100644 --- a/pkgs/development/compilers/chicken/5/overrides.nix +++ b/pkgs/development/compilers/chicken/5/overrides.nix @@ -265,6 +265,7 @@ in --replace-quiet 'only chicken.base' 'only chicken.base define-values' ''; }; + raylib = addToBuildInputsWithPkgConfig pkgs.raylib; socket = old: { # chicken-do checks for changes to a file that doesn't exist preBuild = '' @@ -284,10 +285,10 @@ in chickenEggs.foreigners ]; }; - ephem = broken; canvas-draw = broken; coops-utils = broken; crypt = broken; + ephem = addToBuildInputs pkgs.libnova; gemini = broken; gemini-client = broken; hypergiant = broken; @@ -295,8 +296,13 @@ in kiwi = broken; lmdb-ht = broken; mpi = broken; + oauthtoothy = broken; pyffi = broken; qt-light = broken; + schematra-csrf = broken; + schematra-session = broken; + srfi-174 = broken; + srfi-19 = broken; sundials = broken; svn-client = broken; tokyocabinet = broken; From 72f400b89025c9520d9fb1375aa212e7aebc0f73 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Wed, 11 Feb 2026 23:26:24 +0100 Subject: [PATCH 067/122] helmholtz: set pname and version --- pkgs/by-name/he/helmholtz/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/he/helmholtz/package.nix b/pkgs/by-name/he/helmholtz/package.nix index ea90db2b4cff..05b797a40ec0 100644 --- a/pkgs/by-name/he/helmholtz/package.nix +++ b/pkgs/by-name/he/helmholtz/package.nix @@ -7,7 +7,8 @@ }: stdenv.mkDerivation { - name = "helmholtz"; + pname = "helmholtz"; + version = "1.0"; src = fetchurl { url = "https://www.katjaas.nl/helmholtz/helmholtz~.zip"; From 0088bc55d3839cc3288e195952c49e98bbf467e8 Mon Sep 17 00:00:00 2001 From: isabel Date: Wed, 11 Feb 2026 22:47:49 +0000 Subject: [PATCH 068/122] moonlight: 1.3.39 -> 2026.2.1 Diff: https://github.com/moonlight-mod/moonlight/compare/v1.3.39...v2026.2.1 Changelog: https://raw.githubusercontent.com/moonlight-mod/moonlight/refs/tags/v2026.2.1/CHANGELOG.md --- pkgs/by-name/mo/moonlight/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/mo/moonlight/package.nix b/pkgs/by-name/mo/moonlight/package.nix index 52d9ba4da6d2..4cfc622e53a3 100644 --- a/pkgs/by-name/mo/moonlight/package.nix +++ b/pkgs/by-name/mo/moonlight/package.nix @@ -14,13 +14,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "moonlight"; - version = "1.3.39"; + version = "2026.2.1"; src = fetchFromGitHub { owner = "moonlight-mod"; repo = "moonlight"; tag = "v${finalAttrs.version}"; - hash = "sha256-85W5OrP9Ju4ZJRUEZLpBreKxgUrHgxxZEv7KzcpqNDo="; + hash = "sha256-BpTN9AdQEDD2XnEUsUxgkoq+EPGhtnYgJhLKF4GVZoc="; }; nativeBuildInputs = [ @@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; fetcherVersion = 3; - hash = "sha256-+wGup5wJIqTzkr4mTo/CxofffQmUz3JD2s/s/oY0viM="; + hash = "sha256-b3d8VcfQjCkcJThebXJ2yvKZfU8u4QnpZgNyqP6XIu0="; }; env = { From b841a6bafe71c823179323733ecff6e192de919d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 00:22:03 +0000 Subject: [PATCH 069/122] feedbackd-device-themes: 0.8.7 -> 0.8.8 --- pkgs/by-name/fe/feedbackd-device-themes/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fe/feedbackd-device-themes/package.nix b/pkgs/by-name/fe/feedbackd-device-themes/package.nix index 7728d80e5f31..78deacafd2a5 100644 --- a/pkgs/by-name/fe/feedbackd-device-themes/package.nix +++ b/pkgs/by-name/fe/feedbackd-device-themes/package.nix @@ -11,14 +11,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "feedbackd-device-themes"; - version = "0.8.7"; + version = "0.8.8"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "agx"; repo = "feedbackd-device-themes"; rev = "v${finalAttrs.version}"; - hash = "sha256-1qenmOTk2ZkPNhOHMcTf2sv5LjcPUjdwLGMv8Iuahvw="; + hash = "sha256-EZpzqEhUeqqe96qcfKyvhQodBTcsgwNZyXvk2zHj20k="; }; nativeBuildInputs = [ From 1161ddefa878c2eb33fc45b9bcd6c3f51bd3d8f8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 01:53:51 +0000 Subject: [PATCH 070/122] ndcurves: 2.1.0 -> 2.1.1 --- pkgs/by-name/nd/ndcurves/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/nd/ndcurves/package.nix b/pkgs/by-name/nd/ndcurves/package.nix index ba6732ab08e6..770fea0fa4b9 100644 --- a/pkgs/by-name/nd/ndcurves/package.nix +++ b/pkgs/by-name/nd/ndcurves/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "ndcurves"; - version = "2.1.0"; + version = "2.1.1"; src = fetchFromGitHub { owner = "loco-3d"; repo = "ndcurves"; rev = "v${finalAttrs.version}"; - hash = "sha256-VHxGm6fzoS51PtTj/qeZumz58ZHtxy28ihbzbnoHvHg="; + hash = "sha256-YnpC2yYEe9VNcHHDyv+glLrue/J/HXbK/VP7DTAE/q0="; }; outputs = [ From c76e6677cd8ccfc4b8f148a9c0130315565b5efc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 02:11:38 +0000 Subject: [PATCH 071/122] cargo-hack: 0.6.41 -> 0.6.42 --- pkgs/by-name/ca/cargo-hack/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-hack/package.nix b/pkgs/by-name/ca/cargo-hack/package.nix index 68c58c09f016..66aa21aa6bdd 100644 --- a/pkgs/by-name/ca/cargo-hack/package.nix +++ b/pkgs/by-name/ca/cargo-hack/package.nix @@ -7,14 +7,14 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-hack"; - version = "0.6.41"; + version = "0.6.42"; src = fetchCrate { inherit (finalAttrs) pname version; - hash = "sha256-JfYsMlu+eYZvQ5HtAIhJ/y33BNkdj9LvQeSJUVL5F7Y="; + hash = "sha256-ebKnXTEWROIy4MREcBQ+ahbQoQZCSttiCMrgW+/buj4="; }; - cargoHash = "sha256-fC9EUu0j/M2dfpFS5Th2pqveFia+lSEtQdaH6Xv32ww="; + cargoHash = "sha256-4Vg0JD2FeZV8SiD5Kzg1KLkPnQ20NVlkbiguwbpYip8="; # some necessary files are absent in the crate version doCheck = false; From 09a52efe3dae9d7dd072452417710084f493bccf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 02:13:44 +0000 Subject: [PATCH 072/122] cargo-expand: 1.0.119 -> 1.0.120 --- pkgs/by-name/ca/cargo-expand/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-expand/package.nix b/pkgs/by-name/ca/cargo-expand/package.nix index e4dd50fbe586..17607da8aeb2 100644 --- a/pkgs/by-name/ca/cargo-expand/package.nix +++ b/pkgs/by-name/ca/cargo-expand/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-expand"; - version = "1.0.119"; + version = "1.0.120"; src = fetchFromGitHub { owner = "dtolnay"; repo = "cargo-expand"; tag = finalAttrs.version; - hash = "sha256-N48BUPnVnMJSiM3EzpSiDNLGZNWFW05toHRhokNO5gI="; + hash = "sha256-KXnAKv8202Trkkr9D9HRmxTOZ67M2Jt4dhZ9o7D86uI="; }; - cargoHash = "sha256-a8swmPQ+JuE/tqRYbV+kekZV8TloxszYq9k8VOGRBrM="; + cargoHash = "sha256-eCDjGKLPy98SuknzzIE2GZEsxFjNZKuV30Y5nBQao3s="; nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; From bebfb35f677685d6ffe7c95b38b46741821c4fee Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Sun, 24 Aug 2025 09:23:19 -0500 Subject: [PATCH 073/122] syncthingtray: migrate to by-name --- .../sy/syncthingtray/package.nix} | 45 +++++++------------ pkgs/top-level/all-packages.nix | 5 --- 2 files changed, 17 insertions(+), 33 deletions(-) rename pkgs/{applications/misc/syncthingtray/default.nix => by-name/sy/syncthingtray/package.nix} (76%) diff --git a/pkgs/applications/misc/syncthingtray/default.nix b/pkgs/by-name/sy/syncthingtray/package.nix similarity index 76% rename from pkgs/applications/misc/syncthingtray/default.nix rename to pkgs/by-name/sy/syncthingtray/package.nix index 9d902d07b895..cfaa3d5723c3 100644 --- a/pkgs/applications/misc/syncthingtray/default.nix +++ b/pkgs/by-name/sy/syncthingtray/package.nix @@ -2,21 +2,10 @@ lib, stdenv, fetchFromGitHub, - qtbase, - qtsvg, - qtwayland, - qtwebengine, - qtdeclarative, - extra-cmake-modules, + kdePackages, cpp-utilities, - qtutilities, - qtforkawesome, boost, - wrapQtAppsHook, cmake, - kio, - plasma-framework, - qttools, iconv, cppunit, syncthing, @@ -49,37 +38,37 @@ stdenv.mkDerivation (finalAttrs: { }; buildInputs = [ - qtbase - qtsvg + kdePackages.qtbase + kdePackages.qtsvg cpp-utilities - qtutilities + kdePackages.qtutilities boost - qtforkawesome + kdePackages.qtforkawesome ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ iconv ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ] - ++ lib.optionals webviewSupport [ qtwebengine ] - ++ lib.optionals jsSupport [ qtdeclarative ] - ++ lib.optionals kioPluginSupport [ kio ] - ++ lib.optionals plasmoidSupport [ plasma-framework ]; + ++ lib.optionals stdenv.hostPlatform.isLinux [ kdePackages.qtwayland ] + ++ lib.optionals webviewSupport [ kdePackages.qtwebengine ] + ++ lib.optionals jsSupport [ kdePackages.qtdeclarative ] + ++ lib.optionals kioPluginSupport [ kdePackages.kio ] + ++ lib.optionals plasmoidSupport [ kdePackages.libplasma ]; nativeBuildInputs = [ - wrapQtAppsHook + kdePackages.wrapQtAppsHook cmake - qttools + kdePackages.qttools # Although these are test dependencies, we add them anyway so that we test # whether the test units compile. On Darwin we don't run the tests but we # still build them. cppunit syncthing ] - ++ lib.optionals plasmoidSupport [ extra-cmake-modules ]; + ++ lib.optionals plasmoidSupport [ kdePackages.extra-cmake-modules ]; # syncthing server seems to hang on darwin, causing tests to fail. doCheck = !stdenv.hostPlatform.isDarwin; preCheck = '' export QT_QPA_PLATFORM=offscreen - export QT_PLUGIN_PATH="${lib.getBin qtbase}/${qtbase.qtPluginPrefix}" + export QT_PLUGIN_PATH="${lib.getBin kdePackages.qtbase}/${kdePackages.qtbase.qtPluginPrefix}" ''; postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' # put the app bundle into the proper place /Applications instead of /bin @@ -94,14 +83,14 @@ stdenv.mkDerivation (finalAttrs: { doInstallCheck = true; cmakeFlags = [ - "-DQT_PACKAGE_PREFIX=Qt${lib.versions.major qtbase.version}" - "-DKF_PACKAGE_PREFIX=KF${lib.versions.major qtbase.version}" + "-DQT_PACKAGE_PREFIX=Qt${lib.versions.major kdePackages.qtbase.version}" + "-DKF_PACKAGE_PREFIX=KF${lib.versions.major kdePackages.qtbase.version}" "-DBUILD_TESTING=ON" # See https://github.com/Martchus/syncthingtray/issues/208 "-DEXCLUDE_TESTS_FROM_ALL=OFF" "-DAUTOSTART_EXEC_PATH=${autostartExecPath}" # See https://github.com/Martchus/syncthingtray/issues/42 - "-DQT_PLUGIN_DIR:STRING=${placeholder "out"}/${qtbase.qtPluginPrefix}" + "-DQT_PLUGIN_DIR:STRING=${placeholder "out"}/${kdePackages.qtbase.qtPluginPrefix}" "-DBUILD_SHARED_LIBS=ON" ] ++ lib.optionals (!plasmoidSupport) [ "-DNO_PLASMOID=ON" ] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0d3d4cf78014..335ab5c8452e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10984,11 +10984,6 @@ with pkgs; syncthing-relay ; - syncthingtray = kdePackages.callPackage ../applications/misc/syncthingtray { - # renamed in KF5 -> KF6 - plasma-framework = kdePackages.libplasma; - }; - synergyWithoutGUI = synergy.override { withGUI = false; }; tabbed = callPackage ../applications/window-managers/tabbed { From b85d69c79c07d711660ea558c61168e4979fb1de Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Wed, 11 Feb 2026 22:57:11 -0500 Subject: [PATCH 074/122] mimir: 3.0.2 -> 3.0.3 Changelog: https://github.com/grafana/mimir/releases/tag/mimir-3.0.3 --- pkgs/by-name/mi/mimir/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mi/mimir/package.nix b/pkgs/by-name/mi/mimir/package.nix index c2e42872e1aa..739d2c1a9a6a 100644 --- a/pkgs/by-name/mi/mimir/package.nix +++ b/pkgs/by-name/mi/mimir/package.nix @@ -7,13 +7,13 @@ }: buildGoModule (finalAttrs: { pname = "mimir"; - version = "3.0.2"; + version = "3.0.3"; src = fetchFromGitHub { rev = "mimir-${finalAttrs.version}"; owner = "grafana"; repo = "mimir"; - hash = "sha256-8dym3E6VinpExE4A+ekbhiQ+Zhwvue6/s1mAhBkwPMU="; + hash = "sha256-OUFmtHGGDU1+7EwfGVzrjPS2hqba0FfIuQl0V7up9Yk="; }; vendorHash = null; From 8527659efefa12765ba022ca7e00a0112b189b7d Mon Sep 17 00:00:00 2001 From: quantenzitrone Date: Thu, 12 Feb 2026 04:16:25 +0100 Subject: [PATCH 075/122] surge-xt: rename from surge-XT rename to lowercase to fit package naming conventions --- pkgs/by-name/su/{surge-XT => surge-xt}/clap-option.diff | 0 pkgs/by-name/su/{surge-XT => surge-xt}/package.nix | 2 +- pkgs/top-level/aliases.nix | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) rename pkgs/by-name/su/{surge-XT => surge-xt}/clap-option.diff (100%) rename pkgs/by-name/su/{surge-XT => surge-xt}/package.nix (99%) diff --git a/pkgs/by-name/su/surge-XT/clap-option.diff b/pkgs/by-name/su/surge-xt/clap-option.diff similarity index 100% rename from pkgs/by-name/su/surge-XT/clap-option.diff rename to pkgs/by-name/su/surge-xt/clap-option.diff diff --git a/pkgs/by-name/su/surge-XT/package.nix b/pkgs/by-name/su/surge-xt/package.nix similarity index 99% rename from pkgs/by-name/su/surge-XT/package.nix rename to pkgs/by-name/su/surge-xt/package.nix index 0b4ce473dbc9..3a2e22cb5574 100644 --- a/pkgs/by-name/su/surge-XT/package.nix +++ b/pkgs/by-name/su/surge-xt/package.nix @@ -22,7 +22,7 @@ }: stdenv.mkDerivation (finalAttrs: { - pname = "surge-XT"; + pname = "surge-xt"; version = "1.3.4"; src = fetchFromGitHub { diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 8823598b6f53..bf77b8e4ea81 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1792,6 +1792,7 @@ mapAliases { sumalibs = throw "'sumalibs' has been removed as it was archived upstream and broken with GCC 14"; # Added 2025-06-14 sumatra = throw "'sumatra' has been removed as it was archived upstream and broken with GCC 14"; # Added 2025-06-14 sumneko-lua-language-server = throw "'sumneko-lua-language-server' has been renamed to/replaced by 'lua-language-server'"; # Converted to throw 2025-10-27 + surge-XT = warnAlias "'surge-XT' has been renamed to 'surge-xt'" surge-xt; # Added 2026-02-12 svt-av1-psy = warnAlias "'svt-av1-psy' has been replaced by 'svt-av1-psyex'" svt-av1-psyex; # Added 2026-01-10 swig4 = throw "'swig4' has been renamed to/replaced by 'swig'"; # Converted to throw 2025-10-27 swiProlog = throw "'swiProlog' has been renamed to/replaced by 'swi-prolog'"; # Converted to throw 2025-10-27 From e9aed135b3bbcb61a0400e0f168b21182aa88fe5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 05:12:30 +0000 Subject: [PATCH 076/122] wit-bindgen: 0.52.0 -> 0.53.0 --- pkgs/by-name/wi/wit-bindgen/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/wi/wit-bindgen/package.nix b/pkgs/by-name/wi/wit-bindgen/package.nix index 87361189e5ca..3b7bb0abbe4a 100644 --- a/pkgs/by-name/wi/wit-bindgen/package.nix +++ b/pkgs/by-name/wi/wit-bindgen/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "wit-bindgen"; - version = "0.52.0"; + version = "0.53.0"; src = fetchFromGitHub { owner = "bytecodealliance"; repo = "wit-bindgen"; rev = "v${finalAttrs.version}"; - hash = "sha256-S3iOmkAg1H6sEcXhC/7cQcrwH5OwR5ZROn0iPkUrwEY="; + hash = "sha256-TTSc4T8QR7cmAPAFzoV/9oBfKrUzVs20qMP3rwjELr4="; }; - cargoHash = "sha256-RqDlBpwCxwwoG+u7zUz8j4t5JXonTe7mvAk8PxU7Gdc="; + cargoHash = "sha256-SybsgrOlxh27CQ73IXVYlTROTRR0MU3O7Sieh5pYeHw="; # Some tests fail because they need network access to install the `wasm32-unknown-unknown` target. # However, GitHub Actions ensures a proper build. From 397a49cdd099acb4e2c86e16ad3221dc279819bb Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:33:08 +0100 Subject: [PATCH 077/122] python313Packages.iamdata: 0.1.202602111 -> 0.1.202602121 Diff: https://github.com/cloud-copilot/iam-data-python/compare/v0.1.202602111...v0.1.202602121 Changelog: https://github.com/cloud-copilot/iam-data-python/releases/tag/v0.1.202602121 --- pkgs/development/python-modules/iamdata/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index 7f2740622a3c..f75ed3eac75f 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "iamdata"; - version = "0.1.202602111"; + version = "0.1.202602121"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-gkPU9P3xgQ2jGrxi/Dl+wtbpJjZDGfYLiLZnKXEE3y8="; + hash = "sha256-gTsr0CBDBXLI9l2G3ACHdb7HdQoxvNAb5uXYtgB1ZSQ="; }; __darwinAllowLocalNetworking = true; From d8f967cd5e35b021cbff6fce9953a69c20b8fb72 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:34:03 +0100 Subject: [PATCH 078/122] python312Packages.mypy-boto3-batch: 1.42.41 -> 1.42.47 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index f405bdfe0a5a..06f8dbf7564a 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -163,8 +163,8 @@ in "sha256-uKbD5VkYnYO2PKd1Lp9PAg9+5p8X+LisT+N6TsqhZRY="; mypy-boto3-batch = - buildMypyBoto3Package "batch" "1.42.41" - "sha256-IDtmHGtBihawUVZVLgf4+8uB3Jm8OqmLlRrge8zZvFY="; + buildMypyBoto3Package "batch" "1.42.47" + "sha256-A8fLv0hcx6fofnf807NJ/FjLLDwOAx3BHFG8Cmae53g="; mypy-boto3-billingconductor = buildMypyBoto3Package "billingconductor" "1.42.7" From c9a65d635351cc843152beb8fecdeb3e940878d1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:34:24 +0100 Subject: [PATCH 079/122] python312Packages.mypy-boto3-ec2: 1.42.45 -> 1.42.47 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 06f8dbf7564a..3c64e1e31393 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -443,8 +443,8 @@ in "sha256-92qhSUqTiLgbtvCdi/Mmgve18mcYR00ABL+bNy7/OnY="; mypy-boto3-ec2 = - buildMypyBoto3Package "ec2" "1.42.45" - "sha256-q3YTS3urB2ZNYiVxJLZOR7fwMhKrq6mLyqBESkfEdiY="; + buildMypyBoto3Package "ec2" "1.42.47" + "sha256-imwY2DYwb94g96whzwn/2Xr18Vsxjmf98RRB8vGmb98="; mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.42.3" From e0a4430c03390a6bd15f9d8443b0bee44071925f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:34:27 +0100 Subject: [PATCH 080/122] python312Packages.mypy-boto3-eks: 1.42.46 -> 1.42.47 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 3c64e1e31393..9b23afee6954 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -467,8 +467,8 @@ in "sha256-lNlav7BQkVjbYE9cdnvcdNki9IDo6tTlerD+lt69Rio="; mypy-boto3-eks = - buildMypyBoto3Package "eks" "1.42.46" - "sha256-5PziEDkoUEgUwmaPCWo5N6G3rQ9LRhEqOPCslMKyk78="; + buildMypyBoto3Package "eks" "1.42.47" + "sha256-40eBd8o+6R4kX2N8MR4NkoqtJ2lKAf/AghJSmfOTlKQ="; mypy-boto3-elastic-inference = buildMypyBoto3Package "elastic-inference" "1.36.0" From 191c298aa40413a5c7a820ebe940d5a17cdfdade Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:34:45 +0100 Subject: [PATCH 081/122] python312Packages.mypy-boto3-kafkaconnect: 1.42.19 -> 1.42.47 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 9b23afee6954..23856f61d877 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -710,8 +710,8 @@ in "sha256-XfZloR5nG1xGyAb4D1UsDpH1xc2hKoBCWabS+yc+uO8="; mypy-boto3-kafkaconnect = - buildMypyBoto3Package "kafkaconnect" "1.42.19" - "sha256-82y1eElG60knpJhQYQiVa+qv2xi1z+CHjHE8IfGSpkE="; + buildMypyBoto3Package "kafkaconnect" "1.42.47" + "sha256-61rA7KEkt8Z/rzOEoArxsuspgfIe+NfjqT4yoCmM/3Q="; mypy-boto3-kendra = buildMypyBoto3Package "kendra" "1.42.3" From 619f82e98018cf5867b692f7c7e07b20d4a2c53e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:35:44 +0100 Subject: [PATCH 082/122] python314Packages.boto3-stubs: 1.42.46 -> 1.42.47 --- pkgs/development/python-modules/boto3-stubs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix index 1e29d3bf73bd..f94c7e9b37bd 100644 --- a/pkgs/development/python-modules/boto3-stubs/default.nix +++ b/pkgs/development/python-modules/boto3-stubs/default.nix @@ -358,13 +358,13 @@ buildPythonPackage (finalAttrs: { pname = "boto3-stubs"; - version = "1.42.46"; + version = "1.42.47"; pyproject = true; src = fetchPypi { pname = "boto3_stubs"; inherit (finalAttrs) version; - hash = "sha256-o5iSlgn8jNf3vE+xfur2EtcqeoJk7H8YtXnKSY5JLQA="; + hash = "sha256-z5q4ALtYYhFiZOWfsBWToldR2BondR0B/DrHkfHYmzE="; }; build-system = [ setuptools ]; From 244e05f9c336de91af94b7da4a79e19eec26da3c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:38:53 +0100 Subject: [PATCH 083/122] python314Packages.mitogen: 0.3.40 -> 0.3.41 Diff: https://github.com/mitogen-hq/mitogen/compare/v0.3.40...v0.3.41 Changelog: https://github.com/mitogen-hq/mitogen/blob/v0.3.41/docs/changelog.rst --- pkgs/development/python-modules/mitogen/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mitogen/default.nix b/pkgs/development/python-modules/mitogen/default.nix index cc88e3f3a3e5..3494a09f8bfb 100644 --- a/pkgs/development/python-modules/mitogen/default.nix +++ b/pkgs/development/python-modules/mitogen/default.nix @@ -7,14 +7,14 @@ buildPythonPackage (finalAttrs: { pname = "mitogen"; - version = "0.3.40"; + version = "0.3.41"; pyproject = true; src = fetchFromGitHub { owner = "mitogen-hq"; repo = "mitogen"; tag = "v${finalAttrs.version}"; - hash = "sha256-yGIXgqngr4hjejCuYaNTArncbs0Pcg1Iia5geujPQhg="; + hash = "sha256-ws7MPURrqt5+9bCJeKePjhsHyaj57SqsB3+Juc5YF5M="; }; build-system = [ setuptools ]; From 6c10e63304cce2718db043fac0056e552a9376f2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:40:01 +0100 Subject: [PATCH 084/122] python314Packages.nrgkick-api: 1.7.0 -> 1.7.1 Diff: https://github.com/andijakl/nrgkick-api/compare/v1.7.0...v1.7.1 Changelog: https://github.com/andijakl/nrgkick-api/releases/tag/v1.7.1 --- pkgs/development/python-modules/nrgkick-api/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/nrgkick-api/default.nix b/pkgs/development/python-modules/nrgkick-api/default.nix index c02cbedc3eee..071b8ec2d115 100644 --- a/pkgs/development/python-modules/nrgkick-api/default.nix +++ b/pkgs/development/python-modules/nrgkick-api/default.nix @@ -12,14 +12,14 @@ buildPythonPackage (finalAttrs: { pname = "nrgkick-api"; - version = "1.7.0"; + version = "1.7.1"; pyproject = true; src = fetchFromGitHub { owner = "andijakl"; repo = "nrgkick-api"; tag = "v${finalAttrs.version}"; - hash = "sha256-q9mLX+DjNSyvjJ6hNPZckaHTNNelOsOlOe9XeVqutaU="; + hash = "sha256-ZOVSQOjFPVnm3xnkhp+KFC9YbASEfzB05VpSzKcXJiU="; }; build-system = [ setuptools ]; From 3a2ffe924515b29024fb30aed43a365f923c545d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:41:28 +0100 Subject: [PATCH 085/122] python314Packages.piccolo: 1.31.0 -> 1.32.0 Diff: https://github.com/piccolo-orm/piccolo/compare/1.31.0...1.32.0 Changelog: https://github.com/piccolo-orm/piccolo/blob/1.32.0/CHANGES.rst --- pkgs/development/python-modules/piccolo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/piccolo/default.nix b/pkgs/development/python-modules/piccolo/default.nix index 7d4558e8e782..d5a4cbe0b7c7 100644 --- a/pkgs/development/python-modules/piccolo/default.nix +++ b/pkgs/development/python-modules/piccolo/default.nix @@ -23,14 +23,14 @@ buildPythonPackage (finalAttrs: { pname = "piccolo"; - version = "1.31.0"; + version = "1.32.0"; pyproject = true; src = fetchFromGitHub { owner = "piccolo-orm"; repo = "piccolo"; tag = finalAttrs.version; - hash = "sha256-ZREsvxj9fWNwbbO2erUchiXCuaFh9vziWQjdaJBl/QI="; + hash = "sha256-RDXrw+z/hFlnpknI+bGBsn8MHLkFbhHms11qu51Kj7k="; }; build-system = [ setuptools ]; From c94c21122460628cadf0ccd58416916fbcf901b3 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 12 Feb 2026 08:42:09 +0100 Subject: [PATCH 086/122] python314Packages.pydaikin: 2.17.1 -> 2.18.0 Diff: https://github.com/fredrike/pydaikin/compare/v2.17.1...v2.18.0 Changelog: https://github.com/fredrike/pydaikin/releases/tag/v2.18.0 --- pkgs/development/python-modules/pydaikin/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pydaikin/default.nix b/pkgs/development/python-modules/pydaikin/default.nix index d07399899db1..073bd963bca6 100644 --- a/pkgs/development/python-modules/pydaikin/default.nix +++ b/pkgs/development/python-modules/pydaikin/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "pydaikin"; - version = "2.17.1"; + version = "2.18.0"; pyproject = true; disabled = pythonOlder "3.11"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "fredrike"; repo = "pydaikin"; tag = "v${version}"; - hash = "sha256-GSZJ7Upq43S8AC2U+8qRaPlcht/GndA2jm1mSVfEiaY="; + hash = "sha256-JESTwtrDuBydXIzRfbtnvbb4Hsumt1wMRpppU2xdWJQ="; }; __darwinAllowLocalNetworking = true; From 040369bb89be1a6c41d6dc5968a831af00c11c50 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 05:24:32 +0000 Subject: [PATCH 087/122] python3Packages.jupyter-docprovider: 2.2.0 -> 2.2.1 --- .../python-modules/jupyter-docprovider/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/jupyter-docprovider/default.nix b/pkgs/development/python-modules/jupyter-docprovider/default.nix index 04e2f5a615e7..55eeef745a50 100644 --- a/pkgs/development/python-modules/jupyter-docprovider/default.nix +++ b/pkgs/development/python-modules/jupyter-docprovider/default.nix @@ -7,15 +7,15 @@ jupyter-collaboration, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "jupyter-docprovider"; - version = "2.2.0"; + version = "2.2.1"; pyproject = true; src = fetchPypi { pname = "jupyter_docprovider"; - inherit version; - hash = "sha256-UZwPhBJsb7qWIOUYm+9t8GfX14nRJt69czAapLiN/Qw="; + inherit (finalAttrs) version; + hash = "sha256-2Ko7XbO5tAHeBRWd+No24th0hebc31l6IOWMkh9wXdo="; }; postPatch = '' @@ -41,4 +41,4 @@ buildPythonPackage rec { license = lib.licenses.bsd3; teams = [ lib.teams.jupyter ]; }; -} +}) From 756ba3eafcad2ba40cc49c6941ab1cbfbcc0f076 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Thu, 12 Feb 2026 10:24:28 +0100 Subject: [PATCH 088/122] cfn-nag: remove version from bundlerEnv --- pkgs/by-name/cf/cfn-nag/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/cf/cfn-nag/package.nix b/pkgs/by-name/cf/cfn-nag/package.nix index 71c198c9a9b7..b5f7cd01298a 100644 --- a/pkgs/by-name/cf/cfn-nag/package.nix +++ b/pkgs/by-name/cf/cfn-nag/package.nix @@ -7,7 +7,6 @@ bundlerEnv { pname = "cfn-nag"; - version = "0.8.10"; inherit ruby; gemdir = ./.; From 22f0092301e865754cbc3251246b80dbf3f460e0 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Thu, 12 Feb 2026 10:24:40 +0100 Subject: [PATCH 089/122] compass: remove version from bundlerEnv --- pkgs/development/tools/compass/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/tools/compass/default.nix b/pkgs/development/tools/compass/default.nix index cbf28b43f425..e09f5e9f3926 100644 --- a/pkgs/development/tools/compass/default.nix +++ b/pkgs/development/tools/compass/default.nix @@ -7,7 +7,6 @@ bundlerEnv { pname = "compass"; - version = "1.0.3"; inherit ruby; gemdir = ./.; From 849f9faa4f6a44416fc6c4c042bd73bedb8ef4a3 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Thu, 12 Feb 2026 10:25:18 +0100 Subject: [PATCH 090/122] license_finder: remove version from bundlerEnv --- pkgs/development/tools/license_finder/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/tools/license_finder/default.nix b/pkgs/development/tools/license_finder/default.nix index 6eb7fe397a9c..2b3247c504df 100644 --- a/pkgs/development/tools/license_finder/default.nix +++ b/pkgs/development/tools/license_finder/default.nix @@ -7,7 +7,6 @@ bundlerEnv { pname = "license_finder"; - version = "7.0.1"; inherit ruby; gemdir = ./.; From de5bb03e53f02c0e2f30df69dc20406e4cdff20c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 10:51:39 +0000 Subject: [PATCH 091/122] slade-unstable: 3.2.11-unstable-2026-01-28 -> 3.2.11-unstable-2026-02-10 --- pkgs/by-name/sl/slade-unstable/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sl/slade-unstable/package.nix b/pkgs/by-name/sl/slade-unstable/package.nix index c2cd03df2e09..ce544a69a413 100644 --- a/pkgs/by-name/sl/slade-unstable/package.nix +++ b/pkgs/by-name/sl/slade-unstable/package.nix @@ -22,13 +22,13 @@ stdenv.mkDerivation { pname = "slade"; - version = "3.2.11-unstable-2026-01-28"; + version = "3.2.11-unstable-2026-02-10"; src = fetchFromGitHub { owner = "sirjuddington"; repo = "SLADE"; - rev = "10cfdb655f541ba2c37da97bea9d5fc0cb5c7541"; - hash = "sha256-5aXfy7sAewIOMqzgd1HBrVlusx2TKz61SfTFsTIRTII="; + rev = "b2c302bb9723a7ef12315c299244874249f4f13b"; + hash = "sha256-lUyDsJb2DXCSwRp7G9YF9aAWhJ7a2mXriTPmQ2/nhaQ="; }; nativeBuildInputs = [ From e7efd7aae85949ee338c6e5b66bcbda6f5b006de Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 10:52:38 +0000 Subject: [PATCH 092/122] phpExtensions.mongodb: 2.1.8 -> 2.2.0 --- pkgs/development/php-packages/mongodb/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix index ce5fb7f5d6f1..45fb77d95415 100644 --- a/pkgs/development/php-packages/mongodb/default.nix +++ b/pkgs/development/php-packages/mongodb/default.nix @@ -15,13 +15,13 @@ buildPecl rec { pname = "mongodb"; - version = "2.1.8"; + version = "2.2.0"; src = fetchFromGitHub { owner = "mongodb"; repo = "mongo-php-driver"; rev = version; - hash = "sha256-KX4e14D3oA8OpvoeeM6z/OY6Xtvf7OgxPjJM66DbJlw="; + hash = "sha256-iaDhI3LA/kTJqk6ViMlwLsmSpg20EogGskBrinVKpME="; fetchSubmodules = true; }; From ce31931fe48a310195cb405da95200d7c393f5a2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 12 Feb 2026 11:16:52 +0000 Subject: [PATCH 093/122] balatro: add some whitespace Make the direvation slightly more readable. --- pkgs/by-name/ba/balatro/package.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/by-name/ba/balatro/package.nix b/pkgs/by-name/ba/balatro/package.nix index eb039b8808a7..56e3b21a7539 100644 --- a/pkgs/by-name/ba/balatro/package.nix +++ b/pkgs/by-name/ba/balatro/package.nix @@ -34,8 +34,11 @@ stdenv.mkDerivation (finalAttrs: { copyDesktopItems makeWrapper ]; + buildInputs = [ love ] ++ lib.optional withMods lovely-injector; + dontUnpack = true; + desktopItems = [ (makeDesktopItem { name = "balatro"; @@ -46,13 +49,16 @@ stdenv.mkDerivation (finalAttrs: { icon = "balatro"; }) ]; + buildPhase = '' runHook preBuild + tmpdir=$(mktemp -d) 7z x ${finalAttrs.src} -o$tmpdir -y ${if withLinuxPatch then "patch $tmpdir/globals.lua -i ${./globals.patch}" else ""} patchedExe=$(mktemp -u).zip 7z a $patchedExe $tmpdir/* + runHook postBuild ''; @@ -61,12 +67,14 @@ stdenv.mkDerivation (finalAttrs: { # 'official' way of doing it. installPhase = '' runHook preInstall + install -Dm644 $srcIcon $out/share/icons/hicolor/scalable/apps/balatro.png cat ${lib.getExe love} $patchedExe > $out/share/Balatro chmod +x $out/share/Balatro makeWrapper $out/share/Balatro $out/bin/balatro ${lib.optionalString withMods "--prefix LD_PRELOAD : '${lovely-injector}/lib/liblovely.so'"} + runHook postInstall ''; From 77867fbc7bd1ea1da755970b014faec5ceba2d89 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Thu, 12 Feb 2026 12:20:25 +0100 Subject: [PATCH 094/122] postgresql: change source back to tags The tags for the recent minor version releases have now been pushed. --- pkgs/servers/sql/postgresql/14.nix | 3 +-- pkgs/servers/sql/postgresql/15.nix | 3 +-- pkgs/servers/sql/postgresql/16.nix | 3 +-- pkgs/servers/sql/postgresql/17.nix | 3 +-- pkgs/servers/sql/postgresql/18.nix | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/pkgs/servers/sql/postgresql/14.nix b/pkgs/servers/sql/postgresql/14.nix index 550f9747a66f..283873a2485f 100644 --- a/pkgs/servers/sql/postgresql/14.nix +++ b/pkgs/servers/sql/postgresql/14.nix @@ -1,7 +1,6 @@ import ./generic.nix { version = "14.21"; - # rev = "refs/tags/REL_14_21"; - rev = "eb788b43371849237c61ba2747fc11e96c08d861"; + rev = "refs/tags/REL_14_21"; hash = "sha256-9uG32BVzXOL2yAJmFVkIvEZJrmI5ToL7ojtivWmufL8="; muslPatches = { disable-test-collate-icu-utf8 = { diff --git a/pkgs/servers/sql/postgresql/15.nix b/pkgs/servers/sql/postgresql/15.nix index 50877491601d..bb0043b7d2a9 100644 --- a/pkgs/servers/sql/postgresql/15.nix +++ b/pkgs/servers/sql/postgresql/15.nix @@ -1,7 +1,6 @@ import ./generic.nix { version = "15.16"; - # rev = "refs/tags/REL_15_16"; - rev = "78bc85dd4455c302c345c550e0628a1522df108d"; + rev = "refs/tags/REL_15_16"; hash = "sha256-ju/KkeBOumYHCarhqNA8jq+ceUo4y8g/SzjAMWm80ak="; muslPatches = { dont-use-locale-a = { diff --git a/pkgs/servers/sql/postgresql/16.nix b/pkgs/servers/sql/postgresql/16.nix index 13ab44599795..56176de6f674 100644 --- a/pkgs/servers/sql/postgresql/16.nix +++ b/pkgs/servers/sql/postgresql/16.nix @@ -1,7 +1,6 @@ import ./generic.nix { version = "16.12"; - # rev = "refs/tags/REL_16_12"; - rev = "e15d96551f9760e62888b5082ad050329c1c4cdf"; + rev = "refs/tags/REL_16_12"; hash = "sha256-1jkVElZTtp60Jgl5RyPT+8lalDYtjRDe9MxO3KMYJmU="; muslPatches = { dont-use-locale-a = { diff --git a/pkgs/servers/sql/postgresql/17.nix b/pkgs/servers/sql/postgresql/17.nix index 1c5f4dc98948..b6419a41a48d 100644 --- a/pkgs/servers/sql/postgresql/17.nix +++ b/pkgs/servers/sql/postgresql/17.nix @@ -1,7 +1,6 @@ import ./generic.nix { version = "17.8"; - # rev = "refs/tags/REL_17_8"; - rev = "6af885119b52a2a6229959670ba3ae5e36bf9806"; + rev = "refs/tags/REL_17_8"; hash = "sha256-4lV1/xRmMsc5rgY3RB6WMigTXHgHjh9bmR6nzL82Rs4="; muslPatches = { dont-use-locale-a = { diff --git a/pkgs/servers/sql/postgresql/18.nix b/pkgs/servers/sql/postgresql/18.nix index a5bca108217a..22b652ca1c07 100644 --- a/pkgs/servers/sql/postgresql/18.nix +++ b/pkgs/servers/sql/postgresql/18.nix @@ -1,7 +1,6 @@ import ./generic.nix { version = "18.2"; - # rev = "refs/tags/REL_18_2"; - rev = "5a461dc4dbf72a1ec281394a76eb36d68cbdd935"; + rev = "refs/tags/REL_18_2"; hash = "sha256-cvBXxA7/kEwDGxFv/YoZCIh17jzUujrCtfKAmtSxKTw="; muslPatches = { dont-use-locale-a = { From f7f227913daf667b08b7218d0c658175d1c30ab7 Mon Sep 17 00:00:00 2001 From: Bazinga9000 Date: Mon, 24 Nov 2025 23:36:13 -0500 Subject: [PATCH 095/122] balatro: add curl to LD_LIBRARY_PATH Resolves #464807 --- pkgs/by-name/ba/balatro/package.nix | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ba/balatro/package.nix b/pkgs/by-name/ba/balatro/package.nix index 56e3b21a7539..bb4cf28bca89 100644 --- a/pkgs/by-name/ba/balatro/package.nix +++ b/pkgs/by-name/ba/balatro/package.nix @@ -4,6 +4,7 @@ lib, love, lovely-injector, + curl, p7zip, copyDesktopItems, makeWrapper, @@ -35,7 +36,13 @@ stdenv.mkDerivation (finalAttrs: { makeWrapper ]; - buildInputs = [ love ] ++ lib.optional withMods lovely-injector; + buildInputs = [ + love + ] + ++ lib.optionals withMods [ + lovely-injector + curl + ]; dontUnpack = true; @@ -63,8 +70,9 @@ stdenv.mkDerivation (finalAttrs: { ''; # The `cat` bit is a hack suggested by whitelje (https://github.com/ethangreen-dev/lovely-injector/pull/66#issuecomment-2319615509) - # to make it so that lovely will pick up Balatro as the game name. The `LD_PRELOAD` bit is used to load lovely and it is the - # 'official' way of doing it. + # to make it so that lovely will pick up Balatro as the game name. + # The `LD_PRELOAD` bit is used to load lovely and it is the 'official' way of doing it. + # The `LD_LIBRARY_PATH` bit adds `curl` as that is the community standard backend for network-related mods on non-Windows systems installPhase = '' runHook preInstall @@ -73,7 +81,9 @@ stdenv.mkDerivation (finalAttrs: { cat ${lib.getExe love} $patchedExe > $out/share/Balatro chmod +x $out/share/Balatro - makeWrapper $out/share/Balatro $out/bin/balatro ${lib.optionalString withMods "--prefix LD_PRELOAD : '${lovely-injector}/lib/liblovely.so'"} + makeWrapper $out/share/Balatro $out/bin/balatro ${lib.optionalString withMods '' + --prefix LD_PRELOAD : '${lovely-injector}/lib/liblovely.so' \ + --prefix LD_LIBRARY_PATH : '${lib.makeLibraryPath [ curl ]}''} runHook postInstall ''; From dc09e2399b75887b5010b913ac28348f345661aa Mon Sep 17 00:00:00 2001 From: Haylin Moore Date: Fri, 12 Sep 2025 21:02:11 -0700 Subject: [PATCH 096/122] balatro: add requireFile message Resolves #441819 --- pkgs/by-name/ba/balatro/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/ba/balatro/package.nix b/pkgs/by-name/ba/balatro/package.nix index bb4cf28bca89..9cb86751ae16 100644 --- a/pkgs/by-name/ba/balatro/package.nix +++ b/pkgs/by-name/ba/balatro/package.nix @@ -20,6 +20,13 @@ stdenv.mkDerivation (finalAttrs: { src = requireFile { name = "Balatro-${finalAttrs.version}.exe"; url = "https://store.steampowered.com/app/2379780/Balatro/"; + message = '' + Balatro cannot be automatically downloaded. Please download + it from Steam, locate the Balatro.exe on disk, likely in + ~/.local/share/Steam/steamapps/common/Balatro/, then upload it + to your nix store with nix-store --add-fixed sha256 Balatro.exe. + ''; + # Use `nix --extra-experimental-features nix-command hash file --sri --type sha256` to get the correct hash hash = "sha256-DXX+FkrM8zEnNNSzesmHiN0V8Ljk+buLf5DE5Z3pP0c="; }; From 49e2946b62e6a210822c40572b779b35e732c066 Mon Sep 17 00:00:00 2001 From: Brenton Simpson Date: Sat, 31 Jan 2026 23:56:33 -0500 Subject: [PATCH 097/122] balatro: use substituteInPlace for withLinuxPatch The previous patch relied on git, which meant it only worked on one specific version of the game. Moreover, it curtailed the ability to make the patch more dynamic in the future. This accomplishes the same, but is more forgiving to updates/alternate editions. --- pkgs/by-name/ba/balatro/globals.patch | 15 --------------- pkgs/by-name/ba/balatro/package.nix | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 16 deletions(-) delete mode 100644 pkgs/by-name/ba/balatro/globals.patch diff --git a/pkgs/by-name/ba/balatro/globals.patch b/pkgs/by-name/ba/balatro/globals.patch deleted file mode 100644 index b896a1deb61a..000000000000 --- a/pkgs/by-name/ba/balatro/globals.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- result/share/balatro/globals.lua 1970-01-01 01:00:01.000000000 +0100 -+++ result/share/balatro/globals.lua 1970-01-01 01:00:01.000000000 +0100 -@@ -56,6 +56,12 @@ function Game:set_globals() - self.F_CRASH_REPORTS = false - end - -+ if love.system.getOS() == 'Linux' then -+ self.F_SAVE_TIMER = 5 -+ self.F_DISCORD = true -+ self.F_ENGLISH_ONLY = false -+ end -+ - if love.system.getOS() == 'Nintendo Switch' then - self.F_HIDE_BETA_LANGS = true - self.F_BASIC_CREDITS = true diff --git a/pkgs/by-name/ba/balatro/package.nix b/pkgs/by-name/ba/balatro/package.nix index 9cb86751ae16..4a06a2a1a5ae 100644 --- a/pkgs/by-name/ba/balatro/package.nix +++ b/pkgs/by-name/ba/balatro/package.nix @@ -69,7 +69,24 @@ stdenv.mkDerivation (finalAttrs: { tmpdir=$(mktemp -d) 7z x ${finalAttrs.src} -o$tmpdir -y - ${if withLinuxPatch then "patch $tmpdir/globals.lua -i ${./globals.patch}" else ""} + + ${ + let + patchMarker = "if love.system.getOS() == 'Nintendo Switch' then"; + in + lib.optionalString withLinuxPatch '' + substituteInPlace "$tmpdir/globals.lua" --replace-fail \ + "${patchMarker}" \ + "if love.system.getOS() == 'Linux' then + self.F_SAVE_TIMER = 5 + self.F_DISCORD = true + self.F_ENGLISH_ONLY = false + end + + ${patchMarker}" + '' + } + patchedExe=$(mktemp -u).zip 7z a $patchedExe $tmpdir/* From 5122924f493a0c9bc3354c86e34c1c97d4350788 Mon Sep 17 00:00:00 2001 From: Brenton Simpson Date: Sat, 31 Jan 2026 19:40:37 -0500 Subject: [PATCH 098/122] balatro: add support for Google Play and Xbox PC editions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Different editions of Balatro have essentially the same Lua codebase, delegating to a native bridge `love.platform` to handle cloud functionality like profiles and achievements. These bridges are not part of the standard LÖVE SDK, and hence aren't provided by`pkgs.love`. `withBridgePatch` uses the local filesystem for loading/saving games, and short-circuits the other bridge functions. This enables the Google Play and Xbox PC editions of the game to be played with the open source LÖVE runtime. --- doc/release-notes/rl-2605.section.md | 2 + pkgs/by-name/ba/balatro/bridge_detour.lua | 229 ++++++++++++++++++++++ pkgs/by-name/ba/balatro/package.nix | 76 +++++-- 3 files changed, 288 insertions(+), 19 deletions(-) create mode 100644 pkgs/by-name/ba/balatro/bridge_detour.lua diff --git a/doc/release-notes/rl-2605.section.md b/doc/release-notes/rl-2605.section.md index b0d55f8f5022..cd78b670c342 100644 --- a/doc/release-notes/rl-2605.section.md +++ b/doc/release-notes/rl-2605.section.md @@ -148,6 +148,8 @@ +- `balatro` now supports the Google Play and Xbox PC versions of the game. Pass the `apk` or `Assets.zip` as `balatro.override { src = "…" }`. + - `uptime-kuma` has been updated to v2, which requires an automated migration that can take a few hours. **A backup is highly recommended.** If your SQLite database is corrupted, the migration might fail and require [manual intervention](https://github.com/louislam/uptime-kuma/issues/5281). See the [migration guide](https://github.com/louislam/uptime-kuma/wiki/Migration-From-v1-To-v2) for more information. diff --git a/pkgs/by-name/ba/balatro/bridge_detour.lua b/pkgs/by-name/ba/balatro/bridge_detour.lua new file mode 100644 index 000000000000..a60126b34a36 --- /dev/null +++ b/pkgs/by-name/ba/balatro/bridge_detour.lua @@ -0,0 +1,229 @@ +--[[ +The game Balatro is implemented in Lua, with the standard LÖVE SDK. However, +each store that it's sold on (Steam, Google Play, Xbox PC, etc.) has its own SDK +to provide features like cloud saving and achievement unlocking. + +To allow the same platform-agnostic Lua codebase to be deployed in all these +contexts, each one has a custom bridge - `love.platform`. This allows the game +to call `writeSaveFile` and trust that it will be handled appropriately for +whatever platform the player has available. Unfortunately, that bridge is not +supplied by LÖVE, and is therefore missing from Nix's `pkgs.love`. + +This file implements the functions that would otherwise utilize that missing +bridge. It was created by finding all of the `love.platform` callsites in the +Balatro codebase, putting them in this file, and asking Gemini to implement a +Linux version. +]] + +love.platform = love.platform or {} +package.loaded["love.platform"] = love.platform + +local FileOperationStatus = { + SUCCESS = 0, + FETCH_ERROR = 1, + CLOUD_SAVE_ERROR = 2, + CONFLICT = 3, + OFFLINE = 4, + LOAD_ERROR = 5, + NOT_FOUND = 6 +} + +function love.platform.init(onInitSuccess, onInitFailure) + love.filesystem.setIdentity("balatro") + + if onInitSuccess then + onInitSuccess(love.system.getOS(), love.platform.getLocalPlayerName()) + end + return true +end + +function love.platform.setOnPlatformStatusChangedCallback(callback) + if callback then + callback(false, "Cloud unavailable.") + end +end + +function love.platform.earlyInit() end +function love.platform.update(dt) end +function love.platform.shutdown() end + + +function love.platform.getPlatformId() + return love.system.getOS() +end + +function love.platform.getLocalPlayerName() + return os.getenv("USER") or os.getenv("LOGNAME") or "Player" +end + +function love.platform.getLocalPlayerAvatar() + return nil +end + +function love.platform.isPremium() + return true +end + +function love.platform.isArcade() + return false +end + +function love.platform.isFirstTimePlaying() + return not love.platform.saveGameExists("1", "profile.jkr") +end + +function love.platform.isOffline() + -- If the game ever uses this for more than showing the offline warning, we + -- should set this back to true + return false +end + +function love.platform.getNotchPosition() + return nil +end + + +-- Different builds use different file APIs; therefore, we implement both the +-- thin wrapper around the framework's filesystem module and the more complex +-- signatures with individual save slots. +love.platform.localGetInfo = love.filesystem.getInfo +love.platform.localRead = love.filesystem.read +love.platform.localWrite = love.filesystem.write +love.platform.localRemove = love.filesystem.remove +love.platform.localCreateDirectory = love.filesystem.createDirectory + + +-- some versions store their settings files in `common/` +function love.filesystem.getInfo(filename, ...) + local info = love.platform.localGetInfo(filename, ...) + + if not info then + info = love.platform.localGetInfo("common/" .. filename, ...) + end + + return info +end + +function love.filesystem.read(filename, ...) + local content, size = love.platform.localRead(filename, ...) + + if not content then + content, size = love.platform.localRead("common/" .. filename, ...) + end + + return content, size +end + + +function love.platform.writeSaveGame(profile, filename, data) + local parent = tostring(profile) + + if not love.platform.localGetInfo(parent) then + love.platform.localCreateDirectory(parent) + end + + return love.platform.localWrite(parent .. "/" .. filename, data) +end + +function love.platform.loadSaveGame(profile, filename) + local parent = tostring(profile) + return love.platform.localRead(parent .. "/" .. filename) +end + +function love.platform.saveGameExists(profile, filename) + local parent = tostring(profile) + return love.platform.localGetInfo(parent .. "/" .. filename) ~= nil +end + +function love.platform.deleteSaveGameFile(profile, filename) + local parent = tostring(profile) + return love.platform.localRemove(parent .. "/" .. filename) +end + +function love.platform.deleteSaveGame(profile) + local parent = tostring(profile) + return love.platform.localRemove(parent) +end + +local load_game_callback +local save_game_callback + +function love.platform.setLoadGameCallback(callback) + load_game_callback = callback +end + +function love.platform.loadGameFile(filename) + local content, size = love.filesystem.read(filename) + + if load_game_callback then + if content then + load_game_callback(filename, FileOperationStatus.SUCCESS, "", content, nil, nil) + else + load_game_callback(filename, FileOperationStatus.NOT_FOUND, "File not found", nil, nil, nil) + end + end +end + + +function love.platform.setOnSaveInitializedCallback(callback) + if callback then + callback() + end +end + +function love.platform.setSaveGameCallback(callback) + save_game_callback = callback +end + +function love.platform.saveGameFile(filename, data) + local success, msg = love.filesystem.write(filename, data) + if save_game_callback then + if success then + save_game_callback(filename, FileOperationStatus.SUCCESS, "", data, nil, nil) + else + save_game_callback(filename, FileOperationStatus.CLOUD_SAVE_ERROR, msg, nil, nil, nil) + end + end +end + + +-- no-ops when there's no cloud saving +function love.platform.runLoadGameCallbacks() end +function love.platform.runSaveGameCallbacks() end +function love.platform.resolveConflict(file, content, conflictId) end + + +function love.platform.unlockAchievement(achievementId) + love.filesystem.append( + "unlock_awards.lua", + string.format("love.platform.unlockAchievement(%q)\n", achievementId) + ) +end + +function love.platform.unlockAward(awardName) + love.filesystem.append( + "unlock_awards.lua", + string.format("love.platform.unlockAward(%q)\n", awardName) + ) +end + + +function love.platform.event(name, ...) end +function love.platform.hideSplashScreen() end +function love.platform.anyButtonPressed() return false end + +--[[ these are checked before they're used by the game, so we don't have to +-- support them +function love.platform.requestReview() end +function love.platform.requestTrackingPermission() end +function love.platform.setProfileButtonActive(active) end +function love.platform.authenticateLocalPlayer() end +]] + +if love.graphics then + if love.graphics.isActive and not love.graphics.checkActive then + love.graphics.checkActive = love.graphics.isActive + end + + love.graphics.beginFrame = love.graphics.beginFrame or function() end +end diff --git a/pkgs/by-name/ba/balatro/package.nix b/pkgs/by-name/ba/balatro/package.nix index 4a06a2a1a5ae..ff6fb1ab4a43 100644 --- a/pkgs/by-name/ba/balatro/package.nix +++ b/pkgs/by-name/ba/balatro/package.nix @@ -10,26 +10,56 @@ makeWrapper, makeDesktopItem, requireFile, + src ? null, withMods ? true, + withBridgePatch ? true, withLinuxPatch ? true, }: stdenv.mkDerivation (finalAttrs: { pname = "balatro"; version = "1.0.1o"; - src = requireFile { - name = "Balatro-${finalAttrs.version}.exe"; - url = "https://store.steampowered.com/app/2379780/Balatro/"; - message = '' - Balatro cannot be automatically downloaded. Please download - it from Steam, locate the Balatro.exe on disk, likely in - ~/.local/share/Steam/steamapps/common/Balatro/, then upload it - to your nix store with nix-store --add-fixed sha256 Balatro.exe. - ''; + src = + if src != null then + src + else + requireFile { + name = "Balatro-${finalAttrs.version}.exe"; + url = "https://store.steampowered.com/app/2379780/Balatro/"; + message = '' + You must own Balatro in order to install it with Nix. The Steam, + Google Play, and Xbox PC versions are supported. - # Use `nix --extra-experimental-features nix-command hash file --sri --type sha256` to get the correct hash - hash = "sha256-DXX+FkrM8zEnNNSzesmHiN0V8Ljk+buLf5DE5Z3pP0c="; - }; + - If you have the Steam version, you can use Balatro.exe. Find it in + + ~/.local/share/Steam/steamapps/common/Balatro/ + + and run + + nix-store --add-fixed sha256 Balatro.exe + + - If you have the Google Play version, you'll need to pull base.apk from + your device: + + adb shell pm path com.playstack.balatro.android + adb pull ( path from above )/base.apk ~/Downloads/com.playstack.balatro.android.apk + + and add it to /nix/store: + + nix-prefetch-url file:///home/deck/Downloads/com.playstack.balatro.android.apk + + - If you have the Xbox PC version, you can do the same with Assets.zip. + + If you've used nix-prefetch-url to add it to your store, you'll need to + pass the resulting path to override: + + balatro.override { + src = /nix/store/g44bp7ymc7qlkfv5f03b55cgs1wdmkzl-com.playstack.balatro.android.apk; + } + ''; + # Use `nix --extra-experimental-features nix-command hash file --sri --type sha256` to get the correct hash + hash = "sha256-DXX+FkrM8zEnNNSzesmHiN0V8Ljk+buLf5DE5Z3pP0c="; + }; srcIcon = fetchurl { name = "balatro.png"; @@ -70,6 +100,16 @@ stdenv.mkDerivation (finalAttrs: { tmpdir=$(mktemp -d) 7z x ${finalAttrs.src} -o$tmpdir -y + ${lib.optionalString withBridgePatch '' + cp ${./bridge_detour.lua} $tmpdir/bridge_detour.lua + + for file in main.lua engine/load_manager.lua engine/save_manager.lua; do + if [ -f "$tmpdir/$file" ]; then + sed -i '1i require("bridge_detour")' "$tmpdir/$file" + fi + done + ''} + ${ let patchMarker = "if love.system.getOS() == 'Nintendo Switch' then"; @@ -87,22 +127,20 @@ stdenv.mkDerivation (finalAttrs: { '' } - patchedExe=$(mktemp -u).zip - 7z a $patchedExe $tmpdir/* + loveFile=game.love + 7z a -tzip $loveFile $tmpdir/* runHook postBuild ''; - # The `cat` bit is a hack suggested by whitelje (https://github.com/ethangreen-dev/lovely-injector/pull/66#issuecomment-2319615509) - # to make it so that lovely will pick up Balatro as the game name. - # The `LD_PRELOAD` bit is used to load lovely and it is the 'official' way of doing it. - # The `LD_LIBRARY_PATH` bit adds `curl` as that is the community standard backend for network-related mods on non-Windows systems installPhase = '' runHook preInstall install -Dm644 $srcIcon $out/share/icons/hicolor/scalable/apps/balatro.png - cat ${lib.getExe love} $patchedExe > $out/share/Balatro + # Packaging the love file into the executable ensures lovely finds the game's name + # https://github.com/ethangreen-dev/lovely-injector/pull/66#issuecomment-2319615509 + cat ${lib.getExe love} $loveFile > $out/share/Balatro chmod +x $out/share/Balatro makeWrapper $out/share/Balatro $out/bin/balatro ${lib.optionalString withMods '' From ca0b604305febfb77c1731f66f7b0a0c0f46022a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 11:53:45 +0000 Subject: [PATCH 099/122] python3Packages.pytest-mockito: 0.0.5 -> 0.0.6 --- pkgs/development/python-modules/pytest-mockito/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pytest-mockito/default.nix b/pkgs/development/python-modules/pytest-mockito/default.nix index 78137669be4b..abb5e1ec9aa9 100644 --- a/pkgs/development/python-modules/pytest-mockito/default.nix +++ b/pkgs/development/python-modules/pytest-mockito/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "pytest-mockito"; - version = "0.0.5"; + version = "0.0.6"; pyproject = true; src = fetchFromGitHub { owner = "kaste"; repo = "pytest-mockito"; rev = version; - hash = "sha256-GX3esFlMtKRCTjvTPS4jrnK/mV9eIENvDXRo5sOqBGc="; + hash = "sha256-iXL9INddGWkBTPoR1fvyeRts8JPKoyeqAmaHRBlXq2k="; }; build-system = [ From 701c0635021ce741e3085f4adf30ce21b19c0d77 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 12:14:05 +0000 Subject: [PATCH 100/122] terraform-providers.cloudflare_cloudflare: 5.16.0 -> 5.17.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 f8ef62eadf8a..a4e9e1610f35 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -200,13 +200,13 @@ "vendorHash": "sha256-1kuzWw7OhzruRT572pTR3zpE9jPGEuKRdwReWxte3/E=" }, "cloudflare_cloudflare": { - "hash": "sha256-N594aLeErFeO7n6M+D1JcC8FlTmTrfaaMa71kFqv0vs=", + "hash": "sha256-RuHAVcDK3KPO4I4FG/DodhNiWe63AexTo9IcyTZ360Q=", "homepage": "https://registry.terraform.io/providers/cloudflare/cloudflare", "owner": "cloudflare", "repo": "terraform-provider-cloudflare", - "rev": "v5.16.0", + "rev": "v5.17.0", "spdx": "Apache-2.0", - "vendorHash": "sha256-mM2Vlh3TZt2hq8XW7tTNTyK/nLAe3SLj8LQw52P4Ye8=" + "vendorHash": "sha256-Z3qSDIkzD4hs2WREuV06q4GC+qwMvfHvsnze/8c7f20=" }, "cloudfoundry-community_cloudfoundry": { "hash": "sha256-1nYncJLVU/f9WD6Quh9IieIXgixPzbPk4zbtI1zmf9g=", From 0a9d784cf3682093e8bc7290084268cd550c2367 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 12:30:34 +0000 Subject: [PATCH 101/122] qpwgraph: 0.9.8 -> 0.9.9 --- pkgs/by-name/qp/qpwgraph/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/qp/qpwgraph/package.nix b/pkgs/by-name/qp/qpwgraph/package.nix index 55d539b652f1..271eef27e796 100644 --- a/pkgs/by-name/qp/qpwgraph/package.nix +++ b/pkgs/by-name/qp/qpwgraph/package.nix @@ -11,14 +11,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "qpwgraph"; - version = "0.9.8"; + version = "0.9.9"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "rncbc"; repo = "qpwgraph"; tag = "v${finalAttrs.version}"; - sha256 = "sha256-fbkRSM4HFH1f/qZgRmEz7q5kvt2YAKWu/FX2GOXHhbQ="; + sha256 = "sha256-lL90qhd0qggLQ98g4FgMHZT6xBChHACmASLvxfYNAAw="; }; nativeBuildInputs = [ From 7b4d0dbcdd42d5a0f5f385ddf62fa56262709b50 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 12:45:22 +0000 Subject: [PATCH 102/122] rgrc: 0.6.7 -> 0.6.9 --- pkgs/by-name/rg/rgrc/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/rg/rgrc/package.nix b/pkgs/by-name/rg/rgrc/package.nix index b7c501c52383..3dbd8ab0061d 100644 --- a/pkgs/by-name/rg/rgrc/package.nix +++ b/pkgs/by-name/rg/rgrc/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rgrc"; - version = "0.6.7"; + version = "0.6.9"; src = fetchFromGitHub { owner = "lazywalker"; repo = "rgrc"; tag = "v${finalAttrs.version}"; - hash = "sha256-UFGC41utbAeKa5RnVcnhwvRVXobXOTrqtA/Khwyke9w="; + hash = "sha256-Sc0JmcnxW9WZ78ayJtSWTZBoVgqnFGUO2dKGi8U05S0="; }; - cargoHash = "sha256-bmMO1qfii31BUZhNnZtiEd+1wuH2sTO0hQ2FVEzYAtE="; + cargoHash = "sha256-wEE08Rqga5Ffz6IgYyQto0gB8bXCZ6Myc3r6uM5XTCs="; nativeBuildInputs = [ installShellFiles ]; From c559a0af69ce28e2ff211dd80373299d89f1ffa5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 13:09:44 +0000 Subject: [PATCH 103/122] python3Packages.wassima: 2.0.4 -> 2.0.5 --- pkgs/development/python-modules/wassima/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/wassima/default.nix b/pkgs/development/python-modules/wassima/default.nix index e5db5328abd6..629297879e9a 100644 --- a/pkgs/development/python-modules/wassima/default.nix +++ b/pkgs/development/python-modules/wassima/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "wassima"; - version = "2.0.4"; + version = "2.0.5"; pyproject = true; src = fetchFromGitHub { owner = "jawah"; repo = "wassima"; tag = version; - hash = "sha256-6tNmJwnOtl+luN1qgu93LXEfBZ0oieEpLa9Q9N6Gsag="; + hash = "sha256-qfsoo+y8lbQomyBRltTsPp/OCPL/f1S0bzW9KwKabuA="; }; build-system = [ hatchling ]; From 7d7ed5879e4c248afeddb4dbb2b75e69291501ba Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 13:49:47 +0000 Subject: [PATCH 104/122] netbird-ui: 0.64.5 -> 0.64.6 --- pkgs/by-name/ne/netbird/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ne/netbird/package.nix b/pkgs/by-name/ne/netbird/package.nix index 904557bf3060..792ffea51433 100644 --- a/pkgs/by-name/ne/netbird/package.nix +++ b/pkgs/by-name/ne/netbird/package.nix @@ -68,16 +68,16 @@ let in buildGoModule (finalAttrs: { pname = "netbird-${componentName}"; - version = "0.64.5"; + version = "0.64.6"; src = fetchFromGitHub { owner = "netbirdio"; repo = "netbird"; tag = "v${finalAttrs.version}"; - hash = "sha256-v35IS3Yt2wo7Xvmnjiew1daw7KcS+y+BZYbiwyJVuL0="; + hash = "sha256-og5azhvqxtjyAZaMaQDIa4jvaPbPDobQZ/xznxHl6lc="; }; - vendorHash = "sha256-n0s2K+qbMiNfbkPbqvvXpvFvL5PkCkuJJ2CH3bEUCOk="; + vendorHash = "sha256-54ohzpyAzyD1YX90W7y7qDzFgqLksIFGUOOrGWImT6I="; nativeBuildInputs = [ installShellFiles ] ++ lib.optional (componentName == "ui") pkg-config; From 4a7d2060b074f3790adbca604682849895673bf6 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:09 +0000 Subject: [PATCH 105/122] _1fps: migrate to finalAttrs --- pkgs/by-name/_1/_1fps/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/_1/_1fps/package.nix b/pkgs/by-name/_1/_1fps/package.nix index bd2dda9dd807..2364310ad447 100644 --- a/pkgs/by-name/_1/_1fps/package.nix +++ b/pkgs/by-name/_1/_1fps/package.nix @@ -7,14 +7,14 @@ libx11, stdenv, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "1fps"; version = "0.1.17"; src = fetchFromGitHub { owner = "1fpsvideo"; repo = "1fps"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-8dtcW/niwmhVXB2kZdR/RjNg2ArSClL1w4nGI5rP3+Y="; }; @@ -35,4 +35,4 @@ buildGoModule rec { maintainers = with lib.maintainers; [ renesat ]; mainProgram = "1fps"; }; -} +}) From 739f7dbcabb3f2785e26232bb9dbb3d4d587d0f2 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:11 +0000 Subject: [PATCH 106/122] adreaper: migrate to finalAttrs --- pkgs/by-name/ad/adreaper/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ad/adreaper/package.nix b/pkgs/by-name/ad/adreaper/package.nix index 02900efa7390..796de3c530e4 100644 --- a/pkgs/by-name/ad/adreaper/package.nix +++ b/pkgs/by-name/ad/adreaper/package.nix @@ -5,14 +5,14 @@ fetchFromGitHub, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "adreaper"; version = "1.1"; src = fetchFromGitHub { owner = "AidenPearce369"; repo = "ADReaper"; - rev = "ADReaperv${version}"; + rev = "ADReaperv${finalAttrs.version}"; sha256 = "sha256-+FCb5TV9MUcRyex2M4rn2RhcIsXQFbtm1T4r7MpcRQs="; }; @@ -25,11 +25,11 @@ buildGoModule rec { meta = { description = "Enumeration tool for Windows Active Directories"; homepage = "https://github.com/AidenPearce369/ADReaper"; - changelog = "https://github.com/AidenPearce369/ADReaper/releases/tag/ADReaperv${version}"; + changelog = "https://github.com/AidenPearce369/ADReaper/releases/tag/ADReaperv${finalAttrs.version}"; # Upstream doesn't have a license yet # https://github.com/AidenPearce369/ADReaper/issues/2 license = with lib.licenses; [ unfree ]; maintainers = with lib.maintainers; [ fab ]; mainProgram = "ADReaper"; }; -} +}) From 296ff42bd4f6a4c4aabb54ea6fcc5ae5cc64b6b6 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:12 +0000 Subject: [PATCH 107/122] ags: migrate to finalAttrs --- pkgs/by-name/ag/ags/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ag/ags/package.nix b/pkgs/by-name/ag/ags/package.nix index 55a8af279831..db7d52b8fdfe 100644 --- a/pkgs/by-name/ag/ags/package.nix +++ b/pkgs/by-name/ag/ags/package.nix @@ -19,14 +19,14 @@ extraPackages ? [ ], }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "ags"; version = "2.3.0"; src = fetchFromGitHub { owner = "Aylur"; repo = "ags"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-GLyNtU9A2VN22jNRHZ2OXuFfTJLh8uEVVt+ftsKUX0c="; }; @@ -62,7 +62,7 @@ buildGoModule rec { depsOf = pkg: [ (pkg.dev or pkg) ] ++ (map depsOf (pkg.propagatedBuildInputs or [ ])); girDirs = symlinkJoin { name = "gir-dirs"; - paths = lib.flatten (map depsOf buildInputs); + paths = lib.flatten (map depsOf finalAttrs.buildInputs); }; in '' @@ -102,7 +102,7 @@ buildGoModule rec { meta = { description = "Scaffolding CLI for Astal widget system"; homepage = "https://github.com/Aylur/ags"; - changelog = "https://github.com/Aylur/ags/releases/tag/v${version}"; + changelog = "https://github.com/Aylur/ags/releases/tag/v${finalAttrs.version}"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ PerchunPak @@ -111,4 +111,4 @@ buildGoModule rec { mainProgram = "ags"; platforms = lib.platforms.linux; }; -} +}) From 4693f96b83e9d17191290a29eef180d2ac0a8c5b Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:13 +0000 Subject: [PATCH 108/122] alertmanager-webhook-logger: migrate to finalAttrs --- pkgs/by-name/al/alertmanager-webhook-logger/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/al/alertmanager-webhook-logger/package.nix b/pkgs/by-name/al/alertmanager-webhook-logger/package.nix index afe5ce08943b..dfb723b8d8e2 100644 --- a/pkgs/by-name/al/alertmanager-webhook-logger/package.nix +++ b/pkgs/by-name/al/alertmanager-webhook-logger/package.nix @@ -5,13 +5,13 @@ nixosTests, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "alertmanager-webhook-logger"; version = "1.0"; - rev = "${version}"; + rev = "${finalAttrs.version}"; src = fetchFromGitHub { - inherit rev; + inherit (finalAttrs) rev; owner = "tomtom-international"; repo = "alertmanager-webhook-logger"; hash = "sha256-mJbpDiTwUsFm0lDKz8UE/YF6sBvcSSR6WWLrfKvtri4="; @@ -30,4 +30,4 @@ buildGoModule rec { license = lib.licenses.asl20; maintainers = with lib.maintainers; [ jpds ]; }; -} +}) From fac00b92517f7cefab776e52ce78cacdddf1e81b Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:13 +0000 Subject: [PATCH 109/122] algia: migrate to finalAttrs --- pkgs/by-name/al/algia/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/al/algia/package.nix b/pkgs/by-name/al/algia/package.nix index 82e909dacdfa..2e8dae0d4d91 100644 --- a/pkgs/by-name/al/algia/package.nix +++ b/pkgs/by-name/al/algia/package.nix @@ -5,14 +5,14 @@ fetchFromGitHub, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "algia"; version = "0.0.102"; src = fetchFromGitHub { owner = "mattn"; repo = "algia"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-vpZL4UNDtcJRsBA0th6/YccE/3GG7kzHrgJ3RWpgSk8="; }; @@ -25,4 +25,4 @@ buildGoModule rec { maintainers = with lib.maintainers; [ haruki7049 ]; mainProgram = "algia"; }; -} +}) From fff81a529d0d0b6597c489e127e1f8d25c225de1 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:13 +0000 Subject: [PATCH 110/122] alice-lg: migrate to finalAttrs --- pkgs/by-name/al/alice-lg/package.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/al/alice-lg/package.nix b/pkgs/by-name/al/alice-lg/package.nix index 18f94a435d8e..cd9cee4c946e 100644 --- a/pkgs/by-name/al/alice-lg/package.nix +++ b/pkgs/by-name/al/alice-lg/package.nix @@ -11,14 +11,14 @@ fixup-yarn-lock, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "alice-lg"; version = "6.2.0"; src = fetchFromGitHub { owner = "alice-lg"; repo = "alice-lg"; - tag = version; + tag = finalAttrs.version; hash = "sha256-DlmUurpu/bs/91fLsSQ3xJ8I8NWJweynMgV6Svkf0Uo="; }; @@ -26,11 +26,11 @@ buildGoModule rec { passthru.ui = stdenv.mkDerivation { pname = "alice-lg-ui"; - src = "${src}/ui"; - inherit version; + src = "${finalAttrs.src}/ui"; + inherit (finalAttrs) version; yarnOfflineCache = fetchYarnDeps { - yarnLock = src + "/ui/yarn.lock"; + yarnLock = finalAttrs.src + "/ui/yarn.lock"; hash = "sha256-PwByNIegKYTOT8Yg3nDMDFZiLRVkbX07z99YaDiBsIY="; }; @@ -75,7 +75,7 @@ buildGoModule rec { }; preBuild = '' - cp -R ${passthru.ui}/ ui/build/ + cp -R ${finalAttrs.passthru.ui}/ ui/build/ ''; subPackages = [ "cmd/alice-lg" ]; @@ -94,4 +94,4 @@ buildGoModule rec { maintainers = with lib.maintainers; [ stv0g ]; mainProgram = "alice-lg"; }; -} +}) From 1e7fc0d8b1b7e83e8c55aef320650e26f3c957dd Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:14 +0000 Subject: [PATCH 111/122] alp: migrate to finalAttrs --- pkgs/by-name/al/alp/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/al/alp/package.nix b/pkgs/by-name/al/alp/package.nix index ecf122ef7e00..12d9abb43802 100644 --- a/pkgs/by-name/al/alp/package.nix +++ b/pkgs/by-name/al/alp/package.nix @@ -6,19 +6,19 @@ alp, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "alp"; version = "1.1.18"; src = fetchFromGitHub { owner = "gernotfeichter"; repo = "alp"; - tag = version; + tag = finalAttrs.version; hash = "sha256-tE8qKNXLKvFcnDULVkJJ/EJyEsvATCk/3YFkZCmpHSo="; }; vendorHash = "sha256-AHPVhtm6La7HWuxJfpxTsS5wFTUZUJoVyebLGYhNKTg="; - sourceRoot = "${src.name}/linux"; + sourceRoot = "${finalAttrs.src.name}/linux"; # Executing Go commands directly in checkPhase and buildPhase below, # because the default testsuite runs all go tests, some of which require docker. @@ -40,9 +40,9 @@ buildGoModule rec { ''; passthru.tests = { - test-version = runCommand "${pname}-test" { } '' + test-version = runCommand "alp-test" { } '' ${alp}/bin/alp version > $out - cat $out | grep '${version}' + cat $out | grep '${finalAttrs.version}' ''; }; @@ -53,4 +53,4 @@ buildGoModule rec { mainProgram = "alp"; maintainers = with lib.maintainers; [ gernotfeichter ]; }; -} +}) From 81775a40470e9c7caa3b93d504b803a8db6a613a Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:15 +0000 Subject: [PATCH 112/122] amazon-cloudwatch-agent: migrate to finalAttrs --- pkgs/by-name/am/amazon-cloudwatch-agent/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix b/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix index 0c04c40e397e..ec7bfdb2e59d 100644 --- a/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix +++ b/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix @@ -9,14 +9,14 @@ versionCheckHook, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "amazon-cloudwatch-agent"; version = "1.300064.0"; src = fetchFromGitHub { owner = "aws"; repo = "amazon-cloudwatch-agent"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-998kXLAwhSepDOrKGXRrOfrw9SU8tfxtYmPQNUQWhlI="; }; @@ -36,7 +36,7 @@ buildGoModule rec { # # Needed for "amazon-cloudwatch-agent -version" to not show "Unknown". postInstall = '' - echo v${version} > $out/bin/CWAGENT_VERSION + echo v${finalAttrs.version} > $out/bin/CWAGENT_VERSION ''; doInstallCheck = true; @@ -62,4 +62,4 @@ buildGoModule rec { mainProgram = "amazon-cloudwatch-agent"; maintainers = with lib.maintainers; [ pmw ]; }; -} +}) From 075c941eef9de83d45446a8edf959e532a210872 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:16 +0000 Subject: [PATCH 113/122] apache-answer: migrate to finalAttrs --- pkgs/by-name/ap/apache-answer/package.nix | 25 +++++++++++------------ 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/ap/apache-answer/package.nix b/pkgs/by-name/ap/apache-answer/package.nix index 5bfc98304ab7..079f8b4857b3 100644 --- a/pkgs/by-name/ap/apache-answer/package.nix +++ b/pkgs/by-name/ap/apache-answer/package.nix @@ -6,30 +6,29 @@ pnpmConfigHook, pnpm, nodejs, - fetchpatch, stdenv, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "apache-answer"; version = "1.7.1"; src = fetchFromGitHub { owner = "apache"; repo = "answer"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-QTm/6srSn4oF78795ADpW10bZmyEmqTNezB6JSkS2I4="; }; webui = stdenv.mkDerivation { - pname = pname + "-webui"; - inherit version src; + pname = "apache-answer" + "-webui"; + inherit (finalAttrs) version src; - sourceRoot = "${src.name}/ui"; + sourceRoot = "${finalAttrs.src.name}/ui"; pnpmDeps = fetchPnpmDeps { - inherit src version pname; - sourceRoot = "${src.name}/ui"; + inherit (finalAttrs) src version pname; + sourceRoot = "${finalAttrs.src.name}/ui"; fetcherVersion = 1; hash = "sha256-6IeLOwsEqchCwe0GGj/4v9Q4/Hm16K+ve2X+8QHztQM="; }; @@ -63,12 +62,12 @@ buildGoModule rec { doCheck = false; # TODO checks are currently broken upstream ldflags = [ - "-X main.Version=${version}" - "-X main.Commit=${version}" + "-X main.Version=${finalAttrs.version}" + "-X main.Commit=${finalAttrs.version}" ]; preBuild = '' - cp -r ${webui}/* ui/build/ + cp -r ${finalAttrs.webui}/* ui/build/ ''; meta = { @@ -79,7 +78,7 @@ buildGoModule rec { ]; platforms = lib.platforms.unix; mainProgram = "answer"; - changelog = "https://github.com/apache/answer/releases/tag/v${version}"; + changelog = "https://github.com/apache/answer/releases/tag/v${finalAttrs.version}"; description = "Q&A platform software for teams at any scales"; }; -} +}) From aa0f706f63fae23bdcac3e244ea6a96785279b21 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:16 +0000 Subject: [PATCH 114/122] apx: migrate to finalAttrs --- pkgs/by-name/ap/apx/package.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/ap/apx/package.nix b/pkgs/by-name/ap/apx/package.nix index 1c0d2a083888..96fd4b3a557b 100644 --- a/pkgs/by-name/ap/apx/package.nix +++ b/pkgs/by-name/ap/apx/package.nix @@ -12,7 +12,7 @@ writeShellScript, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "apx"; version = "2.4.5"; versionConfig = "1.0.0"; @@ -20,7 +20,7 @@ buildGoModule rec { src = fetchFromGitHub { owner = "Vanilla-OS"; repo = "apx"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-0Rfj7hrH26R9GHOPPVdCaeb1bfAw9KnPpJYXyiei90U="; }; @@ -28,7 +28,7 @@ buildGoModule rec { configsSrc = fetchFromGitHub { owner = "Vanilla-OS"; repo = "vanilla-apx-configs"; - tag = "v${versionConfig}"; + tag = "v${finalAttrs.versionConfig}"; hash = "sha256-cCXmHkRjcWcpMtgPVtQF5Q76jr1Qt2RHSLtWLQdq+aE="; }; @@ -47,7 +47,7 @@ buildGoModule rec { ldflags = [ "-s" "-w" - "-X 'main.Version=v${version}'" + "-X 'main.Version=v${finalAttrs.version}'" ]; postPatch = '' @@ -64,8 +64,8 @@ buildGoModule rec { # Install official Vanilla configs (same as install script) install -d $out/share/apx - cp -r ${configsSrc}/stacks $out/share/apx/ - cp -r ${configsSrc}/package-managers $out/share/apx/ + cp -r ${finalAttrs.configsSrc}/stacks $out/share/apx/ + cp -r ${finalAttrs.configsSrc}/package-managers $out/share/apx/ # Man pages, documentation, license installManPage man/man1/* @@ -113,7 +113,7 @@ buildGoModule rec { environment.systemPackages = with pkgs; [ apx ]; ''; homepage = "https://github.com/Vanilla-OS/apx"; - changelog = "https://github.com/Vanilla-OS/apx/releases/tag/v${version}"; + changelog = "https://github.com/Vanilla-OS/apx/releases/tag/v${finalAttrs.version}"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ dit7ya @@ -122,4 +122,4 @@ buildGoModule rec { ]; mainProgram = "apx"; }; -} +}) From 69e585c6778cdaa2c5ae4687632d3c833064b281 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:17 +0000 Subject: [PATCH 115/122] argocd-autopilot: migrate to finalAttrs --- pkgs/by-name/ar/argocd-autopilot/package.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/ar/argocd-autopilot/package.nix b/pkgs/by-name/ar/argocd-autopilot/package.nix index 586b05e119db..ce557583d388 100644 --- a/pkgs/by-name/ar/argocd-autopilot/package.nix +++ b/pkgs/by-name/ar/argocd-autopilot/package.nix @@ -4,14 +4,14 @@ fetchFromGitHub, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "argocd-autopilot"; version = "0.4.20"; src = fetchFromGitHub { owner = "argoproj-labs"; repo = "argocd-autopilot"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; sha256 = "sha256-JLh41ZWiDcDrUtd8d+Ak5TFca4L6VHzUguS55P9lmj0="; }; @@ -26,19 +26,19 @@ buildGoModule rec { [ "-s" "-w" - "-X ${package_url}.binaryName=${pname}" - "-X ${package_url}.version=${src.rev}" + "-X ${package_url}.binaryName=argocd-autopilot" + "-X ${package_url}.version=${finalAttrs.src.rev}" "-X ${package_url}.buildDate=unknown" - "-X ${package_url}.gitCommit=${src.rev}" - "-X ${package_url}.installationManifestsURL=github.com/argoproj-labs/argocd-autopilot/manifests/base?ref=${src.rev}" - "-X ${package_url}.installationManifestsNamespacedURL=github.com/argoproj-labs/argocd-autopilot/manifests/insecure?ref=${src.rev}" + "-X ${package_url}.gitCommit=${finalAttrs.src.rev}" + "-X ${package_url}.installationManifestsURL=github.com/argoproj-labs/argocd-autopilot/manifests/base?ref=${finalAttrs.src.rev}" + "-X ${package_url}.installationManifestsNamespacedURL=github.com/argoproj-labs/argocd-autopilot/manifests/insecure?ref=${finalAttrs.src.rev}" ]; subPackages = [ "cmd" ]; doInstallCheck = true; installCheckPhase = '' - $out/bin/argocd-autopilot version | grep ${src.rev} > /dev/null + $out/bin/argocd-autopilot version | grep ${finalAttrs.src.rev} > /dev/null ''; installPhase = '' @@ -60,4 +60,4 @@ buildGoModule rec { sagikazarmark ]; }; -} +}) From b9192e868e5ea6df925abcf52c6a86d37696ea5c Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Thu, 12 Feb 2026 08:27:08 -0600 Subject: [PATCH 116/122] argocd: migrate to finalAttrs, switch to hash --- pkgs/by-name/ar/argocd/package.nix | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/ar/argocd/package.nix b/pkgs/by-name/ar/argocd/package.nix index bd4a5d5608fc..da86620b8d7b 100644 --- a/pkgs/by-name/ar/argocd/package.nix +++ b/pkgs/by-name/ar/argocd/package.nix @@ -11,25 +11,25 @@ nodejs, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "argocd"; version = "3.3.0"; src = fetchFromGitHub { owner = "argoproj"; repo = "argo-cd"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-FvN4JCG/5SxpnmdEH9X1sMX5dNlp/x0ALNysv+LWroU="; }; ui = stdenv.mkDerivation { - pname = "${pname}-ui"; - inherit version; - src = src + "/ui"; + pname = "argocd-ui"; + inherit (finalAttrs) version; + src = finalAttrs.src + "/ui"; offlineCache = fetchYarnDeps { - yarnLock = "${src}/ui/yarn.lock"; - hash = "sha256-kqBolkQiwZUBic0f+Ek5HwYsOmro1+FStkDLXAre79o="; + yarnLock = "${finalAttrs.src}/ui/yarn.lock"; + hash = "sha256-ekhSPWzIgFhwSw0bIlBqu8LTYk3vuJ9VM8eHc3mnHGM="; }; nativeBuildInputs = [ @@ -58,17 +58,17 @@ buildGoModule rec { [ "-s" "-w" - "-X ${packageUrl}.version=${version}" + "-X ${packageUrl}.version=${finalAttrs.version}" "-X ${packageUrl}.buildDate=unknown" - "-X ${packageUrl}.gitCommit=${src.rev}" - "-X ${packageUrl}.gitTag=${src.rev}" + "-X ${packageUrl}.gitCommit=${finalAttrs.src.rev}" + "-X ${packageUrl}.gitTag=${finalAttrs.src.rev}" "-X ${packageUrl}.gitTreeState=clean" ]; nativeBuildInputs = [ installShellFiles ]; preBuild = '' - cp -r ${ui}/dist ./ui + cp -r ${finalAttrs.ui}/dist ./ui stat ./ui/dist/app/index.html # Sanity check ''; @@ -88,7 +88,7 @@ buildGoModule rec { doInstallCheck = true; installCheckPhase = '' - $out/bin/argocd version --client | grep ${src.rev} > /dev/null + $out/bin/argocd version --client | grep ${finalAttrs.src.rev} > /dev/null ''; postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' @@ -112,4 +112,4 @@ buildGoModule rec { FKouhai ]; }; -} +}) From e5cafe3f8fd1f7a9e14f9b725bb24a604c403831 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 27 Jan 2026 19:19:19 +0000 Subject: [PATCH 117/122] autobrr: migrate to finalAttrs --- pkgs/by-name/au/autobrr/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/au/autobrr/package.nix b/pkgs/by-name/au/autobrr/package.nix index c0138460bccb..c91eafa9d865 100644 --- a/pkgs/by-name/au/autobrr/package.nix +++ b/pkgs/by-name/au/autobrr/package.nix @@ -57,7 +57,7 @@ let ''; }; in -buildGoModule rec { +buildGoModule (finalAttrs: { inherit autobrr-web pname @@ -72,7 +72,7 @@ buildGoModule rec { ''; ldflags = [ - "-X main.version=${version}" + "-X main.version=${finalAttrs.version}" "-X main.commit=${src.tag}" ]; @@ -97,9 +97,9 @@ buildGoModule rec { description = "Modern, easy to use download automation for torrents and usenet"; license = lib.licenses.gpl2Plus; homepage = "https://autobrr.com/"; - changelog = "https://autobrr.com/release-notes/v${version}"; + changelog = "https://autobrr.com/release-notes/v${finalAttrs.version}"; maintainers = with lib.maintainers; [ av-gal ]; mainProgram = "autobrr"; platforms = with lib.platforms; darwin ++ freebsd ++ linux; }; -} +}) From 80e48825aea5abb8f83659ed58214d6311a7d333 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 12 Feb 2026 14:29:36 +0000 Subject: [PATCH 118/122] balatro: fix '$src/[Aa]ssets' un-nestling Looks like this block was dropped while I was rebasing changes on the PR. --- pkgs/by-name/ba/balatro/package.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/by-name/ba/balatro/package.nix b/pkgs/by-name/ba/balatro/package.nix index ff6fb1ab4a43..5e06b59caec2 100644 --- a/pkgs/by-name/ba/balatro/package.nix +++ b/pkgs/by-name/ba/balatro/package.nix @@ -100,6 +100,14 @@ stdenv.mkDerivation (finalAttrs: { tmpdir=$(mktemp -d) 7z x ${finalAttrs.src} -o$tmpdir -y + if [ -d "$tmpdir/assets" ]; then + mv "$tmpdir/assets/"* "$tmpdir/" + rmdir "$tmpdir/assets" + elif [ -d "$tmpdir/Assets" ]; then + mv "$tmpdir/Assets/"* "$tmpdir/" + rmdir "$tmpdir/Assets" + fi + ${lib.optionalString withBridgePatch '' cp ${./bridge_detour.lua} $tmpdir/bridge_detour.lua From a68ec33d453d7be962f74f5470d56ce9805b3688 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 14:36:04 +0000 Subject: [PATCH 119/122] copilot-language-server: 1.421.0 -> 1.429.0 --- pkgs/by-name/co/copilot-language-server/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/copilot-language-server/package.nix b/pkgs/by-name/co/copilot-language-server/package.nix index 2170abd80a3c..457c99d4cf6a 100644 --- a/pkgs/by-name/co/copilot-language-server/package.nix +++ b/pkgs/by-name/co/copilot-language-server/package.nix @@ -10,11 +10,11 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "copilot-language-server"; - version = "1.421.0"; + version = "1.429.0"; src = fetchzip { url = "https://github.com/github/copilot-language-server-release/releases/download/${finalAttrs.version}/copilot-language-server-js-${finalAttrs.version}.zip"; - hash = "sha256-W9uEfP/2wEBm/KcsH0iNVzFT8rGj34xkNKtAglsQbMg="; + hash = "sha256-msqySCQxAySQTEAToUF/JV+IH4B/NKxymCouofEt9Ic="; stripRoot = false; }; From 10910c4c03365ae3b813615f415dcb8c737fbecb Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 12 Feb 2026 14:36:17 +0000 Subject: [PATCH 120/122] balatro: fix missing quote Another rebase issue. --- pkgs/by-name/ba/balatro/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ba/balatro/package.nix b/pkgs/by-name/ba/balatro/package.nix index 5e06b59caec2..0b7e85ad56e7 100644 --- a/pkgs/by-name/ba/balatro/package.nix +++ b/pkgs/by-name/ba/balatro/package.nix @@ -153,7 +153,8 @@ stdenv.mkDerivation (finalAttrs: { makeWrapper $out/share/Balatro $out/bin/balatro ${lib.optionalString withMods '' --prefix LD_PRELOAD : '${lovely-injector}/lib/liblovely.so' \ - --prefix LD_LIBRARY_PATH : '${lib.makeLibraryPath [ curl ]}''} + --prefix LD_LIBRARY_PATH : '${lib.makeLibraryPath [ curl ]}' + ''} runHook postInstall ''; From 8f5be973bd640e55e413a7b6fab02211cdf6a08c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 12 Feb 2026 14:06:17 +0000 Subject: [PATCH 121/122] git-toolbelt: 1.9.4 -> 1.10.0 --- pkgs/by-name/gi/git-toolbelt/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/gi/git-toolbelt/package.nix b/pkgs/by-name/gi/git-toolbelt/package.nix index fd1c135aa9c7..1fc88f93f85d 100644 --- a/pkgs/by-name/gi/git-toolbelt/package.nix +++ b/pkgs/by-name/gi/git-toolbelt/package.nix @@ -9,13 +9,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "git-toolbelt"; - version = "1.9.4"; + version = "1.10.0"; src = fetchFromGitHub { owner = "nvie"; repo = "git-toolbelt"; - rev = "v${finalAttrs.version}"; - hash = "sha256-6ubxMGDi5ocSh8q8rDujxpViT1OmVi7JzH+R6V/88UQ="; + tag = "v${finalAttrs.version}"; + hash = "sha256-2jpgwB2DEoRtV+WGe81X1rnC7T4+FmJovOFx+4lifQw="; }; nativeBuildInputs = [ makeWrapper ]; @@ -31,8 +31,8 @@ stdenvNoCC.mkDerivation (finalAttrs: { install -Dm755 git-* -t "$out"/bin for exe in "$out"/bin/*; do - wrapProgram "$exe" \ - --prefix PATH : "$out"/bin:${lib.makeBinPath finalAttrs.buildInputs} + wrapProgram "$exe" \ + --prefix PATH : "$out"/bin:${lib.makeBinPath finalAttrs.buildInputs} done runHook postInstall From d15b429f61b7772130838729cc59b186337736ab Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 12 Feb 2026 19:33:29 +0300 Subject: [PATCH 122/122] applyPatches: fix operator precedence --- pkgs/build-support/trivial-builders/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index 0bd379b5de31..c1cb2ece8f4c 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1080,7 +1080,7 @@ rec { # Carry (and merge) information from the underlying `src` if present. # If there is not src.meta, this meta block will be blank regardless. - meta = lib.optionalAttrs (finalAttrs.src ? meta) removeAttrs finalAttrs.src.meta [ "position" ]; + meta = lib.optionalAttrs (finalAttrs.src ? meta) (removeAttrs finalAttrs.src.meta [ "position" ]); }; };