From 2840ee5b133af9246c887c9f1bd0e4af6530088e Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 11:40:50 +0200 Subject: [PATCH 01/16] vula: refactor; move hkdf to the same dir because it's just a dependency and we don't need to build and serve it. --- .../{hkdf/package.nix => vula/hkdf.nix} | 0 pkgs/by-name/vula/package.nix | 22 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) rename pkgs/by-name/{hkdf/package.nix => vula/hkdf.nix} (100%) diff --git a/pkgs/by-name/hkdf/package.nix b/pkgs/by-name/vula/hkdf.nix similarity index 100% rename from pkgs/by-name/hkdf/package.nix rename to pkgs/by-name/vula/hkdf.nix diff --git a/pkgs/by-name/vula/package.nix b/pkgs/by-name/vula/package.nix index 45a1583e4..c8645c92e 100644 --- a/pkgs/by-name/vula/package.nix +++ b/pkgs/by-name/vula/package.nix @@ -1,10 +1,10 @@ { - gobject-introspection, lib, + callPackage, + fetchgit, + gobject-introspection, libayatana-appindicator, python3, - fetchgit, - hkdf, wrapGAppsHook, }: let @@ -12,11 +12,13 @@ let licenses maintainers ; + + hkdf = callPackage ./hkdf.nix { }; in python3.pkgs.buildPythonApplication { pname = "vula"; version = "0.2-unstable-2024-05-17"; - format = "setuptools"; + pyproject = true; src = fetchgit { url = "https://codeberg.org/vula/vula"; @@ -31,7 +33,11 @@ python3.pkgs.buildPythonApplication { --replace "IMAGE_BASE_PATH = '/usr/share/icons/vula/'" "IMAGE_BASE_PATH = '$out/share/icons/vula/'" ''; - propagatedBuildInputs = + build-system = with python3.pkgs; [ + setuptools + ]; + + dependencies = (with python3.pkgs; [ click cryptography @@ -54,11 +60,15 @@ python3.pkgs.buildPythonApplication { hkdf ]; - buildInputs = [ libayatana-appindicator ]; nativeBuildInputs = [ wrapGAppsHook gobject-introspection ]; + + buildInputs = [ + libayatana-appindicator + ]; + nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ]; postInstall = '' From 62e2f3282212af6dad958cbae561ff8dc8b27bf7 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 12:02:54 +0200 Subject: [PATCH 02/16] kazarma: fix build failure --- pkgs/by-name/kazarma/package.nix | 8 +++----- projects/Kazarma/default.nix | 6 ------ 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/kazarma/package.nix b/pkgs/by-name/kazarma/package.nix index b0df36086..e6d57bd2e 100644 --- a/pkgs/by-name/kazarma/package.nix +++ b/pkgs/by-name/kazarma/package.nix @@ -1,6 +1,6 @@ { lib, - beamPackages, + beam27Packages, buildNpmPackage, cacert, fetchFromGitHub, @@ -8,6 +8,8 @@ nodejs, }: let + beamPackages = beam27Packages; + # https://github.com/elixir-lang/elixir/issues/13976 beamPackages' = beamPackages.extend (self: super: { elixir = self.elixir_1_17; }); @@ -84,9 +86,5 @@ beamPackages'.mixRelease { license = lib.licenses.agpl3Only; teams = [ lib.teams.ngi ]; mainProgram = "kazarma"; - # elixir 1.17 requires erlang >= 25 and <= 27 - # even when that's true, cldr compilation still fails - # https://github.com/ngi-nix/ngipkgs/issues/1096 - broken = true; }; } diff --git a/projects/Kazarma/default.nix b/projects/Kazarma/default.nix index 3c224fcb7..ed0943721 100644 --- a/projects/Kazarma/default.nix +++ b/projects/Kazarma/default.nix @@ -36,12 +36,6 @@ module = ./services/kazarma/examples/basic.nix; description = null; tests.basic.module = import ./services/kazarma/tests/basic.nix args; - tests.basic.problem.broken.reason = '' - elixir 1.17 requires erlang >= 25 and <= 27 - even when that's true, cldr compilation still fails - - See: https://github.com/ngi-nix/ngipkgs/issues/1096 - ''; }; }; }; From 4d5a43e1df37bee8750fd9b110ac74c32fe13baa Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 12:14:30 +0200 Subject: [PATCH 03/16] kazarma: add update script --- pkgs/by-name/kazarma/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/kazarma/package.nix b/pkgs/by-name/kazarma/package.nix index e6d57bd2e..bd240927a 100644 --- a/pkgs/by-name/kazarma/package.nix +++ b/pkgs/by-name/kazarma/package.nix @@ -6,6 +6,9 @@ fetchFromGitHub, fetchFromGitLab, nodejs, + _experimental-update-script-combinators, + unstableGitUpdater, + nix-update-script, }: let beamPackages = beam27Packages; @@ -79,6 +82,13 @@ beamPackages'.mixRelease { mix do deps.loadpaths --no-deps-check, phx.digest ''; + # Can't update from GitLab with fetchSubmodules + # https://github.com/Mic92/nix-update/issues/281 + passthru.updateScript = _experimental-update-script-combinators.sequence [ + (unstableGitUpdater { tagPrefix = "v"; }) # update version + source + (nix-update-script { extraArgs = [ "--version=skip" ]; }) # update deps + ]; + meta = { description = "Matrix bridge to ActivityPub"; homepage = "https://kazar.ma/"; From f9a43f7ba3b9474c5170fd8f044a76850e590082 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 12:26:19 +0200 Subject: [PATCH 04/16] taldir: 1.0.5 -> 1.0.5-unstable-2025-10-15; refactor update script --- pkgs/by-name/taldir/package.nix | 45 +++++++++------------------------ 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/pkgs/by-name/taldir/package.nix b/pkgs/by-name/taldir/package.nix index 3b7c4a831..971d7bf7f 100644 --- a/pkgs/by-name/taldir/package.nix +++ b/pkgs/by-name/taldir/package.nix @@ -3,22 +3,21 @@ fetchgit, recutils, buildGoModule, - gitUpdater, - writeShellApplication, - nix, _experimental-update-script-combinators, + unstableGitUpdater, + nix-update-script, }: buildGoModule (finalAttrs: { pname = "taldir"; - version = "1.0.5"; + version = "1.0.5-unstable-2025-10-15"; src = fetchgit { url = "https://git.taler.net/taldir.git"; - tag = "v${finalAttrs.version}"; - hash = "sha256-ZKNkMV0IV6E+yCQeabGXpIQclx1S4YEgFn4whGXTaks="; + rev = "8fbc813afb14807dbc62c4c95402f282a8165f07"; + hash = "sha256-2tIS98MTPGTEYym7L9ch+tWdDJBvKVQwpfAkxZiJaSc="; }; - vendorHash = "sha256-QCwakJTpRP7VT69EzQeInCCGBuNu3WsNCytnQcBdKQw="; + vendorHash = "sha256-G8eujeYLSlQ95hNLspAlWSj7MSB/eyg4iD2pp3kSupQ="; nativeBuildInputs = [ recutils @@ -43,32 +42,12 @@ buildGoModule (finalAttrs: { # dial error (dial tcp [::1]:5432: connect: connection refused) doCheck = false; - passthru = { - updateScriptSrc = gitUpdater { rev-prefix = "v"; }; - updateScriptVendor = writeShellApplication { - name = "update-taldir-vendorHash"; - runtimeInputs = [ nix ]; - text = '' - export UPDATE_NIX_ATTR_PATH="''${UPDATE_NIX_ATTR_PATH:-taldir}" - - oldhash="$(nix-instantiate . --eval --strict -A "$UPDATE_NIX_ATTR_PATH.goModules.drvAttrs.outputHash" | cut -d'"' -f2)" - newhash="$(nix-build -A "$UPDATE_NIX_ATTR_PATH.goModules" --no-out-link 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true)" - - if [ "$newhash" == "" ]; then - echo "No new vendorHash." - exit 0 - fi - - fname="$(nix-instantiate --eval -E "with import ./. {}; (builtins.unsafeGetAttrPos \"version\" $UPDATE_NIX_ATTR_PATH).file" | cut -d'"' -f2)" - - sed -i "s/$oldhash/$newhash/" "$fname" - ''; - }; - updateScript = _experimental-update-script-combinators.sequence [ - finalAttrs.passthru.updateScriptSrc.command - (lib.getExe finalAttrs.passthru.updateScriptVendor) - ]; - }; + # Currently, `nix-update-script` can only get latest version from: + # codeberg/crates.io/gitea/github/gitlab/pypi/savannah/sourcehut/rubygems/npm + passthru.updateScript = _experimental-update-script-combinators.sequence [ + (unstableGitUpdater { tagPrefix = "v"; }) # update version + source + (nix-update-script { extraArgs = [ "--version=skip" ]; }) # update deps + ]; meta = { homepage = "https://git.taler.net/taldir.git"; From 1421ca0ee7826571a1a642eec03d565b4d631c97 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 12:31:03 +0200 Subject: [PATCH 05/16] inventaire-i18n: refactor update script --- pkgs/by-name/inventaire-i18n/package.nix | 41 +++--------------------- 1 file changed, 5 insertions(+), 36 deletions(-) diff --git a/pkgs/by-name/inventaire-i18n/package.nix b/pkgs/by-name/inventaire-i18n/package.nix index 138399032..afa08dbfa 100644 --- a/pkgs/by-name/inventaire-i18n/package.nix +++ b/pkgs/by-name/inventaire-i18n/package.nix @@ -2,14 +2,10 @@ lib, buildNpmPackage, fetchFromGitea, - unstableGitUpdater, - writeShellApplication, - _experimental-update-script-combinators, - nix, - sd, + nix-update-script, }: -buildNpmPackage rec { +buildNpmPackage (finalAttrs: { pname = "inventaire-i18n"; version = "0-unstable-2025-10-07"; @@ -27,40 +23,13 @@ buildNpmPackage rec { patchShebangs scripts ''; - passthru = { - updateScriptSrc = unstableGitUpdater { }; - updateScriptNpmDeps = writeShellApplication { - name = "update-inventaire-i18n-npmDepsHash"; - runtimeInputs = [ - nix - sd - ]; - text = '' - export UPDATE_NIX_ATTR_PATH="''${UPDATE_NIX_ATTR_PATH:-inventaire-i18n}" - - oldhash="$(nix-instantiate . --eval --strict -A ngipkgs."$UPDATE_NIX_ATTR_PATH".npmDepsHash | cut -d'"' -f2)" - newhash="$(nix-build -A ngipkgs."$UPDATE_NIX_ATTR_PATH".npmDeps --no-out-link 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true)" - - if [ "$newhash" == "" ]; then - echo "No new npmDepsHash." - exit 0 - fi - - fname="$(nix-instantiate --eval -E "with import ./. {}; (builtins.unsafeGetAttrPos \"version\" ngipkgs.$UPDATE_NIX_ATTR_PATH).file" | cut -d'"' -f2)" - ${sd.meta.mainProgram} --string-mode "$oldhash" "$newhash" "$fname" - ''; - }; - updateScript = _experimental-update-script-combinators.sequence [ - passthru.updateScriptSrc - (lib.getExe passthru.updateScriptNpmDeps) - ]; - }; + passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; meta = { description = "Repository hosting inventaire i18n strings and scripts"; homepage = "https://codeberg.org/inventaire/inventaire-i18n"; license = lib.licenses.agpl3Only; platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ ]; + teams = with lib.teams; [ ngi ]; }; -} +}) From 18a8148ad23d42aff212e76c4934253e0014466c Mon Sep 17 00:00:00 2001 From: eljamm Date: Mon, 20 Oct 2025 16:55:24 +0200 Subject: [PATCH 06/16] inventaire-i18n: 0-unstable-2025-10-07 -> 0-unstable-2025-10-20 --- pkgs/by-name/inventaire-i18n/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/inventaire-i18n/package.nix b/pkgs/by-name/inventaire-i18n/package.nix index afa08dbfa..c966a4abc 100644 --- a/pkgs/by-name/inventaire-i18n/package.nix +++ b/pkgs/by-name/inventaire-i18n/package.nix @@ -7,14 +7,14 @@ buildNpmPackage (finalAttrs: { pname = "inventaire-i18n"; - version = "0-unstable-2025-10-07"; + version = "0-unstable-2025-10-20"; src = fetchFromGitea { domain = "codeberg.org"; owner = "inventaire"; repo = "inventaire-i18n"; - rev = "21121fab751ac85bd4d4f609b727685830560137"; - hash = "sha256-YcVWayPIdaLFHmCnE5lECS15epIUNrDip/baPCwyvjE="; + rev = "ff65e4b40549955decdcc5c6913daa1672242901"; + hash = "sha256-N9/zIul/rzd/vvTJmN1cXIXM9cgvDKlishmw0kH+z34="; }; npmDepsHash = "sha256-hJ9L9X53n44Iz0lKX2NspMLtQbQA0nRgJvYZc5+xNuA="; From a2ff31cb661af187993acacad936d277bb2d50ce Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 12:39:20 +0200 Subject: [PATCH 07/16] inventaire-client: fix build script; refactor --- pkgs/by-name/inventaire-client/package.nix | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/inventaire-client/package.nix b/pkgs/by-name/inventaire-client/package.nix index 562fb7ff7..193db17ad 100644 --- a/pkgs/by-name/inventaire-client/package.nix +++ b/pkgs/by-name/inventaire-client/package.nix @@ -49,7 +49,7 @@ let ''; }; in -buildNpmPackage rec { +buildNpmPackage (finalAttrs: { pname = "inventaire-client"; version = "4.0.1"; @@ -57,7 +57,7 @@ buildNpmPackage rec { domain = "codeberg.org"; owner = "inventaire"; repo = "inventaire-client"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-5v6JNqinlaiyDFidn6j7zaXdIoCaf8L6qHoa6qhC5Uk="; }; @@ -109,7 +109,9 @@ buildNpmPackage rec { --replace-fail './scripts/build_i18n' '${lib.getExe copyI18nDataScript}' \ --replace-fail 'webpack --config ./bundle/webpack.config.prod.cjs --progress' 'webpack --config ./bundle/webpack.config.prod.cjs' \ --replace-fail 'date -Ins' 'date -d "@$SOURCE_DATE_EPOCH" -Ins' \ - --replace-fail '$(git rev-parse --short HEAD)' '"${if src.tag != null then src.tag else src.rev}"' + --replace-fail '$(git rev-parse --short HEAD)' '"${ + with finalAttrs; if src.tag != null then src.tag else src.rev + }"' ''; # "Your cache folder contains root-owned files" error from NPM @@ -129,9 +131,7 @@ buildNpmPackage rec { ''; passthru = rec { - updateSourceScript = gitUpdater { - rev-prefix = "v"; - }; + updateSourceScript = gitUpdater { rev-prefix = "v"; }; updateQueriesScript = writeShellApplication { name = "inventaire-client-sparql-queries-update-script"; runtimeInputs = [ @@ -145,9 +145,10 @@ buildNpmPackage rec { }; text = lib.strings.readFile ./update-sparql-queries.sh; }; + # FIX: don't update `sparql-queries` if there is no version change updateScript = _experimental-update-script-combinators.sequence [ updateSourceScript.command - updateQueriesScript + (lib.getExe updateQueriesScript) ]; }; @@ -155,7 +156,7 @@ buildNpmPackage rec { description = "A libre collaborative resources mapper powered by open-knowledge (client-side)"; homepage = "https://inventaire.io"; license = lib.licenses.agpl3Only; - maintainers = with lib.maintainers; [ ]; platforms = lib.platforms.all; + teams = with lib.teams; [ ngi ]; }; -} +}) From 865fac7531637f892631ffbfcc0de860e37f4a70 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 15:05:37 +0200 Subject: [PATCH 08/16] proximity-matcher: add update script --- pkgs/by-name/proximity-matcher/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/proximity-matcher/package.nix b/pkgs/by-name/proximity-matcher/package.nix index 5f3be3578..21ba068d2 100644 --- a/pkgs/by-name/proximity-matcher/package.nix +++ b/pkgs/by-name/proximity-matcher/package.nix @@ -2,6 +2,7 @@ lib, fetchFromGitHub, python3Packages, + nix-update-script, }: let @@ -74,6 +75,8 @@ python3Packages.buildPythonPackage { "proximity_matcher_webservice" ]; + passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; + meta = { description = "Webservice for proximity matching based on TLSH and vantage point trees"; homepage = "https://github.com/armijnhemel/proximity_matcher_webservice"; From ac0023ef10efa7b73659a0308e506ef836dfebc6 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 15:09:04 +0200 Subject: [PATCH 09/16] reoxide-plugin-simple: add update script; fix version --- pkgs/by-name/reoxide-plugin-simple/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/reoxide-plugin-simple/package.nix b/pkgs/by-name/reoxide-plugin-simple/package.nix index 47068d990..51884739d 100644 --- a/pkgs/by-name/reoxide-plugin-simple/package.nix +++ b/pkgs/by-name/reoxide-plugin-simple/package.nix @@ -7,11 +7,13 @@ clang, ninja, reoxide, + + nix-update-script, }: clangStdenv.mkDerivation (finalAttrs: { pname = "reoxide-plugin-simple"; - version = "0-unstable-2025-09-12"; + version = "0-unstable-2025-09-04"; # use latest dev branch commit src = fetchFromGitea { @@ -37,13 +39,11 @@ clangStdenv.mkDerivation (finalAttrs: { mesonBuildType = "release"; preConfigure = '' - mkdir -p .config/reoxide touch .config/reoxide/reoxide.toml export HOME=$PWD meson setup --buildtype=release build - ''; postInstall = '' @@ -51,6 +51,8 @@ clangStdenv.mkDerivation (finalAttrs: { cp simple/libsimple.so $out/lib/ ''; + passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; + meta = { description = "Simple plugin template for reoxide"; homepage = "https://codeberg.org/ReOxide/reoxide"; From 4ffb81a9121b0f3159068ecde09ef37e059efc2b Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 15:14:47 +0200 Subject: [PATCH 10/16] taler-mdb: add update script --- pkgs/by-name/taler-mdb/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/taler-mdb/package.nix b/pkgs/by-name/taler-mdb/package.nix index 623e27d08..dc7b401ad 100644 --- a/pkgs/by-name/taler-mdb/package.nix +++ b/pkgs/by-name/taler-mdb/package.nix @@ -14,6 +14,7 @@ taler-exchange, taler-merchant, qrencode, + gitUpdater, }: let @@ -59,6 +60,8 @@ stdenv.mkDerivation (finalAttrs: { doInstallCheck = true; + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + meta = { homepage = "https://git.taler.net/taler-mdb.git"; description = "Sales integration with the Multi-Drop-Bus of Snack machines, NFC readers and QR code display."; From 261b276fa2aa78678e37f3d6a77c2f681683cc94 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 16:08:30 +0200 Subject: [PATCH 11/16] taler-mdb: 0.14.1 -> 1.0.0 --- pkgs/by-name/taler-mdb/package.nix | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/taler-mdb/package.nix b/pkgs/by-name/taler-mdb/package.nix index dc7b401ad..c81e8f750 100644 --- a/pkgs/by-name/taler-mdb/package.nix +++ b/pkgs/by-name/taler-mdb/package.nix @@ -17,29 +17,17 @@ gitUpdater, }: -let - docs = fetchgit { - url = "https://git.taler.net/taler-docs.git"; - rev = "b97d82f99dc32b0fdb7942dbb501603a2c86f8b1"; - hash = "sha256-qyp/iHHGxE0A2UCSY+muyzUd0upuJeQK1OIaacsmrjs="; - }; -in stdenv.mkDerivation (finalAttrs: { pname = "taler-mdb"; - version = "0.14.1"; + version = "1.0.0"; src = fetchgit { url = "https://git.taler.net/taler-mdb.git"; rev = "v${finalAttrs.version}"; - # fatal: repository 'https://git.taler.net/docs.git/' not found - fetchSubmodules = false; - hash = "sha256-+raX3O2RNaMsN7Wi6F0P/lccpLOtL13EU4Fpe9lCueA="; + hash = "sha256-AAFnF8bN2Pnhy8OZbgA6CRHBIC6iP785HpVjPEVu+IQ="; + fetchSubmodules = true; }; - postPatch = '' - cp -R ${docs}/* doc/prebuilt/ - ''; - nativeBuildInputs = [ autoreconfHook pkg-config From d40c098df82dec78b553998aaf2c0e4764221716 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 16:18:16 +0200 Subject: [PATCH 12/16] wax-client: 0-unstable-2025-08-14 -> 0-unstable-2025-10-07 Also add update script. --- pkgs/by-name/wax-client/package.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/wax-client/package.nix b/pkgs/by-name/wax-client/package.nix index 00d1b6322..e34decd48 100644 --- a/pkgs/by-name/wax-client/package.nix +++ b/pkgs/by-name/wax-client/package.nix @@ -9,24 +9,25 @@ nodejs, makeWrapper, nodePackages, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "wax-client"; - version = "0-unstable-2025-08-14"; + version = "0-unstable-2025-10-07"; src = fetchFromGitHub { owner = "Wax-Platform"; repo = "Wax"; - rev = "01316b557d201b09b4ce9745c7d7e841d94b8268"; - hash = "sha256-afc15miIzzEBRrzvJaRzSK+IWe4/36+Lvo7IbmNM2CA="; + rev = "e87966c0b3c629e3ae03ba3423f8cb8c4ce8a6d7"; + hash = "sha256-2gOv6S9TfzAZH5OloNtRo1jJFvfrrP8/i2zNX6hEq2U="; }; sourceRoot = "${finalAttrs.src.name}/packages/client"; yarnOfflineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/packages/client/yarn.lock"; - hash = "sha256-ztT3uwlTM+Dz7dzvfExvUc4zLU/SHSYQaKsMUUCGPrA="; + hash = "sha256-yvl8VrAHqPuiDEWO4KB6NKRhRzxkZhD/SvQVGzrX2fU="; }; nativeBuildInputs = [ @@ -73,6 +74,8 @@ stdenv.mkDerivation (finalAttrs: { --prefix PATH : ${lib.makeBinPath [ nodePackages.serve ]} \ ''; + passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; + meta = { homepage = "https://github.com/Wax-Platform/Wax"; description = "Wax Platform web client for collaborative document editing"; From 2b958acf3475c9e56e21bad2c79cf8180c88b499 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 16:26:47 +0200 Subject: [PATCH 13/16] wax-server: 0-unstable-2025-08-14 -> 0-unstable-2025-10-07 --- pkgs/by-name/wax-server/package.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/wax-server/package.nix b/pkgs/by-name/wax-server/package.nix index a168c9aa7..e8eb573a3 100644 --- a/pkgs/by-name/wax-server/package.nix +++ b/pkgs/by-name/wax-server/package.nix @@ -16,17 +16,18 @@ potrace, yarn, node-pre-gyp, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "wax-server"; - version = "0-unstable-2025-08-14"; + version = "0-unstable-2025-10-07"; src = fetchFromGitHub { owner = "Wax-Platform"; repo = "Wax"; - rev = "01316b557d201b09b4ce9745c7d7e841d94b8268"; - hash = "sha256-afc15miIzzEBRrzvJaRzSK+IWe4/36+Lvo7IbmNM2CA="; + rev = "e87966c0b3c629e3ae03ba3423f8cb8c4ce8a6d7"; + hash = "sha256-2gOv6S9TfzAZH5OloNtRo1jJFvfrrP8/i2zNX6hEq2U="; }; sourceRoot = "${finalAttrs.src.name}/packages/server"; @@ -60,7 +61,6 @@ stdenv.mkDerivation (finalAttrs: { # Building bcrypt with node-gyp requires node headers # See https://nixos.org/manual/nixpkgs/unstable/#javascript-yarn2nix-pitfalls export npm_config_nodedir=${nodejs} - ''; postInstall = '' @@ -81,6 +81,8 @@ stdenv.mkDerivation (finalAttrs: { } ''; + passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; + meta = { homepage = "https://github.com/Wax-Platform/Wax"; description = "Wax Platform web server for collaborative document editing"; From 592a2411c8e615597f9606598a24156b27715ff3 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 17:01:40 +0200 Subject: [PATCH 14/16] wireguard-rs: add update script --- pkgs/by-name/wireguard-rs/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/wireguard-rs/package.nix b/pkgs/by-name/wireguard-rs/package.nix index bb3c487bf..7848c183c 100644 --- a/pkgs/by-name/wireguard-rs/package.nix +++ b/pkgs/by-name/wireguard-rs/package.nix @@ -2,6 +2,7 @@ lib, rustPlatform, fetchgit, + unstableGitUpdater, }: let inherit (lib) @@ -26,6 +27,8 @@ rustPlatform.buildRustPackage { cp ${./Cargo.lock} Cargo.lock ''; + passthru.updateScript = unstableGitUpdater { }; + meta = { homepage = "https://git.zx2c4.com/wireguard-rs"; description = "Rust implementation of WireGuard"; From 5e62ca476b201b0c2692bd0a096b06196ea36cfd Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 12:54:34 +0200 Subject: [PATCH 15/16] Skip updating packages with broken update scripts --- default.nix | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/default.nix b/default.nix index 7a2cb9a30..948e102aa 100644 --- a/default.nix +++ b/default.nix @@ -176,11 +176,42 @@ rec { runtimeInputs = with pkgs; [ nix-update ]; text = let + skipped-packages = [ + "atomic-browser" # -> atomic-server + "atomic-cli" # -> atomic-server + "firefox-meta-press" # -> meta-press + "inventaire" # -> inventaire-client + "kbin" # -> kbin-backend + "kbin-frontend" # -> kbin-backend + "pretalxFull" # -> pretalx + # FIX: needs custom update script + "marginalia-search" + "peertube-plugin-livechat" + # FIX: dream2nix + "corestore" + "liberaforms" + # FIX: package scope + "bigbluebutton" + "heads" + # FIX: don't update `sparql-queries` if there is no version change + "inventaire-client" + # fetcher not supported + "libervia-backend" + "libervia-desktop-kivy" + "libervia-media" + "libervia-templates" + "sat-tmp" + "urwid-satext" + # broken package + "libresoc-nmigen" + "libresoc-verilog" + ]; + update-packages = with lib; filter (x: !elem x skipped-packages) (attrNames ngipkgs); update-commands = lib.concatMapStringsSep "\n" (package: '' if ! nix-update --flake --use-update-script "${package}" "$@"; then echo "${package}" >> "$TMPDIR/failed_updates.txt" fi - '') (lib.attrNames ngipkgs); + '') update-packages; in # bash '' From f5b9b59fe1a645acaf5207618a67660791169f4c Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 18:14:15 +0200 Subject: [PATCH 16/16] vula: add update script; update to latest version --- pkgs/by-name/vula/package.nix | 21 ++++++++---- pkgs/by-name/vula/pymonocypher.nix | 38 ++++++++++++++++++++++ pkgs/by-name/vula/rendez.nix | 51 ++++++++++++++++++++++++++++++ projects/Vula/default.nix | 8 +---- 4 files changed, 105 insertions(+), 13 deletions(-) create mode 100644 pkgs/by-name/vula/pymonocypher.nix create mode 100644 pkgs/by-name/vula/rendez.nix diff --git a/pkgs/by-name/vula/package.nix b/pkgs/by-name/vula/package.nix index c8645c92e..cf7ba3608 100644 --- a/pkgs/by-name/vula/package.nix +++ b/pkgs/by-name/vula/package.nix @@ -1,11 +1,12 @@ { lib, callPackage, - fetchgit, + fetchFromGitea, gobject-introspection, libayatana-appindicator, python3, wrapGAppsHook, + unstableGitUpdater, }: let inherit (lib) @@ -14,16 +15,19 @@ let ; hkdf = callPackage ./hkdf.nix { }; + rendez = callPackage ./rendez.nix { }; in python3.pkgs.buildPythonApplication { pname = "vula"; - version = "0.2-unstable-2024-05-17"; + version = "0.2.2024011000-unstable-2025-07-15"; pyproject = true; - src = fetchgit { - url = "https://codeberg.org/vula/vula"; - rev = "b82933c2d45496afb91727e7ce3dff61ae262473"; - hash = "sha256-DVjEg28GFmA3fOgXZ8MQ7rwfZtt6WkK1qHnyTnYbKcY="; + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "vula"; + repo = "vula"; + rev = "59611c2c7d1ac69be71961ecccf52c61c6b3dd3e"; + hash = "sha256-hYXkfgTlcQ7HIMiYRxkuWuVGjZxWNqRgbjfKFT6gnaw="; }; # without removing `pyproject.toml` we don't end up with an executable. @@ -55,9 +59,12 @@ python3.pkgs.buildPythonApplication { setuptools tkinter zeroconf + typing-extensions + dbus-python ]) ++ [ hkdf + rendez ]; nativeBuildInputs = [ @@ -76,6 +83,8 @@ python3.pkgs.buildPythonApplication { ln -s $out/${python3.sitePackages}/usr/share/icons $out/share ''; + passthru.updateScript = unstableGitUpdater { tagPrefix = "v"; }; + meta = { description = "Automatic local network encryption"; homepage = "https://vula.link/"; diff --git a/pkgs/by-name/vula/pymonocypher.nix b/pkgs/by-name/vula/pymonocypher.nix new file mode 100644 index 000000000..263aebb87 --- /dev/null +++ b/pkgs/by-name/vula/pymonocypher.nix @@ -0,0 +1,38 @@ +{ + lib, + python3Packages, + fetchFromGitHub, +}: + +python3Packages.buildPythonApplication rec { + pname = "pymonocypher"; + version = "4.0.2.5"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jetperch"; + repo = "pymonocypher"; + rev = "v${version}"; + hash = "sha256-3vnF2MnrjI7pRiOTjPZ0D8tDojfdGJ2kSlLqF7Kkp5Y="; + }; + + build-system = with python3Packages; [ + cython + setuptools + wheel + ]; + + pythonImportsCheck = [ + "monocypher" + ]; + + meta = { + description = "Python ctypes bindings to the Monocypher library"; + homepage = "https://pypi.org/project/pymonocypher/"; + license = with lib.licenses; [ + cc0 + bsd2 + ]; + mainProgram = "pymonocypher"; + }; +} diff --git a/pkgs/by-name/vula/rendez.nix b/pkgs/by-name/vula/rendez.nix new file mode 100644 index 000000000..3ccbaffa8 --- /dev/null +++ b/pkgs/by-name/vula/rendez.nix @@ -0,0 +1,51 @@ +{ + lib, + python3, + fetchPypi, + callPackage, +}: + +let + hkdf = callPackage ./hkdf.nix { }; + pymonocypher = callPackage ./pymonocypher.nix { }; +in + +python3.pkgs.buildPythonApplication rec { + pname = "rendez"; + version = "1.2.1"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-V1hbhlBngIrHHozpR2B+NhTnljHumYvUS9Sz6ms20Eg="; + }; + + build-system = [ + python3.pkgs.flit-core + ]; + + dependencies = with python3.pkgs; [ + click + cryptography + flask + highctidh + hkdf + ifaddr + pymonocypher + pysocks + requests + stem + toml + ]; + + pythonImportsCheck = [ + "rendez" + ]; + + meta = { + description = "From rendez.vous import reunion"; + homepage = "https://pypi.org/project/rendez/"; + license = lib.licenses.gpl3Only; + mainProgram = "rendez"; + }; +} diff --git a/projects/Vula/default.nix b/projects/Vula/default.nix index 46cb09eb9..5ea0cd68d 100644 --- a/projects/Vula/default.nix +++ b/projects/Vula/default.nix @@ -23,13 +23,7 @@ Add users to the group defined in `config.services.vula.operatorsGroup` to grant them permissions to manage Vula through the `vula` command. ''; - # FIX: - tests.test = { - module = import ./test.nix args; - problem.broken.reason = '' - https://buildbot.ngi.nixos.org/#/builders/193/builds/1789 - ''; - }; + tests.basic.module = import ./test.nix args; }; }; }