From 4a9fa9402320d55b7bd8c301a21dc0500c2253b1 Mon Sep 17 00:00:00 2001 From: Morgan Helton Date: Tue, 18 Mar 2025 05:47:23 -0500 Subject: [PATCH 01/30] nzbget: 24.7 -> 24.8 --- pkgs/by-name/nz/nzbget/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/nz/nzbget/package.nix b/pkgs/by-name/nz/nzbget/package.nix index 7ac3f5de49e0..d7831ac55337 100644 --- a/pkgs/by-name/nz/nzbget/package.nix +++ b/pkgs/by-name/nz/nzbget/package.nix @@ -27,13 +27,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "nzbget"; - version = "24.7"; + version = "24.8"; src = fetchFromGitHub { owner = "nzbgetcom"; repo = "nzbget"; rev = "v${finalAttrs.version}"; - hash = "sha256-t/zVSCiSL+/8qnmLwKqmL7IL84CAtZRfZneoC0mvnJM="; + hash = "sha256-jsCjiZQ5Li+PKAfeMliAe341f8kn7QgUjUKciP5CdKE="; }; patches = [ From 97d154dbdabd7111d2a77906496d986cce84bc92 Mon Sep 17 00:00:00 2001 From: Dionysis Grigoropoulos Date: Tue, 18 Mar 2025 17:46:49 +0200 Subject: [PATCH 02/30] python3Packages.llm-anthropic: 0.14.1 -> 0.15.1 Diff: https://github.com/simonw/llm-anthropic/compare/0.14.1...0.15.1 Changelog: https://github.com/simonw/llm-anthropic/releases/tag/0.15.1 Also remove the explicit updateScript and use the writableTmpDirAsHomeHook hook for the tmp home directory. --- .../python-modules/llm-anthropic/default.nix | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/pkgs/development/python-modules/llm-anthropic/default.nix b/pkgs/development/python-modules/llm-anthropic/default.nix index 3b8751ba0607..a7377833ff54 100644 --- a/pkgs/development/python-modules/llm-anthropic/default.nix +++ b/pkgs/development/python-modules/llm-anthropic/default.nix @@ -9,19 +9,19 @@ pytestCheckHook, pytest-asyncio, pytest-recording, - nix-update-script, + writableTmpDirAsHomeHook, }: buildPythonPackage rec { pname = "llm-anthropic"; - version = "0.14.1"; + version = "0.15.1"; pyproject = true; src = fetchFromGitHub { owner = "simonw"; repo = "llm-anthropic"; tag = version; - hash = "sha256-tKgcag8sBJA4QWunaFyZxkZH0mtc0SS17104YuX1Kac="; + hash = "sha256-8bVs3MJteOTCiw7n/4pMf+oXMhsQbCSzUFVQqm2ezcE="; }; build-system = [ @@ -30,22 +30,15 @@ buildPythonPackage rec { ]; dependencies = [ anthropic ]; - # Otherwise tests will fail to create directory - # Permission denied: '/homeless-shelter' - preCheck = '' - export HOME=$(mktemp -d) - ''; - nativeCheckInputs = [ pytestCheckHook pytest-asyncio pytest-recording + writableTmpDirAsHomeHook ]; pythonImportsCheck = [ "llm_anthropic" ]; - passthru.updateScript = nix-update-script { }; - passthru.tests = { llm-plugin = callPackage ./tests/llm-plugin.nix { }; }; From 7fbf6577b1863c2175579b74fc897858d7c7c460 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 19 Mar 2025 17:42:43 +0000 Subject: [PATCH 03/30] python312Packages.apycula: 0.15 -> 0.16 --- pkgs/development/python-modules/apycula/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/apycula/default.nix b/pkgs/development/python-modules/apycula/default.nix index 6f9c019e0188..4d325b81d6f9 100644 --- a/pkgs/development/python-modules/apycula/default.nix +++ b/pkgs/development/python-modules/apycula/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "apycula"; - version = "0.15"; + version = "0.16"; pyproject = true; disabled = pythonOlder "3.8"; @@ -17,7 +17,7 @@ buildPythonPackage rec { src = fetchPypi { inherit version; pname = "Apycula"; - hash = "sha256-Bg5nHvUaW+cHZEzmZ08YuXwecVx6R8tys8ZBuqUEhTg="; + hash = "sha256-/wKJOmTjMnDL9off5i3o18+2omry0h1Z88p0GV2/FGE="; }; build-system = [ setuptools-scm ]; From 78c6f867121eca9197a4e420bc32d0e2f2e00f85 Mon Sep 17 00:00:00 2001 From: happysalada Date: Wed, 19 Mar 2025 16:13:44 -0400 Subject: [PATCH 04/30] prefect: 3.2.7 -> 3.2.13 --- .../make_ui_files_writeable_on_startup.patch | 42 ------ pkgs/by-name/pr/prefect/package.nix | 125 +++++++++--------- 2 files changed, 64 insertions(+), 103 deletions(-) delete mode 100644 pkgs/by-name/pr/prefect/make_ui_files_writeable_on_startup.patch diff --git a/pkgs/by-name/pr/prefect/make_ui_files_writeable_on_startup.patch b/pkgs/by-name/pr/prefect/make_ui_files_writeable_on_startup.patch deleted file mode 100644 index 279c2fa88118..000000000000 --- a/pkgs/by-name/pr/prefect/make_ui_files_writeable_on_startup.patch +++ /dev/null @@ -1,42 +0,0 @@ -From a97d5f501ff3125d96e6c64dfa498ca1a598a4bd Mon Sep 17 00:00:00 2001 -From: happysalada -Date: Sun, 2 Mar 2025 08:30:36 -0500 -Subject: [PATCH] feat: ensure ui files are writeable On startup prefect copies - over files from the ui into the ui directory. If for any reason the ui files - were not writeable, the whole setup will fail. This PR ensures that the - copied files are writeable. To give a bit more context, I am currently - packaging Prefect for nixos. Nix having a little bit of a strict build - system, makes sure that the built package has only read-only files. this is - to ensure the build is deterministic. I understand that this might appear as - a detail related to nix build system only. I can patch the source when - building the nix package, but I thought I would try to contribute the patch. - No hard feelings if you are not interested in this patch. Thank you for - developping prefect! - -fix formatting ---- - src/prefect/server/api/server.py | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/prefect/server/api/server.py b/src/prefect/server/api/server.py -index e5b64d527..ac64616ef 100644 ---- a/src/prefect/server/api/server.py -+++ b/src/prefect/server/api/server.py -@@ -250,8 +250,14 @@ def copy_directory(directory: str, path: str) -> None: - if os.path.exists(destination): - shutil.rmtree(destination) - shutil.copytree(source, destination, symlinks=True) -+ # ensure copied files are writeable -+ for root, dirs, files in os.walk(destination): -+ for f in files: -+ os.chmod(os.path.join(root, f), 0o600) - else: - shutil.copy2(source, destination) -+ # Ensure copied file is writeable -+ os.chmod(destination, 0o600) - - - async def custom_internal_exception_handler( --- -2.48.1 - diff --git a/pkgs/by-name/pr/prefect/package.nix b/pkgs/by-name/pr/prefect/package.nix index 78627cc832c3..793694c962bc 100644 --- a/pkgs/by-name/pr/prefect/package.nix +++ b/pkgs/by-name/pr/prefect/package.nix @@ -7,7 +7,7 @@ python3Packages.buildPythonApplication rec { pname = "prefect"; - version = "3.2.7"; + version = "3.2.13"; pyproject = true; # Trying to install from source is challenging @@ -16,13 +16,9 @@ python3Packages.buildPythonApplication rec { # Source will be missing sdist, uv.lock, ui artefacts ... src = fetchPypi { inherit pname version; - hash = "sha256-4kwGrKvDihBi6Gcvcf6ophNI6GGd+M4qR0nnu/AUK1Q="; + hash = "sha256-NJL3KTvSIzUX1JMa/Lfpx2UzsAgqjU/mbndnkG2evTA="; }; - patches = [ - ./make_ui_files_writeable_on_startup.patch - ]; - pythonRelaxDeps = [ "websockets" ]; @@ -32,61 +28,68 @@ python3Packages.buildPythonApplication rec { versioningit ]; - dependencies = with python3Packages; [ - aiosqlite - alembic - anyio - apprise - asgi-lifespan - asyncpg - cachetools - click - cloudpickle - coolname - cryptography - dateparser - docker - exceptiongroup - fastapi - fsspec - graphviz - griffe - httpcore - httpx - humanize - importlib-metadata - jinja2 - jinja2-humanize-extension - jsonpatch - jsonschema - opentelemetry-api - orjson - packaging - pathspec - pendulum - prometheus-client - pydantic - pydantic-core - pydantic-extra-types - pydantic-settings - python-dateutil - python-slugify - python-socks - pytz - pyyaml - readchar - rfc3339-validator - rich - ruamel-yaml - sniffio - sqlalchemy - toml - typer - typing-extensions - ujson - uvicorn - websockets - ]; + dependencies = + with python3Packages; + [ + aiosqlite + alembic + apprise + asyncpg + click + cryptography + dateparser + docker + graphviz + jinja2 + jinja2-humanize-extension + humanize + pytz + readchar + sqlalchemy + typer + # client dependencies + anyio + asgi-lifespan + cachetools + cloudpickle + coolname + exceptiongroup + fastapi + fsspec + # graphviz already included + griffe + httpcore + httpx + jsonpatch + jsonschema + opentelemetry-api + orjson + packaging + pathspec + pendulum + prometheus-client + pydantic + pydantic-core + pydantic-extra-types + pydantic-settings + python-dateutil + python-slugify + python-socks + pyyaml + rfc3339-validator + rich + ruamel-yaml + sniffio + toml + typing-extensions + ujson + uvicorn + websockets + uv + ] + ++ sqlalchemy.optional-dependencies.asyncio + ++ httpx.optional-dependencies.http2 + ++ python-socks.optional-dependencies.asyncio; optional-dependencies = with python3Packages; { aws = [ From 9ed58218dd85e5161c64cbfe026c65aea4153891 Mon Sep 17 00:00:00 2001 From: Kavelach Date: Thu, 20 Mar 2025 00:09:15 +0100 Subject: [PATCH 05/30] vintagestory: 1.20.4 -> 1.20.5 --- pkgs/by-name/vi/vintagestory/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/vi/vintagestory/package.nix b/pkgs/by-name/vi/vintagestory/package.nix index 8c59ae716d33..2b42375bae07 100644 --- a/pkgs/by-name/vi/vintagestory/package.nix +++ b/pkgs/by-name/vi/vintagestory/package.nix @@ -21,11 +21,11 @@ stdenv.mkDerivation rec { pname = "vintagestory"; - version = "1.20.4"; + version = "1.20.5"; src = fetchurl { url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz"; - hash = "sha256-Hgp2u/y2uPnJhAmPpwof76/woFGz4ISUXU+FIRMjMuQ="; + hash = "sha256-qpTWZ1nG4yrYgVvonZ3btIwhCK6S+aipq4H3b9FE3vI="; }; nativeBuildInputs = [ From 1516e1d87375dddc1bb0ebe1e0dc30738b184b30 Mon Sep 17 00:00:00 2001 From: Clement Roblot Date: Fri, 14 Mar 2025 10:30:20 +0700 Subject: [PATCH 06/30] stm32cubemx: 6.13.0 -> 6.14.0 --- pkgs/by-name/st/stm32cubemx/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/st/stm32cubemx/package.nix b/pkgs/by-name/st/stm32cubemx/package.nix index 5ba3bb064e0c..6fd08edbb04a 100644 --- a/pkgs/by-name/st/stm32cubemx/package.nix +++ b/pkgs/by-name/st/stm32cubemx/package.nix @@ -14,13 +14,13 @@ let iconame = "STM32CubeMX"; package = stdenvNoCC.mkDerivation rec { pname = "stm32cubemx"; - version = "6.13.0"; + version = "6.14.0"; src = fetchzip { url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${ builtins.replaceStrings [ "." ] [ "" ] version }-lin.zip"; - hash = "sha256-ypZVVPmAsApaccWl7ZtAECwphD2SUUiVNC2DYC5rYb4="; + hash = "sha256-GOvoPyfPdQV/gjveuFpZjueTZD/BYuEWSHgQKBm3o3A="; stripRoot = false; }; From cccac3a51d47f86b92f87c0d1ae56647b0b5b3b6 Mon Sep 17 00:00:00 2001 From: misilelab Date: Thu, 20 Mar 2025 20:56:20 +0900 Subject: [PATCH 07/30] glab: 1.53.0 -> 1.54.0 https://gitlab.com/gitlab-org/cli/-/releases/v1.54.0 Signed-off-by: misilelab --- pkgs/by-name/gl/glab/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/gl/glab/package.nix b/pkgs/by-name/gl/glab/package.nix index bb551f266dac..ecc7126929d0 100644 --- a/pkgs/by-name/gl/glab/package.nix +++ b/pkgs/by-name/gl/glab/package.nix @@ -1,24 +1,24 @@ { lib, - buildGo123Module, + buildGoModule, fetchFromGitLab, installShellFiles, stdenv, nix-update-script, }: -buildGo123Module rec { +buildGoModule rec { pname = "glab"; - version = "1.53.0"; + version = "1.54.0"; src = fetchFromGitLab { owner = "gitlab-org"; repo = "cli"; rev = "v${version}"; - hash = "sha256-QbXc249DKRrLdDwH3R7ZWXh2izLe97jc/WcjC8z1mv8="; + hash = "sha256-CtzTZ4PryY2zDCvoAp/cf0E0jpFPGH7SzFDaCwf48gg="; }; - vendorHash = "sha256-wwWKxdAIlZw5s/kp08mZf8x10ujht9xbSoYWlGT4sPk="; + vendorHash = "sha256-r9HRDKf4EOjAeHo9rT69+nAf8zGZFWtXVo9nHuBOgaQ="; ldflags = [ "-s" From b96ad59034e89b3f1517ff72fd94d01a4b8f4351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9za=20Ahsendorf?= Date: Wed, 19 Mar 2025 08:03:10 +0100 Subject: [PATCH 08/30] cascadia-code: add useVariableFont option Cascadia Code provides variable .tff files. Defaulting to false to avoid altering the package's behavior. --- pkgs/by-name/ca/cascadia-code/package.nix | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ca/cascadia-code/package.nix b/pkgs/by-name/ca/cascadia-code/package.nix index 0451f431f1be..6537e3a013be 100644 --- a/pkgs/by-name/ca/cascadia-code/package.nix +++ b/pkgs/by-name/ca/cascadia-code/package.nix @@ -2,14 +2,15 @@ lib, stdenvNoCC, fetchzip, + useVariableFont ? false, }: -stdenvNoCC.mkDerivation rec { +stdenvNoCC.mkDerivation (finalAttrs: { pname = "cascadia-code"; version = "2407.24"; src = fetchzip { - url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip"; + url = "https://github.com/microsoft/cascadia-code/releases/download/v${finalAttrs.version}/CascadiaCode-${finalAttrs.version}.zip"; stripRoot = false; hash = "sha256-bCQzGCvjSQ1TXFVC3w9VPXNtjM4h7lRvljVjX/w1TJ4="; }; @@ -17,8 +18,17 @@ stdenvNoCC.mkDerivation rec { installPhase = '' runHook preInstall - install -Dm644 otf/static/*.otf -t $out/share/fonts/opentype - install -Dm644 ttf/static/*.ttf -t $out/share/fonts/truetype + ${ + if useVariableFont then + '' + install -Dm644 ttf/*.ttf -t $out/share/fonts/truetype + '' + else + '' + install -Dm644 otf/static/*.otf -t $out/share/fonts/opentype + install -Dm644 ttf/static/*.ttf -t $out/share/fonts/truetype + '' + } runHook postInstall ''; @@ -31,4 +41,4 @@ stdenvNoCC.mkDerivation rec { maintainers = with maintainers; [ ryanccn ]; platforms = platforms.all; }; -} +}) From ded63f105cbf0685144f045c1b47e1828f3bdbf7 Mon Sep 17 00:00:00 2001 From: Jared Baur Date: Fri, 21 Mar 2025 01:09:31 -0700 Subject: [PATCH 09/30] systemd: expose withNetworkd in passthru --- pkgs/os-specific/linux/systemd/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 8abead4eeddc..b33a825aa1eb 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -883,6 +883,7 @@ stdenv.mkDerivation (finalAttrs: { withKmod withLocaled withMachined + withNetworkd withPortabled withTimedated withTpm2Tss From ccae9bb5e813d7c7e197c8b363315b4def2bf32b Mon Sep 17 00:00:00 2001 From: Jared Baur Date: Mon, 17 Mar 2025 13:51:17 -0700 Subject: [PATCH 10/30] clatd: 1.6 -> 2.1.0 Removes iptables from clatd wrapper in favor of nftables used upstream. Also adds systemd-networkd integration. --- pkgs/by-name/cl/clatd/package.nix | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/cl/clatd/package.nix b/pkgs/by-name/cl/clatd/package.nix index fc5e9a792cee..4e2d2742096b 100644 --- a/pkgs/by-name/cl/clatd/package.nix +++ b/pkgs/by-name/cl/clatd/package.nix @@ -7,19 +7,21 @@ perlPackages, tayga, iproute2, - iptables, + nftables, + systemd, nixosTests, }: -stdenv.mkDerivation rec { +assert (lib.assertMsg systemd.withNetworkd "systemd for clatd must be built with networkd support"); +stdenv.mkDerivation (finalAttrs: { pname = "clatd"; - version = "1.6"; + version = "2.1.0"; src = fetchFromGitHub { owner = "toreanderson"; repo = "clatd"; - rev = "v${version}"; - hash = "sha256-ZUGWQTXXgATy539NQxkZSvQA7HIWkIPsw1NJrz0xKEg="; + rev = "v${finalAttrs.version}"; + hash = "sha256-hNFuS6pdaA/FTIUeuwjGovlHcPh248Au1VXCzMuYwLU="; }; strictDeps = true; @@ -33,6 +35,7 @@ stdenv.mkDerivation rec { perl NetIP NetDNS + JSON ]; makeFlags = [ "PREFIX=$(out)" ]; @@ -47,9 +50,10 @@ stdenv.mkDerivation rec { --set PERL5LIB $PERL5LIB \ --prefix PATH : ${ lib.makeBinPath [ - tayga - iproute2 - iptables + tayga # tayga + iproute2 # ip + nftables # nft + systemd # networkctl ] } ''; @@ -64,4 +68,4 @@ stdenv.mkDerivation rec { mainProgram = "clatd"; platforms = platforms.linux; }; -} +}) From 300efce1810bc30dbb6798232ae54b1f979fad0e Mon Sep 17 00:00:00 2001 From: Jared Baur Date: Fri, 21 Mar 2025 01:09:57 -0700 Subject: [PATCH 11/30] nixos/clatd: allow AF_UNIX communication This is needed since clatd will use networkctl to attempt to obtain the PLAT prefix, and networkctl uses UNIX domain sockets to communicate with the systemd-networkd daemon over DBus. --- nixos/modules/services/networking/clatd.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/networking/clatd.nix b/nixos/modules/services/networking/clatd.nix index 8ddeb51479e4..573d77e71d71 100644 --- a/nixos/modules/services/networking/clatd.nix +++ b/nixos/modules/services/networking/clatd.nix @@ -75,6 +75,7 @@ in "AF_INET" "AF_INET6" "AF_NETLINK" + "AF_UNIX" ]; RestrictNamespaces = true; RestrictRealtime = true; From ec19e7420c5247c22e502956cd912b3cb1430bc3 Mon Sep 17 00:00:00 2001 From: Jared Baur Date: Mon, 17 Mar 2025 13:52:37 -0700 Subject: [PATCH 12/30] nixosTests.clatd: use runTest and drop unneeded config from client --- nixos/tests/all-tests.nix | 2 +- nixos/tests/clatd.nix | 350 ++++++++++++++++++-------------------- 2 files changed, 167 insertions(+), 185 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 0526d9d361a3..9ad8df556274 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -264,7 +264,7 @@ in { cinnamon = handleTest ./cinnamon.nix {}; cinnamon-wayland = handleTest ./cinnamon-wayland.nix {}; cjdns = handleTest ./cjdns.nix {}; - clatd = handleTest ./clatd.nix {}; + clatd = runTest ./clatd.nix; clickhouse = handleTest ./clickhouse.nix {}; cloud-init = handleTest ./cloud-init.nix {}; cloud-init-hostname = handleTest ./cloud-init-hostname.nix {}; diff --git a/nixos/tests/clatd.nix b/nixos/tests/clatd.nix index d6aff7c09595..d5241eb646ab 100644 --- a/nixos/tests/clatd.nix +++ b/nixos/tests/clatd.nix @@ -26,160 +26,160 @@ # | Route: 192.0.2.0/24 via 100.64.0.1 # +------ -import ./make-test-python.nix ( - { pkgs, lib, ... }: +{ lib, ... }: - { - name = "clatd"; - meta = with pkgs.lib.maintainers; { - maintainers = [ - hax404 - jmbaur +{ + name = "clatd"; + + meta.maintainers = with lib.maintainers; [ + hax404 + jmbaur + ]; + + nodes = { + # The server is configured with static IPv4 addresses. RFC 6052 Section 3.1 + # disallows the mapping of non-global IPv4 addresses like RFC 1918 into the + # Well-Known Prefix 64:ff9b::/96. TAYGA also does not allow the mapping of + # documentation space (RFC 5737). To circumvent this, 100.64.0.2/24 from + # RFC 6589 (Carrier Grade NAT) is used here. + # To reach the IPv4 address pool of the NAT64 gateway, there is a static + # route configured. In normal cases, where the router would also source NAT + # the pool addresses to one IPv4 addresses, this would not be needed. + server = { + virtualisation.vlans = [ + 2 # towards router ]; + networking = { + useDHCP = false; + interfaces.eth1 = lib.mkForce { }; + }; + systemd.network = { + enable = true; + networks."vlan1" = { + matchConfig.Name = "eth1"; + address = [ + "100.64.0.2/24" + ]; + routes = [ + { + Destination = "192.0.2.0/24"; + Gateway = "100.64.0.1"; + } + ]; + }; + }; }; - nodes = { - # The server is configured with static IPv4 addresses. RFC 6052 Section 3.1 - # disallows the mapping of non-global IPv4 addresses like RFC 1918 into the - # Well-Known Prefix 64:ff9b::/96. TAYGA also does not allow the mapping of - # documentation space (RFC 5737). To circumvent this, 100.64.0.2/24 from - # RFC 6589 (Carrier Grade NAT) is used here. - # To reach the IPv4 address pool of the NAT64 gateway, there is a static - # route configured. In normal cases, where the router would also source NAT - # the pool addresses to one IPv4 addresses, this would not be needed. - server = { - virtualisation.vlans = [ - 2 # towards router - ]; - networking = { - useDHCP = false; - interfaces.eth1 = lib.mkForce { }; - }; - systemd.network = { - enable = true; - networks."vlan1" = { - matchConfig.Name = "eth1"; - address = [ - "100.64.0.2/24" - ]; - routes = [ + # The router is configured with static IPv4 addresses towards the server + # and IPv6 addresses towards the client. DNS64 is exposed towards the + # client so clatd is able to auto-discover the PLAT prefix. For NAT64, the + # Well-Known prefix 64:ff9b::/96 is used. NAT64 is done with TAYGA which + # provides the tun-interface nat64 and does the translation over it. The + # IPv6 packets are sent to this interfaces and received as IPv4 packets and + # vice versa. As TAYGA only translates IPv6 addresses to dedicated IPv4 + # addresses, it needs a pool of IPv4 addresses which must be at least as + # big as the expected amount of clients. In this test, the packets from the + # pool are directly routed towards the client. In normal cases, there would + # be a second source NAT44 to map all clients behind one IPv4 address. + router = { + boot.kernel.sysctl = { + "net.ipv4.conf.all.forwarding" = 1; + "net.ipv6.conf.all.forwarding" = 1; + }; + + virtualisation.vlans = [ + 2 # towards server + 3 # towards client + ]; + + networking = { + useDHCP = false; + useNetworkd = true; + firewall.enable = false; + interfaces.eth1 = lib.mkForce { + ipv4 = { + addresses = [ { - Destination = "192.0.2.0/24"; - Gateway = "100.64.0.1"; + address = "100.64.0.1"; + prefixLength = 24; + } + ]; + }; + }; + interfaces.eth2 = lib.mkForce { + ipv6 = { + addresses = [ + { + address = "2001:db8::1"; + prefixLength = 64; } ]; }; }; }; - # The router is configured with static IPv4 addresses towards the server - # and IPv6 addresses towards the client. DNS64 is exposed towards the - # client so clatd is able to auto-discover the PLAT prefix. For NAT64, the - # Well-Known prefix 64:ff9b::/96 is used. NAT64 is done with TAYGA which - # provides the tun-interface nat64 and does the translation over it. The - # IPv6 packets are sent to this interfaces and received as IPv4 packets and - # vice versa. As TAYGA only translates IPv6 addresses to dedicated IPv4 - # addresses, it needs a pool of IPv4 addresses which must be at least as - # big as the expected amount of clients. In this test, the packets from the - # pool are directly routed towards the client. In normal cases, there would - # be a second source NAT44 to map all clients behind one IPv4 address. - router = { - boot.kernel.sysctl = { - "net.ipv4.conf.all.forwarding" = 1; - "net.ipv6.conf.all.forwarding" = 1; - }; - - virtualisation.vlans = [ - 2 # towards server - 3 # towards client - ]; - - networking = { - useDHCP = false; - useNetworkd = true; - firewall.enable = false; - interfaces.eth1 = lib.mkForce { - ipv4 = { - addresses = [ - { - address = "100.64.0.1"; - prefixLength = 24; - } - ]; - }; - }; - interfaces.eth2 = lib.mkForce { - ipv6 = { - addresses = [ - { - address = "2001:db8::1"; - prefixLength = 64; - } - ]; - }; - }; - }; - - systemd.network.networks."40-eth2" = { - networkConfig.IPv6SendRA = true; - ipv6Prefixes = [ { Prefix = "2001:db8::/64"; } ]; - ipv6PREF64Prefixes = [ { Prefix = "64:ff9b::/96"; } ]; - ipv6SendRAConfig = { - EmitDNS = true; - DNS = "_link_local"; - }; - }; - - services.resolved.extraConfig = '' - DNSStubListener=no - ''; - - networking.extraHosts = '' - 192.0.0.171 ipv4only.arpa - 192.0.0.170 ipv4only.arpa - ''; - - services.coredns = { - enable = true; - config = '' - .:53 { - bind :: - hosts /etc/hosts - dns64 64:ff9b::/96 - } - ''; - }; - - services.tayga = { - enable = true; - ipv4 = { - address = "192.0.2.0"; - router = { - address = "192.0.2.1"; - }; - pool = { - address = "192.0.2.0"; - prefixLength = 24; - }; - }; - ipv6 = { - address = "2001:db8::1"; - router = { - address = "64:ff9b::1"; - }; - pool = { - address = "64:ff9b::"; - prefixLength = 96; - }; - }; + systemd.network.networks."40-eth2" = { + networkConfig.IPv6SendRA = true; + ipv6Prefixes = [ { Prefix = "2001:db8::/64"; } ]; + ipv6PREF64Prefixes = [ { Prefix = "64:ff9b::/96"; } ]; + ipv6SendRAConfig = { + EmitDNS = true; + DNS = "_link_local"; }; }; - # The client uses SLAAC to assign IPv6 addresses. To reach the IPv4-only - # server, the client starts the clat daemon which starts and configures the - # local IPv4 -> IPv6 translation via Tayga after discovering the PLAT - # prefix via DNS64. - client = { + services.resolved.extraConfig = '' + DNSStubListener=no + ''; + + networking.extraHosts = '' + 192.0.0.171 ipv4only.arpa + 192.0.0.170 ipv4only.arpa + ''; + + services.coredns = { + enable = true; + config = '' + .:53 { + bind :: + hosts /etc/hosts + dns64 64:ff9b::/96 + } + ''; + }; + + services.tayga = { + enable = true; + ipv4 = { + address = "192.0.2.0"; + router = { + address = "192.0.2.1"; + }; + pool = { + address = "192.0.2.0"; + prefixLength = 24; + }; + }; + ipv6 = { + address = "2001:db8::1"; + router = { + address = "64:ff9b::1"; + }; + pool = { + address = "64:ff9b::"; + prefixLength = 96; + }; + }; + }; + }; + + # The client uses SLAAC to assign IPv6 addresses. To reach the IPv4-only + # server, the client starts the clat daemon which starts and configures the + # local IPv4 -> IPv6 translation via Tayga after discovering the PLAT + # prefix via DNS64. + client = + { pkgs, ... }: + { virtualisation.vlans = [ 3 # towards router ]; @@ -193,62 +193,44 @@ import ./make-test-python.nix ( enable = true; networks."vlan1" = { matchConfig.Name = "eth1"; - - # NOTE: clatd does not actually use the PREF64 prefix discovered by - # systemd-networkd (nor does systemd-networkd do anything with it, - # yet), but we set this to confirm it works. See the test script - # below. ipv6AcceptRAConfig.UsePREF64 = true; }; }; - services.clatd = { - enable = true; - # NOTE: Perl's Net::DNS resolver does not seem to work well querying - # for AAAA records to systemd-resolved's default IPv4 bind address - # (127.0.0.53), so we add an IPv6 listener address to systemd-resolved - # and tell clatd to use that instead. - settings.dns64-servers = "::1"; - }; - - # Allow clatd to find dns server. See comment above. - services.resolved.extraConfig = '' - DNSStubListenerExtra=::1 - ''; + services.clatd.enable = true; environment.systemPackages = [ pkgs.mtr ]; }; - }; + }; - testScript = '' - import json + testScript = '' + import json - start_all() + start_all() - # wait for all machines to start up - for machine in client, router, server: - machine.wait_for_unit("network-online.target") + # wait for all machines to start up + for machine in client, router, server: + machine.wait_for_unit("network.target") - with subtest("Wait for tayga and clatd"): - router.wait_for_unit("tayga.service") - client.wait_for_unit("clatd.service") - # clatd checks if this system has IPv4 connectivity for 10 seconds - client.wait_until_succeeds( - 'journalctl -u clatd -e | grep -q "Starting up TAYGA, using config file"' - ) + with subtest("Wait for tayga and clatd"): + router.wait_for_unit("tayga.service") + client.wait_for_unit("clatd.service") + # clatd checks if this system has IPv4 connectivity for 10 seconds + client.wait_until_succeeds( + 'journalctl -u clatd -e | grep -q "Starting up TAYGA, using config file"' + ) - with subtest("networkd exports PREF64 prefix"): - assert json.loads(client.succeed("networkctl status eth1 --json=short"))[ - "NDisc" - ]["PREF64"][0]["Prefix"] == [0x0, 0x64, 0xFF, 0x9B] + ([0] * 12) + with subtest("networkd exports PREF64 prefix"): + assert json.loads(client.succeed("networkctl status eth1 --json=short"))[ + "NDisc" + ]["PREF64"][0]["Prefix"] == [0x0, 0x64, 0xFF, 0x9B] + ([0] * 12) - with subtest("Test ICMP"): - client.wait_until_succeeds("ping -c 3 100.64.0.2 >&2") + with subtest("Test ICMP"): + client.wait_until_succeeds("ping -c3 100.64.0.2 >&2") - with subtest("Test ICMP and show a traceroute"): - client.wait_until_succeeds("mtr --show-ips --report-wide 100.64.0.2 >&2") + with subtest("Test ICMP and show a traceroute"): + client.wait_until_succeeds("mtr --show-ips --report-wide 100.64.0.2 >&2") - client.log(client.execute("systemd-analyze security clatd.service")[1]) - ''; - } -) + client.log(client.execute("systemd-analyze security clatd.service")[1]) + ''; +} From c486c6f553d6e501c2368a92959defa0b4b4dc1d Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Mon, 17 Mar 2025 15:31:56 +0800 Subject: [PATCH 13/30] jbigkit: fix darwin compile and link Apply patches to linux platforms only, which are not required for darwin platforms. Signed-off-by: Qiming Chu --- pkgs/by-name/jb/jbigkit/package.nix | 96 ++++++++++++++++------------- 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/pkgs/by-name/jb/jbigkit/package.nix b/pkgs/by-name/jb/jbigkit/package.nix index 92fc9d96d1ea..6cc4a96d6d3c 100644 --- a/pkgs/by-name/jb/jbigkit/package.nix +++ b/pkgs/by-name/jb/jbigkit/package.nix @@ -14,37 +14,40 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-3nEGtr+vSV1oZcfdesbKE4G9EuDYFAXqgefyFnJj2TI="; }; - patches = [ - # Archlinux patch: build shared object - (fetchpatch { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/jbigkit-2.1-shared_lib.patch"; - hash = "sha256-+efeeKg3FJ/TjSOj58kD+DwnaCm3zhGzKLfUes/d5rg="; - }) - (fetchpatch { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/jbigkit-2.1-ldflags.patch"; - hash = "sha256-ik3NifyuhDHnIMTrNLAKInPgu2F5u6Gvk9daqrn8ZhY="; - }) - # Archlinux patch: update coverity - (fetchpatch { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/jbigkit-2.1-coverity.patch"; - hash = "sha256-APm9A2f4sMufuY3cnL9HOcSCa9ov3pyzgQTTKLd49/E="; - }) - # Archlinux patch: fix build warnings - (fetchpatch { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/jbigkit-2.1-build_warnings.patch"; - hash = "sha256-lDEJ1bvZ+zR7K4CiTq+aXJ8PGjILE3W13kznLLlGOOg="; - }) - # Archlinux patch: this helps users to reduce denial-of-service risks, as in CVE-2017-9937 - (fetchpatch { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/0013-new-jbig.c-limit-s-maxmem-maximum-decoded-image-size.patch"; - hash = "sha256-Yq5qCTF7KZTrm4oeWbpctb+QLt3shJUGEReZvd0ey9k="; - }) - # Archlinux patch: fix heap overflow - (fetchpatch { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/0015-jbg_newlen-check-for-end-of-file-within-MARKER_NEWLE.patch"; - hash = "sha256-F3qA/btR9D9NfzrNY76X4Z6vG6NrisI36SjCDjS+F5s="; - }) - ]; + patches = + [ + # Archlinux patch: this helps users to reduce denial-of-service risks, as in CVE-2017-9937 + (fetchpatch { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/0013-new-jbig.c-limit-s-maxmem-maximum-decoded-image-size.patch"; + hash = "sha256-Yq5qCTF7KZTrm4oeWbpctb+QLt3shJUGEReZvd0ey9k="; + }) + # Archlinux patch: fix heap overflow + (fetchpatch { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/0015-jbg_newlen-check-for-end-of-file-within-MARKER_NEWLE.patch"; + hash = "sha256-F3qA/btR9D9NfzrNY76X4Z6vG6NrisI36SjCDjS+F5s="; + }) + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + # Archlinux patch: build shared object + (fetchpatch { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/jbigkit-2.1-shared_lib.patch"; + hash = "sha256-+efeeKg3FJ/TjSOj58kD+DwnaCm3zhGzKLfUes/d5rg="; + }) + (fetchpatch { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/jbigkit-2.1-ldflags.patch"; + hash = "sha256-ik3NifyuhDHnIMTrNLAKInPgu2F5u6Gvk9daqrn8ZhY="; + }) + # Archlinux patch: update coverity + (fetchpatch { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/jbigkit-2.1-coverity.patch"; + hash = "sha256-APm9A2f4sMufuY3cnL9HOcSCa9ov3pyzgQTTKLd49/E="; + }) + # Archlinux patch: fix build warnings + (fetchpatch { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/jbigkit/-/raw/main/jbigkit-2.1-build_warnings.patch"; + hash = "sha256-lDEJ1bvZ+zR7K4CiTq+aXJ8PGjILE3W13kznLLlGOOg="; + }) + ]; makeFlags = [ "AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar" @@ -61,26 +64,31 @@ stdenv.mkDerivation (finalAttrs: { done ''; - installPhase = '' - runHook preInstall + installPhase = + '' + runHook preInstall - install -vDm 644 libjbig/*.h -t "$out/include/" - install -vDm 755 pbmtools/{jbgtopbm{,85},pbmtojbg{,85}} -t "$out/bin/" - install -vDm 644 pbmtools/*.1* -t "$out/share/man/man1/" + install -vDm 644 libjbig/*.h -t "$out/include/" + install -vDm 755 pbmtools/{jbgtopbm{,85},pbmtojbg{,85}} -t "$out/bin/" + install -vDm 644 pbmtools/*.1* -t "$out/share/man/man1/" + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + install -vDm 644 libjbig/libjbig*.a -t "$out/lib/" + '' + + lib.optionalString stdenv.hostPlatform.isLinux '' + install -vDm 755 libjbig/*.so.* -t "$out/lib/" - install -vDm 755 libjbig/*.so.* -t "$out/lib/" - for lib in libjbig.so libjbig85.so; do - ln -sv "$lib.${finalAttrs.version}" "$out/lib/$lib" - ln -sv "$out/lib/$lib.${finalAttrs.version}" "$out/lib/$lib.0" - done + for lib in libjbig.so libjbig85.so; do + ln -sv "$lib.${finalAttrs.version}" "$out/lib/$lib" + ln -sv "$out/lib/$lib.${finalAttrs.version}" "$out/lib/$lib.0" + done - runHook postInstall - ''; + runHook postInstall + ''; doCheck = true; meta = { - broken = stdenv.hostPlatform.isDarwin; description = "Software implementation of the JBIG1 data compression standard"; homepage = "http://www.cl.cam.ac.uk/~mgk25/jbigkit/"; license = lib.licenses.gpl2Plus; From d9e2f6f9a719141ff1a019b02801174517400808 Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Fri, 21 Mar 2025 11:36:00 -0600 Subject: [PATCH 14/30] harper: 0.25.1 -> 0.26.0 https://github.com/Automattic/harper/releases/tag/v0.26.0 Signed-off-by: Sumner Evans --- pkgs/by-name/ha/harper/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ha/harper/package.nix b/pkgs/by-name/ha/harper/package.nix index 9b328fd7d951..256289802407 100644 --- a/pkgs/by-name/ha/harper/package.nix +++ b/pkgs/by-name/ha/harper/package.nix @@ -7,18 +7,18 @@ rustPlatform.buildRustPackage rec { pname = "harper"; - version = "0.25.1"; + version = "0.26.0"; src = fetchFromGitHub { owner = "Automattic"; repo = "harper"; rev = "v${version}"; - hash = "sha256-nH1DyWGJMYiisdS4YRw+kUIJLX4twB9ZJ7OWH+QLlIA="; + hash = "sha256-lPxmcBQxiCGLeF0TZ8wui/MmGWE/IgqwGI44zMs2+V8="; }; buildAndTestSubdir = "harper-ls"; useFetchCargoVendor = true; - cargoHash = "sha256-C5+5cxsnyM6cZ724C2czuoCfmIE0nQJXCwYCjfW7sgE="; + cargoHash = "sha256-F0WMeUhXVgLkCIaGR5s5zcPWGySoCQXcdVXLmRbs4Ac="; passthru.updateScript = nix-update-script { }; From ccfa83a89be1d374f0204493ca595a8ea33afcf6 Mon Sep 17 00:00:00 2001 From: Toast <39011842+toast003@users.noreply.github.com> Date: Fri, 21 Mar 2025 20:02:26 +0100 Subject: [PATCH 15/30] jamesdsp: add patch to fix build --- pkgs/applications/audio/jamesdsp/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/applications/audio/jamesdsp/default.nix b/pkgs/applications/audio/jamesdsp/default.nix index 823d11b55caa..f98bdae72975 100644 --- a/pkgs/applications/audio/jamesdsp/default.nix +++ b/pkgs/applications/audio/jamesdsp/default.nix @@ -1,6 +1,7 @@ { copyDesktopItems, fetchFromGitHub, + fetchpatch, glibmm, gst_all_1, lib, @@ -42,6 +43,14 @@ stdenv.mkDerivation (finalAttrs: { wrapQtAppsHook ]; + patches = [ + (fetchpatch { + url = "https://github.com/Audio4Linux/JDSP4Linux/pull/241.patch"; + hash = "sha256-RtVKlw2ca8An4FodeD0RN95z9yHDHBgAxsEwLAmW7co="; + name = "fix-build-with-new-pipewire.patch"; + }) + ]; + buildInputs = [ glibmm From 9c6c27b8b58c14c17f0c7500662525e6e4dda84c Mon Sep 17 00:00:00 2001 From: SamLukeYes Date: Sat, 22 Mar 2025 03:53:23 +0800 Subject: [PATCH 16/30] xonsh: 0.19.2 -> 0.19.3 --- pkgs/by-name/xo/xonsh/unwrapped.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/xo/xonsh/unwrapped.nix b/pkgs/by-name/xo/xonsh/unwrapped.nix index 236562e8065f..da1361b602bc 100644 --- a/pkgs/by-name/xo/xonsh/unwrapped.nix +++ b/pkgs/by-name/xo/xonsh/unwrapped.nix @@ -28,7 +28,7 @@ buildPythonPackage rec { pname = "xonsh"; - version = "0.19.2"; + version = "0.19.3"; pyproject = true; # PyPI package ships incomplete tests @@ -36,7 +36,7 @@ buildPythonPackage rec { owner = "xonsh"; repo = "xonsh"; tag = version; - hash = "sha256-h5WK/7PZQKHajiaj3BTHLeW4TYhSB/IV0eRZPCSD6qg="; + hash = "sha256-2ZxNVyONA9eFyasMK+49T98zl67/95BNfDp/gINPc1U="; }; build-system = [ @@ -91,6 +91,7 @@ buildPythonPackage rec { # https://github.com/xonsh/xonsh/issues/5569 "test_spec_decorator_alias_output_format" + "test_trace_in_script" ]; disabledTestPaths = [ From ad918b65b7c4adaab967a6110ecad17b27120716 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 21 Mar 2025 20:03:40 +0000 Subject: [PATCH 17/30] wgsl-analyzer: 0.9.5 -> 0.9.8 --- pkgs/by-name/wg/wgsl-analyzer/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/wg/wgsl-analyzer/package.nix b/pkgs/by-name/wg/wgsl-analyzer/package.nix index 5ebbedc76ee1..9829631855d3 100644 --- a/pkgs/by-name/wg/wgsl-analyzer/package.nix +++ b/pkgs/by-name/wg/wgsl-analyzer/package.nix @@ -6,17 +6,17 @@ rustPlatform.buildRustPackage rec { pname = "wgsl-analyzer"; - version = "0.9.5"; + version = "0.9.8"; src = fetchFromGitHub { owner = "wgsl-analyzer"; repo = "wgsl-analyzer"; tag = "v${version}"; - hash = "sha256-j9UUikbJojksR6Ak9mh32T4H5mZmtPfj1m7sItUiXY4="; + hash = "sha256-UizD6cTRs6M5GaOX3wvacMr5JWwyHrQS6L19fRnw6Xo="; }; useFetchCargoVendor = true; - cargoHash = "sha256-5eq/MvdtLl7wlSTwUkGRv1WurYMIBd6lmQYCDK96V1U="; + cargoHash = "sha256-W1WQ00SFpYOm4J1C65Jg1Yb3pujdcDQFdrpIgqKRLk4="; checkFlags = [ # Imports failures From ef29ebf891e39cf1ecb91fc304cee856f0b8c974 Mon Sep 17 00:00:00 2001 From: Niko Cantero <97130632+nyabinary@users.noreply.github.com> Date: Fri, 21 Mar 2025 16:44:48 -0400 Subject: [PATCH 18/30] legcord: 1.1.0 -> 1.1.1 --- pkgs/by-name/le/legcord/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/le/legcord/package.nix b/pkgs/by-name/le/legcord/package.nix index dc5f54495fdd..a59b58c1d8ba 100644 --- a/pkgs/by-name/le/legcord/package.nix +++ b/pkgs/by-name/le/legcord/package.nix @@ -12,13 +12,13 @@ }: stdenv.mkDerivation rec { pname = "legcord"; - version = "1.1.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "Legcord"; repo = "Legcord"; rev = "v${version}"; - hash = "sha256-IfRjblC3L6A7HgeEDeDrRxtIMvWQB3P7mpq5bhaHWqk="; + hash = "sha256-0RbLvRCvy58HlOhHLcAoErRFgYxjWrKFQ6DPJD50c5Q="; }; nativeBuildInputs = [ @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { pnpmDeps = pnpm_9.fetchDeps { inherit pname version src; - hash = "sha256-LbHYY97HsNF9cBQzAfFw+A/tLf27y3he9Bbw9H3RKK4="; + hash = "sha256-UivO0e50zGNV69AaV4RilmJ9L6L6lctUrUh9CVIOry4="; }; ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; From 32270bad8340e7bd645249118ea81cad36e13b2b Mon Sep 17 00:00:00 2001 From: Niko Cantero <97130632+nyabinary@users.noreply.github.com> Date: Fri, 21 Mar 2025 16:45:57 -0400 Subject: [PATCH 19/30] legcord: refactor --- pkgs/by-name/le/legcord/package.nix | 86 +++++++++++++++++++++-------- 1 file changed, 64 insertions(+), 22 deletions(-) diff --git a/pkgs/by-name/le/legcord/package.nix b/pkgs/by-name/le/legcord/package.nix index a59b58c1d8ba..39170d3ed8a4 100644 --- a/pkgs/by-name/le/legcord/package.nix +++ b/pkgs/by-name/le/legcord/package.nix @@ -2,48 +2,70 @@ lib, stdenv, fetchFromGitHub, - pnpm_9, + pnpm, nodejs, - electron_34, + electron, makeWrapper, copyDesktopItems, makeDesktopItem, + autoPatchelfHook, + pipewire, + libpulseaudio, nix-update-script, }: -stdenv.mkDerivation rec { + +stdenv.mkDerivation (finalAttrs: { pname = "legcord"; version = "1.1.1"; src = fetchFromGitHub { owner = "Legcord"; repo = "Legcord"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-0RbLvRCvy58HlOhHLcAoErRFgYxjWrKFQ6DPJD50c5Q="; }; nativeBuildInputs = [ - pnpm_9.configHook + pnpm.configHook nodejs + # we use a script wrapper here for environment variable expansion at runtime + # https://github.com/NixOS/nixpkgs/issues/172583 makeWrapper copyDesktopItems + # legcord uses venmic, which is a shipped as a prebuilt node module + # and needs to be patched + autoPatchelfHook ]; - pnpmDeps = pnpm_9.fetchDeps { - inherit pname version src; - hash = "sha256-UivO0e50zGNV69AaV4RilmJ9L6L6lctUrUh9CVIOry4="; - }; + buildInputs = [ + libpulseaudio + pipewire + (lib.getLib stdenv.cc.cc) + ]; - ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + pnpmDeps = pnpm.fetchDeps { + inherit (finalAttrs) pname version src; + hash = "sha256-zAf3EGIt/BWSZ9BMHWWVPWo3m+whnl/p+SahmpdLoZ4="; + }; buildPhase = '' runHook preBuild pnpm build - npm exec electron-builder -- \ + # Replicating the build step to copy venmic from the vendored node module manually, + # since the install script does not do this for whatever reason + cp ./node_modules/@vencord/venmic/prebuilds/venmic-addon-linux-x64/node-napi-v7.node ./dist/venmic-x64.node + cp ./node_modules/@vencord/venmic/prebuilds/venmic-addon-linux-arm64/node-napi-v7.node ./dist/venmic-arm64.node + + # Patch venmic before putting it into the ASAR archive + autoPatchelf ./dist + + pnpm exec electron-builder \ --dir \ - -c.electronDist="${electron_34.dist}" \ - -c.electronVersion="${electron_34.version}" + -c.asarUnpack="**/*.node" \ + -c.electronDist="${electron.dist}" \ + -c.electronVersion="${electron.version}" runHook postBuild ''; @@ -56,37 +78,57 @@ stdenv.mkDerivation rec { install -Dm644 "build/icon.png" "$out/share/icons/hicolor/256x256/apps/legcord.png" - makeShellWrapper "${lib.getExe electron_34}" "$out/bin/legcord" \ + # use makeShellWrapper (instead of the makeBinaryWrapper provided by wrapGAppsHook3) for proper shell variable expansion + # see https://github.com/NixOS/nixpkgs/issues/172583 + makeShellWrapper "${lib.getExe electron}" "$out/bin/legcord" \ --add-flags "$out/share/lib/legcord/resources/app.asar" \ "''${gappsWrapperArgs[@]}" \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer --enable-wayland-ime=true}}" \ --set-default ELECTRON_IS_DEV 0 \ --inherit-argv0 runHook postInstall ''; + env = { + ELECTRON_SKIP_BINARY_DOWNLOAD = 1; + }; + desktopItems = [ (makeDesktopItem { name = "legcord"; + genericName = "Internet Messenger"; desktopName = "Legcord"; exec = "legcord %U"; icon = "legcord"; - comment = meta.description; - categories = [ "Network" ]; + comment = finalAttrs.meta.description; + keywords = [ + "discord" + "vencord" + "electron" + "chat" + ]; + categories = [ + "Network" + "InstantMessaging" + "Chat" + ]; startupWMClass = "Legcord"; terminal = false; }) ]; - passthru.updateScript = nix-update-script { }; + passthru = { + inherit (finalAttrs) pnpmDeps; + updateScript = nix-update-script { }; + }; - meta = with lib; { + meta = { description = "Lightweight, alternative desktop client for Discord"; homepage = "https://legcord.app"; downloadPage = "https://github.com/Legcord/Legcord"; - license = licenses.osl3; - maintainers = with maintainers; [ + license = lib.licenses.osl3; + maintainers = with lib.maintainers; [ wrmilling water-sucks ]; @@ -96,4 +138,4 @@ stdenv.mkDerivation rec { ]; mainProgram = "legcord"; }; -} +}) From 4d50cf24f2649f2000dc5a6616cbf8f15b8ea09c Mon Sep 17 00:00:00 2001 From: Niko Cantero <97130632+nyabinary@users.noreply.github.com> Date: Fri, 21 Mar 2025 16:46:40 -0400 Subject: [PATCH 20/30] legcord: add nyabinary as maintainer --- pkgs/by-name/le/legcord/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/le/legcord/package.nix b/pkgs/by-name/le/legcord/package.nix index 39170d3ed8a4..2bfd59135d5b 100644 --- a/pkgs/by-name/le/legcord/package.nix +++ b/pkgs/by-name/le/legcord/package.nix @@ -131,6 +131,7 @@ stdenv.mkDerivation (finalAttrs: { maintainers = with lib.maintainers; [ wrmilling water-sucks + nyabinary ]; platforms = [ "x86_64-linux" From c531fff5cb0c9f81bcb3c408202baf01ba49f84d Mon Sep 17 00:00:00 2001 From: transcaffeine Date: Fri, 21 Mar 2025 22:04:07 +0100 Subject: [PATCH 21/30] gotosocial: 0.18.2 -> 0.18.3 Release notes: https://github.com/superseriousbusiness/gotosocial/releases/tag/v0.18.3 Changelog: https://github.com/superseriousbusiness/gotosocial/compare/v0.18.2...v0.18.3 --- pkgs/by-name/go/gotosocial/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/go/gotosocial/package.nix b/pkgs/by-name/go/gotosocial/package.nix index 37d103925059..6a6f48c67f6d 100644 --- a/pkgs/by-name/go/gotosocial/package.nix +++ b/pkgs/by-name/go/gotosocial/package.nix @@ -9,11 +9,11 @@ let owner = "superseriousbusiness"; repo = "gotosocial"; - version = "0.18.2"; + version = "0.18.3"; web-assets = fetchurl { url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz"; - hash = "sha256-36UwUhf3FZ+/DMI0L/g88prbEwyj2ApoRdMK8f57KCU="; + hash = "sha256-60aSiWHHHDxZggreqTVHip2Ld/PyN9T4k+NGjX/ONQc="; }; in buildGoModule rec { @@ -23,7 +23,7 @@ buildGoModule rec { src = fetchFromGitHub { inherit owner repo; tag = "v${version}"; - hash = "sha256-GHUHtTE8KQtm+sWr5K+WmOr3KY7gA9hDINIBTioXNlw="; + hash = "sha256-fn3QrfTrKYWABRMF3imyoeVEpARl13fcq6Fu2GwsrcE="; }; vendorHash = null; From 47dbba169d49d3cc435c52bbafbc8ca44157c274 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 21 Mar 2025 21:12:37 +0000 Subject: [PATCH 22/30] inputplumber: 0.49.2 -> 0.49.6 --- pkgs/by-name/in/inputplumber/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/in/inputplumber/package.nix b/pkgs/by-name/in/inputplumber/package.nix index d694b04af7b1..6de63ac9ddba 100644 --- a/pkgs/by-name/in/inputplumber/package.nix +++ b/pkgs/by-name/in/inputplumber/package.nix @@ -10,17 +10,17 @@ rustPlatform.buildRustPackage rec { pname = "inputplumber"; - version = "0.49.2"; + version = "0.49.6"; src = fetchFromGitHub { owner = "ShadowBlip"; repo = "InputPlumber"; tag = "v${version}"; - hash = "sha256-vWqmcVF/gi0ubIF/NDnz0op1ss0t7A7O8NrOzszx7Gw="; + hash = "sha256-iLr7n+llvvIwS4JJMwZou4pDbT+sYOy6+un+g1YXrP4="; }; useFetchCargoVendor = true; - cargoHash = "sha256-5yG8iUW5BVHI2QcOl+9dN1c1b/wmrFCO4mDs4ZflhUM="; + cargoHash = "sha256-v0aMbaKoPL3wqcFHVcrGUGlvR5m3XhMTXD1k0YBz6OI="; nativeBuildInputs = [ pkg-config From 12717c310b345c2ab96ca8b2eb0da3fdfda664df Mon Sep 17 00:00:00 2001 From: Heitor Augusto Date: Fri, 21 Mar 2025 18:39:17 -0300 Subject: [PATCH 23/30] komac: 2.11.0 -> 2.11.1 Diff: https://github.com/russellbanks/Komac/compare/refs/tags/v2.11.0...v2.11.1 Changelog: https://github.com/russellbanks/Komac/releases/tag/v2.11.1 --- pkgs/by-name/ko/komac/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ko/komac/package.nix b/pkgs/by-name/ko/komac/package.nix index 5de39d7f4316..dfc73dc09875 100644 --- a/pkgs/by-name/ko/komac/package.nix +++ b/pkgs/by-name/ko/komac/package.nix @@ -17,17 +17,17 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "komac"; - version = "2.11.0"; + version = "2.11.1"; src = fetchFromGitHub { owner = "russellbanks"; repo = "Komac"; tag = "v${finalAttrs.version}"; - hash = "sha256-iohqtbzebX/1hkAwEe6UT6cw0BOQF5Ec5MS5ycrHoNU="; + hash = "sha256-X0lvr8GafJIP8kwnLTk3taq3WZAx50/jUt3zJIELJnc="; }; useFetchCargoVendor = true; - cargoHash = "sha256-LvYweWuMytBcke1lKNmIPeFFfjEqzR07vO2MQQ37ASY="; + cargoHash = "sha256-utsLfvFGTBuD1Tywu9TfnPGDhvSWZSokvwW22USWWls="; nativeBuildInputs = [ From 7e69ba35c22e5caf03b694867ca4cfa84b200dee Mon Sep 17 00:00:00 2001 From: Kirill Radzikhovskyy Date: Fri, 21 Mar 2025 15:51:40 +1100 Subject: [PATCH 24/30] python3Packages.llama-cpp-python: 0.3.6 -> 0.3.8 diff: https://github.com/abetlen/llama-cpp-python/compare/v0.3.6...v0.3.8 --- .../llama-cpp-python/default.nix | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/pkgs/development/python-modules/llama-cpp-python/default.nix b/pkgs/development/python-modules/llama-cpp-python/default.nix index db736284c427..6a331b1d0b11 100644 --- a/pkgs/development/python-modules/llama-cpp-python/default.nix +++ b/pkgs/development/python-modules/llama-cpp-python/default.nix @@ -4,7 +4,6 @@ gcc13Stdenv, buildPythonPackage, fetchFromGitHub, - fetchpatch2, # nativeBuildInputs cmake, @@ -40,28 +39,18 @@ let in buildPythonPackage rec { pname = "llama-cpp-python"; - version = "0.3.6"; + version = "0.3.8"; pyproject = true; src = fetchFromGitHub { owner = "abetlen"; repo = "llama-cpp-python"; tag = "v${version}"; - hash = "sha256-d5nMgpS7m6WEILs222ztwphoqkAezJ+qt6sVKSlpIYI="; + hash = "sha256-F1E1c2S1iIL3HX/Sot/uIIrOWvfPU1dCrHx14A1Jn9E="; fetchSubmodules = true; }; # src = /home/gaetan/llama-cpp-python; - patches = [ - # fix segfault when running tests due to missing default Metal devices - (fetchpatch2 { - url = "https://github.com/ggml-org/llama.cpp/commit/acd38efee316f3a5ed2e6afcbc5814807c347053.patch?full_index=1"; - stripLen = 1; - extraPrefix = "vendor/llama.cpp/"; - hash = "sha256-71+Lpg9z5KPlaQTX9D85KS2LXFWLQNJJ18TJyyq3/pU="; - }) - ]; - dontUseCmakeConfigure = true; SKBUILD_CMAKE_ARGS = lib.strings.concatStringsSep ";" ( # Set GGML_NATIVE=off. Otherwise, cmake attempts to build with @@ -72,7 +61,10 @@ buildPythonPackage rec { # -mcpu, breaking linux build as follows: # # cc1: error: unknown value ‘native+nodotprod+noi8mm+nosve’ for ‘-mcpu’ - [ "-DGGML_NATIVE=off" ] + [ + "-DGGML_NATIVE=off" + "-DGGML_BUILD_NUMBER=1" + ] ++ lib.optionals cudaSupport [ "-DGGML_CUDA=on" "-DCUDAToolkit_ROOT=${lib.getDev cudaPackages.cuda_nvcc}" From e14f01ddf1e96ccf8457dd68b9f0faf5f40a433c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 21 Mar 2025 09:32:50 +0100 Subject: [PATCH 25/30] python313Packages.pylamarzocco: 1.4.7 -> 1.4.9 Diff: https://github.com/zweckj/pylamarzocco/compare/refs/tags/v1.4.7...v1.4.9 Changelog: https://github.com/zweckj/pylamarzocco/releases/tag/v1.4.9 --- pkgs/development/python-modules/pylamarzocco/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pylamarzocco/default.nix b/pkgs/development/python-modules/pylamarzocco/default.nix index 11d436be1ab9..12ea16c04f45 100644 --- a/pkgs/development/python-modules/pylamarzocco/default.nix +++ b/pkgs/development/python-modules/pylamarzocco/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "pylamarzocco"; - version = "1.4.7"; + version = "1.4.9"; pyproject = true; disabled = pythonOlder "3.11"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "zweckj"; repo = "pylamarzocco"; tag = "v${version}"; - hash = "sha256-H3TCuTD6T/KPUGndtYoWtFum1LTwrJe18iyKrsWFZnc="; + hash = "sha256-rEN1z+gkQjWjDkISdnn0KsxVzzPSKGPI/+VeYclIvkI="; }; build-system = [ setuptools ]; From 6fc12971c082cec6fc5691b507e5945e83298304 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 22 Mar 2025 01:02:29 +0100 Subject: [PATCH 26/30] python313Packages.python-snoo: 0.6.3 -> 0.6.4 https://github.com/Lash-L/python-snoo/blob/v0.6.4/CHANGELOG.md --- pkgs/development/python-modules/python-snoo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/python-snoo/default.nix b/pkgs/development/python-modules/python-snoo/default.nix index 688d3f031d14..f50582fe90ec 100644 --- a/pkgs/development/python-modules/python-snoo/default.nix +++ b/pkgs/development/python-modules/python-snoo/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "python-snoo"; - version = "0.6.3"; + version = "0.6.4"; pyproject = true; src = fetchFromGitHub { owner = "Lash-L"; repo = "python-snoo"; tag = "v${version}"; - hash = "sha256-kY8LetiY5wMJ6BMeoWK8al1PDC00ODU8B4CXesxBZSU="; + hash = "sha256-Lzyh9DbU9opKxx/2eb2yDEmwHCHsDkbcU6Xhqj0qOaU="; }; postPatch = '' From b56ca0ba583eab2fffc1c1cec5f925625a026f27 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 22 Mar 2025 01:04:51 +0100 Subject: [PATCH 27/30] python313Packages.zha: 0.0.52 -> 0.0.53 https://github.com/zigpy/zha/releases/tag/0.0.53 --- pkgs/development/python-modules/zha/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/zha/default.nix b/pkgs/development/python-modules/zha/default.nix index a9fa51c1a1d0..1d32f8f6d1d8 100644 --- a/pkgs/development/python-modules/zha/default.nix +++ b/pkgs/development/python-modules/zha/default.nix @@ -27,7 +27,7 @@ buildPythonPackage rec { pname = "zha"; - version = "0.0.52"; + version = "0.0.53"; pyproject = true; disabled = pythonOlder "3.12"; @@ -36,7 +36,7 @@ buildPythonPackage rec { owner = "zigpy"; repo = "zha"; tag = version; - hash = "sha256-tGVRlYUoXS3uEAis9NE3gYBjbY5KzMvx8+J67BgU3kI="; + hash = "sha256-EszxMIdZKmw1q9WNyeTSMaGU9or/6oBe7VGOzXMkUzg="; }; postPatch = '' From 897b36300252607def579bd8f8bf4a10f4a1bf96 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 22 Mar 2025 01:06:27 +0100 Subject: [PATCH 28/30] home-assistant: 2025.3.3 -> 2025.4.4 https://github.com/home-assistant/core/releases/tag/2025.3.4 --- pkgs/servers/home-assistant/component-packages.nix | 2 +- pkgs/servers/home-assistant/default.nix | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index fc49fd60d8db..d65575ee75a8 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2025.3.3"; + version = "2025.3.4"; components = { "3_day_blinds" = ps: with ps; [ diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 42c6db165bc8..78eff4e2231f 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -393,7 +393,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run update-component-packages.py after updating - hassVersion = "2025.3.3"; + hassVersion = "2025.3.4"; in python.pkgs.buildPythonApplication rec { @@ -414,13 +414,13 @@ python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; tag = version; - hash = "sha256-uWNK7izeaK5XZMNfDgq/npJ1PrmC/HYHvHc5NU7Rff8="; + hash = "sha256-g1t9xAjrSSePyAloTQ2qwxAGEXJUTWX2zIZmAvlGGa8="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-axmqJRiOt5T8gr/eh7qXOQBMLrcR9ZSqLS8SlmTgkE8="; + hash = "sha256-MIh8FMTKZVEZ/zC+Av8fykTpz9kkXgZZfnsuOZbgP0M="; }; build-system = with python.pkgs; [ From d50064f4e5895f14ca179c93eb98a1c4744b511d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 22 Mar 2025 00:50:31 +0000 Subject: [PATCH 29/30] buildpack: 0.36.4 -> 0.37.0 --- pkgs/by-name/bu/buildpack/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/bu/buildpack/package.nix b/pkgs/by-name/bu/buildpack/package.nix index 5fe645989999..f114e89fed58 100644 --- a/pkgs/by-name/bu/buildpack/package.nix +++ b/pkgs/by-name/bu/buildpack/package.nix @@ -7,7 +7,7 @@ let pname = "pack"; - version = "0.36.4"; + version = "0.37.0"; in buildGoModule { inherit pname version; @@ -16,10 +16,10 @@ buildGoModule { owner = "buildpacks"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-6cWmBNlmPnNszmv6zaHlyd8GqncMtttKOMfQxxJGJ18="; + hash = "sha256-QCN0UvWa5u9XX5LvY3yD8Xz2s1XzZUg/WXnAfWwZnY0="; }; - vendorHash = "sha256-9fO/jwTpVvCdHIy1GrE2YZr7jN7Oyw64EbS2w08VOVI="; + vendorHash = "sha256-W8FTk2eJYaTE9gCRwrT+mDhda/ZZeCytqQ9vvVZZHSQ="; nativeBuildInputs = [ installShellFiles ]; From 270bf2663a94d4ee3ae15023a7980adc66f02f69 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sat, 22 Mar 2025 01:59:51 +0100 Subject: [PATCH 30/30] jbigkit: fix postInstall hook (make it unconditionnal) --- pkgs/by-name/jb/jbigkit/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/jb/jbigkit/package.nix b/pkgs/by-name/jb/jbigkit/package.nix index 6cc4a96d6d3c..2834d246b87c 100644 --- a/pkgs/by-name/jb/jbigkit/package.nix +++ b/pkgs/by-name/jb/jbigkit/package.nix @@ -82,7 +82,8 @@ stdenv.mkDerivation (finalAttrs: { ln -sv "$lib.${finalAttrs.version}" "$out/lib/$lib" ln -sv "$out/lib/$lib.${finalAttrs.version}" "$out/lib/$lib.0" done - + '' + + '' runHook postInstall '';