From 5fee04e7ac929e99e55757f4019c097ca871863f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 30 Sep 2025 07:42:37 +0000 Subject: [PATCH 01/78] mdk-sdk: 0.34.0 -> 0.35.0 --- pkgs/by-name/md/mdk-sdk/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/md/mdk-sdk/package.nix b/pkgs/by-name/md/mdk-sdk/package.nix index e5977fc5cda4..2530a5a7f7ca 100644 --- a/pkgs/by-name/md/mdk-sdk/package.nix +++ b/pkgs/by-name/md/mdk-sdk/package.nix @@ -33,11 +33,11 @@ let in stdenv.mkDerivation rec { pname = "mdk-sdk"; - version = "0.34.0"; + version = "0.35.0"; src = fetchurl { url = "https://github.com/wang-bin/mdk-sdk/releases/download/v${version}/mdk-sdk-linux.tar.xz"; - hash = "sha256-qt17xZKuZIWmD8ck1IrHXa5i5tKElTYmbGQvqJTtTsY="; + hash = "sha256-PKECwms/JGJYsYIvUWU0UBSLwlsYikYw3IGleWXlbtg="; }; nativeBuildInputs = [ autoPatchelfHook ]; From 73b6aa1940d884e2f6e6ccbc9ca06e923b30becc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 30 Sep 2025 08:54:43 +0000 Subject: [PATCH 02/78] way-displays: 1.14.1 -> 1.15.0 --- pkgs/by-name/wa/way-displays/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/wa/way-displays/package.nix b/pkgs/by-name/wa/way-displays/package.nix index c22df9c1a546..74570b6959e4 100644 --- a/pkgs/by-name/wa/way-displays/package.nix +++ b/pkgs/by-name/wa/way-displays/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "way-displays"; - version = "1.14.1"; + version = "1.15.0"; src = fetchFromGitHub { owner = "alex-courtis"; repo = "way-displays"; rev = version; - sha256 = "sha256-IW9LolTZaPn2W8IZ166RebQRIug0CyFz/Prgr34wNwM="; + sha256 = "sha256-M1d6o4mODnFNInSt0GL1aCUcRU9VBVhHFQuwTrw6zY4="; }; strictDeps = true; From f6a4509bfb4785a844b98f043f738dc553c33d37 Mon Sep 17 00:00:00 2001 From: sweenu Date: Mon, 22 Sep 2025 11:17:10 +0200 Subject: [PATCH 03/78] nixos/n8n: use env vars instead of config file --- nixos/modules/services/misc/n8n.nix | 98 ++++++++++++++++++----------- nixos/tests/n8n.nix | 4 +- 2 files changed, 65 insertions(+), 37 deletions(-) diff --git a/nixos/modules/services/misc/n8n.nix b/nixos/modules/services/misc/n8n.nix index f3e9f698e35f..60c4e1cfd3f7 100644 --- a/nixos/modules/services/misc/n8n.nix +++ b/nixos/modules/services/misc/n8n.nix @@ -6,10 +6,17 @@ }: let cfg = config.services.n8n; - format = pkgs.formats.json { }; - configFile = format.generate "n8n.json" cfg.settings; in { + imports = [ + (lib.mkRemovedOptionModule [ "services" "n8n" "settings" ] "Use services.n8n.environment instead.") + (lib.mkRemovedOptionModule [ + "services" + "n8n" + "webhookUrl" + ] "Use services.n8n.environment.WEBHOOK_URL instead.") + ]; + options.services.n8n = { enable = lib.mkEnableOption "n8n server"; @@ -19,47 +26,66 @@ in description = "Open ports in the firewall for the n8n web interface."; }; - settings = lib.mkOption { - type = format.type; + environment = lib.mkOption { + description = '' + Environment variables to pass to the n8n service. + See for available options. + ''; + type = lib.types.submodule { + freeformType = with lib.types; attrsOf str; + options = { + GENERIC_TIMEZONE = lib.mkOption { + type = with lib.types; nullOr str; + default = config.time.timeZone; + defaultText = lib.literalExpression "config.time.timeZone"; + description = '' + The n8n instance timezone. Important for schedule nodes (such as Cron). + ''; + }; + N8N_PORT = lib.mkOption { + type = with lib.types; coercedTo port toString str; + default = 5678; + description = "The HTTP port n8n runs on."; + }; + N8N_USER_FOLDER = lib.mkOption { + type = lib.types.path; + # This folder must be writeable as the application is storing + # its data in it, so the StateDirectory is a good choice + default = "/var/lib/n8n"; + description = '' + Provide the path where n8n will create the .n8n folder. + This directory stores user-specific data, such as database file and encryption key. + ''; + readOnly = true; + }; + N8N_DIAGNOSTICS_ENABLED = lib.mkOption { + type = with lib.types; coercedTo bool toString str; + default = false; + description = '' + Whether to share selected, anonymous telemetry with n8n. + Note that if you set this to false, you can't enable Ask AI in the Code node. + ''; + }; + N8N_VERSION_NOTIFICATIONS_ENABLED = lib.mkOption { + type = with lib.types; coercedTo bool toString str; + default = false; + description = '' + When enabled, n8n sends notifications of new versions and security updates. + ''; + }; + }; + }; default = { }; - description = '' - Configuration for n8n, see - for supported values. - ''; }; - - webhookUrl = lib.mkOption { - type = lib.types.str; - default = ""; - description = '' - WEBHOOK_URL for n8n, in case we're running behind a reverse proxy. - This cannot be set through configuration and must reside in an environment variable. - ''; - }; - }; config = lib.mkIf cfg.enable { - services.n8n.settings = { - # We use this to open the firewall, so we need to know about the default at eval time - port = lib.mkDefault 5678; - }; - systemd.services.n8n = { - description = "N8N service"; + description = "n8n service"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - environment = { - # This folder must be writeable as the application is storing - # its data in it, so the StateDirectory is a good choice - N8N_USER_FOLDER = "/var/lib/n8n"; - HOME = "/var/lib/n8n"; - N8N_CONFIG_FILES = "${configFile}"; - WEBHOOK_URL = "${cfg.webhookUrl}"; - - # Don't phone home - N8N_DIAGNOSTICS_ENABLED = "false"; - N8N_VERSION_NOTIFICATIONS_ENABLED = "false"; + environment = cfg.environment // { + HOME = config.services.n8n.environment.N8N_USER_FOLDER; }; serviceConfig = { Type = "simple"; @@ -88,7 +114,7 @@ in }; networking.firewall = lib.mkIf cfg.openFirewall { - allowedTCPPorts = [ cfg.settings.port ]; + allowedTCPPorts = [ (lib.toInt cfg.environment.N8N_PORT) ]; }; }; } diff --git a/nixos/tests/n8n.nix b/nixos/tests/n8n.nix index 56ffabaca1ed..673e322f786b 100644 --- a/nixos/tests/n8n.nix +++ b/nixos/tests/n8n.nix @@ -23,7 +23,7 @@ in services.n8n = { enable = true; - webhookUrl = webhookUrl; + environment.WEBHOOK_URL = webhookUrl; }; }; @@ -32,5 +32,7 @@ in machine.wait_for_console_text("Editor is now accessible via") machine.succeed("curl --fail -vvv http://localhost:${toString port}/") machine.succeed("grep -qF ${webhookUrl} /etc/systemd/system/n8n.service") + machine.succeed("grep -qF 'HOME=/var/lib/n8n' /etc/systemd/system/n8n.service") + machine.fail("grep -qF 'GENERIC_TIMEZONE=' /etc/systemd/system/n8n.service") ''; } From 52e4b103d122382153513284ae3656aa52cef058 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 8 Oct 2025 14:45:50 +0000 Subject: [PATCH 04/78] chart-testing: 3.13.0 -> 3.14.0 --- pkgs/by-name/ch/chart-testing/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ch/chart-testing/package.nix b/pkgs/by-name/ch/chart-testing/package.nix index 976e0c9c48fa..de3c2d68332a 100644 --- a/pkgs/by-name/ch/chart-testing/package.nix +++ b/pkgs/by-name/ch/chart-testing/package.nix @@ -14,16 +14,16 @@ buildGoModule rec { pname = "chart-testing"; - version = "3.13.0"; + version = "3.14.0"; src = fetchFromGitHub { owner = "helm"; repo = "chart-testing"; rev = "v${version}"; - hash = "sha256-59a86yR/TDAWGCsj3pbDjXJGMvyHYnjsnxzjWr61PuU="; + hash = "sha256-wdUUo19bFf3ov+Rd+JV6CtbH9TWGC73lWRrNLOfNGR8="; }; - vendorHash = "sha256-aVXISRthJxxvtrfC0DpewLHCiJPh4tO+SKl3Q9uP14k="; + vendorHash = "sha256-29rGyStJsnhJiO01DIFf/ROaYsXGg3YRJatdzC6A7JU="; postPatch = '' substituteInPlace pkg/config/config.go \ From f3532534239cefd4d932a959b3465479bc473666 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Oct 2025 16:49:46 +0000 Subject: [PATCH 05/78] yatto: 0.18.1 -> 0.20.1 --- pkgs/by-name/ya/yatto/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ya/yatto/package.nix b/pkgs/by-name/ya/yatto/package.nix index 4ce3cba28c97..496e8aa4df98 100644 --- a/pkgs/by-name/ya/yatto/package.nix +++ b/pkgs/by-name/ya/yatto/package.nix @@ -5,16 +5,16 @@ }: buildGoModule (finalAttrs: { pname = "yatto"; - version = "0.18.1"; + version = "0.20.1"; src = fetchFromGitHub { owner = "handlebargh"; repo = "yatto"; tag = "v${finalAttrs.version}"; - hash = "sha256-GI/Q9lI6SqIOSYi5shMKlgegS8WdlWSFsPs7WLCB6Qg="; + hash = "sha256-ZIGtRPy2DfMzCK0WHJcv75d2oeHd2Sh3twrV6G/m5SI="; }; - vendorHash = "sha256-BqOuZUtyA7a8imzj3Oj1SUZ4k3kNjDYWiPlQRG9I0m8="; + vendorHash = "sha256-e+xv1mr8F3ODSsk67shJ+vI3isWcN3vaaqElUoDnvs0="; ldflags = [ "-s" From 3bf68389cd4bbacfed8185b8d5d0a489e6ffa447 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 10 Oct 2025 16:22:37 +0000 Subject: [PATCH 06/78] irpf: 2025-1.6 -> 2025-1.7 --- pkgs/by-name/ir/irpf/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ir/irpf/package.nix b/pkgs/by-name/ir/irpf/package.nix index cbeab7c8d75a..b732787210f1 100644 --- a/pkgs/by-name/ir/irpf/package.nix +++ b/pkgs/by-name/ir/irpf/package.nix @@ -13,7 +13,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "irpf"; - version = "2025-1.6"; + version = "2025-1.7"; # https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/download/pgd/dirpf # Para outros sistemas operacionais -> Multi @@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { in fetchzip { url = "https://downloadirpf.receita.fazenda.gov.br/irpf/${year}/irpf/arquivos/IRPF${finalAttrs.version}.zip"; - hash = "sha256-U2HweRi6acrmMT+9B1263mhGIn/84Z6JeqKP6XvTeXE="; + hash = "sha256-VLB/Ni+sZ0Xugh3v7vb4rqTlAZz3eHU33lbljCX3Yic="; }; passthru.updateScript = writeScript "update-irpf" '' From 192545a4d0719a90421303d7ae70f2e7631ebf3c Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Fri, 10 Oct 2025 21:12:17 -0400 Subject: [PATCH 07/78] pkgsStatic.openssh: fix build Fixes #445548 --- pkgs/tools/networking/openssh/common.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/networking/openssh/common.nix b/pkgs/tools/networking/openssh/common.nix index 5b672b6d6b7a..f78882293b7b 100644 --- a/pkgs/tools/networking/openssh/common.nix +++ b/pkgs/tools/networking/openssh/common.nix @@ -18,6 +18,7 @@ fetchurl, fetchpatch, autoreconfHook, + audit, zlib, openssl, softhsm, @@ -36,7 +37,7 @@ nixosTests, withSecurityKey ? !stdenv.hostPlatform.isStatic, withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl && withSecurityKey, - withPAM ? stdenv.hostPlatform.isLinux, + withPAM ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isStatic, # Attempts to mlock the entire sshd process on startup to prevent swapping. # Currently disabled when PAM support is enabled due to crashes # See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1103418 @@ -87,7 +88,8 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional withFIDO libfido2 ++ lib.optional withKerberos krb5 ++ lib.optional withLdns ldns - ++ lib.optional withPAM pam; + ++ lib.optional withPAM pam + ++ lib.optional stdenv.hostPlatform.isStatic audit; preConfigure = '' # Setting LD causes `configure' and `make' to disagree about which linker @@ -163,9 +165,7 @@ stdenv.mkDerivation (finalAttrs: { # invoked directly and those invoked by the "remote" session cat > ~/.ssh/environment.base < Date: Sat, 11 Oct 2025 07:15:46 +0000 Subject: [PATCH 08/78] nextcloud-whiteboard-server: 1.1.3 -> 1.3.0 --- pkgs/by-name/ne/nextcloud-whiteboard-server/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ne/nextcloud-whiteboard-server/package.nix b/pkgs/by-name/ne/nextcloud-whiteboard-server/package.nix index a94f01778c3d..ae2a1842615a 100644 --- a/pkgs/by-name/ne/nextcloud-whiteboard-server/package.nix +++ b/pkgs/by-name/ne/nextcloud-whiteboard-server/package.nix @@ -8,16 +8,16 @@ }: buildNpmPackage rec { pname = "nextcloud-whiteboard-server"; - version = "1.1.3"; + version = "1.3.0"; src = fetchFromGitHub { owner = "nextcloud"; repo = "whiteboard"; tag = "v${version}"; - hash = "sha256-4qk6mAFz7bYWtrlqiVPiyWF4ub4Ks9RhS5oODlOYRvA="; + hash = "sha256-fk+BiQ6jM/SvBioz56WHIhWGErgroCvagQq6/vMWCyk="; }; - npmDepsHash = "sha256-WHSMK7s6vohphHoNh96yejdwXHBxdkQSpMMNiFS15E4="; + npmDepsHash = "sha256-x6ccAOq0yZ8DfZLIp2ZNpT8HMAjBr+e4gsEOUOskABs="; nativeBuildInputs = [ makeWrapper ]; From b908eb6a0c36bb38c758e2be02623a1b13e8be0b Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Sat, 11 Oct 2025 23:13:10 +0200 Subject: [PATCH 09/78] python313Packages.kajiki: fix build --- pkgs/development/python-modules/kajiki/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/kajiki/default.nix b/pkgs/development/python-modules/kajiki/default.nix index e801f49aca4a..e7a0978bb415 100644 --- a/pkgs/development/python-modules/kajiki/default.nix +++ b/pkgs/development/python-modules/kajiki/default.nix @@ -6,12 +6,13 @@ linetable, pytestCheckHook, pythonOlder, + hatchling, }: buildPythonPackage rec { pname = "kajiki"; version = "1.0.1"; - format = "setuptools"; + pyproject = true; disabled = pythonOlder "3.7"; @@ -24,6 +25,8 @@ buildPythonPackage rec { propagatedBuildInputs = [ linetable ]; + build-system = [ hatchling ]; + nativeCheckInputs = [ babel pytestCheckHook From 70e4355b7390a9672db63c44fbe10d9b09aa8e1d Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Sun, 12 Oct 2025 00:03:03 +0200 Subject: [PATCH 10/78] python313Packages.prosemirror: fix build --- pkgs/development/python-modules/prosemirror/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/prosemirror/default.nix b/pkgs/development/python-modules/prosemirror/default.nix index 030a989f9573..4586fb355b1a 100644 --- a/pkgs/development/python-modules/prosemirror/default.nix +++ b/pkgs/development/python-modules/prosemirror/default.nix @@ -1,7 +1,8 @@ { lib, buildPythonPackage, - setuptools-scm, + hatchling, + hatch-vcs, pytestCheckHook, fetchPypi, lxml, @@ -18,7 +19,10 @@ buildPythonPackage rec { hash = "sha256-cZwqoKQ+B7d07R20dXTiDsiBIYYTyaWa2SnGs8o8Hl8="; }; - build-system = [ setuptools-scm ]; + build-system = [ + hatchling + hatch-vcs + ]; dependencies = [ lxml From dcfff00787517a4a6412cb394bce4faaa052f7e8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 12 Oct 2025 00:35:22 +0000 Subject: [PATCH 11/78] uwsgi: 2.0.30 -> 2.0.31 --- pkgs/by-name/uw/uwsgi/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/uw/uwsgi/package.nix b/pkgs/by-name/uw/uwsgi/package.nix index 6886ba53cae8..61d4fa0a49d9 100644 --- a/pkgs/by-name/uw/uwsgi/package.nix +++ b/pkgs/by-name/uw/uwsgi/package.nix @@ -81,13 +81,13 @@ in stdenv.mkDerivation (finalAttrs: { pname = "uwsgi"; - version = "2.0.30"; + version = "2.0.31"; src = fetchFromGitHub { owner = "unbit"; repo = "uwsgi"; tag = finalAttrs.version; - hash = "sha256-I03AshxZyxrRmtYUH1Q+B6ISykjYRMGG+ZQSHRS7vDs="; + hash = "sha256-WWZ+ClLWoUFi64xsiyuLXcxQsYdOv1DVhG+4oVYJJMI="; }; patches = [ From 40214c2103ff5f94a78ba8e370bac6c50794b614 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 12 Oct 2025 10:21:55 +0000 Subject: [PATCH 12/78] keymapper: 5.0.0 -> 5.1.0 --- pkgs/by-name/ke/keymapper/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ke/keymapper/package.nix b/pkgs/by-name/ke/keymapper/package.nix index bda1cd85fd01..f3c5dfbfabda 100644 --- a/pkgs/by-name/ke/keymapper/package.nix +++ b/pkgs/by-name/ke/keymapper/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "keymapper"; - version = "5.0.0"; + version = "5.1.0"; src = fetchFromGitHub { owner = "houmain"; repo = "keymapper"; tag = finalAttrs.version; - hash = "sha256-3cUfgOuZ3GKSKbUI2k/MwvSmHtqvqiUvqUem3Nh/YuQ="; + hash = "sha256-y1EVF3IwGzDy32ywo9LSzkQNki/HuKC40DySIme8nTc="; }; # all the following must be in nativeBuildInputs From ed849688fae70894368cab216c612c301b85549d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 13 Oct 2025 02:09:22 +0000 Subject: [PATCH 13/78] rofi-calc: 2.4.1 -> 2.5.0 --- pkgs/by-name/ro/rofi-calc/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ro/rofi-calc/package.nix b/pkgs/by-name/ro/rofi-calc/package.nix index f6369c1c77b0..be8e7838038c 100644 --- a/pkgs/by-name/ro/rofi-calc/package.nix +++ b/pkgs/by-name/ro/rofi-calc/package.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "rofi-calc"; - version = "2.4.1"; + version = "2.5.0"; src = fetchFromGitHub { owner = "svenstaro"; repo = "rofi-calc"; rev = "v${version}"; - sha256 = "sha256-E0C5hlrZGRGHT/yb4J2qFquf3AuB0T1zqbFPZdT1UxE="; + sha256 = "sha256-/UKOyJfCsV/+kZDndHZmrPdE2MjVlQWSiWQRIUPGz/I="; }; nativeBuildInputs = [ From ab71c0d2835b88bb53b99dd99ee27be049a594cc Mon Sep 17 00:00:00 2001 From: 06kellyjac Date: Mon, 13 Oct 2025 13:01:45 +0100 Subject: [PATCH 14/78] protoc-gen-connect-go: 1.19.0 -> 1.19.1 Diff: https://github.com/connectrpc/connect-go/compare/v1.19.0...v1.19.1 Changelog: https://github.com/connectrpc/connect-go/releases/tag/v1.19.1 --- pkgs/by-name/pr/protoc-gen-connect-go/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pr/protoc-gen-connect-go/package.nix b/pkgs/by-name/pr/protoc-gen-connect-go/package.nix index 168ac172cfc1..7b9fb38b4713 100644 --- a/pkgs/by-name/pr/protoc-gen-connect-go/package.nix +++ b/pkgs/by-name/pr/protoc-gen-connect-go/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "protoc-gen-connect-go"; - version = "1.19.0"; + version = "1.19.1"; src = fetchFromGitHub { owner = "connectrpc"; repo = "connect-go"; tag = "v${version}"; - hash = "sha256-pxG2f54m01tC9YhpN9zQ8M5KiP4gyt019klqnBPHHrw="; + hash = "sha256-VW7FHZk7FAux2Jn03gGm9gdkjCzvofC/ukXOWaplWBo="; }; vendorHash = "sha256-oAcAE9t4mz0HrkqO8lh5Ex2nakKj5FKy2lKTP8X/9Gg="; From 49a85593d6bdd75b30fa02a415e6dfad7b739b7b Mon Sep 17 00:00:00 2001 From: 06kellyjac Date: Mon, 13 Oct 2025 15:49:04 +0100 Subject: [PATCH 15/78] protoc-gen-connect-go: skip test to fix build --- pkgs/by-name/pr/protoc-gen-connect-go/package.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkgs/by-name/pr/protoc-gen-connect-go/package.nix b/pkgs/by-name/pr/protoc-gen-connect-go/package.nix index 7b9fb38b4713..6e9f03184e86 100644 --- a/pkgs/by-name/pr/protoc-gen-connect-go/package.nix +++ b/pkgs/by-name/pr/protoc-gen-connect-go/package.nix @@ -26,6 +26,18 @@ buildGoModule rec { unset subPackages ''; + checkFlags = + let + skippedTests = [ + # other tests work, could be related to sandboxing or timings + # got: unavailable + # want: deadline_exceeded + # client_ext_test.go:789: actual receive error from /connect.ping.v1.PingService/Sum: unavailable: io: read/write on closed pipe + "TestClientDeadlineHandling/read-write" + ]; + in + [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; + meta = { description = "Simple, reliable, interoperable, better gRPC"; mainProgram = "protoc-gen-connect-go"; From 28d66871964689d7abeaff1cbf0d774820722823 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Oct 2025 00:40:53 +0000 Subject: [PATCH 16/78] doomretro: 5.7.2 -> 5.8 --- pkgs/by-name/do/doomretro/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/doomretro/package.nix b/pkgs/by-name/do/doomretro/package.nix index c2b4a281da2a..51f8808963c1 100644 --- a/pkgs/by-name/do/doomretro/package.nix +++ b/pkgs/by-name/do/doomretro/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "doomretro"; - version = "5.7.2"; + version = "5.8"; src = fetchFromGitHub { owner = "bradharding"; repo = "doomretro"; rev = "v${finalAttrs.version}"; - hash = "sha256-ShzZMmUwPB8IHhaA/7U4CEE7qcEjxfQDXVZkAVuEgtw="; + hash = "sha256-UCLIQEeKNJ0qTZQdzybdBxt/6catf8y3lnWKsjg2Mf8="; }; nativeBuildInputs = [ From 5935251faebb6795f2c5054fcd5074ea472d3f90 Mon Sep 17 00:00:00 2001 From: 06kellyjac Date: Mon, 13 Oct 2025 15:50:08 +0100 Subject: [PATCH 17/78] protoc-gen-connect-go: move to finalAttrs pattern --- pkgs/by-name/pr/protoc-gen-connect-go/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pr/protoc-gen-connect-go/package.nix b/pkgs/by-name/pr/protoc-gen-connect-go/package.nix index 6e9f03184e86..d3697ac75b90 100644 --- a/pkgs/by-name/pr/protoc-gen-connect-go/package.nix +++ b/pkgs/by-name/pr/protoc-gen-connect-go/package.nix @@ -4,14 +4,14 @@ fetchFromGitHub, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "protoc-gen-connect-go"; version = "1.19.1"; src = fetchFromGitHub { owner = "connectrpc"; repo = "connect-go"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-VW7FHZk7FAux2Jn03gGm9gdkjCzvofC/ukXOWaplWBo="; }; @@ -42,11 +42,11 @@ buildGoModule rec { description = "Simple, reliable, interoperable, better gRPC"; mainProgram = "protoc-gen-connect-go"; homepage = "https://github.com/connectrpc/connect-go"; - changelog = "https://github.com/connectrpc/connect-go/releases/tag/v${version}"; + changelog = "https://github.com/connectrpc/connect-go/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ kilimnik jk ]; }; -} +}) From 292b7d39d95d43fa80886884fd4126b0687a0aa4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Oct 2025 12:42:01 +0000 Subject: [PATCH 18/78] lune: 0.10.3 -> 0.10.4 --- pkgs/by-name/lu/lune/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/lu/lune/package.nix b/pkgs/by-name/lu/lune/package.nix index df7bf3ce6753..d053e32bc244 100644 --- a/pkgs/by-name/lu/lune/package.nix +++ b/pkgs/by-name/lu/lune/package.nix @@ -7,17 +7,17 @@ }: rustPlatform.buildRustPackage rec { pname = "lune"; - version = "0.10.3"; + version = "0.10.4"; src = fetchFromGitHub { owner = "filiptibell"; repo = "lune"; tag = "v${version}"; - hash = "sha256-pWOGaVugfnwaA4alFP85ha+/iaN8x6KOVnx38vfFk78="; + hash = "sha256-AbviyCy2nn6WHC575JKl/t3bM/4Myb+Wx5/buTvB4MY="; fetchSubmodules = true; }; - cargoHash = "sha256-cq7Sgq9f2XpVTgEOMfR/G7sTqcWLwuJBgG9U+h4IMWQ="; + cargoHash = "sha256-QSQ+SsvLa7f9EVGi6i/SlpL8yWXVP47zkw4beDy5UIQ="; # error: linker `aarch64-linux-gnu-gcc` not found postPatch = '' From b3cba645ef052ab8c31d3608972ee0ee395a6c4c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Oct 2025 15:27:25 +0000 Subject: [PATCH 19/78] zuban: 0.0.23 -> 0.1.0 --- pkgs/by-name/zu/zuban/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/zu/zuban/package.nix b/pkgs/by-name/zu/zuban/package.nix index a1ba2288f0d2..f072b38cec86 100644 --- a/pkgs/by-name/zu/zuban/package.nix +++ b/pkgs/by-name/zu/zuban/package.nix @@ -8,18 +8,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "zuban"; - version = "0.0.23"; + version = "0.1.0"; src = fetchFromGitHub { owner = "zubanls"; repo = "zuban"; tag = "v${finalAttrs.version}"; - hash = "sha256-EPF1HW/oqUKHLTorkO3C+X+ziq6i1lCxGY5y1ioKg6A="; + hash = "sha256-nSQf3I9O5TP1V8kwJrcBRREqS/47UlILx3IZMmt5ljQ="; }; buildAndTestSubdir = "crates/zuban"; - cargoHash = "sha256-TAFdS4NmXchmhqVRcsckz6GhZG35IE2fukDlZiRF8Ms="; + cargoHash = "sha256-Q09ZUBVa52fXIKiL6aC9VZB+4Rt/hI045CIjb/t3Xyg="; nativeInstallCheckInputs = [ versionCheckHook From fd9654e451166b1e14ddc4d39cd464ec067542fe Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Thu, 16 Oct 2025 12:22:29 +0200 Subject: [PATCH 20/78] aws-encryption-sdk-cli: fix urllib3 override https://hydra.nixos.org/build/308804984 --- pkgs/by-name/aw/aws-encryption-sdk-cli/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/aw/aws-encryption-sdk-cli/package.nix b/pkgs/by-name/aw/aws-encryption-sdk-cli/package.nix index dce0c6a561c0..b5a07237c8b9 100644 --- a/pkgs/by-name/aw/aws-encryption-sdk-cli/package.nix +++ b/pkgs/by-name/aw/aws-encryption-sdk-cli/package.nix @@ -12,9 +12,11 @@ let self = localPython; packageOverrides = final: prev: { urllib3 = prev.urllib3.overridePythonAttrs (prev: rec { - pyproject = true; version = "1.26.18"; - nativeBuildInputs = with final; [ setuptools ]; + build-system = with final; [ + setuptools + ]; + postPatch = null; src = prev.src.override { inherit version; hash = "sha256-+OzBu6VmdBNFfFKauVW/jGe0XbeZ0VkGYmFxnjKFgKA="; From 1ecadfe2a997189764a4719cf3e7c1e3bb825b68 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 18 Oct 2025 02:06:22 +0000 Subject: [PATCH 21/78] httm: 0.48.6 -> 0.49.9 --- pkgs/by-name/ht/httm/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ht/httm/package.nix b/pkgs/by-name/ht/httm/package.nix index 855773eb8328..191c7d3db444 100644 --- a/pkgs/by-name/ht/httm/package.nix +++ b/pkgs/by-name/ht/httm/package.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "httm"; - version = "0.48.6"; + version = "0.49.9"; src = fetchFromGitHub { owner = "kimono-koans"; repo = "httm"; rev = version; - hash = "sha256-A/4nf5DKGf8IjQvvNSJMONoRmEBul8/RS+e4OLU1VYQ="; + hash = "sha256-Y0WYgi/VdGjE70XZcJD7G+ONCSq2YXpX9/RyijPW3kc="; }; - cargoHash = "sha256-/iAeR0HmIaoSX03bvTypyvKWgjhfhAzc/ikpiCuXEcs="; + cargoHash = "sha256-CSwfwW5ChnvrtN+zl2DdAPHDJCL3RSQHlBT2xWt+KCc="; nativeBuildInputs = [ installShellFiles ]; From b4c8ca622b156c860872775125df218e5546798e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 20 Oct 2025 16:18:09 +0000 Subject: [PATCH 22/78] amazon-cloudwatch-agent: 1.300059.0 -> 1.300061.0 --- pkgs/by-name/am/amazon-cloudwatch-agent/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix b/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix index cdaf829d7581..e7b0af1bea7f 100644 --- a/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix +++ b/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix @@ -11,16 +11,16 @@ buildGoModule rec { pname = "amazon-cloudwatch-agent"; - version = "1.300059.0"; + version = "1.300061.0"; src = fetchFromGitHub { owner = "aws"; repo = "amazon-cloudwatch-agent"; tag = "v${version}"; - hash = "sha256-xon1M3xusoFngeZ2CJprS1z4fcrWeKCKaAtAfv4SBWw="; + hash = "sha256-Qt17JyD9zW914nVcxcpY3af42CqKJtKBEISSMy6/ong="; }; - vendorHash = "sha256-79BaMjl1bzQcl3FUvpwRsPneQRyfabU481eLgWA1U6Y="; + vendorHash = "sha256-g06fRyuCRypOP6AvHTp73ml5JycAdp2OeceU4GAesvA="; # See the list in https://github.com/aws/amazon-cloudwatch-agent/blob/v1.300049.1/Makefile#L68-L77. subPackages = [ From 95f063d9fb8b2f847f70ef52b80b2774c0309a4f Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 20 Oct 2025 21:01:52 +0200 Subject: [PATCH 23/78] fparser: 0-unstable-2015-09-25 -> 0-unstable-2025-06-23 fix for CMake v4 Part of https://github.com/NixOS/nixpkgs/issues/445447 --- pkgs/by-name/fp/fparser/package.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/fp/fparser/package.nix b/pkgs/by-name/fp/fparser/package.nix index 69506dcb38dc..ba6b540bcbc2 100644 --- a/pkgs/by-name/fp/fparser/package.nix +++ b/pkgs/by-name/fp/fparser/package.nix @@ -7,22 +7,22 @@ stdenv.mkDerivation { pname = "fparser"; - version = "0-unstable-2015-09-25"; + version = "0-unstable-2025-06-23"; src = fetchFromGitHub { owner = "thliebig"; repo = "fparser"; - rev = "a59e1f51e32096bfe2a0a2640d5dffc7ae6ba37b"; - sha256 = "0wayml1mlyi922gp6am3fsidhzsilziksdn5kbnpcln01h8555ad"; + rev = "ee15c675514e53b37304179b4a91319d44ba9a85"; + hash = "sha256-YlkaJlZ60EAsaejdyaV7OK3zF7pnkhyr+PssuToFplA="; }; nativeBuildInputs = [ cmake ]; - meta = with lib; { + meta = { description = "C++ Library for Evaluating Mathematical Functions"; homepage = "https://github.com/thliebig/fparser"; - license = licenses.lgpl3; - maintainers = with maintainers; [ matthuszagh ]; - platforms = platforms.linux; + license = lib.licenses.lgpl3; + maintainers = with lib.maintainers; [ matthuszagh ]; + platforms = lib.platforms.linux; }; } From ebd8917c6ac385c6a325806483c13ef143247349 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 20 Oct 2025 22:16:45 +0200 Subject: [PATCH 24/78] csxcad: patch for CMake v4 + clean --- pkgs/by-name/cs/csxcad/package.nix | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/cs/csxcad/package.nix b/pkgs/by-name/cs/csxcad/package.nix index 5482166b4d76..7ee94a9253da 100644 --- a/pkgs/by-name/cs/csxcad/package.nix +++ b/pkgs/by-name/cs/csxcad/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, fparser, tinyxml, @@ -13,18 +14,26 @@ mpfr, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "csxcad"; version = "0.6.3"; src = fetchFromGitHub { owner = "thliebig"; repo = "CSXCAD"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; sha256 = "sha256-SSV5ulx3rCJg99I/oOQbqe+gOSs+BfcCo6UkWHVhnSs="; }; - patches = [ ./searchPath.patch ]; + patches = [ + ./searchPath.patch + # ref. https://github.com/thliebig/CSXCAD/pull/62 merged upstream + (fetchpatch { + name = "update-cmake-minimum-required.patch"; + url = "https://github.com/thliebig/CSXCAD/commit/b8ea64e11320910109a49b6da5352e1a1a18a736.patch"; + hash = "sha256-mpQmpvrEDjOKgEAZ5laIIepG+PWqSr637tOY7FQst2s="; + }) + ]; buildInputs = [ cgal @@ -39,11 +48,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - meta = with lib; { + meta = { description = "C++ library to describe geometrical objects"; homepage = "https://github.com/thliebig/CSXCAD"; - license = licenses.lgpl3; - maintainers = with maintainers; [ matthuszagh ]; - platforms = platforms.linux; + license = lib.licenses.lgpl3; + maintainers = with lib.maintainers; [ matthuszagh ]; + platforms = lib.platforms.linux; }; -} +}) From 4ce01653382c437497104d38c6f525a8c9dfdfff Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 20 Oct 2025 22:35:32 +0200 Subject: [PATCH 25/78] qcsxcad: fix for CMake v4 --- pkgs/by-name/qc/qcsxcad/package.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/by-name/qc/qcsxcad/package.nix b/pkgs/by-name/qc/qcsxcad/package.nix index 8d8b0fc4dfcc..00035bb2c64a 100644 --- a/pkgs/by-name/qc/qcsxcad/package.nix +++ b/pkgs/by-name/qc/qcsxcad/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, csxcad, tinyxml, @@ -20,6 +21,20 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-bX6e3ugHJynU9tP70BV8TadnoGg1VO7SAYJueMkMAyo="; }; + patches = [ + # ref. https://github.com/thliebig/QCSXCAD/pull/18 merged upstream + (fetchpatch { + name = "fix-cmake-40-issues.patch"; + url = "https://github.com/thliebig/QCSXCAD/commit/200c9c211ee1401d6dce2bcbf2543089cdc67208.patch"; + hash = "sha256-OVihvjBRTQ87l0bBq2J8aWC7WdFCPqy5CtU4S5a11Xw="; + }) + (fetchpatch { + name = "update-cmake-minimum-required.patch"; + url = "https://github.com/thliebig/QCSXCAD/commit/64a4bdc13511690499756e6602076c1e70cf4ee7.patch"; + hash = "sha256-rzVj9YdAJVxhTatTO5MxZJInb1RB0qqmPFAkI2nxpQ0="; + }) + ]; + outputs = [ "out" "dev" From e6db9fb9321c24821f0bca958c283d77e5e9784c Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 20 Oct 2025 23:42:23 +0200 Subject: [PATCH 26/78] openems: fix for CMake v4 + clean --- pkgs/by-name/op/openems/package.nix | 30 ++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/op/openems/package.nix b/pkgs/by-name/op/openems/package.nix index 22e92e81fa35..d336bf62f538 100644 --- a/pkgs/by-name/op/openems/package.nix +++ b/pkgs/by-name/op/openems/package.nix @@ -2,6 +2,7 @@ stdenv, lib, fetchFromGitHub, + fetchpatch, csxcad, fparser, tinyxml, @@ -19,17 +20,32 @@ hyp2mat, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "openems"; version = "0.0.36"; src = fetchFromGitHub { owner = "thliebig"; repo = "openEMS"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; sha256 = "sha256-wdH+Zw7G2ZigzBMX8p3GKdFVx/AhbTNL+P3w+YjI/dc="; }; + patches = [ + # ref. https://github.com/thliebig/openEMS/pull/183 merged upstream + (fetchpatch { + name = "update-cmake-minimum-required.patch"; + url = "https://github.com/thliebig/openEMS/commit/0fa7ba3aebc8ee531077973cfa136ead8e887872.patch"; + hash = "sha256-q/ax7MZHwqSKAjx22uyV13YO/TXZa4bwikoQyItMB7E="; + }) + # ref. https://github.com/thliebig/openEMS/pull/184 merged upstream + (fetchpatch { + name = "update-nf2ff-cmake-minimum-required.patch"; + url = "https://github.com/thliebig/openEMS/commit/e02e2a8414355482145240e4c2b2464d7a26dd9e.patch"; + hash = "sha256-y3pvim/8XUKF5k7shj0D+8P6tdfSZ3E/gxTogbRtxdo="; + }) + ]; + nativeBuildInputs = [ cmake ]; @@ -60,11 +76,11 @@ stdenv.mkDerivation rec { -o $out/share/openEMS/matlab/h5readatt_octave.oct ''; - meta = with lib; { + meta = { description = "Open Source Electromagnetic Field Solver"; homepage = "https://wiki.openems.de/index.php/Main_Page.html"; - license = licenses.gpl3; - maintainers = with maintainers; [ matthuszagh ]; - platforms = platforms.linux; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ matthuszagh ]; + platforms = lib.platforms.linux; }; -} +}) From 2baf1fe5ffd3a5c76df4b8bed401ebf14c4a2209 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 20 Oct 2025 23:46:08 +0200 Subject: [PATCH 27/78] appcsxcad: fix for CMake v4 --- pkgs/by-name/ap/appcsxcad/package.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/by-name/ap/appcsxcad/package.nix b/pkgs/by-name/ap/appcsxcad/package.nix index ae9504c3d2fa..4d1a5b3d82b5 100644 --- a/pkgs/by-name/ap/appcsxcad/package.nix +++ b/pkgs/by-name/ap/appcsxcad/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, csxcad, qcsxcad, @@ -25,6 +26,20 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-KrsnCnRZRTbkgEH3hOETrYhseg5mCHPqhAbYyHlS3sk="; }; + patches = [ + # ref. https://github.com/thliebig/AppCSXCAD/pull/14 merged upstream + (fetchpatch { + name = "update-minimum-cmake-required.patch"; + url = "https://github.com/thliebig/AppCSXCAD/commit/9585207eb08195c3f1c47dc9d6a80b563a3272e0.patch"; + hash = "sha256-2+C3cqQMU3UL12h0f7EdBZVqeJVSPhDVbMOcqbOY0gg="; + }) + (fetchpatch { + name = "remove-cmp0020-policy.patch"; + url = "https://github.com/thliebig/AppCSXCAD/commit/688c07cd847f463a2a42f01d41751374b4f787c8.patch"; + hash = "sha256-pa6imzrUoVA3Ebc4UGPACJ6qjYiHOjB5aQ9FN/CUpVM="; + }) + ]; + nativeBuildInputs = [ cmake qt6.wrapQtAppsHook From 78f1706789d5441b3ed8454918c915bd26b3bad1 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Tue, 21 Oct 2025 17:43:59 +0200 Subject: [PATCH 28/78] python3Packages.maestral: 1.9.4 -> 1.9.5 --- pkgs/development/python-modules/maestral/default.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix index 78ddcc7d8d51..de2b186f348c 100644 --- a/pkgs/development/python-modules/maestral/default.nix +++ b/pkgs/development/python-modules/maestral/default.nix @@ -31,16 +31,16 @@ buildPythonPackage rec { pname = "maestral"; - version = "1.9.4"; + version = "1.9.5"; pyproject = true; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.10"; src = fetchFromGitHub { owner = "SamSchott"; repo = "maestral"; tag = "v${version}"; - hash = "sha256-akh0COltpUU4Z4kfubg6A7k6W8ICoqVYkmFpMkTC8H8="; + hash = "sha256-xFSnJPKTAPXYa4FuqkFF5gLzGZ9TltNVDhyBnswiut4="; }; build-system = [ setuptools ]; @@ -51,7 +51,6 @@ buildPythonPackage rec { dbus-python dropbox fasteners - importlib-metadata keyring keyrings-alt packaging From 93d6ac4860f46b9b19764b8bd6460646fa922f1d Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Tue, 21 Oct 2025 17:44:14 +0200 Subject: [PATCH 29/78] maestral-qt: 1.9.4 -> 1.9.5 --- pkgs/applications/networking/maestral-qt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/maestral-qt/default.nix b/pkgs/applications/networking/maestral-qt/default.nix index 2be6ae59feb1..293b28e074c7 100644 --- a/pkgs/applications/networking/maestral-qt/default.nix +++ b/pkgs/applications/networking/maestral-qt/default.nix @@ -11,7 +11,7 @@ python3.pkgs.buildPythonApplication rec { pname = "maestral-qt"; - version = "1.9.4"; + version = "1.9.5"; pyproject = true; disabled = python3.pythonOlder "3.7"; @@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec { owner = "SamSchott"; repo = "maestral-qt"; tag = "v${version}"; - hash = "sha256-VkJOKKYnoXux3WjD1JwINGWwv1SMIXfidyV2ITE7dJc="; + hash = "sha256-FCn9ELbodk+zCJNmlOVoxE/KSSqbxy5HTB1vpiu7AJA="; }; build-system = with python3.pkgs; [ setuptools ]; From 190b04b78097c614322e34897e8f62c4d29e4ad7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 21 Oct 2025 23:14:50 +0000 Subject: [PATCH 30/78] zoekt: 3.7.2-2-unstable-2025-09-02 -> 3.7.2-2-unstable-2025-10-16 --- pkgs/by-name/zo/zoekt/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/zo/zoekt/package.nix b/pkgs/by-name/zo/zoekt/package.nix index d186ea9f002f..e5412d1ce914 100644 --- a/pkgs/by-name/zo/zoekt/package.nix +++ b/pkgs/by-name/zo/zoekt/package.nix @@ -8,13 +8,13 @@ buildGoModule { pname = "zoekt"; - version = "3.7.2-2-unstable-2025-09-02"; + version = "3.7.2-2-unstable-2025-10-16"; src = fetchFromGitHub { owner = "sourcegraph"; repo = "zoekt"; - rev = "4e4a529c3b63c7d4c7897ba736f1cd52cc163134"; - hash = "sha256-aRQQAG0qZOrkdbQoQRXeddhMmQaB+/ESD6Ba+q4UIlI="; + rev = "90faf6de70e39db5fb48839eabfba6c8add008f0"; + hash = "sha256-nULqnTms5Jw8gE8VcUzRGJaJqyavXyABU8SyTg8fCtE="; }; vendorHash = "sha256-urXYBv8+C2jwnr5PjXz7nUyX/Gz4wmtS76UTXFqfQFk="; From 0f6f20ae969c609affeab267eb889d6be69dc226 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Oct 2025 06:48:19 +0000 Subject: [PATCH 31/78] crosvm: 0-unstable-2025-10-15 -> 0-unstable-2025-10-21 --- pkgs/by-name/cr/crosvm/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cr/crosvm/package.nix b/pkgs/by-name/cr/crosvm/package.nix index 9bcb2f6a1069..0b3d9291048f 100644 --- a/pkgs/by-name/cr/crosvm/package.nix +++ b/pkgs/by-name/cr/crosvm/package.nix @@ -21,12 +21,12 @@ rustPlatform.buildRustPackage { pname = "crosvm"; - version = "0-unstable-2025-10-15"; + version = "0-unstable-2025-10-21"; src = fetchgit { url = "https://chromium.googlesource.com/chromiumos/platform/crosvm"; - rev = "b516534fef1658536e76cfcb958db424c1a764b5"; - hash = "sha256-FZu/eWEZ9j/gBL9mYFB29aT3MF95hjRS075pAmv8SjA="; + rev = "f6de423867b914a59d86c54d102831bccc7ed2c8"; + hash = "sha256-xTuu1tMoFuMcj2RqtGjyDbcFPh3bTCtWpr0fuND4aos="; fetchSubmodules = true; }; From faf2de06835a7c61fc302f408cbf190d4419709f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Zavala=20Villag=C3=B3mez?= Date: Mon, 15 Sep 2025 03:22:58 -0400 Subject: [PATCH 32/78] ugrep: add optional filter utils wrapping & gnugrep replacement symlinks The `ugrep+` and `ug+` commands are the same as the `ugrep` and `ug` commands, but also use filters to search PDFs, documents, e-books, image metadata, when these filter tools are present: - pdftotext - antiword - pandoc - exiftool `ugrep+` and `ug+` can now be wrapped to make those utils accessible without the need for users to clutter their environments through installing them. This is opt-in with the `wrapWithFilterUtils` flag since these packages grow the closure size massively. A `createGrepReplacementLinks` flag was also added to optionally create symlinks to serve as `gnugrep` drop-in replacements. This works just like with `coreutils`. We ensure that these variants beat `gnugrep`'s priority value so `ugrep` wins when building `system-path` with `buildEnv`. --- doc/release-notes/rl-2511.section.md | 5 ++ pkgs/by-name/ug/ugrep/package.nix | 86 +++++++++++++++++++++++----- 2 files changed, 78 insertions(+), 13 deletions(-) diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index 5e22edd9f6dc..50bbc8883bb7 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -370,3 +370,8 @@ - `cloudflare-ddns`: Added package cloudflare-ddns. - `lib.cli.toCommandLine`, `lib.cli.toCommandLineShell`, `lib.cli.toCommandLineGNU` and `lib.cli.toCommandLineShellGNU` have been added to address multiple issues in `lib.cli.toGNUCommandLine` and `lib.cli.toGNUCommandLineShell`. + +- `ugrep`: Added `wrapWithFilterUtils` package flag for optionally wrapping `ugrep+` and `ug+` with filter utilities for grepping other file types. + +- `ugrep`: Added `createGrepReplacementLinks` package flag for optionally creating drop-in replacement symlinks for `gnugrep`. + diff --git a/pkgs/by-name/ug/ugrep/package.nix b/pkgs/by-name/ug/ugrep/package.nix index 5765e0898b09..14880464bb59 100644 --- a/pkgs/by-name/ug/ugrep/package.nix +++ b/pkgs/by-name/ug/ugrep/package.nix @@ -13,6 +13,28 @@ xz, zlib, zstd, + # The `ugrep+` and `ug+` commands are the same as the + # `ugrep` and `ug` commands, but also use filters to + # search PDFs, documents, e-books, image metadata, + # when these filter tools are present: + poppler-utils, # Provides `pdftotext`. + antiword, + pandoc, + exiftool, + # Alleviates the need for users to pollute their + # environment with these packages, but grows the + # closure size massively; hence this is opt-in. + wrapWithFilterUtils ? false, + # `ugrep` has a compatibility mode for the `gnugrep` + # variants. When `$0` is one of the variants, `ugrep` + # behaves like it to be drop-in compatible. This can + # be done simply through symlinks, just like is done + # with `coreutils`. These will of course shadow the + # `pkgs.gnugrep` binaries in `system-path`. + createGrepReplacementLinks ? false, + # All we need is its `meta.priority` to ensure `ugrep` + # beats it. + gnugrep, }: stdenv.mkDerivation (finalAttrs: { @@ -41,8 +63,39 @@ stdenv.mkDerivation (finalAttrs: { ]; postFixup = '' + # Needed because `ug+` and `ugrep+` are + # just scripts that call `ug` or `ugrep` + # with certain arguments. They must be + # reachable. for i in ug+ ugrep+; do - wrapProgram "$out/bin/$i" --prefix PATH : "$out/bin" + wrapProgram "$out/bin/$i" --prefix PATH : "${ + lib.makeBinPath ( + [ "$out" ] + ++ (lib.optionals wrapWithFilterUtils [ + poppler-utils + antiword + pandoc + exiftool + ]) + ) + }" + done + '' + + lib.optionalString createGrepReplacementLinks '' + # These will be made relative by the + # `_makeSymlinksRelativeInAllOutputs` + # `postFixupHook`. + for i in ${ + lib.concatStringsSep " " [ + "grep" + "egrep" + "fgrep" + "zgrep" + "zegrep" + "zfgrep" + ] + }; do + ln -s "$out/bin/ugrep" "$out/bin/$i" done ''; @@ -52,16 +105,23 @@ stdenv.mkDerivation (finalAttrs: { }; }; - meta = with lib; { - description = "Ultra fast grep with interactive query UI"; - homepage = "https://github.com/Genivia/ugrep"; - changelog = "https://github.com/Genivia/ugrep/releases/tag/v${finalAttrs.version}"; - maintainers = with maintainers; [ - numkem - mikaelfangel - ]; - license = licenses.bsd3; - platforms = platforms.all; - mainProgram = "ug"; - }; + meta = + with lib; + { + description = "Ultra fast grep with interactive query UI"; + homepage = "https://github.com/Genivia/ugrep"; + changelog = "https://github.com/Genivia/ugrep/releases/tag/v${finalAttrs.version}"; + maintainers = with maintainers; [ + numkem + mikaelfangel + ]; + license = licenses.bsd3; + platforms = platforms.all; + mainProgram = "ug"; + } + # Needed to ensure that the grep replacements take precedence over + # `gnugrep` when installed. Lower priority values win. + // lib.optionalAttrs createGrepReplacementLinks { + priority = (gnugrep.meta.priority or meta.defaultPriority) - 1; + }; }) From f2503b6e631b5a53fe34a9ae7388e7431b70c0b5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Oct 2025 22:55:32 +0000 Subject: [PATCH 33/78] vscodium: 1.105.16954 -> 1.105.17075 --- pkgs/applications/editors/vscode/vscodium.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix index a2ab054df798..496a86337f80 100644 --- a/pkgs/applications/editors/vscode/vscodium.nix +++ b/pkgs/applications/editors/vscode/vscodium.nix @@ -26,11 +26,11 @@ let hash = { - x86_64-linux = "sha256-uW5fD7/mjFN9Ap21h2Kht7rztEVGWIYcQMfXW/jzHHI="; - x86_64-darwin = "sha256-xY84sbFPU4wDWH546h+ItxM1ohuv9ZuTNYN37lVFEJ4="; - aarch64-linux = "sha256-nO13ItYXeChbO/C12S679FKt+pk9d42DMrrb9LhoCPc="; - aarch64-darwin = "sha256-wqAbzL0uK12UkmvaZRb13GZGIgg/Wo1u1qB4cCgxVWk="; - armv7l-linux = "sha256-kw9OBihzHweHtpltjQKZ+yTpGuGGzJkB9fk5aBbuj0g="; + x86_64-linux = "sha256-+aMcRAM1mOu2rLCVGtkygGgM/8VNeteM66BOlmQCIpA="; + x86_64-darwin = "sha256-A/5l3LZn7SYNLkixNAfcb0HJlXY9dN9tjDT/KJ4Ycqk="; + aarch64-linux = "sha256-LxVKn5ld2mhsV9ya2V9zXEjtEZRAUWupMgkWXSgrL+8="; + aarch64-darwin = "sha256-jF18swYLWCtT0GerSLkT01M1sGZmkAb6bRZlRL5Bna4="; + armv7l-linux = "sha256-MlN22vWh0FiqgYQqZ1YjhAEtPRGaGv4Rz3J3LF6udts="; } .${system} or throwSystem; @@ -41,7 +41,7 @@ callPackage ./generic.nix rec { # Please backport all compatible updates to the stable release. # This is important for the extension ecosystem. - version = "1.105.16954"; + version = "1.105.17075"; pname = "vscodium"; executableName = "codium"; From 72bd32e562edfb7eac058f2453da61101a6dd2e4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Oct 2025 17:09:19 +0000 Subject: [PATCH 34/78] python3Packages.ahocorasick-rs: 0.22.2 -> 1.0.3 --- pkgs/development/python-modules/ahocorasick-rs/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/ahocorasick-rs/default.nix b/pkgs/development/python-modules/ahocorasick-rs/default.nix index e8c3b47854db..f60ebfe67ef0 100644 --- a/pkgs/development/python-modules/ahocorasick-rs/default.nix +++ b/pkgs/development/python-modules/ahocorasick-rs/default.nix @@ -13,19 +13,19 @@ buildPythonPackage rec { pname = "ahocorasick-rs"; - version = "0.22.2"; + version = "1.0.3"; pyproject = true; src = fetchPypi { inherit version; pname = "ahocorasick_rs"; - hash = "sha256-h/J6ZCLb+U7A+f6ErAGI1KZrXHsvX23rFl8MXj25dpw="; + hash = "sha256-V503Bwp8Idqc2ZiLn7RxKXJztgy0EmWG1tzZn6r8XKU="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; - hash = "sha256-uB3r6+Ewpi4dVke/TsCZltfc+ZABYLOLKuNxw+Jfu/M="; + hash = "sha256-RfgjO0qffiAZynQ/xChd81L8S0sqTGdWvpHPrz3bKlQ="; }; nativeBuildInputs = with rustPlatform; [ From 1c07044214f4965268e93f32d462f7348d3283b0 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 23 Oct 2025 17:31:17 +0200 Subject: [PATCH 35/78] python3Packages.weblate-schemas: 2025.5 -> 2025.6 Changelog: https://github.com/WeblateOrg/weblate_schemas/blob/2025.6/CHANGES.rst --- pkgs/development/python-modules/weblate-schemas/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/weblate-schemas/default.nix b/pkgs/development/python-modules/weblate-schemas/default.nix index 4563d1ee40ac..f3310a3b5094 100644 --- a/pkgs/development/python-modules/weblate-schemas/default.nix +++ b/pkgs/development/python-modules/weblate-schemas/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "weblate-schemas"; - version = "2025.5"; + version = "2025.6"; pyproject = true; src = fetchPypi { pname = "weblate_schemas"; inherit version; - hash = "sha256-ZhFF3UD7lX/KXVDZFOn+Gc1w/cpzzVYVrbpVeJ9/wiE="; + hash = "sha256-Kxu+8CiJ343PmCdY5rSbTqsWmVMLnz9inAH726g5TQQ="; }; build-system = [ setuptools ]; From 85f1dd73bc93b51b4f4076d872bdf4dfeca15d95 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 23 Oct 2025 17:28:45 +0200 Subject: [PATCH 36/78] python3Packages.crispy-bootstrap3: disable tests for Django >= 5.1 --- pkgs/development/python-modules/crispy-bootstrap3/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/python-modules/crispy-bootstrap3/default.nix b/pkgs/development/python-modules/crispy-bootstrap3/default.nix index f7f09e8e6962..e7662f47548c 100644 --- a/pkgs/development/python-modules/crispy-bootstrap3/default.nix +++ b/pkgs/development/python-modules/crispy-bootstrap3/default.nix @@ -35,6 +35,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "crispy_bootstrap3" ]; + # Tests are broken on Django >= 5.1 + # https://github.com/django-crispy-forms/crispy-bootstrap3/issues/12 + doCheck = lib.versionOlder django.version "5.1"; + meta = with lib; { description = "Bootstrap 3 template pack for django-crispy-forms"; homepage = "https://github.com/django-crispy-forms/crispy-bootstrap3"; From 718707b2b6c17b32222598b4cbd9dcd8691e3af1 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Wed, 22 Oct 2025 12:49:30 +0200 Subject: [PATCH 37/78] weblate: 5.13.3 -> 5.14 Changelog: https://github.com/WeblateOrg/weblate/releases/tag/weblate-5.14 --- pkgs/by-name/we/weblate/package.nix | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/we/weblate/package.nix b/pkgs/by-name/we/weblate/package.nix index a84ece94bd64..8a34ea867162 100644 --- a/pkgs/by-name/we/weblate/package.nix +++ b/pkgs/by-name/we/weblate/package.nix @@ -16,18 +16,13 @@ let python = python3.override { packageOverrides = final: prev: { - # https://github.com/django-crispy-forms/crispy-bootstrap3/issues/12 - django = prev.django_5_1; - djangorestframework = prev.djangorestframework.overridePythonAttrs (old: { - # https://github.com/encode/django-rest-framework/discussions/9342 - disabledTests = (old.disabledTests or [ ]) ++ [ "test_invalid_inputs" ]; - }); + django = prev.django_5_2; }; }; in python.pkgs.buildPythonApplication rec { pname = "weblate"; - version = "5.13.3"; + version = "5.14"; pyproject = true; @@ -40,7 +35,7 @@ python.pkgs.buildPythonApplication rec { owner = "WeblateOrg"; repo = "weblate"; tag = "weblate-${version}"; - hash = "sha256-PM5h9RqCMdt0FODE7MoCWv9I+RMFTgjDmSrid59cHOA="; + hash = "sha256-XIaVM9bsgv6qJ1Q/6wzfO7D04WsUEkxNnJlyLd5+bY4="; }; build-system = with python.pkgs; [ setuptools ]; @@ -68,7 +63,7 @@ python.pkgs.buildPythonApplication rec { ''; pythonRelaxDeps = [ - "rapidfuzz" + "certifi" ]; dependencies = From 965ea7b1ea1d9c5125234928919e27bde81ce21c Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 29 Sep 2025 11:27:38 +0200 Subject: [PATCH 38/78] linux: get rid of drvAttrs This is in principle, what Alyssa was already doing[1], but I re-did it because rebasing this against reformats felt too annoying. The previous attempt was reverted because of unrelated regressions in the chain. The `drvAttrs` function made the entire code far more cluttered, harder to understand and didn't serve a real purpose since it was just used a single time. I also got rid of the `kernelConf`-variable and decided to directly use `stdenv.hostPlatform.linux-kernel`, making it more clear where the attributes are actually coming from. [1] f521f4613355f8628fe378dad4c41d3fd8886966 Co-authored-by: Alyssa Ross --- .../linux/kernel/manual-config.nix | 941 +++++++++--------- 1 file changed, 463 insertions(+), 478 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 33dcd77fcbb3..807fd00e504f 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -102,453 +102,11 @@ lib.makeOverridable ( optional optionals optionalString - optionalAttrs maintainers teams platforms ; - drvAttrs = - config_: kernelConf: kernelPatches: configfile: - let - # Folding in `ubootTools` in the default nativeBuildInputs is problematic, as - # it makes updating U-Boot cumbersome, since it will go above the current - # threshold of rebuilds - # - # To prevent these needless rounds of staging for U-Boot builds, we can - # limit the inclusion of ubootTools to target platforms where uImage *may* - # be produced. - # - # This command lists those (kernel-named) platforms: - # .../linux $ grep -l uImage ./arch/*/Makefile | cut -d'/' -f3 | sort - # - # This is still a guesstimation, but since none of our cached platforms - # coincide in that list, this gives us "perfect" decoupling here. - linuxPlatformsUsingUImage = [ - "arc" - "arm" - "csky" - "mips" - "powerpc" - "sh" - "sparc" - "xtensa" - ]; - needsUbootTools = lib.elem stdenv.hostPlatform.linuxArch linuxPlatformsUsingUImage; - - config = - let - attrName = attr: "CONFIG_" + attr; - in - { - isSet = attr: hasAttr (attrName attr) config; - - getValue = attr: if config.isSet attr then getAttr (attrName attr) config else null; - - isYes = attr: (config.getValue attr) == "y"; - - isNo = attr: (config.getValue attr) == "n"; - - isModule = attr: (config.getValue attr) == "m"; - - isEnabled = attr: (config.isModule attr) || (config.isYes attr); - - isDisabled = attr: (!(config.isSet attr)) || (config.isNo attr); - } - // config_; - - isModular = config.isYes "MODULES"; - withRust = config.isYes "RUST"; - - target = kernelConf.target or "vmlinux"; - - buildDTBs = kernelConf.DTB or false; - - # Dependencies that are required to build kernel modules - moduleBuildDependencies = [ - pahole - perl - elfutils - # module makefiles often run uname commands to find out the kernel version - (buildPackages.deterministic-uname.override { inherit modDirVersion; }) - ] - ++ optional (lib.versionAtLeast version "5.13") zstd - ++ optionals withRust [ - rustc-unwrapped - rust-bindgen-unwrapped - ]; - - in - (optionalAttrs isModular { - outputs = [ - "out" - "dev" - "modules" - ]; - }) - // { - __structuredAttrs = true; - - passthru = rec { - inherit - version - modDirVersion - config - kernelPatches - configfile - moduleBuildDependencies - stdenv - ; - inherit - isZen - isHardened - isLibre - withRust - ; - isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true; - baseVersion = lib.head (lib.splitString "-rc" version); - kernelOlder = lib.versionOlder baseVersion; - kernelAtLeast = lib.versionAtLeast baseVersion; - }; - - inherit src; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ - bison - flex - perl - bc - openssl - rsync - gmp - libmpc - mpfr - elfutils - zstd - python3Minimal - kmod - hexdump - ] - ++ optional needsUbootTools ubootTools - ++ optionals (lib.versionAtLeast version "5.2") [ - cpio - pahole - zlib - ] - ++ optionals withRust [ - rustc-unwrapped - rust-bindgen-unwrapped - ]; - - env = { - RUST_LIB_SRC = lib.optionalString withRust rustPlatform.rustLibSrc; - - # avoid leaking Rust source file names into the final binary, which adds - # a false dependency on rust-lib-src on targets with uncompressed kernels - KRUSTFLAGS = lib.optionalString withRust "--remap-path-prefix ${rustPlatform.rustLibSrc}=/"; - }; - - patches = - # kernelPatches can contain config changes and no actual patch - lib.filter (p: p != null) (map (p: p.patch) kernelPatches) - # Required for deterministic builds along with some postPatch magic. - ++ optional (lib.versionOlder version "5.19") ./randstruct-provide-seed.patch - ++ optional (lib.versionAtLeast version "5.19") ./randstruct-provide-seed-5.19.patch - # Linux 5.12 marked certain PowerPC-only symbols as GPL, which breaks - # OpenZFS; this was fixed in Linux 5.19 so we backport the fix - # https://github.com/openzfs/zfs/pull/13367 - ++ - optional - ( - lib.versionAtLeast version "5.12" && lib.versionOlder version "5.19" && stdenv.hostPlatform.isPower - ) - (fetchpatch { - url = "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/patch/?id=d9e5c3e9e75162f845880535957b7fd0b4637d23"; - hash = "sha256-bBOyJcP6jUvozFJU0SPTOf3cmnTQ6ZZ4PlHjiniHXLU="; - }); - - postPatch = '' - # Ensure that depmod gets resolved through PATH - sed -i Makefile -e 's|= /sbin/depmod|= depmod|' - - # Some linux-hardened patches now remove certain files in the scripts directory, so the file may not exist. - [[ -f scripts/ld-version.sh ]] && patchShebangs scripts/ld-version.sh - - # Set randstruct seed to a deterministic but diversified value. Note: - # we could have instead patched gen-random-seed.sh to take input from - # the buildFlags, but that would require also patching the kernel's - # toplevel Makefile to add a variable export. This would be likely to - # cause future patch conflicts. - for file in scripts/gen-randstruct-seed.sh scripts/gcc-plugins/gen-random-seed.sh; do - if [ -f "$file" ]; then - substituteInPlace "$file" \ - --replace NIXOS_RANDSTRUCT_SEED \ - $(echo ${randstructSeed}${src} ${placeholder "configfile"} | sha256sum | cut -d ' ' -f 1 | tr -d '\n') - break - fi - done - - patchShebangs scripts - - # also patch arch-specific install scripts - for i in $(find arch -name install.sh); do - patchShebangs "$i" - done - - # unset $src because the build system tries to use it and spams a bunch of warnings - # see: https://github.com/torvalds/linux/commit/b1992c3772e69a6fd0e3fc81cd4d2820c8b6eca0 - unset src - ''; - - configurePhase = '' - runHook preConfigure - - mkdir build - export buildRoot="$(pwd)/build" - - echo "manual-config configurePhase buildRoot=$buildRoot pwd=$PWD" - - if [ -f "$buildRoot/.config" ]; then - echo "Could not link $buildRoot/.config : file exists" - exit 1 - fi - ln -sv ${configfile} $buildRoot/.config - - # reads the existing .config file and prompts the user for options in - # the current kernel source that are not found in the file. - make "''${makeFlags[@]}" oldconfig - runHook postConfigure - - make "''${makeFlags[@]}" prepare - actualModDirVersion="$(cat $buildRoot/include/config/kernel.release)" - if [ "$actualModDirVersion" != "${modDirVersion}" ]; then - echo "Error: modDirVersion ${modDirVersion} specified in the Nix expression is wrong, it should be: $actualModDirVersion" - exit 1 - fi - - buildFlags+=("KBUILD_BUILD_TIMESTAMP=$(date -u -d @$SOURCE_DATE_EPOCH)") - - cd $buildRoot - ''; - - buildFlags = [ - "KBUILD_BUILD_VERSION=1-NixOS" - target - "vmlinux" # for "perf" and things like that - "scripts_gdb" - ] - ++ optional isModular "modules" - ++ optionals buildDTBs [ - "dtbs" - "DTC_FLAGS=-@" - ] - ++ extraMakeFlags; - - installFlags = [ - "INSTALL_PATH=${placeholder "out"}" - ] - ++ (optional isModular "INSTALL_MOD_PATH=${placeholder "modules"}") - ++ optionals buildDTBs [ - "dtbs_install" - "INSTALL_DTBS_PATH=${placeholder "out"}/dtbs" - ]; - - preInstall = - let - # All we really need to do here is copy the final image and System.map to $out, - # and use the kernel's modules_install, firmware_install, dtbs_install, etc. targets - # for the rest. Easy, right? - # - # Unfortunately for us, the obvious way of getting the built image path, - # make -s image_name, does not work correctly, because some architectures - # (*cough* aarch64 *cough*) change KBUILD_IMAGE on the fly in their install targets, - # so we end up attempting to install the thing we didn't actually build. - # - # Thankfully, there's a way out that doesn't involve just hardcoding everything. - # - # The kernel has an install target, which runs a pretty simple shell script - # (located at scripts/install.sh or arch/$arch/boot/install.sh, depending on - # which kernel version you're looking at) that tries to do something sensible. - # - # (it would be great to hijack this script immediately, as it has all the - # information we need passed to it and we don't need it to try and be smart, - # but unfortunately, the exact location of the scripts differs between kernel - # versions, and they're seemingly not considered to be public API at all) - # - # One of the ways it tries to discover what "something sensible" actually is - # is by delegating to what's supposed to be a user-provided install script - # located at ~/bin/installkernel. - # - # (the other options are: - # - a distribution-specific script at /sbin/installkernel, - # which we can't really create in the sandbox easily - # - an architecture-specific script at arch/$arch/boot/install.sh, - # which attempts to guess _something_ and usually guesses very wrong) - # - # More specifically, the install script exec's into ~/bin/installkernel, if one - # exists, with the following arguments: - # - # $1: $KERNELRELEASE - full kernel version string - # $2: $KBUILD_IMAGE - the final image path - # $3: System.map - path to System.map file, seemingly hardcoded everywhere - # $4: $INSTALL_PATH - path to the destination directory as specified in installFlags - # - # $2 is exactly what we want, so hijack the script and use the knowledge given to it - # by the makefile overlords for our own nefarious ends. - # - # Note that the makefiles specifically look in ~/bin/installkernel, and - # writeShellScriptBin writes the script to /bin/installkernel, - # so HOME needs to be set to just the store path. - # - # FIXME: figure out a less roundabout way of doing this. - installkernel = buildPackages.writeShellScriptBin "installkernel" '' - cp -av $2 $4 - cp -av $3 $4 - ''; - in - '' - installFlags+=("-j$NIX_BUILD_CORES") - export HOME=${installkernel} - ''; - - # Some image types need special install targets (e.g. uImage is installed with make uinstall on arm) - installTargets = [ - (kernelConf.installTarget or ( - if target == "uImage" && stdenv.hostPlatform.linuxArch == "arm" then - "uinstall" - else if - (target == "zImage" || target == "Image.gz" || target == "vmlinuz.efi") - && builtins.elem stdenv.hostPlatform.linuxArch [ - "arm" - "arm64" - "parisc" - "riscv" - ] - then - "zinstall" - else - "install" - ) - ) - ]; - - # We remove a bunch of stuff that is symlinked from other places to save space, - # which trips the broken symlink check. So, just skip it. We'll know if it explodes. - dontCheckForBrokenSymlinks = true; - - postInstall = optionalString isModular '' - mkdir -p $dev - cp vmlinux $dev/ - - mkdir -p $dev/lib/modules/${modDirVersion}/build/scripts - cp -rL ../scripts/gdb/ $dev/lib/modules/${modDirVersion}/build/scripts - - if [ -z "''${dontStrip-}" ]; then - installFlags+=("INSTALL_MOD_STRIP=1") - fi - make modules_install "''${makeFlags[@]}" "''${installFlags[@]}" - unlink $modules/lib/modules/${modDirVersion}/build - - mkdir -p $dev/lib/modules/${modDirVersion}/{build,source} - - # To save space, exclude a bunch of unneeded stuff when copying. - (cd .. && rsync --archive --prune-empty-dirs \ - --exclude='/build/' \ - * $dev/lib/modules/${modDirVersion}/source/) - - cd $dev/lib/modules/${modDirVersion}/source - - cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build - make modules_prepare "''${makeFlags[@]}" O=$dev/lib/modules/${modDirVersion}/build - - # For reproducibility, removes accidental leftovers from a `cc1` call - # from a `try-run` call from the Makefile - rm -f $dev/lib/modules/${modDirVersion}/build/.[0-9]*.d - - # Keep some extra files on some arches (powerpc, aarch64) - for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do - if [ -f "$buildRoot/$f" ]; then - mkdir -p "$(dirname $dev/lib/modules/${modDirVersion}/build/$f)" - cp $buildRoot/$f $dev/lib/modules/${modDirVersion}/build/$f - fi - done - - # !!! No documentation on how much of the source tree must be kept - # If/when kernel builds fail due to missing files, you can add - # them here. Note that we may see packages requiring headers - # from drivers/ in the future; it adds 50M to keep all of its - # headers on 3.10 though. - - chmod u+w -R .. - buildArchDir="$dev/lib/modules/${modDirVersion}/build/arch" - - # Remove unused arches - for d in $(cd arch/; ls); do - if [ -d "$buildArchDir/$d" ]; then continue; fi - if [ -d "$buildArchDir/arm64" ] && [ "$d" = arm ]; then continue; fi - rm -rf arch/$d - done - - # Remove all driver-specific code (50M of which is headers) - rm -fR drivers - - # Keep all headers - find . -type f -name '*.h' -print0 | xargs -0 -r chmod u-w - - # Keep linker scripts (they are required for out-of-tree modules on aarch64) - find . -type f -name '*.lds' -print0 | xargs -0 -r chmod u-w - - # Keep root and arch-specific Makefiles - chmod u-w Makefile arch/*/Makefile* - - # Keep whole scripts dir - chmod u-w -R scripts - - # Delete everything not kept - find . -type f -perm -u=w -print0 | xargs -0 -r rm - - # Delete empty directories - find -empty -type d -delete - ''; - - requiredSystemFeatures = [ "big-parallel" ]; - - meta = { - # https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381 - broken = withRust && lib.versionOlder version "6.12"; - - description = - "The Linux kernel" - + ( - if kernelPatches == [ ] then - "" - else - " (with patches: " + lib.concatStringsSep ", " (map (x: x.name) kernelPatches) + ")" - ); - license = lib.licenses.gpl2Only; - homepage = "https://www.kernel.org/"; - maintainers = [ maintainers.thoughtpolice ]; - teams = [ teams.linux-kernel ]; - platforms = platforms.linux; - badPlatforms = - lib.optionals (lib.versionOlder version "4.15") [ - "riscv32-linux" - "riscv64-linux" - ] - ++ lib.optional (lib.versionOlder version "5.19") "loongarch64-linux"; - timeout = 14400; # 4 hours - identifiers.cpeParts = { - part = "o"; - vendor = "linux"; - product = "linux_kernel"; - inherit version; - update = "*"; - }; - } - // extraMeta; - }; - commonMakeFlags = import ./common-flags.nix { inherit lib @@ -557,49 +115,476 @@ lib.makeOverridable ( extraMakeFlags ; }; + + # Folding in `ubootTools` in the default nativeBuildInputs is problematic, as + # it makes updating U-Boot cumbersome, since it will go above the current + # threshold of rebuilds + # + # To prevent these needless rounds of staging for U-Boot builds, we can + # limit the inclusion of ubootTools to target platforms where uImage *may* + # be produced. + # + # This command lists those (kernel-named) platforms: + # .../linux $ grep -l uImage ./arch/*/Makefile | cut -d'/' -f3 | sort + # + # This is still a guesstimation, but since none of our cached platforms + # coincide in that list, this gives us "perfect" decoupling here. + linuxPlatformsUsingUImage = [ + "arc" + "arm" + "csky" + "mips" + "powerpc" + "sh" + "sparc" + "xtensa" + ]; + needsUbootTools = lib.elem stdenv.hostPlatform.linuxArch linuxPlatformsUsingUImage; + + configHelpers = + let + attrName = attr: "CONFIG_" + attr; + in + { + isSet = attr: hasAttr (attrName attr) config; + + getValue = attr: if configHelpers.isSet attr then getAttr (attrName attr) config else null; + + isYes = attr: (configHelpers.getValue attr) == "y"; + + isNo = attr: (configHelpers.getValue attr) == "n"; + + isModule = attr: (configHelpers.getValue attr) == "m"; + + isEnabled = attr: (configHelpers.isModule attr) || (configHelpers.isYes attr); + + isDisabled = attr: (!(configHelpers.isSet attr)) || (configHelpers.isNo attr); + } + // config; + + isModular = configHelpers.isYes "MODULES"; + withRust = configHelpers.isYes "RUST"; + + target = stdenv.hostPlatform.linux-kernel.target or "vmlinux"; + + buildDTBs = stdenv.hostPlatform.linux-kernel.DTB or false; + + # Dependencies that are required to build kernel modules + moduleBuildDependencies = [ + pahole + perl + elfutils + # module makefiles often run uname commands to find out the kernel version + (buildPackages.deterministic-uname.override { inherit modDirVersion; }) + ] + ++ optional (lib.versionAtLeast version "5.13") zstd + ++ optionals withRust [ + rustc-unwrapped + rust-bindgen-unwrapped + ]; in - stdenv.mkDerivation ( - builtins.foldl' lib.recursiveUpdate { } [ - (drvAttrs config stdenv.hostPlatform.linux-kernel kernelPatches configfile) - { - inherit pname version; + stdenv.mkDerivation { + inherit pname version src; - enableParallelBuilding = true; + __structuredAttrs = true; - hardeningDisable = [ - "bindnow" - "format" - "fortify" - "stackprotector" - "pic" - "pie" - ]; + enableParallelBuilding = true; - makeFlags = [ - "O=$(buildRoot)" + hardeningDisable = [ + "bindnow" + "format" + "fortify" + "stackprotector" + "pic" + "pie" + ]; - # We have a `modules` variable in the environment for our - # split output, but the kernel Makefiles also define their - # own `modules` variable. Their definition wins, but Make - # remembers that the variable was originally from the - # environment and exports it to all the build recipes. This - # breaks the build with an “Argument list too long” error due - # to passing the huge list of every module object file in the - # environment of every process invoked by every build recipe. - # - # We use `--eval` here to undefine the inherited environment - # variable before any Makefiles are read, ensuring that the - # kernel’s definition creates a new, unexported variable. - "--eval=undefine modules" - ] - ++ commonMakeFlags; + ${if isModular then "outputs" else null} = [ + "out" + "dev" + "modules" + ]; - passthru = { inherit commonMakeFlags; }; + # We remove a bunch of stuff that is symlinked from other places to save space, + # which trips the broken symlink check. So, just skip it. We'll know if it explodes. + dontCheckForBrokenSymlinks = true; - karch = stdenv.hostPlatform.linuxArch; - } - (optionalAttrs (pos != null) { inherit pos; }) + patches = + # kernelPatches can contain config changes and no actual patch + lib.filter (p: p != null) (map (p: p.patch) kernelPatches) + # Required for deterministic builds along with some postPatch magic. + ++ optional (lib.versionOlder version "5.19") ./randstruct-provide-seed.patch + ++ optional (lib.versionAtLeast version "5.19") ./randstruct-provide-seed-5.19.patch + # Linux 5.12 marked certain PowerPC-only symbols as GPL, which breaks + # OpenZFS; this was fixed in Linux 5.19 so we backport the fix + # https://github.com/openzfs/zfs/pull/13367 + ++ + optional + ( + lib.versionAtLeast version "5.12" && lib.versionOlder version "5.19" && stdenv.hostPlatform.isPower + ) + (fetchpatch { + url = "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/patch/?id=d9e5c3e9e75162f845880535957b7fd0b4637d23"; + hash = "sha256-bBOyJcP6jUvozFJU0SPTOf3cmnTQ6ZZ4PlHjiniHXLU="; + }); + + buildFlags = [ + "KBUILD_BUILD_VERSION=1-NixOS" + stdenv.hostPlatform.linux-kernel.target + "vmlinux" # for "perf" and things like that + "scripts_gdb" ] - ) + ++ optional isModular "modules" + ++ optionals buildDTBs [ + "dtbs" + "DTC_FLAGS=-@" + ] + ++ extraMakeFlags; + + installFlags = [ + "INSTALL_PATH=${placeholder "out"}" + ] + ++ (optional isModular "INSTALL_MOD_PATH=${placeholder "modules"}") + ++ optionals buildDTBs [ + "dtbs_install" + "INSTALL_DTBS_PATH=${placeholder "out"}/dtbs" + ]; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ + bison + flex + perl + bc + openssl + rsync + gmp + libmpc + mpfr + elfutils + zstd + python3Minimal + kmod + hexdump + ] + ++ optional needsUbootTools ubootTools + ++ optionals (lib.versionAtLeast version "5.2") [ + cpio + pahole + zlib + ] + ++ optionals withRust [ + rustc-unwrapped + rust-bindgen-unwrapped + ]; + + env = { + RUST_LIB_SRC = lib.optionalString withRust rustPlatform.rustLibSrc; + + # avoid leaking Rust source file names into the final binary, which adds + # a false dependency on rust-lib-src on targets with uncompressed kernels + KRUSTFLAGS = lib.optionalString withRust "--remap-path-prefix ${rustPlatform.rustLibSrc}=/"; + }; + + makeFlags = [ + "O=$(buildRoot)" + + # We have a `modules` variable in the environment for our + # split output, but the kernel Makefiles also define their + # own `modules` variable. Their definition wins, but Make + # remembers that the variable was originally from the + # environment and exports it to all the build recipes. This + # breaks the build with an “Argument list too long” error due + # to passing the huge list of every module object file in the + # environment of every process invoked by every build recipe. + # + # We use `--eval` here to undefine the inherited environment + # variable before any Makefiles are read, ensuring that the + # kernel’s definition creates a new, unexported variable. + "--eval=undefine modules" + ] + ++ commonMakeFlags; + + postPatch = '' + # Ensure that depmod gets resolved through PATH + sed -i Makefile -e 's|= /sbin/depmod|= depmod|' + + # Some linux-hardened patches now remove certain files in the scripts directory, so the file may not exist. + [[ -f scripts/ld-version.sh ]] && patchShebangs scripts/ld-version.sh + + # Set randstruct seed to a deterministic but diversified value. Note: + # we could have instead patched gen-random-seed.sh to take input from + # the buildFlags, but that would require also patching the kernel's + # toplevel Makefile to add a variable export. This would be likely to + # cause future patch conflicts. + for file in scripts/gen-randstruct-seed.sh scripts/gcc-plugins/gen-random-seed.sh; do + if [ -f "$file" ]; then + substituteInPlace "$file" \ + --replace NIXOS_RANDSTRUCT_SEED \ + $(echo ${randstructSeed}${src} ${placeholder "configfile"} | sha256sum | cut -d ' ' -f 1 | tr -d '\n') + break + fi + done + + patchShebangs scripts + + # also patch arch-specific install scripts + for i in $(find arch -name install.sh); do + patchShebangs "$i" + done + + # unset $src because the build system tries to use it and spams a bunch of warnings + # see: https://github.com/torvalds/linux/commit/b1992c3772e69a6fd0e3fc81cd4d2820c8b6eca0 + unset src + ''; + + configurePhase = '' + runHook preConfigure + + mkdir build + export buildRoot="$(pwd)/build" + + echo "manual-config configurePhase buildRoot=$buildRoot pwd=$PWD" + + if [ -f "$buildRoot/.config" ]; then + echo "Could not link $buildRoot/.config : file exists" + exit 1 + fi + ln -sv ${configfile} $buildRoot/.config + + # reads the existing .config file and prompts the user for options in + # the current kernel source that are not found in the file. + make "''${makeFlags[@]}" oldconfig + runHook postConfigure + + make "''${makeFlags[@]}" prepare + actualModDirVersion="$(cat $buildRoot/include/config/kernel.release)" + if [ "$actualModDirVersion" != "${modDirVersion}" ]; then + echo "Error: modDirVersion ${modDirVersion} specified in the Nix expression is wrong, it should be: $actualModDirVersion" + exit 1 + fi + + buildFlags+=("KBUILD_BUILD_TIMESTAMP=$(date -u -d @$SOURCE_DATE_EPOCH)") + + cd $buildRoot + ''; + + postInstall = optionalString isModular '' + mkdir -p $dev + cp vmlinux $dev/ + + mkdir -p $dev/lib/modules/${modDirVersion}/build/scripts + cp -rL ../scripts/gdb/ $dev/lib/modules/${modDirVersion}/build/scripts + + if [ -z "''${dontStrip-}" ]; then + installFlags+=("INSTALL_MOD_STRIP=1") + fi + make modules_install "''${makeFlags[@]}" "''${installFlags[@]}" + unlink $modules/lib/modules/${modDirVersion}/build + + mkdir -p $dev/lib/modules/${modDirVersion}/{build,source} + + # To save space, exclude a bunch of unneeded stuff when copying. + (cd .. && rsync --archive --prune-empty-dirs \ + --exclude='/build/' \ + * $dev/lib/modules/${modDirVersion}/source/) + + cd $dev/lib/modules/${modDirVersion}/source + + cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build + make modules_prepare "''${makeFlags[@]}" O=$dev/lib/modules/${modDirVersion}/build + + # For reproducibility, removes accidental leftovers from a `cc1` call + # from a `try-run` call from the Makefile + rm -f $dev/lib/modules/${modDirVersion}/build/.[0-9]*.d + + # Keep some extra files on some arches (powerpc, aarch64) + for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do + if [ -f "$buildRoot/$f" ]; then + mkdir -p "$(dirname $dev/lib/modules/${modDirVersion}/build/$f)" + cp $buildRoot/$f $dev/lib/modules/${modDirVersion}/build/$f + fi + done + + # !!! No documentation on how much of the source tree must be kept + # If/when kernel builds fail due to missing files, you can add + # them here. Note that we may see packages requiring headers + # from drivers/ in the future; it adds 50M to keep all of its + # headers on 3.10 though. + + chmod u+w -R .. + buildArchDir="$dev/lib/modules/${modDirVersion}/build/arch" + + # Remove unused arches + for d in $(cd arch/; ls); do + if [ -d "$buildArchDir/$d" ]; then continue; fi + if [ -d "$buildArchDir/arm64" ] && [ "$d" = arm ]; then continue; fi + rm -rf arch/$d + done + + # Remove all driver-specific code (50M of which is headers) + rm -fR drivers + + # Keep all headers + find . -type f -name '*.h' -print0 | xargs -0 -r chmod u-w + + # Keep linker scripts (they are required for out-of-tree modules on aarch64) + find . -type f -name '*.lds' -print0 | xargs -0 -r chmod u-w + + # Keep root and arch-specific Makefiles + chmod u-w Makefile arch/*/Makefile* + + # Keep whole scripts dir + chmod u-w -R scripts + + # Delete everything not kept + find . -type f -perm -u=w -print0 | xargs -0 -r rm + + # Delete empty directories + find -empty -type d -delete + ''; + + preInstall = + let + # All we really need to do here is copy the final image and System.map to $out, + # and use the kernel's modules_install, firmware_install, dtbs_install, etc. targets + # for the rest. Easy, right? + # + # Unfortunately for us, the obvious way of getting the built image path, + # make -s image_name, does not work correctly, because some architectures + # (*cough* aarch64 *cough*) change KBUILD_IMAGE on the fly in their install targets, + # so we end up attempting to install the thing we didn't actually build. + # + # Thankfully, there's a way out that doesn't involve just hardcoding everything. + # + # The kernel has an install target, which runs a pretty simple shell script + # (located at scripts/install.sh or arch/$arch/boot/install.sh, depending on + # which kernel version you're looking at) that tries to do something sensible. + # + # (it would be great to hijack this script immediately, as it has all the + # information we need passed to it and we don't need it to try and be smart, + # but unfortunately, the exact location of the scripts differs between kernel + # versions, and they're seemingly not considered to be public API at all) + # + # One of the ways it tries to discover what "something sensible" actually is + # is by delegating to what's supposed to be a user-provided install script + # located at ~/bin/installkernel. + # + # (the other options are: + # - a distribution-specific script at /sbin/installkernel, + # which we can't really create in the sandbox easily + # - an architecture-specific script at arch/$arch/boot/install.sh, + # which attempts to guess _something_ and usually guesses very wrong) + # + # More specifically, the install script exec's into ~/bin/installkernel, if one + # exists, with the following arguments: + # + # $1: $KERNELRELEASE - full kernel version string + # $2: $KBUILD_IMAGE - the final image path + # $3: System.map - path to System.map file, seemingly hardcoded everywhere + # $4: $INSTALL_PATH - path to the destination directory as specified in installFlags + # + # $2 is exactly what we want, so hijack the script and use the knowledge given to it + # by the makefile overlords for our own nefarious ends. + # + # Note that the makefiles specifically look in ~/bin/installkernel, and + # writeShellScriptBin writes the script to /bin/installkernel, + # so HOME needs to be set to just the store path. + # + # FIXME: figure out a less roundabout way of doing this. + installkernel = buildPackages.writeShellScriptBin "installkernel" '' + cp -av $2 $4 + cp -av $3 $4 + ''; + in + '' + installFlags+=("-j$NIX_BUILD_CORES") + export HOME=${installkernel} + ''; + + requiredSystemFeatures = [ "big-parallel" ]; + + passthru = rec { + inherit + version + modDirVersion + config + kernelPatches + configfile + moduleBuildDependencies + stdenv + commonMakeFlags + ; + inherit + isZen + isHardened + isLibre + withRust + ; + isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true; + baseVersion = lib.head (lib.splitString "-rc" version); + kernelOlder = lib.versionOlder baseVersion; + kernelAtLeast = lib.versionAtLeast baseVersion; + }; + + # Some image types need special install targets (e.g. uImage is installed with make uinstall on arm) + installTargets = [ + (stdenv.hostPlatform.linux-kernel.installTarget or ( + if target == "uImage" && stdenv.hostPlatform.linuxArch == "arm" then + "uinstall" + else if + (target == "zImage" || target == "Image.gz" || target == "vmlinuz.efi") + && builtins.elem stdenv.hostPlatform.linuxArch [ + "arm" + "arm64" + "parisc" + "riscv" + ] + then + "zinstall" + else + "install" + ) + ) + ]; + + karch = stdenv.hostPlatform.linuxArch; + + pos = lib.optionalDrvAttr (pos != null) pos; + + meta = { + # https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381 + broken = withRust && lib.versionOlder version "6.12"; + + description = + "The Linux kernel" + + ( + if kernelPatches == [ ] then + "" + else + " (with patches: " + lib.concatStringsSep ", " (map (x: x.name) kernelPatches) + ")" + ); + license = lib.licenses.gpl2Only; + homepage = "https://www.kernel.org/"; + maintainers = [ maintainers.thoughtpolice ]; + teams = [ teams.linux-kernel ]; + platforms = platforms.linux; + badPlatforms = + lib.optionals (lib.versionOlder version "4.15") [ + "riscv32-linux" + "riscv64-linux" + ] + ++ lib.optional (lib.versionOlder version "5.19") "loongarch64-linux"; + timeout = 14400; # 4 hours + identifiers.cpeParts = { + part = "o"; + vendor = "linux"; + product = "linux_kernel"; + inherit version; + update = "*"; + }; + } + // extraMeta; + } ) From 845e340ed98ef6d8a5c5d7069663f2cd034e508a Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 29 Sep 2025 11:45:57 +0200 Subject: [PATCH 39/78] linux: drop hacky passing around of positions This is something I introduced in 63185299f4c8beecac7e204dc20394f38e68a477 to make sure the `version`/`src` attributes point to the files that declare the version such that we get pinged by ofborg for updates. This is long obsolete since the versions are maintained in a JSON file now. Also, the kernel team is listed as owner in the ci/OWNERS file for the entire subtree, so we definitely get pinged by CI nowadays. Hence, remove the hackery. --- pkgs/os-specific/linux/kernel/generic.nix | 59 +++++++------------ .../linux/kernel/manual-config.nix | 4 -- 2 files changed, 20 insertions(+), 43 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index cd3fc4a73b21..0121686b086a 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -24,6 +24,8 @@ let overridableKernel = lib.makeOverridable ( # The kernel source tarball. { + pname ? "linux", + src, # The kernel version. @@ -96,25 +98,6 @@ let # files. let - # Dirty hack to make sure that `version` & `src` have - # `` as position - # when using `builtins.unsafeGetAttrPos`. - # - # This is to make sure that ofborg actually detects changes in the kernel derivation - # and pings all maintainers. - # - # For further context, see https://github.com/NixOS/nixpkgs/pull/143113#issuecomment-953319957 - basicArgs = removeAttrs args ( - lib.filter ( - x: - !(builtins.elem x [ - "version" - "pname" - "src" - ]) - ) (lib.attrNames args) - ); - # Combine the `features' attribute sets of all the kernel patches. kernelFeatures = lib.foldr (x: y: (x.features or { }) // y) ( { @@ -298,26 +281,25 @@ let }; }; # end of configfile derivation - kernel = (callPackage ./manual-config.nix { inherit lib stdenv buildPackages; }) ( - basicArgs - // { - inherit - kernelPatches - randstructSeed - extraMakeFlags - extraMeta - configfile - modDirVersion - ; - pos = builtins.unsafeGetAttrPos "version" args; + kernel = (callPackage ./manual-config.nix { inherit lib stdenv buildPackages; }) { + inherit + pname + version + src + kernelPatches + randstructSeed + extraMakeFlags + extraMeta + configfile + modDirVersion + ; - config = { - CONFIG_MODULES = "y"; - CONFIG_FW_LOADER = "y"; - CONFIG_RUST = if withRust then "y" else "n"; - }; - } - ); + config = { + CONFIG_MODULES = "y"; + CONFIG_FW_LOADER = "y"; + CONFIG_RUST = if withRust then "y" else "n"; + }; + }; in kernel.overrideAttrs ( @@ -326,7 +308,6 @@ let passthru = previousAttrs.passthru or { } // extraPassthru - // basicArgs // { features = kernelFeatures; inherit diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 807fd00e504f..0839eaa9fdd9 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -51,8 +51,6 @@ lib.makeOverridable ( version, # The kernel pname (should be set for variants) pname ? "linux", - # Position of the Linux build expression - pos ? null, # Additional kernel make flags extraMakeFlags ? [ ], # The name of the kernel module directory @@ -551,8 +549,6 @@ lib.makeOverridable ( karch = stdenv.hostPlatform.linuxArch; - pos = lib.optionalDrvAttr (pos != null) pos; - meta = { # https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381 broken = withRust && lib.versionOlder version "6.12"; From 1965f3c77d37f0f03b77ebb9095a9222646baeb5 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 29 Sep 2025 12:13:05 +0200 Subject: [PATCH 40/78] linux: manual-config.nix -> build.nix Since I started touching this subsystem, I found the name confusing since this is the part where we actually compile the kernel and we have a ready-to-use configuration. The stated goal of the commit introducing it[1] is to provide a function to > make it possible to build a kernel with a user provided .config. Considering that this is supposed to be a differentiation from other build mechanisms and nowadays this is the only way to build kernels in nixpkgs, I figured that `build.nix` is a better name. `pkgs.linuxManualConfig` isn't renamed on purpose: Kloenk and I are planning to do more involved work and it may become necessary to change parts of the API. So asking users to do a migration now just to add another one soon isn't worth it. [1] bf7467cbb1f08470854db73ee2c07d9f896aefc8 --- doc/packages/linux.section.md | 4 ++-- .../os-specific/linux/kernel/{manual-config.nix => build.nix} | 0 pkgs/os-specific/linux/kernel/generic.nix | 2 +- pkgs/top-level/linux-kernels.nix | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename pkgs/os-specific/linux/kernel/{manual-config.nix => build.nix} (100%) diff --git a/doc/packages/linux.section.md b/doc/packages/linux.section.md index 8551c77d940d..9722b22fd2f5 100644 --- a/doc/packages/linux.section.md +++ b/doc/packages/linux.section.md @@ -5,7 +5,7 @@ The Nix expressions to build the Linux kernel are in [`pkgs/os-specific/linux/ke The function [`pkgs.buildLinux`](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/generic.nix) builds a kernel with [common configuration values](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/common-config.nix). This is the preferred option unless you have a very specific use case. Most kernels packaged in Nixpkgs are built that way, and it will also generate kernels suitable for NixOS. -[`pkgs.linuxManualConfig`](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/manual-config.nix) requires a complete configuration to be passed. +[`pkgs.linuxManualConfig`](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/build.nix) requires a complete configuration to be passed. It has fewer additional features than `pkgs.buildLinux`, which provides common configuration values and exposes the `features` attribute, as explained below. Both functions have an argument `kernelPatches` which should be a list of `{name, patch, extraConfig}` attribute sets, where `name` is the name of the patch (which is included in the kernel’s `meta.description` attribute), `patch` is the patch itself (possibly compressed), and `extraConfig` (optional) is a string specifying extra options to be concatenated to the kernel configuration file (`.config`). @@ -75,7 +75,7 @@ pkgs.linuxPackages_custom { ::: -Additional attributes can be used with `linuxManualConfig` for further customisation instead of `linuxPackages_custom`. You're encouraged to read [the `pkgs.linuxManualConfig` source code](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/manual-config.nix) to understand how to use them. +Additional attributes can be used with `linuxManualConfig` for further customisation instead of `linuxPackages_custom`. You're encouraged to read [the `pkgs.linuxManualConfig` source code](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/build.nix) to understand how to use them. To edit the `.config` file for Linux X.Y from within Nix, proceed as follows: diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/build.nix similarity index 100% rename from pkgs/os-specific/linux/kernel/manual-config.nix rename to pkgs/os-specific/linux/kernel/build.nix diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 0121686b086a..8eecd334df70 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -281,7 +281,7 @@ let }; }; # end of configfile derivation - kernel = (callPackage ./manual-config.nix { inherit lib stdenv buildPackages; }) { + kernel = (callPackage ./build.nix { inherit lib stdenv buildPackages; }) { inherit pname version diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 0a43f3394372..879f525ab0cb 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -815,7 +815,7 @@ in linux_mptcp = throw "'linux_mptcp' has been moved to https://github.com/teto/mptcp-flake"; }; - manualConfig = callPackage ../os-specific/linux/kernel/manual-config.nix { }; + manualConfig = callPackage ../os-specific/linux/kernel/build.nix { }; customPackage = { From 6d8b8f0766c87b354bc12e98d2cc32d7f7425557 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 24 Oct 2025 19:41:00 +0000 Subject: [PATCH 41/78] quarkus: 3.28.3 -> 3.28.5 --- pkgs/by-name/qu/quarkus/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/qu/quarkus/package.nix b/pkgs/by-name/qu/quarkus/package.nix index b86793c4208e..7ca69a5dbdf0 100644 --- a/pkgs/by-name/qu/quarkus/package.nix +++ b/pkgs/by-name/qu/quarkus/package.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "quarkus-cli"; - version = "3.28.3"; + version = "3.28.5"; src = fetchurl { url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz"; - hash = "sha256-ulB6jy3J1vKe1rO17p8Vw0V8C/sDcXYcuu6b2e3L6Ps="; + hash = "sha256-uXDZIFqH+PgI0MSZb3SYFpQm2XMFdXBdPZrjb7DT1Bg="; }; nativeBuildInputs = [ makeWrapper ]; From f89b079591c41fcd28841e146f80364bc18ca838 Mon Sep 17 00:00:00 2001 From: nartsisss Date: Sat, 25 Oct 2025 09:41:02 +0300 Subject: [PATCH 42/78] kide: init at 1.0.40 --- pkgs/by-name/ki/kide/package.nix | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 pkgs/by-name/ki/kide/package.nix diff --git a/pkgs/by-name/ki/kide/package.nix b/pkgs/by-name/ki/kide/package.nix new file mode 100644 index 000000000000..ae5cdbde45d9 --- /dev/null +++ b/pkgs/by-name/ki/kide/package.nix @@ -0,0 +1,63 @@ +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + fetchNpmDeps, + cargo-tauri, + nodejs, + npmHooks, + pkg-config, + wrapGAppsHook4, + openssl, + webkitgtk_4_1, + nix-update-script, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "kide"; + version = "1.0.40"; + + src = fetchFromGitHub { + owner = "openobserve"; + repo = "kide"; + tag = "v${finalAttrs.version}"; + hash = "sha256-lRkFPS+hkACj3CxWde4B7phHUMh+2643Jgd0Wt3nUSo="; + }; + + cargoHash = "sha256-/PdUaSW7YMFDgMFqA+7ePNPraPhMSNqFaONIEFubtNc="; + + npmDeps = fetchNpmDeps { + inherit (finalAttrs) pname version src; + hash = "sha256-1BY2oEnpldl+m8hUg9bszAyR67M8ErbcNaNE676c9hU="; + }; + + nativeBuildInputs = [ + cargo-tauri.hook + nodejs + npmHooks.npmConfigHook + pkg-config + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook4 ]; + + buildInputs = [ + openssl + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + webkitgtk_4_1 + ]; + + cargoRoot = "src-tauri"; + buildAndTestSubdir = finalAttrs.cargoRoot; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Fast and lightweight Kubernetes IDE"; + homepage = "https://github.com/openobserve/kide"; + changelog = "https://github.com/openobserve/kide/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.asl20; + inherit (cargo-tauri.hook.meta) platforms; + maintainers = with lib.maintainers; [ nartsiss ]; + mainProgram = "kide"; + }; +}) From e519322e9f969e8bef8c0c92d205a6b7ad87115c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 25 Oct 2025 09:26:24 +0000 Subject: [PATCH 43/78] n8n: 1.115.3 -> 1.116.2 --- pkgs/by-name/n8/n8n/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/n8/n8n/package.nix b/pkgs/by-name/n8/n8n/package.nix index 382c583f0475..ad76b10d9ed7 100644 --- a/pkgs/by-name/n8/n8n/package.nix +++ b/pkgs/by-name/n8/n8n/package.nix @@ -17,19 +17,19 @@ stdenv.mkDerivation (finalAttrs: { pname = "n8n"; - version = "1.115.3"; + version = "1.116.2"; src = fetchFromGitHub { owner = "n8n-io"; repo = "n8n"; tag = "n8n@${finalAttrs.version}"; - hash = "sha256-9UDPckn+0xtwZcLaHCzhC4yKdDqjat0F4nHuxVdIRMA="; + hash = "sha256-pHrJ/l3L+asf0ZXcWVvOzzdoDYnAUvaR9GxB/m/jvzU="; }; pnpmDeps = pnpm_10.fetchDeps { inherit (finalAttrs) pname version src; fetcherVersion = 2; - hash = "sha256-mJJIdLtJ3E4eMub4szJA+40ZL4WkLNupwqvq3JnFxtk="; + hash = "sha256-uBnb781B84Rm9gbco7p5iDp18sfjbULbedaRIk7kaLE="; }; nativeBuildInputs = [ From e059a98bd44d58a18c21444359115a5e1935c6d7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 25 Oct 2025 12:01:38 +0000 Subject: [PATCH 44/78] odhcp6c: 0-unstable-2025-10-17 -> 0-unstable-2025-10-21 --- pkgs/by-name/od/odhcp6c/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/od/odhcp6c/package.nix b/pkgs/by-name/od/odhcp6c/package.nix index c156d412dbbd..fa6b0f113122 100644 --- a/pkgs/by-name/od/odhcp6c/package.nix +++ b/pkgs/by-name/od/odhcp6c/package.nix @@ -8,12 +8,12 @@ stdenv.mkDerivation { pname = "odhcp6c"; - version = "0-unstable-2025-10-17"; + version = "0-unstable-2025-10-21"; src = fetchgit { url = "https://git.openwrt.org/project/odhcp6c.git"; - rev = "d7afeea2b9650c64fcf915cbb3369577247b96ed"; - hash = "sha256-6L/yY8u5JBw1oywj2pg+0rW2397KBNAejrg5VKpYxLw="; + rev = "77e1ae21e67f81840024ffe5bb7cf69a8fb0d2f0"; + hash = "sha256-aOW0rOGd4YwnfXjsUj6HHy8zf0FJYFjsKMWJ5yhUl5g="; }; nativeBuildInputs = [ cmake ]; From 7b6288a6b47ff03cb1217c43d45ff357410c2142 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Sat, 25 Oct 2025 19:01:25 +0530 Subject: [PATCH 45/78] lact: 0.8.1 -> 0.8.2 --- pkgs/by-name/la/lact/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/la/lact/package.nix b/pkgs/by-name/la/lact/package.nix index f54ef55f417b..6a0f2c0e2176 100644 --- a/pkgs/by-name/la/lact/package.nix +++ b/pkgs/by-name/la/lact/package.nix @@ -23,16 +23,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "lact"; - version = "0.8.1"; + version = "0.8.2"; src = fetchFromGitHub { owner = "ilya-zlobintsev"; repo = "LACT"; tag = "v${finalAttrs.version}"; - hash = "sha256-bgMQTiNeJR6zPTy/YpQ0oI1oGBzCf+VtBUn6pgADZAY="; + hash = "sha256-ZfUzsSdMLv6IaSbLkz9LBvdB4cS4oBE+R5toi9T7vR0="; }; - cargoHash = "sha256-VxyYnX6AW+AS4NOB1XZXi2Dyrf4rtJzKHXMYwgLY6pQ="; + cargoHash = "sha256-K1/D5vi88Wjcvu/KZOkVr4q2MdMHTkhtyV8k8bvcGwg="; nativeBuildInputs = [ pkg-config From b779719b234da3cc28cc9014ae6f6ba2a0879bec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Heredia=20Montiel?= Date: Sat, 25 Oct 2025 08:42:20 -0600 Subject: [PATCH 46/78] linux/hardened/patches/6.12: v6.12.43-hardened1 -> v6.12.50-hardened1 --- pkgs/os-specific/linux/kernel/hardened/patches.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json index f9138a4b60ed..c8661d3a0fb0 100644 --- a/pkgs/os-specific/linux/kernel/hardened/patches.json +++ b/pkgs/os-specific/linux/kernel/hardened/patches.json @@ -2,11 +2,11 @@ "6.12": { "patch": { "extra": "-hardened1", - "name": "linux-hardened-v6.12.43-hardened1.patch", - "sha256": "10hp4718agz7bj4wnis7g1c8ahnwn5917a5v88y9iwawrjm9148v", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/v6.12.43-hardened1/linux-hardened-v6.12.43-hardened1.patch" + "name": "linux-hardened-v6.12.50-hardened1.patch", + "sha256": "0bzq364d6i7wis9sdljjkzmbvjnv45hmyqikmxagps2rdh57916p", + "url": "https://github.com/anthraxx/linux-hardened/releases/download/v6.12.50-hardened1/linux-hardened-v6.12.50-hardened1.patch" }, - "sha256": "1vmxywg11z946i806sg7rk7jr9px87spmwwbzjxpps2nsjybpjqg", - "version": "6.12.43" + "sha256": "19bjzhxasj4r6m1lhsa486a96axfigbm06kqa2lwa7y2s5sbsdf4", + "version": "6.12.50" } } From 7b646716558d025eacba4ccc26bbf8ecc8d441eb Mon Sep 17 00:00:00 2001 From: superherointj <5861043+superherointj@users.noreply.github.com> Date: Sun, 19 Oct 2025 10:17:25 -0300 Subject: [PATCH 47/78] etcd_3_5: move to pkgs/by-name --- .../etcd/3_5/default.nix => by-name/et/etcd_3_5/package.nix} | 0 pkgs/{servers/etcd/3_5 => by-name/et/etcd_3_5}/update.sh | 4 ++-- pkgs/top-level/all-packages.nix | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) rename pkgs/{servers/etcd/3_5/default.nix => by-name/et/etcd_3_5/package.nix} (100%) rename pkgs/{servers/etcd/3_5 => by-name/et/etcd_3_5}/update.sh (95%) diff --git a/pkgs/servers/etcd/3_5/default.nix b/pkgs/by-name/et/etcd_3_5/package.nix similarity index 100% rename from pkgs/servers/etcd/3_5/default.nix rename to pkgs/by-name/et/etcd_3_5/package.nix diff --git a/pkgs/servers/etcd/3_5/update.sh b/pkgs/by-name/et/etcd_3_5/update.sh similarity index 95% rename from pkgs/servers/etcd/3_5/update.sh rename to pkgs/by-name/et/etcd_3_5/update.sh index dc428420cbc9..7cc2632205fb 100755 --- a/pkgs/servers/etcd/3_5/update.sh +++ b/pkgs/by-name/et/etcd_3_5/update.sh @@ -30,7 +30,7 @@ if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then ETCD_SRC_HASH=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $ETCD_SRC_HASH) setKV () { - sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "$ETCD_PATH/default.nix" + sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "$ETCD_PATH/package.nix" } setKV version $LATEST_VERSION @@ -63,7 +63,7 @@ if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then # `git` flag here is to be used by local maintainers to speed up the bump process if [ $# -eq 1 ] && [ "$1" = "git" ]; then git switch -c "package-$ETCD_PKG_NAME-$LATEST_VERSION" - git add "$ETCD_PATH"/default.nix + git add "$ETCD_PATH"/package.nix git commit -m "$ETCD_PKG_NAME: $OLD_VERSION -> $LATEST_VERSION Release: https://github.com/etcd-io/etcd/releases/tag/$LATEST_TAG" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e474e7028100..7f9772a9ea4b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9250,7 +9250,6 @@ with pkgs; dodgy = with python3Packages; toPythonApplication dodgy; etcd = etcd_3_5; - etcd_3_5 = callPackage ../servers/etcd/3_5 { }; prosody = callPackage ../servers/xmpp/prosody { withExtraLibs = [ ]; From fdd3d694bc035d11375c66b027b526b2006a4930 Mon Sep 17 00:00:00 2001 From: superherointj <5861043+superherointj@users.noreply.github.com> Date: Sun, 19 Oct 2025 14:17:55 -0300 Subject: [PATCH 48/78] etcd_3_6: fix update script --- pkgs/by-name/et/etcd_3_6/update.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/et/etcd_3_6/update.sh b/pkgs/by-name/et/etcd_3_6/update.sh index 1330f88d9085..8bcc05d986ca 100755 --- a/pkgs/by-name/et/etcd_3_6/update.sh +++ b/pkgs/by-name/et/etcd_3_6/update.sh @@ -30,7 +30,7 @@ if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then ETCD_SRC_HASH=$(nix hash to-sri --type sha256 $ETCD_SRC_HASH) setKV () { - sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "$ETCD_PATH/default.nix" + sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "$ETCD_PATH/package.nix" } setKV version $LATEST_VERSION @@ -63,7 +63,7 @@ if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then # `git` flag here is to be used by local maintainers to speed up the bump process if [ $# -eq 1 ] && [ "$1" = "git" ]; then git switch -c "package-$ETCD_PKG_NAME-$LATEST_VERSION" - git add "$ETCD_PATH"/default.nix + git add "$ETCD_PATH"/package.nix git commit -m "$ETCD_PKG_NAME: $OLD_VERSION -> $LATEST_VERSION Release: https://github.com/etcd-io/etcd/releases/tag/$LATEST_TAG" From 9b09e0ee623a271f9292083d6d62550034758486 Mon Sep 17 00:00:00 2001 From: superherointj <5861043+superherointj@users.noreply.github.com> Date: Sun, 19 Oct 2025 10:20:36 -0300 Subject: [PATCH 49/78] etcd: move to pkgs/by-name --- pkgs/{servers => by-name/et}/etcd/README.md | 0 pkgs/by-name/et/etcd/package.nix | 3 +++ pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 3 insertions(+), 2 deletions(-) rename pkgs/{servers => by-name/et}/etcd/README.md (100%) create mode 100644 pkgs/by-name/et/etcd/package.nix diff --git a/pkgs/servers/etcd/README.md b/pkgs/by-name/et/etcd/README.md similarity index 100% rename from pkgs/servers/etcd/README.md rename to pkgs/by-name/et/etcd/README.md diff --git a/pkgs/by-name/et/etcd/package.nix b/pkgs/by-name/et/etcd/package.nix new file mode 100644 index 000000000000..1d70cbf0fd3b --- /dev/null +++ b/pkgs/by-name/et/etcd/package.nix @@ -0,0 +1,3 @@ +{ etcd_3_5 }: + +etcd_3_5 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7f9772a9ea4b..6c7bd51f416c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9249,8 +9249,6 @@ with pkgs; dodgy = with python3Packages; toPythonApplication dodgy; - etcd = etcd_3_5; - prosody = callPackage ../servers/xmpp/prosody { withExtraLibs = [ ]; withExtraLuaPackages = _: [ ]; From 68768c9564dd0f6b474776e643c308129ad293bc Mon Sep 17 00:00:00 2001 From: superherointj <5861043+superherointj@users.noreply.github.com> Date: Sun, 19 Oct 2025 12:41:54 -0300 Subject: [PATCH 50/78] etcd: refactor tests for all versions --- nixos/tests/all-tests.nix | 3 +- nixos/tests/etcd/default.nix | 43 +++++++++++++++++++ .../etcd/{etcd-cluster.nix => multi-node.nix} | 10 ++--- .../tests/etcd/{etcd.nix => single-node.nix} | 13 +++--- pkgs/by-name/et/etcd_3_4/package.nix | 3 ++ pkgs/by-name/et/etcd_3_5/package.nix | 6 +-- pkgs/by-name/et/etcd_3_6/package.nix | 6 +-- 7 files changed, 62 insertions(+), 22 deletions(-) create mode 100644 nixos/tests/etcd/default.nix rename nixos/tests/etcd/{etcd-cluster.nix => multi-node.nix} (97%) rename nixos/tests/etcd/{etcd.nix => single-node.nix} (74%) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index df47807b44b7..7e911dc85a88 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -516,8 +516,7 @@ in ergochat = runTest ./ergochat.nix; esphome = runTest ./esphome.nix; etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; }; - etcd = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd.nix; - etcd-cluster = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd-cluster.nix; + etcd = import ./etcd/default.nix { inherit pkgs runTest; }; etebase-server = runTest ./etebase-server.nix; etesync-dav = runTest ./etesync-dav.nix; evcc = runTest ./evcc.nix; diff --git a/nixos/tests/etcd/default.nix b/nixos/tests/etcd/default.nix new file mode 100644 index 000000000000..96add9670a95 --- /dev/null +++ b/nixos/tests/etcd/default.nix @@ -0,0 +1,43 @@ +{ + pkgs, + runTest, + ... +}: + +let + testEtcd = + path: oPkgs: + runTest ( + let + etcdPkgs = pkgs // oPkgs; + in + pkgs.lib.recursiveUpdate { + meta = { + maintainers = etcdPkgs.etcd.meta.maintainers; + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; + }; + } (import path etcdPkgs) + ); + testEtcdPkg = pkg: path: testEtcd path { etcd = pkg; }; + testEtcd_3_4 = testEtcdPkg pkgs.etcd_3_4; + testEtcd_3_5 = testEtcdPkg pkgs.etcd_3_5; + testEtcd_3_6 = testEtcdPkg pkgs.etcd_3_6; +in + +{ + "3_4" = { + multi-node = testEtcd_3_4 ./multi-node.nix; + single-node = testEtcd_3_4 ./single-node.nix; + }; + "3_5" = { + multi-node = testEtcd_3_5 ./multi-node.nix; + single-node = testEtcd_3_5 ./single-node.nix; + }; + "3_6" = { + multi-node = testEtcd_3_6 ./multi-node.nix; + single-node = testEtcd_3_6 ./single-node.nix; + }; +} diff --git a/nixos/tests/etcd/etcd-cluster.nix b/nixos/tests/etcd/multi-node.nix similarity index 97% rename from nixos/tests/etcd/etcd-cluster.nix rename to nixos/tests/etcd/multi-node.nix index aa66c8498356..0ce36d0f14b6 100644 --- a/nixos/tests/etcd/etcd-cluster.nix +++ b/nixos/tests/etcd/multi-node.nix @@ -1,6 +1,5 @@ -# This test runs simple etcd cluster +{ pkgs, etcd, ... }: -{ lib, pkgs, ... }: let runWithOpenSSL = file: cmd: @@ -77,6 +76,7 @@ let services = { etcd = { enable = true; + package = etcd; keyFile = etcd_key; certFile = etcd_cert; trustedCaFile = ca_pem; @@ -99,10 +99,9 @@ let networking.firewall.allowedTCPPorts = [ 2380 ]; }; in -{ - name = "etcd-cluster"; - meta.maintainers = with lib.maintainers; [ offline ]; +{ + name = "etcd-multi-node"; nodes = { node1 = @@ -170,4 +169,5 @@ in node1.succeed("etcdctl put /foo/bar 'Hello degraded world'") node1.succeed("etcdctl get /foo/bar | grep 'Hello degraded world'") ''; + } diff --git a/nixos/tests/etcd/etcd.nix b/nixos/tests/etcd/single-node.nix similarity index 74% rename from nixos/tests/etcd/etcd.nix rename to nixos/tests/etcd/single-node.nix index 9c423ef35185..0d2bdea166d9 100644 --- a/nixos/tests/etcd/etcd.nix +++ b/nixos/tests/etcd/single-node.nix @@ -1,11 +1,13 @@ -# This test runs simple etcd node -{ lib, ... }: +{ etcd, ... }: + { - name = "etcd"; - meta.maintainers = with lib.maintainers; [ offline ]; + name = "etcd-single-node"; nodes.node = { - services.etcd.enable = true; + services.etcd = { + enable = true; + package = etcd; + }; }; testScript = '' @@ -19,4 +21,5 @@ node.succeed("etcdctl put /foo/bar 'Hello world'") node.succeed("etcdctl get /foo/bar | grep 'Hello world'") ''; + } diff --git a/pkgs/by-name/et/etcd_3_4/package.nix b/pkgs/by-name/et/etcd_3_4/package.nix index 19e6a6c62411..50397a79c6f3 100644 --- a/pkgs/by-name/et/etcd_3_4/package.nix +++ b/pkgs/by-name/et/etcd_3_4/package.nix @@ -2,6 +2,7 @@ lib, buildGoModule, fetchFromGitHub, + nixosTests, }: buildGoModule rec { @@ -36,6 +37,8 @@ buildGoModule rec { install -Dm755 bin/* bin/functional/cmd/* -t $out/bin ''; + passthru.tests = nixosTests.etcd."3_4"; + meta = { description = "Distributed reliable key-value store for the most critical data of a distributed system"; downloadPage = "https://github.com/etcd-io/etcd/"; diff --git a/pkgs/by-name/et/etcd_3_5/package.nix b/pkgs/by-name/et/etcd_3_5/package.nix index 5ca80ba041c5..b5b67dc32c4b 100644 --- a/pkgs/by-name/et/etcd_3_5/package.nix +++ b/pkgs/by-name/et/etcd_3_5/package.nix @@ -101,11 +101,7 @@ symlinkJoin { deps = { inherit etcdserver etcdutl etcdctl; }; - - tests = { - inherit (nixosTests) etcd etcd-cluster; - k3s = k3s.passthru.tests.etcd; - }; + tests = nixosTests.etcd."3_5"; updateScript = ./update.sh; }; diff --git a/pkgs/by-name/et/etcd_3_6/package.nix b/pkgs/by-name/et/etcd_3_6/package.nix index c7f75ac9d091..f4bfc90780bc 100644 --- a/pkgs/by-name/et/etcd_3_6/package.nix +++ b/pkgs/by-name/et/etcd_3_6/package.nix @@ -132,11 +132,7 @@ symlinkJoin { deps = { inherit etcdserver etcdutl etcdctl; }; - # Fix-Me: Tests for etcd 3.6 needs work. - # tests = { - # inherit (nixosTests) etcd etcd-cluster; - # k3s = k3s.passthru.tests.etcd; - # }; + tests = nixosTests.etcd."3_6"; updateScript = ./update.sh; }; From ad51f81af56b644e4dffa83d0814332a8bb22c74 Mon Sep 17 00:00:00 2001 From: superherointj <5861043+superherointj@users.noreply.github.com> Date: Sun, 19 Oct 2025 14:23:44 -0300 Subject: [PATCH 51/78] etcd_3_6: 3.6.4 -> 3.6.5 https://github.com/etcd-io/etcd/releases/tag/v3.6.5 --- pkgs/by-name/et/etcd_3_6/package.nix | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/pkgs/by-name/et/etcd_3_6/package.nix b/pkgs/by-name/et/etcd_3_6/package.nix index f4bfc90780bc..49a2ad7f92c1 100644 --- a/pkgs/by-name/et/etcd_3_6/package.nix +++ b/pkgs/by-name/et/etcd_3_6/package.nix @@ -1,8 +1,7 @@ { applyPatches, - buildGoModule, + buildGo124Module, fetchFromGitHub, - fetchpatch, installShellFiles, k3s, lib, @@ -12,11 +11,11 @@ }: let - version = "3.6.4"; - etcdSrcHash = "sha256-otz+06cOD2MVnMZWKId1GN+MeZfnDbdudiYfVCKdzuo="; - etcdCtlVendorHash = "sha256-kTH+s/SY+xwo6kt6iPJ7XDhin0jPk0FBr0eOe/717bE="; - etcdUtlVendorHash = "sha256-P0yx9YMMD9vT7N6LOlo26EAOi+Dj33p3ZjAYEoaL19A="; - etcdServerVendorHash = "sha256-kgbCT1JxI98W89veCItB7ZfW4d9D3/Ip3tOuFKEX9v4="; + version = "3.6.5"; + etcdSrcHash = "sha256-d0Ujg9ynnnSW0PYYYrNEmPtLnYW2HcCl+zcVo8ACiS0="; + etcdCtlVendorHash = "sha256-5r3Q+AfWp23tzbYQoD1hXEzRttJrUUKQSpcEV3GIlOE="; + etcdUtlVendorHash = "sha256-funO7EEJs28w4sk4sHVA/KR1TiHumVKNs0Gn/xFl4ig="; + etcdServerVendorHash = "sha256-OtWpX5A+kyQej2bueTqmNf62oKmXGQzjexzXlK/XJms="; src = applyPatches { src = fetchFromGitHub { @@ -25,12 +24,6 @@ let tag = "v${version}"; hash = etcdSrcHash; }; - patches = [ - (fetchpatch { - url = "https://github.com/etcd-io/etcd/commit/31650ab0c8df43af05fc4c13b48ffee59271eec7.patch"; - hash = "sha256-Q94HOLFx2fnb61wMQsAUT4sIBXfxXqW9YEayukQXX18="; - }) - ]; }; env = { @@ -46,7 +39,7 @@ let platforms = lib.platforms.darwin ++ lib.platforms.linux; }; - etcdserver = buildGoModule { + etcdserver = buildGo124Module { pname = "etcdserver"; inherit @@ -73,7 +66,7 @@ let ldflags = [ "-X go.etcd.io/etcd/api/v3/version.GitSHA=GitNotFound" ]; }; - etcdutl = buildGoModule { + etcdutl = buildGo124Module { pname = "etcdutl"; inherit @@ -99,7 +92,7 @@ let ''; }; - etcdctl = buildGoModule { + etcdctl = buildGo124Module { pname = "etcdctl"; inherit From 09822a4e05d129e016d748ed6dd16ae809f7875f Mon Sep 17 00:00:00 2001 From: superherointj Date: Tue, 21 Oct 2025 15:41:38 -0300 Subject: [PATCH 52/78] etcd_3_4: 3.4.37 -> 3.4.38 Release: https://github.com/etcd-io/etcd/releases/tag/v3.4.38 --- pkgs/by-name/et/etcd_3_4/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/et/etcd_3_4/package.nix b/pkgs/by-name/et/etcd_3_4/package.nix index 50397a79c6f3..ac404468b339 100644 --- a/pkgs/by-name/et/etcd_3_4/package.nix +++ b/pkgs/by-name/et/etcd_3_4/package.nix @@ -1,23 +1,23 @@ { lib, - buildGoModule, + buildGo124Module, fetchFromGitHub, nixosTests, }: -buildGoModule rec { +buildGo124Module rec { pname = "etcd"; - version = "3.4.37"; + version = "3.4.38"; src = fetchFromGitHub { owner = "etcd-io"; repo = "etcd"; rev = "v${version}"; - hash = "sha256-PZ+8hlxSwayR1yvjHmStMDur9e1uc2s+YB8qdz+42mA="; + hash = "sha256-+fRmz52ZqQTL8JJmSsufoVJP/FGHez9LliEwGsoCE7s="; }; proxyVendor = true; - vendorHash = "sha256-VeB0A+freNwgETQMIokiOPWovGq1FANUexnzxVg2aRA="; + vendorHash = "sha256-CqeSRyWDw1nCKlAI46iJXT5XjI3elxufx87QIlHwp1w="; preBuild = '' go mod tidy From e0b36839ec92ea595d5cf1fad85941c887893db4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 25 Oct 2025 19:29:51 +0000 Subject: [PATCH 53/78] oxigraph: 0.5.1 -> 0.5.2 --- pkgs/by-name/ox/oxigraph/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ox/oxigraph/package.nix b/pkgs/by-name/ox/oxigraph/package.nix index fed65b4f3fc6..35e4fa2da880 100644 --- a/pkgs/by-name/ox/oxigraph/package.nix +++ b/pkgs/by-name/ox/oxigraph/package.nix @@ -13,17 +13,17 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "oxigraph"; - version = "0.5.1"; + version = "0.5.2"; src = fetchFromGitHub { owner = "oxigraph"; repo = "oxigraph"; tag = "v${finalAttrs.version}"; - hash = "sha256-58PGRQlDziVENgm7OKPAzXXi4BkOJqytGCxxIXB2smc="; + hash = "sha256-ptTrJbLGS7GkLGO40mbpdPkrcspaUE33kRZ8g9Qtb0o="; fetchSubmodules = true; }; - cargoHash = "sha256-GQ+7dyQ1LyYK8RYImsqVMEQvIC5pRQUVYYgO4FOShaE="; + cargoHash = "sha256-AuUGra9ejPRKWWpXWLmcwGuZRKIuCYTdifpnwuuHnnQ="; nativeBuildInputs = [ rustPlatform.bindgenHook From b3f62db201c5324ba03df121bc05c9c84ac35d3f Mon Sep 17 00:00:00 2001 From: 1000101 Date: Sat, 25 Oct 2025 14:57:08 +0200 Subject: [PATCH 54/78] pdfsam-basic: fix --- .../misc/pdfsam-basic/default.nix | 104 ++++++++++++------ pkgs/top-level/all-packages.nix | 4 +- 2 files changed, 69 insertions(+), 39 deletions(-) diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix index 2d73912750a6..b5c131015efb 100644 --- a/pkgs/applications/misc/pdfsam-basic/default.nix +++ b/pkgs/applications/misc/pdfsam-basic/default.nix @@ -3,63 +3,95 @@ stdenv, makeDesktopItem, fetchurl, - jdk21, + temurin-jre-bin-21, + javaPackages, wrapGAppsHook3, - glib, + dpkg, + xorg, + gtk3, + libGL, + alsa-lib, nix-update-script, + desktop-file-utils, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "pdfsam-basic"; - version = "5.3.2"; + version = "5.4.1"; src = fetchurl { - url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam-basic_${version}-1_amd64.deb"; - hash = "sha256-Y0Q9uT6cyxIYTX0JxoS0r3TamPT1iLXr94Zex30AeWo="; + url = "https://github.com/torakiki/pdfsam/releases/download/v${finalAttrs.version}/pdfsam-basic_${finalAttrs.version}-1_amd64.deb"; + hash = "sha256-iM0avC0YwxaB2prWbiKJZ9Fzd/HcdDWJg5IWRmNlVkM="; }; - unpackPhase = '' - ar vx ${src} - tar xvf data.tar.gz - ''; - - nativeBuildInputs = [ wrapGAppsHook3 ]; - buildInputs = [ glib ]; - - preFixup = '' - gappsWrapperArgs+=(--set JAVA_HOME "${jdk21}" --set PDFSAM_JAVA_PATH "${jdk21}") - ''; + nativeBuildInputs = [ + dpkg + wrapGAppsHook3 + desktop-file-utils + ]; installPhase = '' - cp -R opt/pdfsam-basic/ $out/ - mkdir -p "$out"/share/icons - cp --recursive ${desktopItem}/share/applications $out/share - cp $out/icon.svg "$out"/share/icons/pdfsam-basic.svg + runHook preInstall + desktop-file-edit usr/share/applications/pdfsam-basic.desktop \ + --set-key="Exec" --set-value="pdfsam-basic %F" \ + --set-key="Path" --set-value="$out/share/pdfsam-basic" \ + --set-icon="pdfsam-basic" + mkdir $out + cp -r usr/share $out/share + mkdir $out/share/pdfsam-basic + cp -r opt/pdfsam-basic/lib $out/share/pdfsam-basic/lib + install -Dm0644 opt/pdfsam-basic/splash.png $out/share/pdfsam-basic/splash.png + install -Dm0644 opt/pdfsam-basic/icon.svg $out/share/icons/hicolor/scalable/apps/pdfsam-basic.svg + mkdir $out/bin + makeWrapper ${temurin-jre-bin-21}/bin/java $out/bin/pdfsam-basic \ + "''${gappsWrapperArgs[@]}" \ + --set JAVA_HOME ${temurin-jre-bin-21} \ + --set PDFSAM_JAVA_PATH ${temurin-jre-bin-21} \ + --prefix LD_LIBRARY_PATH : ${ + lib.makeLibraryPath [ + javaPackages.openjfx23 # PDFSam Basic requires JDK 21 and JavaFX 23 https://github.com/torakiki/pdfsam/issues/785#issuecomment-3446564717 + xorg.libXxf86vm + xorg.libXtst + gtk3 + libGL + alsa-lib + ] + } \ + --add-flags ${ + lib.escapeShellArg ( + lib.escapeShellArgs [ + "--enable-preview" + "--module-path" + "${placeholder "out"}/share/pdfsam-basic/lib" + "--module" + "org.pdfsam.basic/org.pdfsam.basic.App" + "-Xmx512M" + "-splash:${placeholder "out"}/share/pdfsam-basic/splash.png" + "-Dapp.name=\"pdfsam-basic\"" + "-Dapp.pid=\"$$\"" + "-Dapp.home=\"${placeholder "out"}/share/pdfsam-basic\"" + "-Dbasedir=\"${placeholder "out"}/share/pdfsam-basic\"" + "-Dprism.lcdtext=false" + ] + ) + } + runHook postInstall ''; - desktopItem = makeDesktopItem { - name = pname; - exec = pname; - icon = pname; - comment = meta.description; - desktopName = "PDFsam Basic"; - genericName = "PDF Split and Merge"; - mimeTypes = [ "application/pdf" ]; - categories = [ "Office" ]; - }; + dontWrapGApps = true; passthru.updateScript = nix-update-script { }; - meta = with lib; { + meta = { homepage = "https://github.com/torakiki/pdfsam"; description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files"; mainProgram = "pdfsam-basic"; - sourceProvenance = with sourceTypes; [ + sourceProvenance = with lib.sourceTypes; [ binaryBytecode binaryNativeCode ]; - license = licenses.agpl3Plus; + license = lib.licenses.agpl3Plus; platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ _1000101 ]; + maintainers = with lib.maintainers; [ _1000101 ]; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e474e7028100..600b396b0b5d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11922,9 +11922,7 @@ with pkgs; lua = lua5; }; - pdfsam-basic = callPackage ../applications/misc/pdfsam-basic { - jdk21 = openjdk21.override { enableJavaFX = true; }; - }; + pdfsam-basic = callPackage ../applications/misc/pdfsam-basic { }; mupdf-headless = mupdf.override { enableX11 = false; From 28c4c5b16666d373fd7bb559ad6ddbea62f73d22 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 23 Sep 2025 01:13:59 +0000 Subject: [PATCH 55/78] elasticmq-server-bin: 1.6.14 -> 1.6.15 --- pkgs/by-name/el/elasticmq-server-bin/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/el/elasticmq-server-bin/package.nix b/pkgs/by-name/el/elasticmq-server-bin/package.nix index 6b1d2860f4bc..5490d46aced7 100644 --- a/pkgs/by-name/el/elasticmq-server-bin/package.nix +++ b/pkgs/by-name/el/elasticmq-server-bin/package.nix @@ -15,11 +15,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "elasticmq-server"; - version = "1.6.14"; + version = "1.6.15"; src = fetchurl { url = "https://s3-eu-west-1.amazonaws.com/softwaremill-public/elasticmq-server-${finalAttrs.version}.jar"; - sha256 = "sha256-HVllLHz6zutonaLFwgyQKYSZxfp5QMslxf/PlzGWyG4="; + sha256 = "sha256-alxRZFx+Ulk4KYnlIVOClajk2MmfnfUooku2dMJd7c4="; }; # don't do anything? From 716e2f892a25e81a7b4c9d00bde6ee1dcb190940 Mon Sep 17 00:00:00 2001 From: Maciej Zonski Date: Fri, 24 Oct 2025 18:11:04 +0200 Subject: [PATCH 56/78] coolercontrol: 2.1.0 -> 3.0.1 --- nixos/modules/programs/coolercontrol.nix | 2 -- .../coolercontrol/coolercontrol-liqctld.nix | 34 ------------------- .../coolercontrol/coolercontrol-ui-data.nix | 2 +- .../system/coolercontrol/coolercontrold.nix | 19 ++++++++--- .../system/coolercontrol/default.nix | 11 +++--- 5 files changed, 22 insertions(+), 46 deletions(-) delete mode 100644 pkgs/applications/system/coolercontrol/coolercontrol-liqctld.nix diff --git a/nixos/modules/programs/coolercontrol.nix b/nixos/modules/programs/coolercontrol.nix index 000fb091bcc6..7103526d79b5 100644 --- a/nixos/modules/programs/coolercontrol.nix +++ b/nixos/modules/programs/coolercontrol.nix @@ -34,13 +34,11 @@ in systemd = { packages = with pkgs.coolercontrol; [ - coolercontrol-liqctld coolercontrold ]; # https://github.com/NixOS/nixpkgs/issues/81138 services = { - coolercontrol-liqctld.wantedBy = [ "multi-user.target" ]; coolercontrold.wantedBy = [ "multi-user.target" ]; }; }; diff --git a/pkgs/applications/system/coolercontrol/coolercontrol-liqctld.nix b/pkgs/applications/system/coolercontrol/coolercontrol-liqctld.nix deleted file mode 100644 index 2dc770421e9f..000000000000 --- a/pkgs/applications/system/coolercontrol/coolercontrol-liqctld.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ python3 }: - -{ - version, - src, - meta, -}: - -python3.pkgs.buildPythonApplication { - pname = "coolercontrol-liqctld"; - inherit version src; - sourceRoot = "${src.name}/coolercontrol-liqctld"; - format = "pyproject"; - - nativeBuildInputs = with python3.pkgs; [ setuptools ]; - - propagatedBuildInputs = with python3.pkgs; [ - liquidctl - setproctitle - fastapi - uvicorn - ]; - - postInstall = '' - install -Dm444 "${src}/packaging/systemd/coolercontrol-liqctld.service" -t "$out/lib/systemd/system" - substituteInPlace "$out/lib/systemd/system/coolercontrol-liqctld.service" \ - --replace-fail '/usr/bin' "$out/bin" - ''; - - meta = meta // { - description = "${meta.description} (Liquidctl Daemon)"; - mainProgram = "coolercontrol-liqctld"; - }; -} diff --git a/pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix b/pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix index 0f687c9d5278..d2af32efee38 100644 --- a/pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix +++ b/pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix @@ -11,7 +11,7 @@ buildNpmPackage { inherit version src; sourceRoot = "${src.name}/coolercontrol-ui"; - npmDepsHash = "sha256-FFVCE3/E+eiTvTeU53cc1Mdbrl5J3+YgYUYltpnGXz0="; + npmDepsHash = "sha256-MhMHo6wjkaSCyevwzAKCvSsJTmAq9rYFG1ZVUAkRc0Y="; postBuild = '' cp -r dist $out diff --git a/pkgs/applications/system/coolercontrol/coolercontrold.nix b/pkgs/applications/system/coolercontrol/coolercontrold.nix index 7bdaa624ac68..50987847a587 100644 --- a/pkgs/applications/system/coolercontrol/coolercontrold.nix +++ b/pkgs/applications/system/coolercontrol/coolercontrold.nix @@ -5,6 +5,8 @@ coolercontrol, runtimeShell, addDriverRunpath, + python3Packages, + liquidctl, }: { @@ -18,10 +20,16 @@ rustPlatform.buildRustPackage { inherit version src; sourceRoot = "${src.name}/coolercontrold"; - cargoHash = "sha256-ZyYyQcaYd3VZ7FL0Hki33JO3LscPfBT5gl+nw2cXvUs="; + cargoHash = "sha256-4aSEEBtxwTyAx5CPa2fDBhx5U+Ql2X/tKPQHLIsm3I0="; buildInputs = [ libdrm ]; - nativeBuildInputs = [ addDriverRunpath ]; + + nativeBuildInputs = [ + addDriverRunpath + python3Packages.wrapPython + ]; + + pythonPath = [ liquidctl ]; postPatch = '' # copy the frontend static resources to a directory for embedding @@ -41,12 +49,15 @@ rustPlatform.buildRustPackage { postFixup = '' addDriverRunpath "$out/bin/coolercontrold" + + buildPythonPath "$pythonPath" + wrapProgram "$out/bin/coolercontrold" \ + --prefix PATH : $program_PATH \ + --prefix PYTHONPATH : $program_PYTHONPATH ''; passthru.tests.version = testers.testVersion { package = coolercontrol.coolercontrold; - # coolercontrold prints its version with "v" prefix - version = "v${version}"; }; meta = meta // { diff --git a/pkgs/applications/system/coolercontrol/default.nix b/pkgs/applications/system/coolercontrol/default.nix index 009525ec8eb3..d11e7f40aa6c 100644 --- a/pkgs/applications/system/coolercontrol/default.nix +++ b/pkgs/applications/system/coolercontrol/default.nix @@ -5,20 +5,23 @@ }: let - version = "2.1.0"; + version = "3.0.1"; src = fetchFromGitLab { owner = "coolercontrol"; repo = "coolercontrol"; rev = version; - hash = "sha256-xIc0ZecQGyjMQWVaucKomu7SbaHy+ymg5dkOjHjtJ9c="; + hash = "sha256-PvEj3xYJVpHNfd5p7kyw+eW9S/g1FB/YiFgWEJDDbus="; }; meta = { description = "Monitor and control your cooling devices"; homepage = "https://gitlab.com/coolercontrol/coolercontrol"; license = lib.licenses.gpl3Plus; - platforms = [ "x86_64-linux" ]; + platforms = [ + "x86_64-linux" + "aarch64-linux" + ]; maintainers = with lib.maintainers; [ codifryed OPNA2608 @@ -33,6 +36,4 @@ in coolercontrold = applySharedDetails (callPackage ./coolercontrold.nix { }); coolercontrol-gui = applySharedDetails (callPackage ./coolercontrol-gui.nix { }); - - coolercontrol-liqctld = applySharedDetails (callPackage ./coolercontrol-liqctld.nix { }); } From 09ef84adeb8a369791400939136841c3751b5086 Mon Sep 17 00:00:00 2001 From: kyehn Date: Sun, 26 Oct 2025 09:21:36 +0800 Subject: [PATCH 57/78] quba: add updateScript --- pkgs/by-name/qu/quba/package.nix | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/qu/quba/package.nix b/pkgs/by-name/qu/quba/package.nix index 18e95f6bc801..f042912153c1 100644 --- a/pkgs/by-name/qu/quba/package.nix +++ b/pkgs/by-name/qu/quba/package.nix @@ -4,12 +4,21 @@ appimageTools, fetchurl, _7zz, + writeShellScript, + nix-update, + common-updater-scripts, }: let pname = "quba"; version = "1.4.2"; + passthru.updateScript = writeShellScript "update-quiet" '' + ${lib.getExe nix-update} --system=x86_64-linux quba + hash=$(nix hash convert --to sri --hash-algo sha256 $(nix-prefetch-url $(nix eval --raw --file . quba.src.url --system aarch64-darwin))) + ${lib.getExe' common-updater-scripts "update-source-version"} quba $hash --system=aarch64-darwin --ignore-same-version + ''; + meta = { description = "Viewer for electronic invoices"; homepage = "https://github.com/ZUGFeRD/quba-viewer"; @@ -25,13 +34,14 @@ let hash = "sha256-3goMWN5GeQaLJimUKbjozJY/zJmqc9Mvy2+6bVSt1p0="; }; - appimageContents = appimageTools.extractType1 { inherit pname version src; }; + appimageContents = appimageTools.extractType2 { inherit pname version src; }; - linux = appimageTools.wrapType1 { + linux = appimageTools.wrapType2 { inherit pname version src + passthru meta ; @@ -44,7 +54,12 @@ let }; darwin = stdenvNoCC.mkDerivation { - inherit pname version meta; + inherit + pname + version + passthru + meta + ; src = fetchurl { url = "https://github.com/ZUGFeRD/quba-viewer/releases/download/v${version}/Quba-${version}-universal.dmg"; From 9a250cad2341b8ad6bfbf2c19b9d2bb6629ffad3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Oct 2025 01:46:21 +0000 Subject: [PATCH 58/78] lsp-plugins: 1.2.23 -> 1.2.24 --- pkgs/by-name/ls/lsp-plugins/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ls/lsp-plugins/package.nix b/pkgs/by-name/ls/lsp-plugins/package.nix index 1874f7502232..5c5e0ecbd65b 100644 --- a/pkgs/by-name/ls/lsp-plugins/package.nix +++ b/pkgs/by-name/ls/lsp-plugins/package.nix @@ -21,7 +21,7 @@ in stdenv.mkDerivation (finalAttrs: { pname = "lsp-plugins"; - version = "1.2.23"; + version = "1.2.24"; outputs = [ "out" @@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://github.com/lsp-plugins/lsp-plugins/releases/download/${finalAttrs.version}/lsp-plugins-src-${finalAttrs.version}.tar.gz"; - hash = "sha256-GxjSnDsEPiXbaJ9khSvgQZeVONxWf4WJilurHpSf14w="; + hash = "sha256-rDKf3PqRa+lLZcHGQNRXBGkcnhkMNdE9Jok4n3/btGM="; }; # By default, GStreamer plugins are installed right alongside GStreamer itself From e7eb129bbf6122c1556f69f4178e0374338b9d93 Mon Sep 17 00:00:00 2001 From: kyehn Date: Sun, 26 Oct 2025 09:57:36 +0800 Subject: [PATCH 59/78] quba: 1.4.2 -> 1.5.0 --- pkgs/by-name/qu/quba/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/qu/quba/package.nix b/pkgs/by-name/qu/quba/package.nix index f042912153c1..0b3cf029a91b 100644 --- a/pkgs/by-name/qu/quba/package.nix +++ b/pkgs/by-name/qu/quba/package.nix @@ -11,12 +11,12 @@ let pname = "quba"; - version = "1.4.2"; + version = "1.5.0"; passthru.updateScript = writeShellScript "update-quiet" '' ${lib.getExe nix-update} --system=x86_64-linux quba hash=$(nix hash convert --to sri --hash-algo sha256 $(nix-prefetch-url $(nix eval --raw --file . quba.src.url --system aarch64-darwin))) - ${lib.getExe' common-updater-scripts "update-source-version"} quba $hash --system=aarch64-darwin --ignore-same-version + ${lib.getExe' common-updater-scripts "update-source-version"} quba $(nix eval --raw --file . quba.version) $hash --system=aarch64-darwin --ignore-same-version ''; meta = { @@ -31,7 +31,7 @@ let src = fetchurl { url = "https://github.com/ZUGFeRD/quba-viewer/releases/download/v${version}/Quba-${version}.AppImage"; - hash = "sha256-3goMWN5GeQaLJimUKbjozJY/zJmqc9Mvy2+6bVSt1p0="; + hash = "sha256-xB1r8DNFOFQQx+MeGC1mWhf7PuMavM7DyYRBlEjAZ8k="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; }; @@ -63,7 +63,7 @@ let src = fetchurl { url = "https://github.com/ZUGFeRD/quba-viewer/releases/download/v${version}/Quba-${version}-universal.dmg"; - hash = "sha256-q7va2D9AT0BoPhfkub/RFQxGyF12uFaCDpSYIxslqMc="; + hash = "sha256-niuU1zkxNRmCYxzto3g6i6Z3k5KCAgVIVQMgOLZJnSE="; }; unpackCmd = "7zz x -bd -osource -xr'!*/Applications' -xr'!*com.apple.provenance' $curSrc"; From 0c738595d0033921bfcd4ebf052bb0fe62ec9278 Mon Sep 17 00:00:00 2001 From: kyehn Date: Sun, 26 Oct 2025 10:24:36 +0800 Subject: [PATCH 60/78] qmmp: 2.2.8 -> 2.3.0 --- pkgs/by-name/qm/qmmp/package.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/qm/qmmp/package.nix b/pkgs/by-name/qm/qmmp/package.nix index 0006efa17170..e8484a125b40 100644 --- a/pkgs/by-name/qm/qmmp/package.nix +++ b/pkgs/by-name/qm/qmmp/package.nix @@ -52,13 +52,13 @@ # Qmmp installs working .desktop file(s) all by itself, so we don't need to # handle that. -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "qmmp"; - version = "2.2.8"; + version = "2.3.0"; src = fetchurl { - url = "https://qmmp.ylsoftware.com/files/qmmp/2.2/${pname}-${version}.tar.bz2"; - hash = "sha256-cwqXoGOkmOs32p4vgZjf5XBpPmpsfyshDVgb2H27k4o="; + url = "https://qmmp.ylsoftware.com/files/qmmp/2.3/qmmp-${finalAttrs.version}.tar.bz2"; + hash = "sha256-AcPjA2fIhReM0RVZTSD2lKR6NS/X5l/PVyLhKsgzMGM="; }; nativeBuildInputs = [ @@ -107,12 +107,12 @@ stdenv.mkDerivation rec { libsamplerate ]; - meta = with lib; { + meta = { description = "Qt-based audio player that looks like Winamp"; mainProgram = "qmmp"; homepage = "https://qmmp.ylsoftware.com/"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = [ maintainers.bjornfor ]; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.bjornfor ]; }; -} +}) From afd532ae76659e0a2557aa412699b47e5bf6c1e1 Mon Sep 17 00:00:00 2001 From: Gavin John Date: Sat, 25 Oct 2025 19:36:54 -0700 Subject: [PATCH 61/78] cosmic-initial-setup: mark as nixpkgs-update: no auto update --- pkgs/by-name/co/cosmic-initial-setup/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/co/cosmic-initial-setup/package.nix b/pkgs/by-name/co/cosmic-initial-setup/package.nix index 252c3898567a..50d475808d86 100644 --- a/pkgs/by-name/co/cosmic-initial-setup/package.nix +++ b/pkgs/by-name/co/cosmic-initial-setup/package.nix @@ -16,6 +16,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cosmic-initial-setup"; version = "1.0.0-beta.3"; + # nixpkgs-update: no auto update src = fetchFromGitHub { owner = "pop-os"; repo = "cosmic-initial-setup"; From 084f8034d5989ab509ef729549474271f0b20341 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Oct 2025 02:40:54 +0000 Subject: [PATCH 62/78] static-web-server: 2.38.1 -> 2.39.0 --- pkgs/by-name/st/static-web-server/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/st/static-web-server/package.nix b/pkgs/by-name/st/static-web-server/package.nix index a63834f958fc..75ee43e817b3 100644 --- a/pkgs/by-name/st/static-web-server/package.nix +++ b/pkgs/by-name/st/static-web-server/package.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "static-web-server"; - version = "2.38.1"; + version = "2.39.0"; src = fetchFromGitHub { owner = "static-web-server"; repo = "static-web-server"; rev = "v${version}"; - hash = "sha256-fcD1jd9kwm/jCYdvNGEnanLO/wUKeYy5OqOeQE2lGP4="; + hash = "sha256-iprQlSHO+ac7v1odVoS/9IU+Zov8/xh1l9pm1PJE8fs="; }; - cargoHash = "sha256-rfhRMQb7MX2722wcMk35qATav6WFFULy3Ix3WcC7r4M="; + cargoHash = "sha256-rNrGlgUvPezX7RnKhprRjl9DiJ/Crt4phmxnfY9tNXA="; # Some tests rely on timestamps newer than 18 Nov 1974 00:00:00 preCheck = '' From daa8c8d7ecc00889b6ad5eed50e3021c7085ffcf Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 26 Oct 2025 10:42:01 +0800 Subject: [PATCH 63/78] pantheon-tweaks: 2.4.0 -> 2.5.0 https://github.com/pantheon-tweaks/pantheon-tweaks/compare/2.4.0...2.5.0 --- pkgs/by-name/pa/pantheon-tweaks/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pa/pantheon-tweaks/package.nix b/pkgs/by-name/pa/pantheon-tweaks/package.nix index b18666199594..f2b8bdc485b8 100644 --- a/pkgs/by-name/pa/pantheon-tweaks/package.nix +++ b/pkgs/by-name/pa/pantheon-tweaks/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "pantheon-tweaks"; - version = "2.4.0"; + version = "2.5.0"; src = fetchFromGitHub { owner = "pantheon-tweaks"; repo = "pantheon-tweaks"; rev = version; - hash = "sha256-/fHhVErLIQMSRkri6vqc11yZr0YaLeQTUh986If8mVg="; + hash = "sha256-cCrHGOo7dZc28hbZD6Zv8Dw4Ks5JTDsm6A6nkmpUAxk="; }; nativeBuildInputs = [ From d8174ac656a1ffbaf971a3c015748a10acb658fe Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Oct 2025 03:50:50 +0000 Subject: [PATCH 64/78] grav: 1.7.50.2 -> 1.7.50.3 --- pkgs/by-name/gr/grav/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gr/grav/package.nix b/pkgs/by-name/gr/grav/package.nix index 89ea0e66bcca..97bba7bfb987 100644 --- a/pkgs/by-name/gr/grav/package.nix +++ b/pkgs/by-name/gr/grav/package.nix @@ -6,7 +6,7 @@ }: let - version = "1.7.50.2"; + version = "1.7.50.3"; in stdenvNoCC.mkDerivation { pname = "grav"; @@ -14,7 +14,7 @@ stdenvNoCC.mkDerivation { src = fetchzip { url = "https://github.com/getgrav/grav/releases/download/${version}/grav-admin-v${version}.zip"; - hash = "sha256-UaaROMdUNFX6gcbJnfRn9CopZ3nuIMD91CkHnujtnE4="; + hash = "sha256-W4JuW5NEko38AbLrLOGWYsRvehPV7+tX2Hq1tTZ22EY="; }; patches = [ From 2b10fe9ea90568f97d570bbb2a7e54e0d2a30e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 26 Oct 2025 06:41:56 +0100 Subject: [PATCH 65/78] solfege: add missing build inputs Fixes these ./configure messages: $ nix-build -A solfege | grep " no$" [... checking whether we are cross compiling... no ...] checking for swig... no checking for lilypond... no checking for gs... no checking for xml2po... no checking for xsltproc... no checking for /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl... no --- pkgs/by-name/so/solfege/package.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/by-name/so/solfege/package.nix b/pkgs/by-name/so/solfege/package.nix index d3c8d113f75c..6c202d51f075 100644 --- a/pkgs/by-name/so/solfege/package.nix +++ b/pkgs/by-name/so/solfege/package.nix @@ -4,16 +4,21 @@ autoconf, automake, csound, + docbook-xsl-ns, fetchurl, gdk-pixbuf, gettext, + ghostscript, + gnome-doc-utils, gobject-introspection, gtk3, librsvg, + libxslt, lilypond, mpg123, pkg-config, python3Packages, + swig, texinfo, timidity, txt2man, @@ -46,10 +51,16 @@ python3Packages.buildPythonApplication rec { nativeBuildInputs = [ autoconf automake + docbook-xsl-ns gdk-pixbuf gettext + ghostscript + gnome-doc-utils gobject-introspection + libxslt + lilypond pkg-config + swig texinfo txt2man wrapGAppsHook3 @@ -65,6 +76,10 @@ python3Packages.buildPythonApplication rec { pygobject3 ]; + configureFlags = [ + "--enable-docbook-stylesheet=${docbook-xsl-ns}/share/xml/docbook-xsl-ns/html/chunk.xsl" + ]; + preBuild = '' sed -i -e 's|wav_player=.*|wav_player=${alsa-utils}/bin/aplay|' \ -e 's|midi_player=.*|midi_player=${timidity}/bin/timidity|' \ From 6f4c0c8c0521e09a12e50a3952d8f32d36db0fc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 26 Oct 2025 07:04:54 +0100 Subject: [PATCH 66/78] solfege: build HTML help Getting the HTML help files requires explicit building. Instructions found in /help/README. With this change we can now successfully open "Help -> User manual". Fixes: https://github.com/NixOS/nixpkgs/issues/455659 --- pkgs/by-name/so/solfege/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/so/solfege/package.nix b/pkgs/by-name/so/solfege/package.nix index 6c202d51f075..6098a00ac197 100644 --- a/pkgs/by-name/so/solfege/package.nix +++ b/pkgs/by-name/so/solfege/package.nix @@ -90,6 +90,10 @@ python3Packages.buildPythonApplication rec { default.config ''; + postBuild = '' + make help/C/index.html + ''; + dontWrapGApps = true; preFixup = '' From 0b9a9d7552b975f4a6bd81145c36b3382d35b2a2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Oct 2025 07:06:10 +0000 Subject: [PATCH 67/78] oh-my-zsh: 2025-10-15 -> 2025-10-23 --- pkgs/by-name/oh/oh-my-zsh/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/oh/oh-my-zsh/package.nix b/pkgs/by-name/oh/oh-my-zsh/package.nix index 352805263d4b..a26fdebf39b5 100644 --- a/pkgs/by-name/oh/oh-my-zsh/package.nix +++ b/pkgs/by-name/oh/oh-my-zsh/package.nix @@ -19,14 +19,14 @@ }: stdenv.mkDerivation rec { - version = "2025-10-15"; + version = "2025-10-23"; pname = "oh-my-zsh"; src = fetchFromGitHub { owner = "ohmyzsh"; repo = "ohmyzsh"; - rev = "d1c04d8a33f9127d03b69617c5367db5ceebc8a7"; - sha256 = "sha256-Nt/7UZJl+7Kw7trMByuyhjE7RnccgAzW1oNwKsIx3Jw="; + rev = "99017b8eac3d7d0e5ba01c7bf0cf9c6d38985536"; + sha256 = "sha256-/q9BRzRAzD5iepT2i0y72K4kPAZiJCPbX45boD2V7aU="; }; strictDeps = true; From 194e3c2fc68954ada8cdff95cb2b6d600d21ecd6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Oct 2025 07:12:31 +0000 Subject: [PATCH 68/78] fzf: 0.66.0 -> 0.66.1 --- pkgs/by-name/fz/fzf/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fz/fzf/package.nix b/pkgs/by-name/fz/fzf/package.nix index 69a42f183d84..988bf8ff2c83 100644 --- a/pkgs/by-name/fz/fzf/package.nix +++ b/pkgs/by-name/fz/fzf/package.nix @@ -12,13 +12,13 @@ buildGoModule rec { pname = "fzf"; - version = "0.66.0"; + version = "0.66.1"; src = fetchFromGitHub { owner = "junegunn"; repo = "fzf"; rev = "v${version}"; - hash = "sha256-4cspznuGPhTFSUM9yYvPoytX27CKenp/oAMqWpT5JrE="; + hash = "sha256-0dq4m5SGu37AGVUoFLgP40vjBTu6cYoUgB+ZhyfKi+M="; }; vendorHash = "sha256-uFXHoseFOxGIGPiWxWfDl339vUv855VHYgSs9rnDyuI="; From 3603b3dd9df7883f359ec9f783c65aa260037e33 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 26 Oct 2025 15:27:16 +0800 Subject: [PATCH 69/78] nixosTests.vscodium.wayland: Mark as broken --- nixos/tests/vscodium.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/tests/vscodium.nix b/nixos/tests/vscodium.nix index 8badad20b03c..7cb0871ac9bc 100644 --- a/nixos/tests/vscodium.nix +++ b/nixos/tests/vscodium.nix @@ -45,6 +45,10 @@ let turion ]; + # x86_64: https://github.com/NixOS/nixpkgs/pull/452801#issuecomment-3415680343 + # aarch64: https://github.com/NixOS/nixpkgs/issues/207234 + meta.broken = name == "wayland"; + enableOCR = true; testScript = '' From 99e482376210fd1d22b7e5193186a778df29a9ef Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Oct 2025 07:33:46 +0000 Subject: [PATCH 70/78] linuxKernel.kernels.linux_lqx: 6.17.4 -> 6.17.5 --- pkgs/os-specific/linux/kernel/zen-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix index d08ce40a4f20..e6ec7052f1fc 100644 --- a/pkgs/os-specific/linux/kernel/zen-kernels.nix +++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix @@ -23,9 +23,9 @@ let }; # ./update-zen.py lqx lqx = { - version = "6.17.4"; # lqx + version = "6.17.5"; # lqx suffix = "lqx1"; # lqx - sha256 = "0i45jbxm9bzb43wjqzbc6nkspj93b9fi1vv7zlrvydwphlg3xwwn"; # lqx + sha256 = "1jgwpxw1h27kphj0rrf1b9dbhj4jlycr6lnykv8dhf3m0p5vjn46"; # lqx isLqx = true; }; }; From 13a03bda6d4c95367d1a4e8bc088d385d26a77ce Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Oct 2025 08:00:17 +0000 Subject: [PATCH 71/78] qgit: 2.12 -> 2.13 --- pkgs/applications/version-management/qgit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/version-management/qgit/default.nix b/pkgs/applications/version-management/qgit/default.nix index cc946a3e78d1..cb654c45de32 100644 --- a/pkgs/applications/version-management/qgit/default.nix +++ b/pkgs/applications/version-management/qgit/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "qgit"; - version = "2.12"; + version = "2.13"; src = fetchFromGitHub { owner = "tibirna"; repo = "qgit"; rev = "qgit-${finalAttrs.version}"; - hash = "sha256-q81nY9D/8riMTFP8gDRbY2PjVo+NwRu/XEN1Yn0P/pk="; + hash = "sha256-hOx6FYccutycp+F3iesj48STFeBM/2r5cw2f5FkBIjY="; }; nativeBuildInputs = [ From bbb2f43e8b0e1bfc204587ffe9c02071eff7cff9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 26 Oct 2025 08:12:55 +0000 Subject: [PATCH 72/78] serie: 0.5.2 -> 0.5.3 --- pkgs/by-name/se/serie/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/se/serie/package.nix b/pkgs/by-name/se/serie/package.nix index 70da4c34d9c5..ab0a72d1c9b0 100644 --- a/pkgs/by-name/se/serie/package.nix +++ b/pkgs/by-name/se/serie/package.nix @@ -9,16 +9,16 @@ rustPlatform.buildRustPackage rec { pname = "serie"; - version = "0.5.2"; + version = "0.5.3"; src = fetchFromGitHub { owner = "lusingander"; repo = "serie"; rev = "v${version}"; - hash = "sha256-b2Ys49561nBn+U8pDQHewrxd351PLGIQr0qK51eYuCk="; + hash = "sha256-HzAgPCAHOdxXPwPWPPU9VaNrVJL42TlbYMD/n7AeOH8="; }; - cargoHash = "sha256-KhLDaEPC5CIApMbxoGkO58QJ3bGkDlEjGJzdFa8UZKw="; + cargoHash = "sha256-dRR3Zr2QM1yDDxiKqugwMtz5f5ted0oHSdR47XUTQUc="; nativeCheckInputs = [ gitMinimal ]; From 471e2931e83a2102d6392c36b2d48ff6ada2a83b Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Sun, 26 Oct 2025 14:24:10 +0530 Subject: [PATCH 73/78] nixos/stage-1: fix nix parsing error ``` error: A definition for option `boot.initrd.systemd.extraBin.mount' is not of type `absolute path'. Definition values: - In `/nix/store/h259dzilgbvpfsnlcyims14jrcdnx8fk-source/nixos/modules/tasks/filesystems/zfs.nix': { zfs = "/nix/store/hxg3s5l92y9n9m48p872i62dn5ck33hx-zfs-user-2.4.0-rc3/sbin/mount.zfs"; } ``` Fixes https://github.com/NixOS/nixpkgs/pull/414391#issuecomment-3448084329 --- nixos/modules/tasks/filesystems/zfs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 7b39d58248c4..a65e0c00feba 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -798,7 +798,7 @@ in extraBin = { zpool = "${cfgZfs.package}/sbin/zpool"; zfs = "${cfgZfs.package}/sbin/zfs"; - mount.zfs = "${cfgZfs.package}/sbin/mount.zfs"; + "mount.zfs" = "${cfgZfs.package}/sbin/mount.zfs"; awk = "${pkgs.gawk}/bin/awk"; }; storePaths = [ From 52b867cd39f780b0b4857608127e443b3af68dad Mon Sep 17 00:00:00 2001 From: 7karni <7karni@proton.me> Date: Sat, 25 Oct 2025 19:58:12 +0530 Subject: [PATCH 74/78] sunvox: added desktop entry for application launchers use makeDesktopItem and copyDesktopItems as suggested in review --- pkgs/by-name/su/sunvox/package.nix | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/su/sunvox/package.nix b/pkgs/by-name/su/sunvox/package.nix index 41d80a042a91..4afee56add8f 100644 --- a/pkgs/by-name/su/sunvox/package.nix +++ b/pkgs/by-name/su/sunvox/package.nix @@ -4,14 +4,15 @@ fetchzip, alsa-lib, autoPatchelfHook, + copyDesktopItems, libglvnd, libjack2, libX11, libXi, + makeDesktopItem, makeWrapper, SDL2, }: - let platforms = { "x86_64-linux" = "linux_x86_64"; @@ -41,6 +42,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook + copyDesktopItems ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ makeWrapper @@ -58,6 +60,21 @@ stdenv.mkDerivation (finalAttrs: { libjack2 ]; + desktopItems = lib.optionals stdenv.hostPlatform.isLinux [ + (makeDesktopItem { + name = "sunvox"; + exec = "sunvox"; + desktopName = "SunVox"; + genericName = "Modular Synthesizer"; + comment = "Modular synthesizer with pattern-based sequencer"; + categories = [ + "AudioVideo" + "Audio" + "Midi" + ]; + }) + ]; + dontConfigure = true; dontBuild = true; From 3eb7d3ace500df0340621b6d1fbcab75bc839d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Sun, 26 Oct 2025 10:39:41 +0000 Subject: [PATCH 75/78] python3Packages.textual-textarea: 0.17.1 -> 0.17.2 --- pkgs/development/python-modules/textual-textarea/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/textual-textarea/default.nix b/pkgs/development/python-modules/textual-textarea/default.nix index 8ab356d467ef..ff311a5b988c 100644 --- a/pkgs/development/python-modules/textual-textarea/default.nix +++ b/pkgs/development/python-modules/textual-textarea/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "textual-textarea"; - version = "0.17.1"; + version = "0.17.2"; pyproject = true; src = fetchFromGitHub { owner = "tconbeer"; repo = "textual-textarea"; tag = "v${version}"; - hash = "sha256-E6Yw/NRjfrdCeERgM0jdjfmG9zL2GhY2qAWUB1XwFic="; + hash = "sha256-y+2WvqD96eYkDEJn5qCGfGFNiJFAcF4KWWNgAIZUqJo="; }; build-system = [ hatchling ]; From 4804f1233df51dc0e04f86613a0c2640342e7897 Mon Sep 17 00:00:00 2001 From: Gabriel Maguire Date: Mon, 19 Aug 2024 22:13:28 -0400 Subject: [PATCH 76/78] maintainers: add GabrielMaguire --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 1a80919715aa..bb777bcd9e45 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -9033,6 +9033,12 @@ githubId = 1313787; name = "Gabriella Gonzalez"; }; + GabrielMaguire = { + email = "gabrielmaguire@proton.me"; + github = "GabrielMaguire"; + githubId = 39974571; + name = "Gabriel Maguire"; + }; gabyx = { email = "gnuetzi@gmail.com"; github = "gabyx"; From 315ea55a65a720bbd661380ad04aa918525e80f8 Mon Sep 17 00:00:00 2001 From: Gabriel Maguire Date: Mon, 19 Aug 2024 22:14:14 -0400 Subject: [PATCH 77/78] chicago95: init at 3.0.1 --- pkgs/by-name/ch/chicago95/package.nix | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 pkgs/by-name/ch/chicago95/package.nix diff --git a/pkgs/by-name/ch/chicago95/package.nix b/pkgs/by-name/ch/chicago95/package.nix new file mode 100644 index 000000000000..d3a9e61289a7 --- /dev/null +++ b/pkgs/by-name/ch/chicago95/package.nix @@ -0,0 +1,51 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + gtk3, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "chicago95"; + version = "3.0.1"; + + src = fetchFromGitHub { + owner = "grassmunk"; + repo = "Chicago95"; + rev = "v${finalAttrs.version}"; + hash = "sha256-EHcDIct2VeTsjbQWnKB2kwSFNb97dxuydAu+i/VquBA="; + }; + + nativeBuildInputs = [ gtk3 ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/themes + mv Theme/Chicago95 $out/share/themes + + mkdir -p $out/share/icons + mv Icons/Chicago95 $out/share/icons + gtk-update-icon-cache $out/share/icons/Chicago95 + + mkdir -p $out/share/sddm/themes + tar -xzf KDE/SDDM/Chicago95.tar.gz -C "$out/share/sddm/themes/" + + mkdir -p $out/share/fonts + cp Fonts/vga_font/* $out/share/fonts + + runHook postInstall + ''; + + meta = { + description = "Windows 95 theme for GTK"; + homepage = "https://github.com/grassmunk/Chicago95"; + changelog = "https://github.com/grassmunk/Chicago95/releases/tag/v${finalAttrs.version}"; + license = with lib.licenses; [ + gpl3Plus + mit + ]; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ GabrielMaguire ]; + }; +}) From 10f01ded353d5a76c6acbecaa0ac5e5063f60c13 Mon Sep 17 00:00:00 2001 From: Luigi Sartor Piucco Date: Fri, 16 Oct 2020 19:41:03 -0300 Subject: [PATCH 78/78] zsh plugins: use omz-compatible paths The `programs.zsh.ohMyZsh.customPkgs` option expects that arguments passed to it will have a zsh plugin/theme/completion in a path like `$out/share/zsh/{plugins,themes,completions}`, and copies whatever is inside those to `$ZSH_CUSTOM`. However, some packages actually unpacked to `$out/share`, without the proper folder structure, so they never got copied to `$ZSH_CUSTOM` and caused "not found" errors on zsh startup. This commit fixes that, and maintains compatibility with other packages that might still expect a flattened structure. This is done though a symlink. --- pkgs/by-name/zs/zsh-autosuggestions/package.nix | 6 +++++- pkgs/by-name/zs/zsh-bd/package.nix | 14 ++++++++++---- .../zs/zsh-fast-syntax-highlighting/package.nix | 2 +- .../zs/zsh-history-substring-search/package.nix | 6 +++++- pkgs/by-name/zs/zsh-nix-shell/package.nix | 5 +++-- pkgs/by-name/zs/zsh-powerlevel10k/package.nix | 11 ++++++----- pkgs/by-name/zs/zsh-powerlevel9k/package.nix | 5 +++-- 7 files changed, 33 insertions(+), 16 deletions(-) diff --git a/pkgs/by-name/zs/zsh-autosuggestions/package.nix b/pkgs/by-name/zs/zsh-autosuggestions/package.nix index 9afe6b870916..1710b482d7b8 100644 --- a/pkgs/by-name/zs/zsh-autosuggestions/package.nix +++ b/pkgs/by-name/zs/zsh-autosuggestions/package.nix @@ -20,8 +20,12 @@ stdenv.mkDerivation rec { strictDeps = true; installPhase = '' + install -D zsh-autosuggestions.plugin.zsh \ + $out/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh install -D zsh-autosuggestions.zsh \ - $out/share/zsh-autosuggestions/zsh-autosuggestions.zsh + $out/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh + ln -s $out/share/zsh/plugins/zsh-autosuggestions \ + $out/share/zsh-autosuggestions ''; meta = with lib; { diff --git a/pkgs/by-name/zs/zsh-bd/package.nix b/pkgs/by-name/zs/zsh-bd/package.nix index 843ffc135ca5..24d1d8c390c0 100644 --- a/pkgs/by-name/zs/zsh-bd/package.nix +++ b/pkgs/by-name/zs/zsh-bd/package.nix @@ -19,10 +19,16 @@ stdenv.mkDerivation { dontBuild = true; installPhase = '' - mkdir -p $out/share/zsh-bd - cp {.,$out/share/zsh-bd}/bd.zsh - cd $out/share/zsh-bd - ln -s bd{,.plugin}.zsh + runHook preInstall + + install -D bd.zsh \ + $out/share/plugins/zsh-bd/bd.zsh + ln -s $out/share/plugins/zsh-bd/bd.zsh \ + $out/share/plugins/zsh-bd/bd.plugin.zsh + ln -s $out/share/plugins/zsh-bd \ + $out/share/zsh-bd + + runHook postInstall ''; meta = { diff --git a/pkgs/by-name/zs/zsh-fast-syntax-highlighting/package.nix b/pkgs/by-name/zs/zsh-fast-syntax-highlighting/package.nix index d3b6129e4592..d7cbdab2ef1c 100644 --- a/pkgs/by-name/zs/zsh-fast-syntax-highlighting/package.nix +++ b/pkgs/by-name/zs/zsh-fast-syntax-highlighting/package.nix @@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec { dontBuild = true; installPhase = '' - plugindir="$out/share/zsh/site-functions" + plugindir="$out/share/zsh/plugins/fast-syntax-highlighting" mkdir -p "$plugindir" cp -r -- {,_,-,.}fast-* *chroma themes "$plugindir"/ diff --git a/pkgs/by-name/zs/zsh-history-substring-search/package.nix b/pkgs/by-name/zs/zsh-history-substring-search/package.nix index e291025f6ee1..61af2fec16ac 100644 --- a/pkgs/by-name/zs/zsh-history-substring-search/package.nix +++ b/pkgs/by-name/zs/zsh-history-substring-search/package.nix @@ -17,8 +17,12 @@ stdenv.mkDerivation rec { strictDeps = true; installPhase = '' + install -D zsh-history-substring-search.plugin.zsh \ + "$out/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.plugin.zsh" install -D zsh-history-substring-search.zsh \ - "$out/share/zsh-history-substring-search/zsh-history-substring-search.zsh" + "$out/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh" + ln -s $out/share/zsh/plugins/zsh-history-substring-search \ + $out/share/zsh-history-substring-search ''; meta = with lib; { diff --git a/pkgs/by-name/zs/zsh-nix-shell/package.nix b/pkgs/by-name/zs/zsh-nix-shell/package.nix index 75bf5db1c4e5..48d4c6497796 100644 --- a/pkgs/by-name/zs/zsh-nix-shell/package.nix +++ b/pkgs/by-name/zs/zsh-nix-shell/package.nix @@ -22,8 +22,9 @@ stdenv.mkDerivation rec { strictDeps = true; buildInputs = [ bash ]; installPhase = '' - install -D nix-shell.plugin.zsh --target-directory=$out/share/zsh-nix-shell - install -D scripts/* --target-directory=$out/share/zsh-nix-shell/scripts + install -D nix-shell.plugin.zsh --target-directory=$out/share/zsh/plugins/zsh-nix-shell + install -D scripts/* --target-directory=$out/share/zsh/plugins/zsh-nix-shell/scripts + ln -s $out/share/zsh/plugins/zsh-nix-shell $out/share/zsh-nix-shell ''; meta = with lib; { diff --git a/pkgs/by-name/zs/zsh-powerlevel10k/package.nix b/pkgs/by-name/zs/zsh-powerlevel10k/package.nix index 2435105d33d0..cbc33168774e 100644 --- a/pkgs/by-name/zs/zsh-powerlevel10k/package.nix +++ b/pkgs/by-name/zs/zsh-powerlevel10k/package.nix @@ -32,11 +32,12 @@ stdenv.mkDerivation (finalAttrs: { installPhase = '' runHook preInstall - install -D powerlevel10k.zsh-theme --target-directory=$out/share/zsh-powerlevel10k - install -D powerlevel9k.zsh-theme --target-directory=$out/share/zsh-powerlevel10k - install -D config/* --target-directory=$out/share/zsh-powerlevel10k/config - install -D internal/* --target-directory=$out/share/zsh-powerlevel10k/internal - cp -R gitstatus $out/share/zsh-powerlevel10k/gitstatus + install -D powerlevel10k.zsh-theme --target-directory=$out/share/zsh/themes/powerlevel10k + install -D powerlevel9k.zsh-theme --target-directory=$out/share/zsh/themes/powerlevel10k + install -D config/* --target-directory=$out/share/zsh/themes/powerlevel10k/config + install -D internal/* --target-directory=$out/share/zsh/themes/powerlevel10k/internal + cp -R gitstatus $out/share/zsh/themes/powerlevel10k/gitstatus + ln -s $out/share/zsh/themes/powerlevel10k $out/share/zsh-powerlevel10k runHook postInstall ''; diff --git a/pkgs/by-name/zs/zsh-powerlevel9k/package.nix b/pkgs/by-name/zs/zsh-powerlevel9k/package.nix index a9ec9e8d1a00..e66aa6e9995d 100644 --- a/pkgs/by-name/zs/zsh-powerlevel9k/package.nix +++ b/pkgs/by-name/zs/zsh-powerlevel9k/package.nix @@ -16,8 +16,9 @@ stdenv.mkDerivation { strictDeps = true; installPhase = '' - install -D powerlevel9k.zsh-theme --target-directory=$out/share/zsh-powerlevel9k - install -D functions/* --target-directory=$out/share/zsh-powerlevel9k/functions + install -D powerlevel9k.zsh-theme --target-directory=$out/share/zsh/themes/powerlevel9k + install -D functions/* --target-directory=$out/share/zsh/themes/powerlevel9k/functions + ln -s $out/share/zsh/themes/powerlevel9k $out/share/zsh-powerlevel9k ''; meta = {