From c689716d48cfa92995ccee73e04cef402ac13965 Mon Sep 17 00:00:00 2001 From: Gautier DI FOLCO Date: Mon, 25 Nov 2024 01:15:17 +0100 Subject: [PATCH 01/65] nixos/prometheus.alertmanagerIrcRelay: fix network-online.target ordering but not depending warning --- .../services/monitoring/prometheus/alertmanager-irc-relay.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager-irc-relay.nix b/nixos/modules/services/monitoring/prometheus/alertmanager-irc-relay.nix index eda4277c1bac..8c0f41ae1962 100644 --- a/nixos/modules/services/monitoring/prometheus/alertmanager-irc-relay.nix +++ b/nixos/modules/services/monitoring/prometheus/alertmanager-irc-relay.nix @@ -56,6 +56,7 @@ in wantedBy = [ "multi-user.target" ]; after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; serviceConfig = { ExecStart = '' From eba050bcee71dab0b604890682b710442f97b90f Mon Sep 17 00:00:00 2001 From: globule Date: Sat, 28 Dec 2024 21:59:39 +0100 Subject: [PATCH 02/65] maintainers: add globule655 --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 77493c7f1090..8ac4c94d3d44 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -8450,6 +8450,12 @@ githubId = 1447245; name = "Robin Gloster"; }; + globule655 = { + email = "globule655@gmail.com"; + github = "globule655"; + githubId = 47015416; + name = "globule655"; + }; gm6k = { email = "nix@quidecco.pl"; name = "Isidor Zeuner"; From 24ff7ae790016b99d735a5c8878f1b60e5cf3d08 Mon Sep 17 00:00:00 2001 From: globule Date: Sat, 28 Dec 2024 22:04:35 +0100 Subject: [PATCH 03/65] obs-studio-plugins.distroav: init at 6.0.0 This Version has major & large code changes.Starting v6 the plugin has been re-branded DistroAV from OBS-NDI. https://github.com/DistroAV/DistroAV/releases/tag/6.0.0 "obs-studio-plugins.distroav: correct file formatting" "obs-studio-plugins.distroav: fixed fmt issue by adding tag" obs-studio-plugins.distroav: run nixfmt on the file to fix formatting osb-studio-plugins.distroav: changed lib reference to ndi-6 obs-studio-plugins.distroav: fix ndi-6 reference --- .../video/obs-studio/plugins/default.nix | 2 + .../obs-studio/plugins/distroav/default.nix | 61 +++++++++++++++++++ .../plugins/distroav/hardcode-ndi-path.patch | 18 ++++++ 3 files changed, 81 insertions(+) create mode 100644 pkgs/applications/video/obs-studio/plugins/distroav/default.nix create mode 100644 pkgs/applications/video/obs-studio/plugins/distroav/hardcode-ndi-path.patch diff --git a/pkgs/applications/video/obs-studio/plugins/default.nix b/pkgs/applications/video/obs-studio/plugins/default.nix index 2eca00244349..a86719e5fb0d 100644 --- a/pkgs/applications/video/obs-studio/plugins/default.nix +++ b/pkgs/applications/video/obs-studio/plugins/default.nix @@ -10,6 +10,8 @@ droidcam-obs = callPackage ./droidcam-obs { }; + distroav = qt6Packages.callPackage ./distroav { }; + input-overlay = qt6Packages.callPackage ./input-overlay.nix { }; looking-glass-obs = callPackage ./looking-glass-obs.nix { }; diff --git a/pkgs/applications/video/obs-studio/plugins/distroav/default.nix b/pkgs/applications/video/obs-studio/plugins/distroav/default.nix new file mode 100644 index 000000000000..6654cb08ac40 --- /dev/null +++ b/pkgs/applications/video/obs-studio/plugins/distroav/default.nix @@ -0,0 +1,61 @@ +{ + lib, + stdenv, + fetchFromGitHub, + obs-studio, + cmake, + qtbase, + ndi-6, + curl, +}: + +stdenv.mkDerivation rec { + pname = "distroav"; + version = "6.0.0"; + + nativeBuildInputs = [ + cmake + qtbase + ]; + + buildInputs = [ + obs-studio + qtbase + ndi-6 + curl + ]; + + src = fetchFromGitHub { + owner = "DistroAV"; + repo = "DistroAV"; + tag = version; + hash = "sha256-pr/5XCLo5fzergIQrYFC9o9K+KuP4leDk5/oRe5ct9Q="; + }; + + # Modify plugin-main.cpp file to fix ndi libs path + patches = [ ./hardcode-ndi-path.patch ]; + + postPatch = '' + # Add path (variable added in hardcode-ndi-path.patch + substituteInPlace src/plugin-main.cpp --replace-fail "@NDI@" "${ndi-6}" + + # Replace bundled NDI SDK with the upstream version + # (This fixes soname issues) + rm -rf lib/ndi + ln -s ${ndi-6}/include lib/ndi + ''; + + cmakeFlags = [ "-DENABLE_QT=ON" ]; + + env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations"; + + dontWrapQtApps = true; + + meta = { + description = "Network A/V plugin for OBS Studio (formerly obs-ndi)"; + homepage = "https://github.com/DistroAV/DistroAV"; + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ globule655 ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/applications/video/obs-studio/plugins/distroav/hardcode-ndi-path.patch b/pkgs/applications/video/obs-studio/plugins/distroav/hardcode-ndi-path.patch new file mode 100644 index 000000000000..567d5c4fbcb7 --- /dev/null +++ b/pkgs/applications/video/obs-studio/plugins/distroav/hardcode-ndi-path.patch @@ -0,0 +1,18 @@ +diff --git a/src/plugin-main.cpp b/src/plugin-main.cpp +index 0d94add..617af73 100644 +--- a/src/plugin-main.cpp ++++ b/src/plugin-main.cpp +@@ -369,14 +369,7 @@ const NDIlib_v5 *load_ndilib() + if (!temp_path.isEmpty()) { + locations << temp_path; + } +-#if defined(Q_OS_LINUX) || defined(Q_OS_MACOS) +- // Linux, MacOS +- // https://github.com/DistroAV/DistroAV/blob/master/lib/ndi/NDI%20SDK%20Documentation.pdf +- // "6.1 LOCATING THE LIBRARY +- // ... the redistributable on MacOS is installed within `/usr/local/lib` ..." +- locations << "/usr/lib"; +- locations << "/usr/local/lib"; +-#endif ++ locations << "@NDI@/lib"; + auto lib_path = QString(); From 92c9f252eb49dee51558827bae6181a9f5b6c6d3 Mon Sep 17 00:00:00 2001 From: globule Date: Sat, 28 Dec 2024 22:13:00 +0100 Subject: [PATCH 04/65] ndi-6: init at 6.1.1 Major update from existing 4.x package. Compatible with DistroAV obs-studio plugin https://docs.ndi.video/all/getting-started/release-notes#ndi-6.1.1 --- pkgs/by-name/nd/ndi-6/package.nix | 86 ++++++++++++++++++++++++++++++ pkgs/by-name/nd/ndi-6/update.py | 77 ++++++++++++++++++++++++++ pkgs/by-name/nd/ndi-6/version.json | 1 + 3 files changed, 164 insertions(+) create mode 100644 pkgs/by-name/nd/ndi-6/package.nix create mode 100755 pkgs/by-name/nd/ndi-6/update.py create mode 100644 pkgs/by-name/nd/ndi-6/version.json diff --git a/pkgs/by-name/nd/ndi-6/package.nix b/pkgs/by-name/nd/ndi-6/package.nix new file mode 100644 index 000000000000..1e121b7e5764 --- /dev/null +++ b/pkgs/by-name/nd/ndi-6/package.nix @@ -0,0 +1,86 @@ +{ + lib, + stdenv, + fetchurl, + avahi, + obs-studio-plugins, +}: + +let + versionJSON = lib.importJSON ./version.json; + ndiPlatform = + if stdenv.hostPlatform.isAarch64 then + "aarch64-rpi4-linux-gnueabi" + else if stdenv.hostPlatform.isAarch32 then + "arm-rpi2-linux-gnueabihf" + else if stdenv.hostPlatform.isx86_64 then + "x86_64-linux-gnu" + else + throw "unsupported platform for NDI SDK"; +in +stdenv.mkDerivation rec { + pname = "ndi-6"; + version = versionJSON.version; + majorVersion = lib.versions.major version; + installerName = "Install_NDI_SDK_v${majorVersion}_Linux"; + + src = fetchurl { + url = "https://downloads.ndi.tv/SDK/NDI_SDK_Linux/${installerName}.tar.gz"; + hash = versionJSON.hash; + }; + + buildInputs = [ avahi ]; + + unpackPhase = '' + unpackFile $src + echo y | ./${installerName}.sh + sourceRoot="NDI SDK for Linux"; + ''; + + installPhase = '' + mkdir $out + mv bin/${ndiPlatform} $out/bin + for i in $out/bin/*; do + if [ -L "$i" ]; then continue; fi + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" + done + patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" $out/bin/ndi-record + patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" $out/bin/ndi-free-audio + mv lib/${ndiPlatform} $out/lib + for i in $out/lib/*; do + if [ -L "$i" ]; then continue; fi + patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" "$i" + done + rm $out/bin/libndi.so.${majorVersion} + ln -s $out/lib/libndi.so.${version} $out/bin/libndi.so.${majorVersion} + # Fake ndi version 5 for compatibility with DistroAV (obs plugin using NDI) + ln -s $out/lib/libndi.so.${version} $out/bin/libndi.so.5 + mv include examples $out/ + mkdir -p $out/share/doc/ndi-6 + mv licenses $out/share/doc/ndi-6/licenses + mv documentation/* $out/share/doc/ndi-6/ + ''; + + # Stripping breaks ndi-record. + dontStrip = true; + + passthru.tests = { + inherit (obs-studio-plugins) distroav; + }; + + passthru.updateScript = ./update.py; + + meta = { + homepage = "https://ndi.video/ndi-sdk/"; + description = "NDI Software Developer Kit"; + platforms = [ + "x86_64-linux" + "i686-linux" + "aarch64-linux" + "armv7l-linux" + ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ globule655 ]; + }; +} diff --git a/pkgs/by-name/nd/ndi-6/update.py b/pkgs/by-name/nd/ndi-6/update.py new file mode 100755 index 000000000000..1f828dab2275 --- /dev/null +++ b/pkgs/by-name/nd/ndi-6/update.py @@ -0,0 +1,77 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i python -p "python3.withPackages (ps: with ps; [ ps.absl-py ps.requests ])" + +import hashlib +import io +import json +import os.path +import tarfile + +import requests +from absl import app, flags + +BASE_NAME = "Install_NDI_SDK_v6_Linux" +NDI_SDK_URL = f"https://downloads.ndi.tv/SDK/NDI_SDK_Linux/{BASE_NAME}.tar.gz" +NDI_EXEC = f"{BASE_NAME}.sh" + +NDI_ARCHIVE_MAGIC = b"__NDI_ARCHIVE_BEGIN__\n" + +FLAG_out = flags.DEFINE_string("out", None, "Path to read/write version.json from/to.") + + +def find_version_json() -> str: + if FLAG_out.value: + return FLAG_out.value + try_paths = ["pkgs/by-name/nd/ndi-6/version.json", "version.json"] + for path in try_paths: + if os.path.exists(path): + return path + raise Exception( + "Couldn't figure out where to write version.json; try specifying --out" + ) + + +def fetch_tarball() -> bytes: + r = requests.get(NDI_SDK_URL) + r.raise_for_status() + return r.content + + +def read_version(tarball: bytes) -> str: + # Find the inner script. + outer_tarfile = tarfile.open(fileobj=io.BytesIO(tarball), mode="r:gz") + eula_script = outer_tarfile.extractfile(NDI_EXEC).read() + + # Now find the archive embedded within the script. + archive_start = eula_script.find(NDI_ARCHIVE_MAGIC) + len(NDI_ARCHIVE_MAGIC) + inner_tarfile = tarfile.open( + fileobj=io.BytesIO(eula_script[archive_start:]), mode="r:gz" + ) + + # Now find Version.txt... + version_txt = ( + inner_tarfile.extractfile("NDI SDK for Linux/Version.txt") + .read() + .decode("utf-8") + ) + _, _, version = version_txt.strip().partition(" v") + return version + + +def main(argv): + tarball = fetch_tarball() + + sha256 = hashlib.sha256(tarball).hexdigest() + version = { + "hash": f"sha256:{sha256}", + "version": read_version(tarball), + } + + out_path = find_version_json() + with open(out_path, "w") as f: + json.dump(version, f) + f.write("\n") + + +if __name__ == "__main__": + app.run(main) diff --git a/pkgs/by-name/nd/ndi-6/version.json b/pkgs/by-name/nd/ndi-6/version.json new file mode 100644 index 000000000000..c4142f42d71f --- /dev/null +++ b/pkgs/by-name/nd/ndi-6/version.json @@ -0,0 +1 @@ +{"hash": "sha256-6iqjexwILth2muLpXWQjDVTvOuMq4jM8KBYnpPmViU8=", "version": "6.1.1"} From c7e817b6bebbc9f837601e93897cf7fb3d1001f0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 11 May 2025 20:51:41 +0000 Subject: [PATCH 05/65] python3Packages.bangla: 0.0.2 -> 0.0.5 --- pkgs/development/python-modules/bangla/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/bangla/default.nix b/pkgs/development/python-modules/bangla/default.nix index c5b00393bada..46dcbbb43aba 100644 --- a/pkgs/development/python-modules/bangla/default.nix +++ b/pkgs/development/python-modules/bangla/default.nix @@ -6,12 +6,12 @@ buildPythonPackage rec { pname = "bangla"; - version = "0.0.2"; + version = "0.0.5"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-F8j9UBMhZgB31atqebdGu6cfnkk573isDZp1171xXag="; + hash = "sha256-rX2/rUUf9g4otYMNX0LDPXSIDRbIE8xRl95NamHzRwQ="; }; pythonImportsCheck = [ "bangla" ]; From b8c58d3003da09a7ec2a13482297ba724417037c Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 20 May 2025 14:24:14 +0100 Subject: [PATCH 06/65] obs-studio-plugins.obs-vnc: init at 0.6.1 --- .../video/obs-studio/plugins/default.nix | 2 + .../video/obs-studio/plugins/obs-vnc.nix | 45 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 pkgs/applications/video/obs-studio/plugins/obs-vnc.nix diff --git a/pkgs/applications/video/obs-studio/plugins/default.nix b/pkgs/applications/video/obs-studio/plugins/default.nix index 8019aa4a8b3a..5cd0148fa9dd 100644 --- a/pkgs/applications/video/obs-studio/plugins/default.nix +++ b/pkgs/applications/video/obs-studio/plugins/default.nix @@ -84,6 +84,8 @@ obs-vkcapture32 = pkgsi686Linux.obs-studio-plugins.obs-vkcapture; }; + obs-vnc = callPackage ./obs-vnc.nix { }; + obs-websocket = qt6Packages.callPackage ./obs-websocket.nix { }; # Websocket 4.x compatibility for OBS Studio 28+ obs-webkitgtk = callPackage ./obs-webkitgtk.nix { }; diff --git a/pkgs/applications/video/obs-studio/plugins/obs-vnc.nix b/pkgs/applications/video/obs-studio/plugins/obs-vnc.nix new file mode 100644 index 000000000000..b502735cf32f --- /dev/null +++ b/pkgs/applications/video/obs-studio/plugins/obs-vnc.nix @@ -0,0 +1,45 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + obs-studio, + pkg-config, + libvncserver, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "obs-vnc"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "norihiro"; + repo = "obs-vnc"; + tag = "${finalAttrs.version}"; + hash = "sha256-eTvKACeVFFw6DOFAiWaG/m14jYyzZc61e79S8oVWrCs="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ + libvncserver + obs-studio + ]; + + postInstall = '' + mkdir $out/lib $out/share + mv $out/obs-plugins/64bit $out/lib/obs-plugins + rm -rf $out/obs-plugins + mv $out/data $out/share/obs + ''; + + meta = { + description = "VNC viewer integrated into OBS Studio as a source plugin"; + homepage = "https://github.com/norihiro/obs-vnc"; + maintainers = with lib.maintainers; [ flexiondotorg ]; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.linux; + }; +}) From a75155a9edd212b6df169daa4092ce54d0bca7e8 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 20 May 2025 11:29:29 +0100 Subject: [PATCH 07/65] obs-studio-plugins.obs-browser-transition: init at 0.1.3 --- .../video/obs-studio/plugins/default.nix | 2 + .../plugins/obs-browser-transition.nix | 37 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 pkgs/applications/video/obs-studio/plugins/obs-browser-transition.nix diff --git a/pkgs/applications/video/obs-studio/plugins/default.nix b/pkgs/applications/video/obs-studio/plugins/default.nix index 8019aa4a8b3a..79f31446e1d5 100644 --- a/pkgs/applications/video/obs-studio/plugins/default.nix +++ b/pkgs/applications/video/obs-studio/plugins/default.nix @@ -24,6 +24,8 @@ obs-backgroundremoval = callPackage ./obs-backgroundremoval { }; + obs-browser-transition = callPackage ./obs-browser-transition.nix { }; + obs-color-monitor = qt6Packages.callPackage ./obs-color-monitor.nix { }; obs-command-source = callPackage ./obs-command-source.nix { }; diff --git a/pkgs/applications/video/obs-studio/plugins/obs-browser-transition.nix b/pkgs/applications/video/obs-studio/plugins/obs-browser-transition.nix new file mode 100644 index 000000000000..63b5a7d1b2f2 --- /dev/null +++ b/pkgs/applications/video/obs-studio/plugins/obs-browser-transition.nix @@ -0,0 +1,37 @@ +{ + lib, + stdenv, + fetchFromGitHub, + nix-update-script, + cmake, + obs-studio, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "obs-browser-transition"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "exeldro"; + repo = "obs-browser-transition"; + tag = finalAttrs.version; + hash = "sha256-m5UDqnqipkybXAZqS7c2Sj/mJKrDBkXElyc0I+c1BmE="; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ obs-studio ]; + + postInstall = '' + rm -rf $out/obs-plugins $out/data + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Plugin for OBS Studio to show a browser source during scene transition"; + homepage = "https://github.com/exeldro/obs-browser-transition"; + maintainers = with lib.maintainers; [ flexiondotorg ]; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.linux; + }; +}) From aa9a57e9d73aa7621cd62df403d6eafe9dd33db7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Jun 2025 12:33:32 +0000 Subject: [PATCH 08/65] streamlit: 1.45.1 -> 1.46.0 --- pkgs/development/python-modules/streamlit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix index 80a8fe7e51fb..6f8fa1272adb 100644 --- a/pkgs/development/python-modules/streamlit/default.nix +++ b/pkgs/development/python-modules/streamlit/default.nix @@ -28,14 +28,14 @@ buildPythonPackage rec { pname = "streamlit"; - version = "1.45.1"; + version = "1.46.0"; pyproject = true; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; - hash = "sha256-431WwK9SQNvCQJdogOgTZmicKQpVk3ZBckb5s/UbQhc="; + hash = "sha256-Cyc0tI8R8eXIBGARtrGiJ0mC3GV+7yrejbcPDh3FPdo="; }; build-system = [ From b50c433b7243df69b43f4bf4bece97d479c398b1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 21 Jun 2025 06:43:42 +0000 Subject: [PATCH 09/65] python3Packages.msgraph-sdk: 1.33.0 -> 1.34.0 --- pkgs/development/python-modules/msgraph-sdk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/msgraph-sdk/default.nix b/pkgs/development/python-modules/msgraph-sdk/default.nix index f40c1ac5d571..cb4f42b8c8b2 100644 --- a/pkgs/development/python-modules/msgraph-sdk/default.nix +++ b/pkgs/development/python-modules/msgraph-sdk/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "msgraph-sdk"; - version = "1.33.0"; + version = "1.34.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "microsoftgraph"; repo = "msgraph-sdk-python"; tag = "v${version}"; - hash = "sha256-s8YUxM8wqQ3I9ckcyArriTK70+YTBzY4jH2WsQh8jtM="; + hash = "sha256-fd3ts6El2b3spg0T+awnNlkY7SxXKIAdvbIpo0SkHec="; }; build-system = [ flit-core ]; From dd4436e899237299f92b8861ad6d9d416dc39ee4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 22 Jun 2025 22:38:34 +0000 Subject: [PATCH 10/65] python3Packages.yangson: 1.6.2 -> 1.6.3 --- pkgs/development/python-modules/yangson/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/yangson/default.nix b/pkgs/development/python-modules/yangson/default.nix index b72e32eea1b0..2e82d5c33962 100644 --- a/pkgs/development/python-modules/yangson/default.nix +++ b/pkgs/development/python-modules/yangson/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "yangson"; - version = "1.6.2"; + version = "1.6.3"; pyproject = true; src = fetchFromGitHub { owner = "CZ-NIC"; repo = "yangson"; tag = version; - hash = "sha256-gGunbQVRV9cFRnwGDIaGi/NM75rtw5vYVz2PiPiZlQo="; + hash = "sha256-WOeSGGOd5+g+8dSyeml+mdehEjaSHtUkNSdkGl4xSao="; }; build-system = [ poetry-core ]; From 2490972847e7552a8808ded8e221ebd727f5e837 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 24 Jun 2025 05:51:44 +0000 Subject: [PATCH 11/65] python3Packages.cloudflare: 4.2.0 -> 4.3.1 --- pkgs/development/python-modules/cloudflare/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix index 7fb8db480f51..b19641a9c278 100644 --- a/pkgs/development/python-modules/cloudflare/default.nix +++ b/pkgs/development/python-modules/cloudflare/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "cloudflare"; - version = "4.2.0"; + version = "4.3.1"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-QKpxgWOpsHYagVvVKnzBilBioQvjF3yy1Kk2dwzACCY="; + hash = "sha256-seHGvuuNmPY7/gocuodPxOIuAAvMSQVE+VbGibO1slg="; }; postPatch = '' From b10dabd00922911f39909b935504754407533987 Mon Sep 17 00:00:00 2001 From: Jeevan Shikaram Date: Wed, 25 Jun 2025 18:13:45 +1000 Subject: [PATCH 12/65] nixos/prometheus-wireguard-exporter: Add a new option to export `wireguard_latest_handshake_delay_seconds`. --- .../monitoring/prometheus/exporters/wireguard.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix b/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix index 4c9269f34cfd..f091aac2347d 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix @@ -62,6 +62,14 @@ in Whether or not the remote IP of a WireGuard peer should be exposed via prometheus. ''; }; + + latestHandshakeDelay = mkOption { + type = types.bool; + default = false; + description = '' + Adds the `wireguard_latest_handshake_delay_seconds` metric that automatically calculates the seconds passed since the last handshake. + ''; + }; }; serviceOpts = { path = [ pkgs.wireguard-tools ]; @@ -76,6 +84,7 @@ in ${optionalString cfg.verbose "-v true"} \ ${optionalString cfg.singleSubnetPerField "-s true"} \ ${optionalString cfg.withRemoteIp "-r true"} \ + ${optionalString cfg.latestHandshakeDelay "-d true"} \ ${optionalString (cfg.wireguardConfig != null) "-n ${escapeShellArg cfg.wireguardConfig}"} ''; RestrictAddressFamilies = [ From 4d9871f2b29d5ea0f6c6abb987023d28b7451632 Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:37:32 +0200 Subject: [PATCH 13/65] electron_34-bin: mark as insecure because it's EOL https://github.com/electron/electron/blob/e4c37e4b38195bd0cf7f0ae8257ac6d7fd5e4603/docs/tutorial/electron-timelines.md --- pkgs/development/tools/electron/binary/generic.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/electron/binary/generic.nix b/pkgs/development/tools/electron/binary/generic.nix index fc526ec15c7f..8bd49c6ed39c 100644 --- a/pkgs/development/tools/electron/binary/generic.nix +++ b/pkgs/development/tools/electron/binary/generic.nix @@ -58,7 +58,7 @@ let ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; # https://www.electronjs.org/docs/latest/tutorial/electron-timelines - knownVulnerabilities = optional (versionOlder version "34.0.0") "Electron version ${version} is EOL"; + knownVulnerabilities = optional (versionOlder version "35.0.0") "Electron version ${version} is EOL"; }; fetcher = From 0251292ee997c11077390c15ca80b293dc63c4f2 Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:36:16 +0200 Subject: [PATCH 14/65] electron-source.electron_34: remove as it's EOL https://github.com/electron/electron/blob/e4c37e4b38195bd0cf7f0ae8257ac6d7fd5e4603/docs/tutorial/electron-timelines.md --- pkgs/development/tools/electron/info.json | 1277 --------------------- pkgs/top-level/all-packages.nix | 6 +- 2 files changed, 1 insertion(+), 1282 deletions(-) diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json index d2e91a284230..8e0d27e7ed4f 100644 --- a/pkgs/development/tools/electron/info.json +++ b/pkgs/development/tools/electron/info.json @@ -1,1281 +1,4 @@ { - "34": { - "chrome": "132.0.6834.210", - "chromium": { - "deps": { - "gn": { - "hash": "sha256-zZoD5Bx7wIEP2KJkHef6wHrxU3px+8Vseq29QcK32bg=", - "rev": "feafd1012a32c05ec6095f69ddc3850afb621f3a", - "url": "https://gn.googlesource.com/gn", - "version": "2024-10-14" - } - }, - "version": "132.0.6834.210" - }, - "chromium_npm_hash": "sha256-H1/h3x+Cgp1x94Ze3UPPHxRVpylZDvpMXMOuS+jk2dw=", - "deps": { - "src": { - "args": { - "hash": "sha256-NVaErCSvuTQyt7yv2sc4aIX2J/6mxM648Wbbut2Jjxc=", - "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", - "tag": "132.0.6834.210", - "url": "https://chromium.googlesource.com/chromium/src.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/chrome/test/data/perf/canvas_bench": { - "args": { - "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", - "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", - "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/chrome/test/data/perf/frame_rate/content": { - "args": { - "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", - "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", - "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/chrome/test/data/xr/webvr_info": { - "args": { - "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", - "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", - "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/docs/website": { - "args": { - "hash": "sha256-CqveHvjPEcRWnzi8w13xr2OainrmABNO8uj0GzKmQqo=", - "rev": "be9c3dfd3781964fc0bab0d6c91d9ad117b71b02", - "url": "https://chromium.googlesource.com/website.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/electron": { - "args": { - "hash": "sha256-ABlVuW0EUsFUyuIaugoI09EsHF+g7fxRSS/bOaOAkjg=", - "owner": "electron", - "repo": "electron", - "tag": "v34.5.8" - }, - "fetcher": "fetchFromGitHub" - }, - "src/media/cdm/api": { - "args": { - "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=", - "rev": "eb21edc44e8e5a82095037be80c8b15c51624293", - "url": "https://chromium.googlesource.com/chromium/cdm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/net/third_party/quiche/src": { - "args": { - "hash": "sha256-Z2uFWfZDYcY0m4R6mFMZJLnnVHu3/hQOAkCPQ5049SQ=", - "rev": "9616efc903b7469161996006c8cf963238e26503", - "url": "https://quiche.googlesource.com/quiche.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/testing/libfuzzer/fuzzers/wasm_corpus": { - "args": { - "hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY=", - "rev": "1df5e50a45db9518a56ebb42cb020a94a090258b", - "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/accessibility_test_framework/src": { - "args": { - "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", - "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", - "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/angle": { - "args": { - "hash": "sha256-fMIHpa2QFsQQ19LGyhvV3Ihh6Ls8wwwhqTtpLoTEaf4=", - "rev": "ce13a00a2b049a1ef5e0e70a3d333ce70838ef7b", - "url": "https://chromium.googlesource.com/angle/angle.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/angle/third_party/VK-GL-CTS/src": { - "args": { - "hash": "sha256-2ZhG4cJf85zO7x+SGG6RD2qgOxZVosxAIbuZt9GYUKs=", - "rev": "f674555ab03e6355e0981a647c115097e9fe5324", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/angle/third_party/glmark2/src": { - "args": { - "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=", - "rev": "ca8de51fedb70bace5351c6b002eb952c747e889", - "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/angle/third_party/rapidjson/src": { - "args": { - "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", - "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", - "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/anonymous_tokens/src": { - "args": { - "hash": "sha256-PMB49+zW9ewlS9ym+xi0xYQYLN0j5Urx6yBXWd8FjjI=", - "rev": "6ea6ec78f9e4998d0a7a5677b2aec08f0ac858f8", - "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/beto-core/src": { - "args": { - "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=", - "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", - "url": "https://beto-core.googlesource.com/beto-core.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/boringssl/src": { - "args": { - "hash": "sha256-ib9wbV6S64OFc4zx0wQsQ84+5RxbETK0PS9Wm1BFQ1U=", - "rev": "571c76e919c0c48219ced35bef83e1fc83b00eed", - "url": "https://boringssl.googlesource.com/boringssl.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/breakpad/breakpad": { - "args": { - "hash": "sha256-cFXUi2oO/614jF0GV7oW0ss62dXWFHDNWNT8rWHAiQc=", - "rev": "47f7823bdf4b1f39e462b2a497a674860e922e38", - "url": "https://chromium.googlesource.com/breakpad/breakpad.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cast_core/public/src": { - "args": { - "hash": "sha256-o5/Lbhh6HHSWCVCEyDwDCgs+PLm67si981w0HuIWY7c=", - "rev": "fbc5e98031e1271a0a566fcd4d9092b2d3275d05", - "url": "https://chromium.googlesource.com/cast_core/public" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/catapult": { - "args": { - "hash": "sha256-65cZPyqZUdSnYPJYUMYeJgx3mUC6L/qb9P2bDqd2Zkk=", - "rev": "b91cf840ac3255ef03b23cc93621369627422a1a", - "url": "https://chromium.googlesource.com/catapult.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ced/src": { - "args": { - "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", - "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", - "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/chromium-variations": { - "args": { - "hash": "sha256-mg5mu2jcy0xyNJ650ywWUMC94keRsqhZQuPZclHmyLI=", - "rev": "c170abb48f7715c237f4c06eaed0fe6f8a4c6f8d", - "url": "https://chromium.googlesource.com/chromium-variations.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/clang-format/script": { - "args": { - "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=", - "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cld_3/src": { - "args": { - "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", - "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", - "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/colorama/src": { - "args": { - "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", - "rev": "3de9f013df4b470069d03d250224062e8cf15c49", - "url": "https://chromium.googlesource.com/external/colorama.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/content_analysis_sdk/src": { - "args": { - "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", - "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", - "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cpu_features/src": { - "args": { - "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", - "rev": "936b9ab5515dead115606559502e3864958f7f6e", - "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cpuinfo/src": { - "args": { - "hash": "sha256-FlvmSjY8kt5XHymDLaZdPuZ4k5xcagJk8w/U6adTkWI=", - "rev": "8df44962d437a0477f07ba6b8843d0b6a48646a4", - "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/crabbyavif/src": { - "args": { - "hash": "sha256-hO5epHYNYI6pGwVSUv1Hp3qb7qOv8uOs4u+IdhDxd8Q=", - "rev": "c3548280e0a516ed7cad7ff1591b5807cef64aa4", - "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/crc32c/src": { - "args": { - "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", - "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", - "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cros-components/src": { - "args": { - "hash": "sha256-owXaTIj0pbhUeJkirxaRoCmgIN9DwNzY3h771kaN+Fc=", - "rev": "9129cf4b2a5ca775c280243257a0b4856a93c7fb", - "url": "https://chromium.googlesource.com/external/google3/cros_components.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cros_system_api": { - "args": { - "hash": "sha256-fvGypRhgl2uX9YE2cwjL7d3pYBa3Imd5p0RLhMYRgrc=", - "rev": "554629b9242e6ae832ef14e3384654426f7fcc06", - "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/crossbench": { - "args": { - "hash": "sha256-/K6eM9s+fd2wjCrK0g0CgFNy0zxEN9SxTvmE50hMtXw=", - "rev": "ae6f165652e0ea983d73f5d04b7470d08c869e4f", - "url": "https://chromium.googlesource.com/crossbench.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dav1d/libdav1d": { - "args": { - "hash": "sha256-Q2CaWvDqOmfaPG6a+SUHG5rFHalPEf4Oq/ytT3xuSOk=", - "rev": "93f12c117a4e1c0cc2b129dcc52e84dbd9b84200", - "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn": { - "args": { - "hash": "sha256-1d8cCtqBIfYbVqUQ4q4BtH2FujbNJeeW9agJUjcktgE=", - "rev": "c3530f2883610bb6606a5f55935c189e732e67d0", - "url": "https://dawn.googlesource.com/dawn.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/dxc": { - "args": { - "hash": "sha256-rhUNPA5b0H3PBsOpXbAeRLpS0tNQkiHbjRBWmJycSAY=", - "rev": "ac36a797d3470e8ee906b98457a59270d01db30d", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/dxheaders": { - "args": { - "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", - "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/glfw": { - "args": { - "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", - "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", - "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/khronos/EGL-Registry": { - "args": { - "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", - "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { - "args": { - "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", - "rev": "5bae8738b23d06968e7c3a41308568120943ae77", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/webgpu-cts": { - "args": { - "hash": "sha256-ArbHGjkHd1sko7gDPFksYz7XHKNge+e6tVy6oKPuqzg=", - "rev": "8690defa74b6975c10e85c113f121d4b2a3f2564", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/webgpu-headers": { - "args": { - "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=", - "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686", - "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/depot_tools": { - "args": { - "hash": "sha256-m/6b4VZZTUQOeED1mYvZOQCx8Re+Zd4O8SKDMjJ9Djo=", - "rev": "41d43a2a2290450aeab946883542f8049b155c87", - "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/devtools-frontend/src": { - "args": { - "hash": "sha256-mBWZdbgZfO01Pt2lZSHX/d5r+8A/+qCZA8MRtZdeTrs=", - "rev": "f2f3682c9db8ca427f8c64f0402cc2c5152c6c24", - "url": "https://chromium.googlesource.com/devtools/devtools-frontend" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dom_distiller_js/dist": { - "args": { - "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", - "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", - "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/domato/src": { - "args": { - "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", - "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", - "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/eigen3/src": { - "args": { - "hash": "sha256-UroGjERR5TW9KbyLwR/NBpytXrW1tHfu6ZvQPngROq4=", - "rev": "b396a6fbb2e173f52edb3360485dedf3389ef830", - "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/electron_node": { - "args": { - "hash": "sha256-vc3Ztw8m0P96QoCjtyu2Nb0TpVMu9ifrVlkJY15aVbE=", - "owner": "nodejs", - "repo": "node", - "tag": "v20.19.1" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/emoji-segmenter/src": { - "args": { - "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=", - "rev": "955936be8b391e00835257059607d7c5b72ce744", - "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/engflow-reclient-configs": { - "args": { - "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", - "owner": "EngFlow", - "repo": "reclient-configs", - "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/expat/src": { - "args": { - "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=", - "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/farmhash/src": { - "args": { - "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", - "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", - "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fast_float/src": { - "args": { - "hash": "sha256-0eVovauN7SnO3nSIWBRWAJ4dR7q5beZrIGUZ18M2pao=", - "rev": "3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f", - "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ffmpeg": { - "args": { - "hash": "sha256-wwHxNuZe2hBmGBpVg/iQJBoL350jfPYPTPqDn3RiqZE=", - "rev": "591ae4b02eaff9a03e2ec863da895128b0b49910", - "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/flac": { - "args": { - "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", - "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", - "url": "https://chromium.googlesource.com/chromium/deps/flac.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/flatbuffers/src": { - "args": { - "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", - "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", - "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fontconfig/src": { - "args": { - "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=", - "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", - "url": "https://chromium.googlesource.com/external/fontconfig.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fp16/src": { - "args": { - "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", - "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/freetype-testing/src": { - "args": { - "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=", - "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f", - "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/freetype/src": { - "args": { - "hash": "sha256-+nbRZi3vAMTURhhFVUu5+59fVIv0GH3YZog2JavyVLY=", - "rev": "0ae7e607370cc66218ccfacf5de4db8a35424c2f", - "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fuzztest/src": { - "args": { - "hash": "sha256-UYmzjOX8k+CWL+xOIF3NiEL3TRUjS8JflortB2RUT4o=", - "rev": "0021f30508bc7f73fa5270962d022acb480d242f", - "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fxdiv/src": { - "args": { - "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", - "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/gemmlowp/src": { - "args": { - "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", - "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", - "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/glslang/src": { - "args": { - "hash": "sha256-twWSeJp9bNbLYFszCWv9BCztfbXUBKSWV55/U+hd2hw=", - "rev": "9c644fcb5b9a1a9c975c50a790fd14c5451292b0", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/google_benchmark/src": { - "args": { - "hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w=", - "rev": "761305ec3b33abf30e08d50eb829e19a802581cc", - "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/googletest/src": { - "args": { - "hash": "sha256-n7tiIFAj8AiSCa9Tw+1j+ro9cSt5vagZpkbBBUUtYQY=", - "rev": "d144031940543e15423a25ae5a8a74141044862f", - "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/grpc/src": { - "args": { - "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=", - "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737", - "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/harfbuzz-ng/src": { - "args": { - "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=", - "rev": "1da053e87f0487382404656edca98b85fe51f2fd", - "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/highway/src": { - "args": { - "hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY=", - "rev": "00fe003dac355b979f36157f9407c7c46448958e", - "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/hunspell_dictionaries": { - "args": { - "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", - "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", - "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/icu": { - "args": { - "hash": "sha256-WtCoxcbEkkZayB6kXdQEhZ7/ue+ka6cguhFbpeWUBJA=", - "rev": "ba7ed88cc5ffa428a82a0f787dd61031aa5ef4ca", - "url": "https://chromium.googlesource.com/chromium/deps/icu.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ink/src": { - "args": { - "hash": "sha256-+Ikr9E7KlXBFyf6fSDmIF3ygNUiwlXeA5bmO2CtkI7Q=", - "rev": "4300dc7402a257b85fc5bf2559137edacb050227", - "url": "https://chromium.googlesource.com/external/github.com/google/ink.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ink_stroke_modeler/src": { - "args": { - "hash": "sha256-IQ+n+kHdEq8Q8/qaPGMvgD7cPN3zzaY8dbiokq6r/Vs=", - "rev": "0999e4cf816b42c770d07916698bce943b873048", - "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/instrumented_libs": { - "args": { - "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=", - "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", - "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/jsoncpp/source": { - "args": { - "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", - "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", - "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/leveldatabase/src": { - "args": { - "hash": "sha256-y3awFXL8ih2UhEqWj8JRgkhzSxfQciLztb020JHJ350=", - "rev": "23e35d792b9154f922b8b575b12596a4d8664c65", - "url": "https://chromium.googlesource.com/external/leveldb.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libFuzzer/src": { - "args": { - "hash": "sha256-jPS+Xi/ia0sMspxSGN38zasmVS/HslxH/qOFsV9TguE=", - "rev": "a7128317fe7935a43d6c9f39df54f21113951941", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libaddressinput/src": { - "args": { - "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=", - "rev": "e8712e415627f22d0b00ebee8db99547077f39bd", - "url": "https://chromium.googlesource.com/external/libaddressinput.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libaom/source/libaom": { - "args": { - "hash": "sha256-9VhEVOG9cReDOGoX+x5G/jJ8Y5RDoQIiLMoZtt5c9pI=", - "rev": "be60f06ab420d6a65c477213f04c8b0f2e12ba2e", - "url": "https://aomedia.googlesource.com/aom.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libavif/src": { - "args": { - "hash": "sha256-lUuVyh2srhWMNUp4lEivyDic3MSZf5s63iAb84We80M=", - "rev": "1cdeff7ecf456492c47cf48fc0cef6591cdc95da", - "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libc++/src": { - "args": { - "hash": "sha256-kmhTlz/qjvN0Qlra7Wz05O6X058hPPn0nVvAxFXQDC4=", - "rev": "8e31ad42561900383e10dbefc1d3e8f38cedfbe9", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libc++abi/src": { - "args": { - "hash": "sha256-CwiK9Td8aRS08RywItHKFvibzDAUYYd0YNRKxYPLTD8=", - "rev": "cec7f478354a8c8599f264ed8bb6043b5468f72d", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libdrm/src": { - "args": { - "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", - "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", - "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libgav1/src": { - "args": { - "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=", - "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd", - "url": "https://chromium.googlesource.com/codecs/libgav1.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libipp/libipp": { - "args": { - "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", - "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", - "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libjpeg_turbo": { - "args": { - "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=", - "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", - "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/liblouis/src": { - "args": { - "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", - "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", - "url": "https://chromium.googlesource.com/external/liblouis-github.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libphonenumber/dist": { - "args": { - "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=", - "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362", - "url": "https://chromium.googlesource.com/external/libphonenumber.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libprotobuf-mutator/src": { - "args": { - "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=", - "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", - "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libsrtp": { - "args": { - "hash": "sha256-4qEZ9MD97MoqCUlZtbEhIKy+fDO1iIWqyrBsKwkjXTg=", - "rev": "000edd791434c8738455f10e0dd6b268a4852c0b", - "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libsync/src": { - "args": { - "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", - "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", - "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libunwind/src": { - "args": { - "hash": "sha256-uA+t5Ecc/iK3mllHR8AMVGRfU/7z1G3yrw0TamPQiOY=", - "rev": "5b01ea4a6f3b666b7d190e7cb7c31db2ed4d94ce", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libvpx/source/libvpx": { - "args": { - "hash": "sha256-QGm37X4uid8zv+vRu0pVTvoQd2WcKztrj3tJkDjx82o=", - "rev": "727319a77ffe68e9aacb08e09ae7151b3a8f70a3", - "url": "https://chromium.googlesource.com/webm/libvpx.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libwebm/source": { - "args": { - "hash": "sha256-Mn3snC2g4BDKBJsS6cxT3BZL7LZknOWg77+60Nr4Hy0=", - "rev": "26d9f667170dc75e8d759a997bb61c64dec42dda", - "url": "https://chromium.googlesource.com/webm/libwebm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libwebp/src": { - "args": { - "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=", - "rev": "845d5476a866141ba35ac133f856fa62f0b7445f", - "url": "https://chromium.googlesource.com/webm/libwebp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libyuv": { - "args": { - "hash": "sha256-vPVq7RzqO7gBUgYuNX0Fwxqok9jtXXJZgbhVFchG5Ws=", - "rev": "6ac7c8f25170c85265fca69fd1fe5d31baf3344f", - "url": "https://chromium.googlesource.com/libyuv/libyuv.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/llvm-libc/src": { - "args": { - "hash": "sha256-av9JdqLOQbezgRS4P8QXmvfB5l47v04WRagNJJgT5u4=", - "rev": "ca74a72e2b32ad804522bbef04dfe32560a10206", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/lss": { - "args": { - "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=", - "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", - "url": "https://chromium.googlesource.com/linux-syscall-support.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/material_color_utilities/src": { - "args": { - "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", - "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", - "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/minigbm/src": { - "args": { - "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", - "rev": "3018207f4d89395cc271278fb9a6558b660885f5", - "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/nan": { - "args": { - "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", - "owner": "nodejs", - "repo": "nan", - "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/nasm": { - "args": { - "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=", - "rev": "f477acb1049f5e043904b87b825c5915084a9a29", - "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/nearby/src": { - "args": { - "hash": "sha256-DO3FW5Q233ctFKk4K5F8oZec9kfrVl6uxAwMn0niKz4=", - "rev": "8e87a6e51c93e7836ecdbcc0a520c7992f3ece13", - "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/neon_2_sse/src": { - "args": { - "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=", - "rev": "a15b489e1222b2087007546b4912e21293ea86ff", - "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/openh264/src": { - "args": { - "hash": "sha256-S7dS2IZwt4p4ZrF6K7E5HnwKuI3owU2I7vwtu95uTkE=", - "rev": "478e5ab3eca30e600006d5a0a08b176fd34d3bd1", - "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/openscreen/src": { - "args": { - "hash": "sha256-IlGxfw6Mhc7FYvhU2+Ngt9qflqr4JMC2OcplvksGI+U=", - "rev": "cb6fd42532fc3a831d6863d5006217e32a67c417", - "url": "https://chromium.googlesource.com/openscreen" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/openscreen/src/buildtools": { - "args": { - "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=", - "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b", - "url": "https://chromium.googlesource.com/chromium/src/buildtools" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/openscreen/src/third_party/tinycbor/src": { - "args": { - "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", - "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", - "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ots/src": { - "args": { - "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", - "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", - "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/pdfium": { - "args": { - "hash": "sha256-d8qJECIdq01ct+sS7cHVKFulYJarwahKCEcVf762JNI=", - "rev": "84a8011ec69d0e2de271c05be7d62979608040d9", - "url": "https://pdfium.googlesource.com/pdfium.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/perfetto": { - "args": { - "hash": "sha256-3vervpsq/QLMrR7RcJMwwh+CdFvSEj8yAzj6s9d1XMo=", - "rev": "ea011a2c2d3aecdc4f1674887e107a56d2905edd", - "url": "https://android.googlesource.com/platform/external/perfetto.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/protobuf-javascript/src": { - "args": { - "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=", - "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", - "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/pthreadpool/src": { - "args": { - "hash": "sha256-rGg6lgLkmbYo+a9CdaXz9ZUyrqJ1rxLcjLJeBEOPAlE=", - "rev": "560c60d342a76076f0557a3946924c6478470044", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/pyelftools": { - "args": { - "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", - "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", - "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/pywebsocket3/src": { - "args": { - "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", - "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/quic_trace/src": { - "args": { - "hash": "sha256-N1uFoNd3mz/LH1z06581Ds7BUyc67SNXUPzqomYREr8=", - "rev": "413da873d93a03d3662f24b881ea459a79f9c589", - "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/re2/src": { - "args": { - "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=", - "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", - "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ruy/src": { - "args": { - "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=", - "rev": "c08ec529fc91722bde519628d9449258082eb847", - "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/securemessage/src": { - "args": { - "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", - "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", - "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/skia": { - "args": { - "hash": "sha256-e+oaFqj0D7jKiyDJRmT3BWZEd9j9BKkTdMg8hUOAvzA=", - "rev": "ee9db7d1348f76780fd0184b9b0243d653e36411", - "url": "https://skia.googlesource.com/skia.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/smhasher/src": { - "args": { - "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=", - "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f", - "url": "https://chromium.googlesource.com/external/smhasher.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/snappy/src": { - "args": { - "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=", - "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c", - "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/speedometer/v3.0": { - "args": { - "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", - "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", - "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/spirv-cross/src": { - "args": { - "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", - "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/spirv-headers/src": { - "args": { - "hash": "sha256-FrT/kVIMjcu2zv+7kDeNKM77NnOyMBb8pV0w8DBP42A=", - "rev": "996c728cf7dcfb29845cfa15222822318f047810", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/spirv-tools/src": { - "args": { - "hash": "sha256-m/a1i26u8lzpKuQHyAy6ktWWjbLZEaio1awz8VovTGE=", - "rev": "9117e042b93d4ff08d2406542708170f77aaa2a3", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/sqlite/src": { - "args": { - "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=", - "rev": "567495a62a62dc013888500526e82837d727fe01", - "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/squirrel.mac": { - "args": { - "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", - "owner": "Squirrel", - "repo": "Squirrel.Mac", - "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/squirrel.mac/vendor/Mantle": { - "args": { - "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", - "owner": "Mantle", - "repo": "Mantle", - "rev": "78d3966b3c331292ea29ec38661b25df0a245948" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/squirrel.mac/vendor/ReactiveObjC": { - "args": { - "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", - "owner": "ReactiveCocoa", - "repo": "ReactiveObjC", - "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/swiftshader": { - "args": { - "hash": "sha256-h2BHyaOM0oscfX5cu8s4N1yyOkg/yQbvwD1DxF+RAQc=", - "rev": "d5c4284774115bb1e32c012a2be1b5fbeb1ab1f9", - "url": "https://swiftshader.googlesource.com/SwiftShader.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/text-fragments-polyfill/src": { - "args": { - "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", - "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/tflite/src": { - "args": { - "hash": "sha256-gOUt/NljRK5wMFwy2aLqZ5NHwk4y/GxbQ+AZ3MxM0M8=", - "rev": "658227d3b535287dc6859788bde6076c4fe3fe7c", - "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ukey2/src": { - "args": { - "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", - "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", - "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-deps": { - "args": { - "hash": "sha256-LVWvbMLjkMyAUM+0UpQ4oRsfcRU5F/xY60wiwxth4Ko=", - "rev": "0b56dd5952b25fad65139b64096fcd187048ed38", - "url": "https://chromium.googlesource.com/vulkan-deps" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-headers/src": { - "args": { - "hash": "sha256-exXzafLgrgxyRvaF+4pCF+OLtPT2gDmcvzazQ4EQ1eA=", - "rev": "cbcad3c0587dddc768d76641ea00f5c45ab5a278", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-loader/src": { - "args": { - "hash": "sha256-NDp2TLeMLAHb92R+PjaPDTx8ckIlpSsS3BNx3lerB68=", - "rev": "b0177a972b8d47e823a4500cf88df88a8c27add7", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-tools/src": { - "args": { - "hash": "sha256-PiWKL045DAOGm+Hl/UyO6vmD4fVfuf2fSvXK6gSYbwo=", - "rev": "15f2de809304aba619ee327f3273425418ca83de", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-utility-libraries/src": { - "args": { - "hash": "sha256-luDw6g/EMSK67Et2wNta74PHGQU6Y7IRpDlSpgDYV6Q=", - "rev": "87ab6b39a97d084a2ef27db85e3cbaf5d2622a09", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-validation-layers/src": { - "args": { - "hash": "sha256-WWV+P++0Czeqg5p2UTqIP81pY8oz7cS7E7Z/sc0km6g=", - "rev": "bc2c38412f739c298d6f5c076c064e6b5696959f", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan_memory_allocator": { - "args": { - "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", - "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", - "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wayland-protocols/gtk": { - "args": { - "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", - "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", - "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wayland-protocols/kde": { - "args": { - "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", - "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", - "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wayland-protocols/src": { - "args": { - "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", - "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wayland/src": { - "args": { - "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", - "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/webdriver/pylib": { - "args": { - "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", - "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", - "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/webgl/src": { - "args": { - "hash": "sha256-32r3BdmsNA89mo0k+vK1G3718AOjseE7cJlopZ/0pSw=", - "rev": "450cceb587613ac1469c5a131fac15935c99e0e7", - "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/webgpu-cts/src": { - "args": { - "hash": "sha256-Dd5uWNtnBIc2jiMkh9KjI5O1tJtmMvdlMA2nf+VOkQQ=", - "rev": "b9f32fd2943dd2b3d0033bf938c9d843f4b5c9a9", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/webrtc": { - "args": { - "hash": "sha256-S8kGTd3+lf5OTayCMOqqrjxH4tcbT0NLZBpKmTCysMs=", - "rev": "afaf497805cbb502da89991c2dcd783201efdd08", - "url": "https://webrtc.googlesource.com/src.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/weston/src": { - "args": { - "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=", - "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wuffs/src": { - "args": { - "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", - "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", - "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/xdg-utils": { - "args": { - "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", - "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", - "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/xnnpack/src": { - "args": { - "hash": "sha256-aDPlmLxNY9M5+Qb8VtdfxphHXU/X6JwYhkUSXkLh/FE=", - "rev": "d1d33679661a34f03a806af2b813f699db3004f9", - "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/zstd/src": { - "args": { - "hash": "sha256-4J/F2v2W3mMdhqQ4q35gYkGaqTKlcG6OxUt3vQ8pcLs=", - "rev": "7fb5347e88f10472226c9aa1962a148e55d8c480", - "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/tools/page_cycler/acid3": { - "args": { - "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=", - "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba", - "url": "https://chromium.googlesource.com/chromium/deps/acid3.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/v8": { - "args": { - "hash": "sha256-o+THwG/lBFw495DxAckGPeoiTV5zOopVF4B3MXmraf0=", - "rev": "7130a7a08a7075cc1967528402ec536f6fd85ed2", - "url": "https://chromium.googlesource.com/v8/v8.git" - }, - "fetcher": "fetchFromGitiles" - } - }, - "electron_yarn_hash": "0gh5bcsh23s3rqxqc2l3jz5vjb553sk0a1jycn94zm821pc3csd2", - "modules": "132", - "node": "20.19.1", - "version": "34.5.8" - }, "35": { "chrome": "134.0.6998.205", "chromium": { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8fe50aec5a33..4d1a2840e273 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6876,11 +6876,7 @@ with pkgs; ; electron_33 = electron_33-bin; - electron_34 = - if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_34 then - electron-source.electron_34 - else - electron_34-bin; + electron_34 = electron_34-bin; electron_35 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_35 then electron-source.electron_35 From 310dda67329a0a09c4a7b419de6222fa826a06ee Mon Sep 17 00:00:00 2001 From: Marie Ramlow Date: Wed, 25 Jun 2025 18:45:57 +0200 Subject: [PATCH 15/65] appium-inspector: use electron_36 --- pkgs/by-name/ap/appium-inspector/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ap/appium-inspector/package.nix b/pkgs/by-name/ap/appium-inspector/package.nix index ad157375150f..c8df903297b5 100644 --- a/pkgs/by-name/ap/appium-inspector/package.nix +++ b/pkgs/by-name/ap/appium-inspector/package.nix @@ -2,7 +2,7 @@ lib, buildNpmPackage, copyDesktopItems, - electron_34, + electron_36, fetchFromGitHub, makeDesktopItem, makeWrapper, @@ -10,7 +10,7 @@ }: let - electron = electron_34; + electron = electron_36; version = "2025.3.1"; in From 6975e71bc80d73558c3a4a628aa6b34f04e04457 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Thu, 26 Jun 2025 21:06:22 -0700 Subject: [PATCH 16/65] obs-studio-plugins.wlrobs: mark aarch64-linux as supported --- pkgs/applications/video/obs-studio/plugins/wlrobs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/video/obs-studio/plugins/wlrobs.nix b/pkgs/applications/video/obs-studio/plugins/wlrobs.nix index 48c6f588308b..2d169399a8fd 100644 --- a/pkgs/applications/video/obs-studio/plugins/wlrobs.nix +++ b/pkgs/applications/video/obs-studio/plugins/wlrobs.nix @@ -38,6 +38,6 @@ stdenv.mkDerivation { homepage = "https://hg.sr.ht/~scoopta/wlrobs"; maintainers = with maintainers; [ grahamc ]; license = licenses.gpl3Plus; - platforms = [ "x86_64-linux" ]; + platforms = platforms.linux; }; } From 0268f39db4c47d1ca84e1bd194b89695bd160825 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 27 Jun 2025 15:16:42 +0000 Subject: [PATCH 17/65] perses: 0.51.0 -> 0.51.1 --- pkgs/by-name/pe/perses/package.nix | 6 +++--- pkgs/by-name/pe/perses/plugins.nix | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/pe/perses/package.nix b/pkgs/by-name/pe/perses/package.nix index 88712fdce7c6..969f6fc6a2fd 100644 --- a/pkgs/by-name/pe/perses/package.nix +++ b/pkgs/by-name/pe/perses/package.nix @@ -25,13 +25,13 @@ let in buildGoModule (finalAttrs: { pname = "perses"; - version = "0.51.0"; + version = "0.51.1"; src = fetchFromGitHub { owner = "perses"; repo = "perses"; tag = "v${finalAttrs.version}"; - hash = "sha256-frCSuGEnYab4CTQoAuN876dG7Mwn/RJEnWouUuo7aJQ="; + hash = "sha256-ZijrDYG/HFPBOLEFqMDzoWhRoo/GiHr0dpjhKBJRAH8="; }; outputs = [ @@ -49,7 +49,7 @@ buildGoModule (finalAttrs: { inherit (finalAttrs) version src; pname = "${finalAttrs.pname}-ui"; sourceRoot = "${finalAttrs.src.name}/${finalAttrs.npmRoot}"; - hash = "sha256-nRE4IV8+wCuYXNAxrl7RfBFdY/ZyAIpXs3pDfCeIh74="; + hash = "sha256-yBkdqOLAopEHcS4rbOUL3bLxy27l/gm60nICsL9zigk="; }; npmRoot = "ui"; diff --git a/pkgs/by-name/pe/perses/plugins.nix b/pkgs/by-name/pe/perses/plugins.nix index 07aba9f0710b..884dcce6970d 100644 --- a/pkgs/by-name/pe/perses/plugins.nix +++ b/pkgs/by-name/pe/perses/plugins.nix @@ -57,9 +57,9 @@ hash = "sha256-61k3G+8bCsUErBCwvFxgnYCPLAqpCIcuF3GEZHacMB0="; }; "Table" = { - version = "0.7.0"; - url = "https://github.com/perses/plugins/releases/download/table/v0.7.0/Table-0.7.0.tar.gz"; - hash = "sha256-MemCUd/9RhodqMzDuYCNPYDMaSy7LpVPCTP4IUFE3lM="; + version = "0.7.1"; + url = "https://github.com/perses/plugins/releases/download/table/v0.7.1/Table-0.7.1.tar.gz"; + hash = "sha256-X/W2vSBddGHbEXzBW2MDxMwSMfVweSi5MtztXTURne8="; }; "Tempo" = { version = "0.51.0-rc.3"; From 84840db24727392631299bf1df2a9e6243626ab9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Jun 2025 13:28:20 +0000 Subject: [PATCH 18/65] paretosecurity: 0.2.34 -> 0.2.36 --- pkgs/by-name/pa/paretosecurity/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pa/paretosecurity/package.nix b/pkgs/by-name/pa/paretosecurity/package.nix index c6e774528f2d..b7633bd34361 100644 --- a/pkgs/by-name/pa/paretosecurity/package.nix +++ b/pkgs/by-name/pa/paretosecurity/package.nix @@ -17,13 +17,13 @@ buildGoModule (finalAttrs: { webkitgtk_4_1 ]; pname = "paretosecurity"; - version = "0.2.34"; + version = "0.2.36"; src = fetchFromGitHub { owner = "ParetoSecurity"; repo = "agent"; rev = finalAttrs.version; - hash = "sha256-tTFdgLpu7RRWx2B2VMROqs1HgG0qMbfUOS5KNLQFHQw="; + hash = "sha256-PAH5aswkN8MxK+sZNucXgw50Fc2CkhBLM7+wwxkgAvs="; }; vendorHash = "sha256-RAKYaNi+MXUfNnEJmZF5g9jFBDOPIVBOZWtqZp2FwWY="; From 725a756dbb9bc1713e6b77bcff810b4721decd87 Mon Sep 17 00:00:00 2001 From: L-Trump Date: Sat, 12 Apr 2025 23:31:16 +0800 Subject: [PATCH 19/65] nixos/easytier: init module --- .../manual/release-notes/rl-2505.section.md | 2 + nixos/modules/module-list.nix | 1 + .../modules/services/networking/easytier.nix | 292 ++++++++++++++++++ nixos/tests/all-tests.nix | 1 + nixos/tests/easytier.nix | 121 ++++++++ pkgs/by-name/ea/easytier/package.nix | 6 +- 6 files changed, 422 insertions(+), 1 deletion(-) create mode 100644 nixos/modules/services/networking/easytier.nix create mode 100644 nixos/tests/easytier.nix diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 7a3982c95795..44e8e6b84364 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -88,6 +88,8 @@ Alongside many enhancements to NixOS modules and general system improvements, th - [Readeck](https://readeck.org/), a read-it later web-application. Available as [services.readeck](#opt-services.readeck.enable). +- [EasyTier](https://github.com/EasyTier/EasyTier), a decentralized VPN solution. Available as [services.easytier](#opt-services.easytier.enable). + - [Traccar](https://www.traccar.org/), a modern GPS Tracking Platform. Available as [services.traccar](#opt-services.traccar.enable). - [Schroot](https://codeberg.org/shelter/reschroot), a lightweight virtualisation tool. Securely enter a chroot and run a command or login shell. Available as [programs.schroot](#opt-programs.schroot.enable). diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 036490c9589a..953e11d26a4f 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1115,6 +1115,7 @@ ./services/networking/dnsproxy.nix ./services/networking/doh-proxy-rust.nix ./services/networking/doh-server.nix + ./services/networking/easytier.nix ./services/networking/ejabberd.nix ./services/networking/envoy.nix ./services/networking/epmd.nix diff --git a/nixos/modules/services/networking/easytier.nix b/nixos/modules/services/networking/easytier.nix new file mode 100644 index 000000000000..127c72063fac --- /dev/null +++ b/nixos/modules/services/networking/easytier.nix @@ -0,0 +1,292 @@ +{ + config, + lib, + pkgs, + ... +}: + +with lib; +let + cfg = config.services.easytier; + settingsFormat = pkgs.formats.toml { }; + + genFinalSettings = + inst: + attrsets.filterAttrsRecursive (_: v: v != { }) ( + attrsets.filterAttrsRecursive (_: v: v != null) ( + { + inherit (inst.settings) + instance_name + hostname + ipv4 + dhcp + listeners + ; + network_identity = { + inherit (inst.settings) network_name network_secret; + }; + peer = map (p: { uri = p; }) inst.settings.peers; + } + // inst.extraSettings + ) + ); + + genConfigFile = + name: inst: + if inst.configFile == null then + settingsFormat.generate "easytier-${name}.toml" (genFinalSettings inst) + else + inst.configFile; + + activeInsts = filterAttrs (_: inst: inst.enable) cfg.instances; + + settingsModule = name: { + options = { + instance_name = mkOption { + type = types.str; + default = name; + description = "Identify different instances on same host"; + }; + + hostname = mkOption { + type = with types; nullOr str; + default = null; + description = "Hostname shown in peer list and web console."; + }; + + network_name = mkOption { + type = with types; nullOr str; + default = null; + description = "EasyTier network name."; + }; + + network_secret = mkOption { + type = with types; nullOr str; + default = null; + description = '' + EasyTier network credential used for verification and + encryption. It can also be set in environmentFile. + ''; + }; + + ipv4 = mkOption { + type = with types; nullOr str; + default = null; + description = '' + IPv4 cidr address of this peer in the virtual network. If + empty, this peer will only forward packets and no TUN device + will be created. + ''; + example = "10.144.144.1/24"; + }; + + dhcp = mkOption { + type = types.bool; + default = false; + description = '' + Automatically determine the IPv4 address of this peer based on + existing peers on network. + ''; + }; + + listeners = mkOption { + type = with types; listOf str; + default = [ + "tcp://0.0.0.0:11010" + "udp://0.0.0.0:11010" + ]; + description = '' + Listener addresses to accept connections from other peers. + Valid format is: `://:`, where the protocol + can be `tcp`, `udp`, `ring`, `wg`, `ws`, `wss`. + ''; + }; + + peers = mkOption { + type = with types; listOf str; + default = [ ]; + description = '' + Peers to connect initially. Valid format is: `://:`. + ''; + example = [ + "tcp://example.com:11010" + ]; + }; + }; + }; + + instanceModule = + { name, ... }: + { + options = { + enable = mkOption { + type = types.bool; + default = true; + description = "Enable the instance."; + }; + + configServer = mkOption { + type = with types; nullOr str; + default = null; + description = '' + Configure the instance from config server. When this option + set, any other settings for configuring the instance manually + except `hostname` will be ignored. Valid formats are: + + - full uri for custom server: `udp://example.com:22020/` + - username only for official server: `` + ''; + example = "udp://example.com:22020/myusername"; + }; + + configFile = mkOption { + type = with types; nullOr path; + default = null; + description = '' + Path to easytier config file. Setting this option will + override `settings` and `extraSettings` of this instance. + ''; + }; + + environmentFiles = mkOption { + type = with types; listOf path; + default = [ ]; + description = '' + Environment files for this instance. All command-line args + have corresponding environment variables. + ''; + example = literalExpression '' + [ + /path/to/.env + /path/to/.env.secret + ] + ''; + }; + + settings = mkOption { + type = types.submodule (settingsModule name); + default = { }; + description = '' + Settings to generate {file}`easytier-${name}.toml` + ''; + }; + + extraSettings = mkOption { + type = settingsFormat.type; + default = { }; + description = '' + Extra settings to add to {file}`easytier-${name}.toml`. + ''; + }; + + extraArgs = mkOption { + type = with types; listOf str; + default = [ ]; + description = '' + Extra args append to the easytier command-line. + ''; + }; + }; + }; + +in +{ + options.services.easytier = { + enable = mkEnableOption "EasyTier daemon"; + + package = mkPackageOption pkgs "easytier" { }; + + allowSystemForward = mkEnableOption '' + Allow the system to forward packets from easytier. Useful when + `proxy_forward_by_system` enabled. + ''; + + instances = mkOption { + description = '' + EasyTier instances. + ''; + type = types.attrsOf (types.submodule instanceModule); + default = { }; + example = { + settings = { + network_name = "easytier"; + network_secret = "easytier"; + ipv4 = "10.144.144.1/24"; + peers = [ + "tcp://public.easytier.cn:11010" + "wss://example.com:443" + ]; + }; + extraSettings = { + flags.dev_name = "tun1"; + }; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + systemd.services = mapAttrs' ( + name: inst: + let + configFile = genConfigFile name inst; + in + nameValuePair "easytier-${name}" { + description = "EasyTier Daemon - ${name}"; + wants = [ + "network-online.target" + "nss-lookup.target" + ]; + after = [ + "network-online.target" + "nss-lookup.target" + ]; + wantedBy = [ "multi-user.target" ]; + path = with pkgs; [ + cfg.package + iproute2 + bash + ]; + restartTriggers = inst.environmentFiles ++ (optionals (inst.configServer == null) [ configFile ]); + serviceConfig = { + Type = "simple"; + Restart = "on-failure"; + EnvironmentFile = inst.environmentFiles; + StateDirectory = "easytier/easytier-${name}"; + StateDirectoryMode = "0700"; + WorkingDirectory = "/var/lib/easytier/easytier-${name}"; + ExecStart = escapeShellArgs ( + [ + "${cfg.package}/bin/easytier-core" + ] + ++ optionals (inst.configServer != null) ( + [ + "-w" + "${inst.configServer}" + ] + ++ (optionals (inst.settings.hostname != null) [ + "--hostname" + "${inst.settings.hostname}" + ]) + ) + ++ optionals (inst.configServer == null) [ + "-c" + "${configFile}" + ] + ++ inst.extraArgs + ); + }; + } + ) activeInsts; + + boot.kernel.sysctl = mkIf cfg.allowSystemForward { + "net.ipv4.conf.all.forwarding" = mkOverride 97 true; + "net.ipv6.conf.all.forwarding" = mkOverride 97 true; + }; + }; + + meta.maintainers = with maintainers; [ + ltrump + ]; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 60d118cba38f..9e66b5948d40 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -433,6 +433,7 @@ in fscrypt = runTest ./fscrypt.nix; fastnetmon-advanced = runTest ./fastnetmon-advanced.nix; lauti = runTest ./lauti.nix; + easytier = handleTest ./easytier.nix { }; ejabberd = runTest ./xmpp/ejabberd.nix; elk = handleTestOn [ "x86_64-linux" ] ./elk.nix { }; emacs-daemon = runTest ./emacs-daemon.nix; diff --git a/nixos/tests/easytier.nix b/nixos/tests/easytier.nix new file mode 100644 index 000000000000..e5366fb5ce98 --- /dev/null +++ b/nixos/tests/easytier.nix @@ -0,0 +1,121 @@ +import ./make-test-python.nix ( + { lib, ... }: + { + name = "easytier"; + meta.maintainers = with lib.maintainers; [ ltrump ]; + + nodes = + let + genPeer = + hostConfig: settings: + lib.mkMerge [ + { + services.easytier = { + enable = true; + instances.default = { + settings = { + network_name = "easytier_test"; + network_secret = "easytier_test_secret"; + } // settings; + }; + }; + + networking.useDHCP = false; + networking.firewall.allowedTCPPorts = [ + 11010 + 11011 + ]; + networking.firewall.allowedUDPPorts = [ + 11010 + 11011 + ]; + } + hostConfig + ]; + in + { + relay = + genPeer + { + virtualisation.vlans = [ + 1 + 2 + ]; + + networking.interfaces.eth1.ipv4.addresses = [ + { + address = "192.168.1.11"; + prefixLength = 24; + } + ]; + + networking.interfaces.eth2.ipv4.addresses = [ + { + address = "192.168.2.11"; + prefixLength = 24; + } + ]; + } + { + ipv4 = "10.144.144.1"; + listeners = [ + "tcp://0.0.0.0:11010" + "wss://0.0.0.0:11011" + ]; + }; + + peer1 = + genPeer + { + virtualisation.vlans = [ 1 ]; + } + { + ipv4 = "10.144.144.2"; + peers = [ "tcp://192.168.1.11:11010" ]; + }; + + peer2 = + genPeer + { + virtualisation.vlans = [ 2 ]; + } + { + ipv4 = "10.144.144.3"; + peers = [ "wss://192.168.2.11:11011" ]; + }; + }; + + testScript = '' + start_all() + + relay.wait_for_unit("easytier-default.service") + peer1.wait_for_unit("easytier-default.service") + peer2.wait_for_unit("easytier-default.service") + + # relay is accessible by the other hosts + peer1.succeed("ping -c5 192.168.1.11") + peer2.succeed("ping -c5 192.168.2.11") + + # The other hosts are in separate vlans + peer1.fail("ping -c5 192.168.2.11") + peer2.fail("ping -c5 192.168.1.11") + + # Each host can ping themselves through EasyTier + relay.succeed("ping -c5 10.144.144.1") + peer1.succeed("ping -c5 10.144.144.2") + peer2.succeed("ping -c5 10.144.144.3") + + # Relay is accessible by the other hosts through EasyTier + peer1.succeed("ping -c5 10.144.144.1") + peer2.succeed("ping -c5 10.144.144.1") + + # Relay can access the other hosts through EasyTier + relay.succeed("ping -c5 10.144.144.2") + relay.succeed("ping -c5 10.144.144.3") + + # The other hosts in separate vlans can access each other through EasyTier + peer1.succeed("ping -c5 10.144.144.3") + peer2.succeed("ping -c5 10.144.144.2") + ''; + } +) diff --git a/pkgs/by-name/ea/easytier/package.nix b/pkgs/by-name/ea/easytier/package.nix index 66f939a0d134..40c565d3d081 100644 --- a/pkgs/by-name/ea/easytier/package.nix +++ b/pkgs/by-name/ea/easytier/package.nix @@ -4,6 +4,7 @@ fetchFromGitHub, rustPlatform, protobuf, + nixosTests, nix-update-script, withQuic ? false, # with QUIC protocol support }: @@ -33,7 +34,10 @@ rustPlatform.buildRustPackage rec { doCheck = false; # tests failed due to heavy rely on network - passthru.updateScript = nix-update-script { }; + passthru = { + tests = { inherit (nixosTests) easytier; }; + updateScript = nix-update-script { }; + }; meta = { homepage = "https://github.com/EasyTier/EasyTier"; From c62b7d9a0990996a8aac5e52d508eafae82e832d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 28 Jun 2025 21:58:53 +0200 Subject: [PATCH 20/65] python313Packages.publicsuffixlist: 1.0.2.20250617 -> 1.0.2.20250627 Changelog: https://github.com/ko-zu/psl/blob/v1.0.2.20250627-gha/CHANGES.md --- pkgs/development/python-modules/publicsuffixlist/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix index 4a7746f2f4e2..fa0a83987633 100644 --- a/pkgs/development/python-modules/publicsuffixlist/default.nix +++ b/pkgs/development/python-modules/publicsuffixlist/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "publicsuffixlist"; - version = "1.0.2.20250617"; + version = "1.0.2.20250627"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-UELX/GP1cvkmMpNu+zzmQywaKkZPJP1D8lr3QmGHkOY="; + hash = "sha256-AwLhjTojOEML4vU/xmv99M3TjtYXJAX1AcjCZuu58Ds="; }; build-system = [ setuptools ]; From 7051482182e1f309d0f0f8db0c5ef6cddcef2512 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Jun 2025 20:36:35 +0000 Subject: [PATCH 21/65] python3Packages.coredis: 4.22.0 -> 4.23.1 --- pkgs/development/python-modules/coredis/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/coredis/default.nix b/pkgs/development/python-modules/coredis/default.nix index 5f4f4c6c24ae..8b06307031f8 100644 --- a/pkgs/development/python-modules/coredis/default.nix +++ b/pkgs/development/python-modules/coredis/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "coredis"; - version = "4.22.0"; + version = "4.23.1"; pyproject = true; src = fetchFromGitHub { owner = "alisaifee"; repo = "coredis"; tag = version; - hash = "sha256-EMiZkKUcVbinWtYimNSQ715PH7pCrXpNKqseLFCu/48="; + hash = "sha256-5Ho9X2VCOwKo079M2ReJ93jqEpG2ZV6vKM5/qrgzjxM="; }; postPatch = '' From 4f459fd2361bc8af059a63b4e39935d994791801 Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov Date: Fri, 27 Jun 2025 20:00:00 -0400 Subject: [PATCH 22/65] tup: Fix static build --- pkgs/by-name/tu/tup/package.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/tu/tup/package.nix b/pkgs/by-name/tu/tup/package.nix index 4bccae8ee432..88d66c069e4b 100644 --- a/pkgs/by-name/tu/tup/package.nix +++ b/pkgs/by-name/tu/tup/package.nix @@ -38,7 +38,19 @@ stdenv.mkDerivation rec { patches = [ ./fusermount-setuid.patch ]; configurePhase = '' - substituteInPlace src/tup/link.sh --replace '`git describe' '`echo ${version}' + substituteInPlace src/tup/link.sh --replace-fail '`git describe' '`echo ${version}' + + for path in Tupfile build.sh src/tup/server/Tupfile ; do + substituteInPlace $path --replace-fail "pkg-config" "${stdenv.cc.targetPrefix}pkg-config" + done + + # Replace "pcre2-config --libs8" => "pkg-config libpcre2-8 --libs". + # + # There is prefixed pkg-config for cross-compilation, but no prefixed "pcre2-config". + for path in Tupfile Tuprules.tup ; do + substituteInPlace $path --replace-fail "pcre2-config" "${stdenv.cc.targetPrefix}pkg-config libpcre2-8 " + done + substituteInPlace Tupfile --replace-fail "--libs8" "--libs" cat << EOF > tup.config CONFIG_CC=${stdenv.cc.targetPrefix}cc From 8af4b052d63e00a7f67f4ceaf78d37e43c6b9bbc Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 29 Jun 2025 15:56:25 +0300 Subject: [PATCH 23/65] kdePackages.gwenview: add actual phonon video backend using vlc In principal the package `phonon-backend-vlc` or `phonon-backend-gstreamer` could have been used too, but this one is easily found in the same package set and in the same `kdePackages` scope. --- pkgs/kde/gear/gwenview/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/kde/gear/gwenview/default.nix b/pkgs/kde/gear/gwenview/default.nix index 68a93a36738b..55d5a8b7d331 100644 --- a/pkgs/kde/gear/gwenview/default.nix +++ b/pkgs/kde/gear/gwenview/default.nix @@ -4,6 +4,7 @@ qtwayland, qtimageformats, phonon, + phonon-vlc, pkg-config, cfitsio, exiv2, @@ -23,6 +24,7 @@ mkKdeDerivation { qtimageformats phonon + phonon-vlc cfitsio exiv2 From dc3fc2545696774440ea084aa9178ca6c808f3ed Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 29 Jun 2025 16:41:14 +0300 Subject: [PATCH 24/65] =?UTF-8?q?Reapply=20"speakersafetyd:=201.0.2=20?= =?UTF-8?q?=E2=86=92=201.1.2;=20refactor=20package;=20add=20myself=20as=20?= =?UTF-8?q?maintainer"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit ea4be6b91623330b86f83c848d6cda03fb0f6f02. --- pkgs/by-name/sp/speakersafetyd/package.nix | 63 ++++++++++++------- .../speakersafetyd/remove-install-paths.patch | 16 +++++ 2 files changed, 55 insertions(+), 24 deletions(-) create mode 100644 pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 51f02ac93fa1..ec73d4cbd676 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -2,23 +2,29 @@ stdenv, lib, rustPlatform, - fetchCrate, + fetchFromGitHub, pkg-config, alsa-lib, - rust, udevCheckHook, + nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "speakersafetyd"; - version = "1.0.2"; + version = "1.1.2"; - src = fetchCrate { - inherit pname version; - hash = "sha256-3DzBNebg1y/+psD2zOpDsnRJmabQLeO1UMxPq9M0CsU="; + src = fetchFromGitHub { + owner = "AsahiLinux"; + repo = "speakersafetyd"; + tag = finalAttrs.version; + hash = "sha256-sSGoF2c5HfPM2FBrBJwJ9NvExYijGx6JH1bJp3epfe0="; }; - useFetchCargoVendor = true; - cargoHash = "sha256-DnOnqi60JsRX8yqEM/5zZ3yX/rk85/ruwL3aW1FRXKg="; + + cargoHash = "sha256-9XbrIY1VwnHtqi/ZfS952SyjNjA/TJRdOqCsPReZI8o="; + + patches = [ + ./remove-install-paths.patch + ]; nativeBuildInputs = [ pkg-config @@ -27,32 +33,41 @@ rustPlatform.buildRustPackage rec { buildInputs = [ alsa-lib ]; postPatch = '' - substituteInPlace speakersafetyd.service --replace "/usr" "$out" - substituteInPlace Makefile --replace "target/release" "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" - # creating files in /var does not make sense in a nix package - substituteInPlace Makefile --replace 'install -dDm0755 $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox' "" + substituteInPlace speakersafetyd.service \ + --replace-fail "/usr" \ + "$out" + + substituteInPlace Makefile \ + --replace-fail "target/release" \ + "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" \ ''; installFlags = [ - "BINDIR=$(out)/bin" - "UNITDIR=$(out)/lib/systemd/system" - "UDEVDIR=$(out)/lib/udev/rules.d" - "SHAREDIR=$(out)/share" - "TMPFILESDIR=$(out)/lib/tmpfiles.d" + "DESTDIR=$(out)" + "BINDIR=bin" + "UNITDIR=lib/systemd/system" + "UDEVDIR=lib/udev/rules.d" + "SHAREDIR=share" + "TMPFILESDIR=lib/tmpfiles.d" ]; dontCargoInstall = true; doInstallCheck = true; - meta = with lib; { - description = "Userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model"; + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "Userspace daemon that implements the Smart Amp protection model"; mainProgram = "speakersafetyd"; homepage = "https://github.com/AsahiLinux/speakersafetyd"; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ + normalcea flokli yuka ]; - license = licenses.mit; - platforms = platforms.linux; + license = lib.licenses.mit; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch b/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch new file mode 100644 index 000000000000..9581dc7ca1e5 --- /dev/null +++ b/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch @@ -0,0 +1,16 @@ +diff --git a/Makefile b/Makefile +index 41bf7b4..ca14be7 100644 +--- a/Makefile ++++ b/Makefile +@@ -24,11 +24,8 @@ install-data: + install -pm0644 95-speakersafetyd.rules $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules + install -dDm0755 $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple + install -pm0644 -t $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple $(wildcard conf/apple/*) +- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd +- install -dDm0700 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox + install -dDm0755 $(DESTDIR)/$(TMPFILESDIR) + install -pm0644 speakersafetyd.tmpfiles $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf +- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/run/speakersafetyd + + uninstall: + rm -f $(DESTDIR)/$(BINDIR)/speakersafetyd $(DESTDIR)/$(UNITDIR)/speakersafetyd.service $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf From 49f6d0edbed313d9d25f35e514adacafa3f94144 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 29 Jun 2025 16:44:22 +0300 Subject: [PATCH 25/65] speakersafetyd: drop User=speakersafetyd line The NixOS module, living in nix-community/nixos-apple-silicon, doesn't set up this user, and it's ok for now to just keep running as root. Long-term, speakersafetyd should support running via DynamicUser=yes, see the discussion in https://github.com/AsahiLinux/speakersafetyd/pull/26. --- pkgs/by-name/sp/speakersafetyd/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index ec73d4cbd676..bd845006d12c 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -34,6 +34,8 @@ rustPlatform.buildRustPackage (finalAttrs: { postPatch = '' substituteInPlace speakersafetyd.service \ + --replace-fail "User=speakersafetyd" \ + "" \ --replace-fail "/usr" \ "$out" From 6b019372dad828b933d6f51cada71651fa91f6a1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 19:07:08 +0000 Subject: [PATCH 26/65] pik: 0.24.0 -> 0.25.0 --- pkgs/by-name/pi/pik/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pi/pik/package.nix b/pkgs/by-name/pi/pik/package.nix index fff31310e55c..26e87d656308 100644 --- a/pkgs/by-name/pi/pik/package.nix +++ b/pkgs/by-name/pi/pik/package.nix @@ -8,17 +8,17 @@ rustPlatform.buildRustPackage rec { pname = "pik"; - version = "0.24.0"; + version = "0.25.0"; src = fetchFromGitHub { owner = "jacek-kurlit"; repo = "pik"; rev = version; - hash = "sha256-LA60IQtR3IYVDdww79XFsTViGeVKi1MzRBB8ibhITK0="; + hash = "sha256-3ZYABdrODJJ9RUlhL7mIu/py3GCIFG3AUXQuol7o1Zs="; }; useFetchCargoVendor = true; - cargoHash = "sha256-j/BWTCsdAZF3NDj07DY5Mdf6MRGyBe3xpowZZQHSwTU="; + cargoHash = "sha256-333MHDuHYKlTUXSm2C19ZRPXeEGDxbQEImdsleUt1QU="; passthru.tests.version = testers.testVersion { package = pik; }; From 747b83f4768f39cdb00b35a88539a8cd32d43e22 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 20:07:30 +0000 Subject: [PATCH 27/65] rspamd: 3.12.0 -> 3.12.1 --- pkgs/by-name/rs/rspamd/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/rs/rspamd/package.nix b/pkgs/by-name/rs/rspamd/package.nix index be3e28a4ffd3..4a773df49f9a 100644 --- a/pkgs/by-name/rs/rspamd/package.nix +++ b/pkgs/by-name/rs/rspamd/package.nix @@ -33,13 +33,13 @@ stdenv.mkDerivation rec { pname = "rspamd"; - version = "3.12.0"; + version = "3.12.1"; src = fetchFromGitHub { owner = "rspamd"; repo = "rspamd"; rev = version; - hash = "sha256-4C+bhUkqdn9RelHf6LfcfxVCIiBUCt4BxuI9TGdlIMc="; + hash = "sha256-bAkT0msUkgGkjAIlF7lnJbimBKW1NSn2zjkCj3ErJ1I="; }; hardeningEnable = [ "pie" ]; From 772b47210b4fc0ce66e7cf13562c0fa3d8eab22e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 15 Jun 2025 10:26:59 +0000 Subject: [PATCH 28/65] python3Packages.google-cloud-artifact-registry: 1.16.0 -> 1.16.1 --- .../python-modules/google-cloud-artifact-registry/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix index afa2e4d8dcd9..bb24a56b763f 100644 --- a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix +++ b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "google-cloud-artifact-registry"; - version = "1.16.0"; + version = "1.16.1"; pyproject = true; disabled = pythonOlder "3.7"; @@ -22,7 +22,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "google_cloud_artifact_registry"; inherit version; - hash = "sha256-PDikL/ECsIdQn7gXoF04SVxpp7aZ9allTJL+pnd947E="; + hash = "sha256-X3v503uTPImEhSFw/oQlAaitx/MSgagblK1hkkSL7M4="; }; build-system = [ setuptools ]; From 80e74d26a5a4a23c6076643914ecb70ed2208b8c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 21:55:48 +0000 Subject: [PATCH 29/65] grafana-alloy: 1.9.1 -> 1.9.2 --- pkgs/by-name/gr/grafana-alloy/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gr/grafana-alloy/package.nix b/pkgs/by-name/gr/grafana-alloy/package.nix index c7847d1ed91f..878af99bd335 100644 --- a/pkgs/by-name/gr/grafana-alloy/package.nix +++ b/pkgs/by-name/gr/grafana-alloy/package.nix @@ -17,17 +17,17 @@ buildGoModule rec { pname = "grafana-alloy"; - version = "1.9.1"; + version = "1.9.2"; src = fetchFromGitHub { owner = "grafana"; repo = "alloy"; tag = "v${version}"; - hash = "sha256-j3zuV+a3hLgHrb1jcPav9AhQpT8WT/cP4KSZ9gJY0p4="; + hash = "sha256-ciM5DbP5OTvAPUNgBTuwb+hbVtKGgQzafLLOjDftPZQ="; }; proxyVendor = true; - vendorHash = "sha256-bePkYhKL8yNzVgX3Can9jyC1WKFQzHoX+L3qapZ0fjQ="; + vendorHash = "sha256-zmNrnCaUrsYJ0S5MQrj07sV+ZCnXbGQmH8Z0pMpJZk4="; nativeBuildInputs = [ fixup-yarn-lock From 16be21b1e4f42809abdcf4714eb34e58690f8cf3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 20 Jun 2025 11:28:37 +0000 Subject: [PATCH 30/65] python3Packages.pytest-cases: 3.8.6 -> 3.9.1 --- .../python-modules/pytest-cases/default.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/pytest-cases/default.nix b/pkgs/development/python-modules/pytest-cases/default.nix index d74ffcb45d2a..f6fac10aaadf 100644 --- a/pkgs/development/python-modules/pytest-cases/default.nix +++ b/pkgs/development/python-modules/pytest-cases/default.nix @@ -4,6 +4,7 @@ fetchPypi, makefun, decopatch, + packaging, pythonOlder, pytest, setuptools-scm, @@ -11,24 +12,24 @@ buildPythonPackage rec { pname = "pytest-cases"; - version = "3.8.6"; + version = "3.9.1"; pyproject = true; - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.9"; src = fetchPypi { pname = "pytest_cases"; inherit version; - hash = "sha256-XCTgqwy2+OgCpGm3llkGozPTuruHRYbrxW9+LL4afEQ="; + hash = "sha256-xOGB8bUlyTGjGNSBL6jeZWwsj7d/zPFXHs8Mxf6Of48="; }; build-system = [ setuptools-scm ]; - buildInputs = [ pytest ]; - dependencies = [ decopatch makefun + packaging + pytest ]; # Tests have dependencies (pytest-harvest, pytest-steps) which From 77db71b32d3b586c8a117d8f62332abea315ba79 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 22:20:13 +0000 Subject: [PATCH 31/65] libretro.puae: 0-unstable-2025-05-24 -> 0-unstable-2025-06-14 --- pkgs/applications/emulators/libretro/cores/puae.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/puae.nix b/pkgs/applications/emulators/libretro/cores/puae.nix index d40f824f5017..e8d1f4bec8dd 100644 --- a/pkgs/applications/emulators/libretro/cores/puae.nix +++ b/pkgs/applications/emulators/libretro/cores/puae.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "puae"; - version = "0-unstable-2025-05-24"; + version = "0-unstable-2025-06-14"; src = fetchFromGitHub { owner = "libretro"; repo = "libretro-uae"; - rev = "f1c248602abb58e7c570feec3f59f4677407b252"; - hash = "sha256-CmdMeAntu+uFp1HowBz3UgMiqFbRrNuMyevTlKxga/M="; + rev = "3eece7a5447fde5ddf12be11bb5cb421d8fd8f97"; + hash = "sha256-NpCbeHcziBMw5IQ/8hD9cYq9zIAMd4H0OCpK8TydieA="; }; makefile = "Makefile"; From f03c9c2ec1a19bd11d90dde4b1aa86f84ad8cd9c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 22 Jun 2025 14:49:36 +0000 Subject: [PATCH 32/65] python3Packages.glyphslib: 6.10.3 -> 6.11.0 --- pkgs/development/python-modules/glyphslib/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/glyphslib/default.nix b/pkgs/development/python-modules/glyphslib/default.nix index 449b52c4c35a..3cd569339bf0 100644 --- a/pkgs/development/python-modules/glyphslib/default.nix +++ b/pkgs/development/python-modules/glyphslib/default.nix @@ -17,20 +17,20 @@ buildPythonPackage rec { pname = "glyphslib"; - version = "6.10.3"; + version = "6.11.0"; - format = "pyproject"; + pyproject = true; src = fetchFromGitHub { owner = "googlefonts"; repo = "glyphsLib"; tag = "v${version}"; - hash = "sha256-DLyWuFrAwc/ElGFjLxWY4RihwlQ143AUnWBzzJttZT4="; + hash = "sha256-hJLJ30ZT6uRSVTUi6XPGyn9fncy1A1hvhgRKTL9a2gs="; }; - nativeBuildInputs = [ setuptools-scm ]; + build-system = [ setuptools-scm ]; - propagatedBuildInputs = [ + dependencies = [ fonttools openstep-plist ufolib2 From 8189339445c4ab5ee3ea9422af62b4cdcf438bea Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 30 Jun 2025 00:01:08 +0000 Subject: [PATCH 33/65] bibiman: 0.12.3 -> 0.12.4 --- pkgs/by-name/bi/bibiman/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/bi/bibiman/package.nix b/pkgs/by-name/bi/bibiman/package.nix index 405b26b18b10..afd2f9aebf34 100644 --- a/pkgs/by-name/bi/bibiman/package.nix +++ b/pkgs/by-name/bi/bibiman/package.nix @@ -8,18 +8,18 @@ rustPlatform.buildRustPackage rec { pname = "bibiman"; - version = "0.12.3"; + version = "0.12.4"; src = fetchFromGitea { domain = "codeberg.org"; owner = "lukeflo"; repo = "bibiman"; tag = "v${version}"; - hash = "sha256-gjVfJyedZZhSavarBXmpG3jj7mb3706NPKB9oEVhol0="; + hash = "sha256-6duqLBPm6GlBHm3Kr4foHF1MKodYOYKKDITk/BiX6mA="; }; useFetchCargoVendor = true; - cargoHash = "sha256-YtpnKgTIAsDXK6pl/TvU54euOdkbUcyCH4RADYWXkls="; + cargoHash = "sha256-tbgzjTsK88+G4Wxex4Tl0K5Ii99tPNud3UEDzAHaI0M="; nativeInstallCheckInputs = [ versionCheckHook From b0971f959e0be1800f031a6cadc6a2d4052d6793 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 20 Jun 2025 06:49:33 +0000 Subject: [PATCH 34/65] calico-apiserver: 3.30.1 -> 3.30.2 --- pkgs/applications/networking/cluster/calico/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/calico/default.nix b/pkgs/applications/networking/cluster/calico/default.nix index c4f5415c4cb9..7f88ab6e6dd4 100644 --- a/pkgs/applications/networking/cluster/calico/default.nix +++ b/pkgs/applications/networking/cluster/calico/default.nix @@ -14,16 +14,16 @@ builtins.mapAttrs }: buildGoModule rec { inherit pname; - version = "3.30.1"; + version = "3.30.2"; src = fetchFromGitHub { owner = "projectcalico"; repo = "calico"; rev = "v${version}"; - hash = "sha256-MtUoVLF46Z+wnxahZqTAfZwbLOC9gfHAUtIAwAJGUn0="; + hash = "sha256-UvHrCA/1n9dklcMY1AfNNW5/TtxVdmwmQb2DHEBFZhA="; }; - vendorHash = "sha256-5VFjiKFBZIXorc0yd9Vafyaj5ZInkhAD1GIdAw4yaEs="; + vendorHash = "sha256-Cp1Eo8Xa4c0o5l6/p+pyHa/t3jMUpgUDDXEAKwS6aCE="; inherit doCheck subPackages; From 25a42e247c1648ea4ab22c4c244ee5ccaa2bdb80 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 23 Jun 2025 22:44:07 +0000 Subject: [PATCH 35/65] python3Packages.robotframework-databaselibrary: 2.0.4 -> 2.1.3 --- .../robotframework-databaselibrary/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/robotframework-databaselibrary/default.nix b/pkgs/development/python-modules/robotframework-databaselibrary/default.nix index efc09a7c95f3..15e766dd0a83 100644 --- a/pkgs/development/python-modules/robotframework-databaselibrary/default.nix +++ b/pkgs/development/python-modules/robotframework-databaselibrary/default.nix @@ -5,20 +5,19 @@ setuptools, robotframework, robotframework-assertion-engine, - robotframework-excellib, pytestCheckHook, }: buildPythonPackage rec { pname = "robotframework-databaselibrary"; - version = "2.0.4"; + version = "2.1.3"; pyproject = true; src = fetchFromGitHub { owner = "MarketSquare"; repo = "Robotframework-Database-Library"; tag = "v.${version}"; - hash = "sha256-ixgKw5iZw81TlgvvbsJXI753OkHuyJHhSeNVqXtsY4w="; + hash = "sha256-XsRXQU31Q2iGUMJgDvIIcSsT8guALZO5tnIjwGLR8+Q="; }; nativeBuildInputs = [ @@ -29,7 +28,6 @@ buildPythonPackage rec { propagatedBuildInputs = [ robotframework robotframework-assertion-engine - robotframework-excellib ]; pythonImportsCheck = [ "DatabaseLibrary" ]; From aebd0b42c765bd0ba7a63919670fe3dd61444ac4 Mon Sep 17 00:00:00 2001 From: hacker1024 Date: Mon, 30 Jun 2025 11:38:10 +1000 Subject: [PATCH 36/65] python313Packages.flashinfer: Respect NIX_BUILD_CORES --- pkgs/development/python-modules/flashinfer/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/flashinfer/default.nix b/pkgs/development/python-modules/flashinfer/default.nix index 83b91b746e7c..efd7d39bcbcb 100644 --- a/pkgs/development/python-modules/flashinfer/default.nix +++ b/pkgs/development/python-modules/flashinfer/default.nix @@ -77,6 +77,7 @@ buildPythonPackage { preConfigure = '' export FLASHINFER_ENABLE_AOT=1 export TORCH_NVCC_FLAGS="--maxrregcount=64" + export MAX_JOBS="$NIX_BUILD_CORES" ''; TORCH_CUDA_ARCH_LIST = lib.concatStringsSep ";" torch.cudaCapabilities; From eb11b0b07220b1f636c7774916de7630aef53810 Mon Sep 17 00:00:00 2001 From: rewine Date: Mon, 30 Jun 2025 10:06:51 +0800 Subject: [PATCH 37/65] deepin.dde-shell: fix qml models import in qt 6.9 --- pkgs/desktops/deepin/core/dde-shell/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/desktops/deepin/core/dde-shell/default.nix b/pkgs/desktops/deepin/core/dde-shell/default.nix index be854c40b97a..deba291f1ce8 100644 --- a/pkgs/desktops/deepin/core/dde-shell/default.nix +++ b/pkgs/desktops/deepin/core/dde-shell/default.nix @@ -40,6 +40,11 @@ stdenv.mkDerivation (finalAttrs: { url = "https://github.com/linuxdeepin/dde-shell/commit/936d62a2c20398b9ca6ae28f9101dd288c8b1678.patch"; hash = "sha256-u5TcPy2kZsOLGUgjTGZ5JX3mWnr/rOQ3SWBRyjWEiw4="; }) + (fetchpatch { + name = "adapt-import-change-of-QtQml-Models-in-Qt-6_9.patch"; + url = "https://github.com/linuxdeepin/dde-shell/commit/ad92c160508a5eb53fd5af558ef1b1ba881b97ac.patch"; + hash = "sha256-3GdkbFEt51EP04RQN54EDsGyXkeZoWhbnQAHkwjUeGY="; + }) ]; From 3efba99a6dfed75dbf030b783a9195c0af16dcb4 Mon Sep 17 00:00:00 2001 From: Victor Duarte Date: Sun, 29 Jun 2025 17:57:43 +0200 Subject: [PATCH 38/65] warp-terminal: 0.2025.06.20.22.47.stable_05 -> 0.2025.06.25.08.12.stable_01 --- pkgs/by-name/wa/warp-terminal/versions.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/wa/warp-terminal/versions.json b/pkgs/by-name/wa/warp-terminal/versions.json index f94041720f7c..b5d77222c423 100644 --- a/pkgs/by-name/wa/warp-terminal/versions.json +++ b/pkgs/by-name/wa/warp-terminal/versions.json @@ -1,14 +1,14 @@ { "darwin": { - "hash": "sha256-UJAirS6JFFLW0OsOYj8RNUfG85dRHnxXasNw2QHX1Xs=", - "version": "0.2025.06.20.22.47.stable_05" + "hash": "sha256-7/gSUR9h9PzBrTgxERXNjqzJDtqxebjmD0cF3Vx2ySY=", + "version": "0.2025.06.25.08.12.stable_01" }, "linux_x86_64": { - "hash": "sha256-h0ODaO3SJcZAxFRFBYYjWXQYsRAemGizn/YA7AF36pw=", - "version": "0.2025.06.20.22.47.stable_05" + "hash": "sha256-2VQzEBAAu6YasottOTu3YjQvvXR5gT3DAjGhp63wMNo=", + "version": "0.2025.06.25.08.12.stable_01" }, "linux_aarch64": { - "hash": "sha256-H4xldFBMpfu6UFGFA/IkA1zPFqhFN6abhfHTRdYNpGA=", - "version": "0.2025.06.20.22.47.stable_05" + "hash": "sha256-5jpW7mUHLshGZUWigAJ8QgmpYnfosJN1JpRLeNvVK3Y=", + "version": "0.2025.06.25.08.12.stable_01" } } From 1771336abe0d4899737c08039af2ce4a7c9f6648 Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Sun, 29 Jun 2025 15:48:57 +0200 Subject: [PATCH 39/65] coqPackages.interval: 4.11.1 -> 4.11.2 --- pkgs/development/coq-modules/interval/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/coq-modules/interval/default.nix b/pkgs/development/coq-modules/interval/default.nix index 9ed1576170a0..eff13fb6b1f5 100644 --- a/pkgs/development/coq-modules/interval/default.nix +++ b/pkgs/development/coq-modules/interval/default.nix @@ -21,6 +21,7 @@ mkCoqDerivation rec { with lib.versions; lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( lib.mapAttrsToList (out: case: { inherit case out; }) { + "4.11.2" = range "8.13" "9.0"; "4.11.1" = range "8.13" "8.20"; "4.10.0" = range "8.12" "8.19"; "4.9.0" = range "8.12" "8.18"; @@ -32,6 +33,7 @@ mkCoqDerivation rec { "3.3.0" = range "8.5" "8.6"; } )) null; + release."4.11.2".sha256 = "sha256-ouhjHtlxcqt06+Pt+UZAzwp83bVYPh3N+8jnsVvapSU="; release."4.11.1".sha256 = "sha256-QWZvU468rOhK796xCCEawW6rhCRTPnE0iLll9ynKflo="; release."4.11.0".sha256 = "sha256-vPwa4zSjyvxHLGDoNaBnHV2pb77dnQFbC50BL80fcvE="; release."4.10.0".sha256 = "sha256-MZJVoKGLXjDabdv9BuUSK1L9z1cubzC9cqVuWevKIXQ="; From d74a76be1d3332ecc506a4808f70d1047fc34476 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Sun, 29 Jun 2025 23:38:47 -0700 Subject: [PATCH 40/65] llvmPackages_git: 21.0.0-unstable-2025-06-22 -> 21.0.0-unstable-2025-06-29 --- pkgs/development/compilers/llvm/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix index 41500bcba153..e729f60d6ac4 100644 --- a/pkgs/development/compilers/llvm/default.nix +++ b/pkgs/development/compilers/llvm/default.nix @@ -33,9 +33,9 @@ let "19.1.7".officialRelease.sha256 = "sha256-cZAB5vZjeTsXt9QHbP5xluWNQnAHByHtHnAhVDV0E6I="; "20.1.6".officialRelease.sha256 = "sha256-PfCzECiCM+k0hHqEUSr1TSpnII5nqIxg+Z8ICjmMj0Y="; "21.0.0-git".gitRelease = { - rev = "f9fce4975bbad835deba6e639c21a62154dd8c14"; - rev-version = "21.0.0-unstable-2025-06-22"; - sha256 = "sha256-Xu9RD6R6tQDZ0kaSD7N0GTp1TcUV6BK12fobK0qPkIw="; + rev = "2d94c08d03ada0a4d3c30a93594d0381946aa85a"; + rev-version = "21.0.0-unstable-2025-06-29"; + sha256 = "sha256-waAXH17LNrzbq4kJ1u9EUpYGDky8iEVVCsYpthOrgMY="; }; } // llvmVersions; From e0a2615997529a925a46737c950f53255907815f Mon Sep 17 00:00:00 2001 From: liberodark Date: Mon, 30 Jun 2025 09:38:11 +0200 Subject: [PATCH 41/65] rundeck: 5.12.0 -> 5.13.0 --- pkgs/by-name/ru/rundeck/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ru/rundeck/package.nix b/pkgs/by-name/ru/rundeck/package.nix index 93a77617a353..12da62d4f0f2 100644 --- a/pkgs/by-name/ru/rundeck/package.nix +++ b/pkgs/by-name/ru/rundeck/package.nix @@ -12,11 +12,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "rundeck"; - version = "5.12.0-20250512"; + version = "5.13.0-20250625"; src = fetchurl { url = "https://packagecloud.io/pagerduty/rundeck/packages/java/org.rundeck/rundeck-${finalAttrs.version}.war/artifacts/rundeck-${finalAttrs.version}.war/download?distro_version_id=167"; - hash = "sha256-LsKxMj+XCKTAMC3aIRnJcJkc2jytfTfu/gi0omGkMEk="; + hash = "sha256-RqyJ0/gZQ1gIYSPoYfGGN5VB5ubUMl00pHPlw6v6tBQ="; }; nativeBuildInputs = [ makeWrapper ]; From 3c4341417760d50588eca0926f29290cd411ee4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E5=9D=82=E9=9B=85?= <23130178+ShadowRZ@users.noreply.github.com> Date: Mon, 30 Jun 2025 16:06:15 +0800 Subject: [PATCH 42/65] maintainers.shadowrz: update key fingerprint --- maintainers/maintainer-list.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 0992f46358bc..c0914575d52b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -22899,7 +22899,10 @@ github = "ShadowRZ"; githubId = 23130178; name = "夜坂雅"; - keys = [ { fingerprint = "3237 D49E 8F81 5A45 2133 64EA 4FF3 5790 F405 53A9"; } ]; + keys = [ + { fingerprint = "3237 D49E 8F81 5A45 2133 64EA 4FF3 5790 F405 53A9"; } + { fingerprint = "AC59 7AD3 89D1 CC56 18AD 1ED9 B712 3A2B 6B0A E434"; } + ]; }; shadows_withal = { email = "shadows@with.al"; From 19e4869241080cea1a831a05c0298b61de944695 Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Sun, 29 Jun 2025 16:35:20 +0200 Subject: [PATCH 43/65] coqPackages.*: better formatting fix --- .../coq-modules/bignums/default.nix | 15 +++--- .../coq-modules/coq-elpi/default.nix | 52 ++++++++++--------- .../coq-modules/coqeal/default.nix | 42 ++++++++------- .../coq-modules/coquelicot/default.nix | 23 ++++---- .../coq-modules/deriving/default.nix | 30 ++++++----- .../coq-modules/dpdgraph/default.nix | 38 +++++++------- .../coq-modules/equations/default.nix | 42 ++++++++------- .../coq-modules/extructures/default.nix | 32 +++++++----- .../development/coq-modules/flocq/default.nix | 23 ++++---- .../coq-modules/fourcolor/default.nix | 32 +++++++----- pkgs/development/coq-modules/gaia/default.nix | 30 ++++++----- .../coq-modules/graph-theory/default.nix | 34 ++++++------ .../coq-modules/hierarchy-builder/default.nix | 27 +++++----- pkgs/development/coq-modules/http/default.nix | 11 ++-- .../coq-modules/hydra-battles/default.nix | 13 ++--- .../coq-modules/interval/default.nix | 29 ++++++----- pkgs/development/coq-modules/iris/default.nix | 23 ++++---- .../coq-modules/itauto/default.nix | 25 ++++----- .../coq-modules/itree-io/default.nix | 11 ++-- .../coq-modules/jasmin/default.nix | 26 ++++++---- pkgs/development/coq-modules/json/default.nix | 13 +++-- .../coq-modules/mathcomp-abel/default.nix | 28 +++++----- .../mathcomp-algebra-tactics/default.nix | 32 +++++++----- .../coq-modules/mathcomp-analysis/default.nix | 52 ++++++++++--------- .../coq-modules/mathcomp-apery/default.nix | 24 +++++---- .../mathcomp-bigenough/default.nix | 13 ++--- .../coq-modules/mathcomp-finmap/default.nix | 44 +++++++++------- .../coq-modules/mathcomp-infotheo/default.nix | 42 ++++++++------- .../coq-modules/mathcomp-tarjan/default.nix | 30 ++++++----- .../coq-modules/mathcomp-word/default.nix | 26 ++++++---- .../coq-modules/mathcomp-zify/default.nix | 28 +++++----- .../coq-modules/mathcomp/default.nix | 47 ++++++++--------- .../coq-modules/metacoq/default.nix | 32 ++++++------ .../coq-modules/metarocq/default.nix | 12 +++-- .../coq-modules/multinomials/default.nix | 48 +++++++++-------- .../coq-modules/odd-order/default.nix | 19 +++---- .../coq-modules/reglang/default.nix | 30 ++++++----- .../coq-modules/relation-algebra/default.nix | 31 +++++------ .../coq-modules/simple-io/default.nix | 15 +++--- .../coq-modules/ssprove/default.nix | 32 +++++++----- .../coq-modules/stalmarck/default.nix | 11 ++-- .../coq-modules/stdlib/default.nix | 13 ++--- .../development/coq-modules/stdpp/default.nix | 23 ++++---- .../rocq-modules/bignums/default.nix | 11 ++-- .../hierarchy-builder/default.nix | 11 ++-- .../rocq-modules/rocq-elpi/default.nix | 26 +++++----- .../rocq-modules/stdlib/default.nix | 11 ++-- 47 files changed, 681 insertions(+), 581 deletions(-) diff --git a/pkgs/development/coq-modules/bignums/default.nix b/pkgs/development/coq-modules/bignums/default.nix index 6d38525921cf..24acbd14655c 100644 --- a/pkgs/development/coq-modules/bignums/default.nix +++ b/pkgs/development/coq-modules/bignums/default.nix @@ -12,14 +12,15 @@ owner = "coq"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "9.0.0+rocq${coq.coq-version}" = range "9.0" "9.0"; - "9.0.0+coq${coq.coq-version}" = range "8.13" "8.20"; - "${coq.coq-version}.0" = range "8.6" "8.17"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "9.0" "9.0") "9.0.0+rocq${coq.coq-version}") + (case (range "8.13" "8.20") "9.0.0+coq${coq.coq-version}") + (case (range "8.6" "8.17") "${coq.coq-version}.0") + ] null; release."9.0.0+rocq9.0".sha256 = "sha256-ctnwpyNVhryEUA5YEsAImrcJsNMhtBgDSOz+z5Z4R78="; release."9.0.0+coq8.20".sha256 = "sha256-pkvyDaMXRalc6Uu1eBTuiqTpRauRrzu946c6TavyTKY="; diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix index baa817b33138..f6308faaf34c 100644 --- a/pkgs/development/coq-modules/coq-elpi/default.nix +++ b/pkgs/development/coq-modules/coq-elpi/default.nix @@ -15,18 +15,19 @@ let elpi-version else ( + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.11.4" = "8.11"; - "1.12.0" = "8.12"; - "1.13.7" = range "8.13" "8.14"; - "1.15.0" = "8.15"; - "1.17.0" = range "8.16" "8.17"; - "1.18.1" = range "8.18" "8.19"; - "2.0.7" = range "8.20" "9.0"; - } - )) { } + lib.switch coq.coq-version [ + (case "8.11" "1.11.4") + (case "8.12" "1.12.0") + (case (range "8.13" "8.14") "1.13.7") + (case "8.15" "1.15.0") + (case (range "8.16" "8.17") "1.17.0") + (case (range "8.18" "8.19") "1.18.1") + (case (range "8.20" "9.0") "2.0.7") + ] { } ); elpi = coq.ocamlPackages.elpi.override { version = default-elpi-version; }; propagatedBuildInputs_wo_elpi = [ @@ -38,21 +39,22 @@ let owner = "LPCIC"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.5.2" = range "8.20" "9.0"; - "2.0.1" = "8.19"; - "2.0.0" = "8.18"; - "1.18.0" = "8.17"; - "1.15.6" = "8.16"; - "1.14.0" = "8.15"; - "1.11.2" = "8.14"; - "1.11.1" = "8.13"; - "1.8.3_8.12" = "8.12"; - "1.6.3_8.11" = "8.11"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.20" "9.0") "2.5.2") + (case "8.19" "2.0.1") + (case "8.18" "2.0.0") + (case "8.17" "1.18.0") + (case "8.16" "1.15.6") + (case "8.15" "1.14.0") + (case "8.14" "1.11.2") + (case "8.13" "1.11.1") + (case "8.12" "1.8.3_8.12") + (case "8.11" "1.6.3_8.11") + ] null; release."2.5.2".sha256 = "sha256-lLzjPrbVB3rrqox528YiheUb0u89R84Xmrgkn0oplOs="; release."2.5.0".sha256 = "sha256-Z5xjO83X/ZoTQlWnVupGXPH3HuJefr57Kv128I0dltg="; release."2.4.0".sha256 = "sha256-W2+vVGExLLux8e0nSZESSoMVvrLxhL6dmXkb+JuKiqc="; diff --git a/pkgs/development/coq-modules/coqeal/default.nix b/pkgs/development/coq-modules/coqeal/default.nix index 7b0d58845adb..ead8be66918d 100644 --- a/pkgs/development/coq-modules/coqeal/default.nix +++ b/pkgs/development/coq-modules/coqeal/default.nix @@ -17,27 +17,31 @@ let inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2.1.0" = cmc (range "8.20" "9.0") (isGe "2.3.0"); - "2.0.3" = cmc (range "8.16" "8.20") (isGe "2.1.0"); - "2.0.1" = cmc (range "8.16" "8.20") (isGe "2.0.0"); - "2.0.0" = cmc (range "8.16" "8.17") (isGe "2.0.0"); - "1.1.3" = cmc (range "8.15" "8.18") (range "1.15.0" "1.18.0"); - "1.1.1" = cmc (range "8.13" "8.17") (range "1.13.0" "1.18.0"); - "1.1.0" = cmc (range "8.10" "8.15") (range "1.12.0" "1.18.0"); - "1.0.5" = cmc (isGe "8.10") (range "1.11.0" "1.12.0"); - "1.0.4" = cmc (isGe "8.7") "1.11.0"; - "1.0.3" = cmc (isGe "8.7") "1.10.0"; - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.20" "9.0") (isGe "2.3.0") "2.1.0") + (case (range "8.16" "8.20") (isGe "2.1.0") "2.0.3") + (case (range "8.16" "8.20") (isGe "2.0.0") "2.0.1") + (case (range "8.16" "8.17") (isGe "2.0.0") "2.0.0") + (case (range "8.15" "8.18") (range "1.15.0" "1.18.0") "1.1.3") + (case (range "8.13" "8.17") (range "1.13.0" "1.18.0") "1.1.1") + (case (range "8.10" "8.15") (range "1.12.0" "1.18.0") "1.1.0") + (case (isGe "8.10") (range "1.11.0" "1.12.0") "1.0.5") + (case (isGe "8.7") "1.11.0" "1.0.4") + (case (isGe "8.7") "1.10.0" "1.0.3") + ] + null; release."2.1.0".sha256 = "sha256-UoDxy2BKraDyRsO42GXRo26O74OF51biZQGkIMWLf8Y="; release."2.0.3".sha256 = "sha256-5lDq7IWlEW0EkNzYPu+dA6KOvRgy53W/alikpDr/Kd0="; diff --git a/pkgs/development/coq-modules/coquelicot/default.nix b/pkgs/development/coq-modules/coquelicot/default.nix index 274f41d111ad..b9f3ff50a27c 100644 --- a/pkgs/development/coq-modules/coquelicot/default.nix +++ b/pkgs/development/coq-modules/coquelicot/default.nix @@ -14,18 +14,19 @@ mkCoqDerivation { domain = "gitlab.inria.fr"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "3.4.3" = range "8.12" "9.0"; - "3.4.2" = range "8.12" "8.20"; - "3.4.0" = range "8.12" "8.18"; - "3.3.0" = range "8.12" "8.17"; - "3.2.0" = range "8.8" "8.16"; - "3.1.0" = range "8.8" "8.13"; - "3.0.2" = range "8.5" "8.9"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.12" "9.0") "3.4.3") + (case (range "8.12" "8.20") "3.4.2") + (case (range "8.12" "8.18") "3.4.0") + (case (range "8.12" "8.17") "3.3.0") + (case (range "8.8" "8.16") "3.2.0") + (case (range "8.8" "8.13") "3.1.0") + (case (range "8.5" "8.9") "3.0.2") + ] null; release."3.4.3".sha256 = "sha256-bzzAIENU2OYTtmdBU9Xw8zyBvz9vqTiqjWSm7RnXXRA="; release."3.4.2".sha256 = "sha256-aBTF8ZKu67Rb3ryCqFyejUXf/65KgG8i5je/ZMFSrj4="; release."3.4.1".sha256 = "sha256-REhvIBl3EaL8CQqI34Gn7Xjf9NhPI3nrUAO26pSLbm0="; diff --git a/pkgs/development/coq-modules/deriving/default.nix b/pkgs/development/coq-modules/deriving/default.nix index 0dffe5e50e41..f2b61dccf5ba 100644 --- a/pkgs/development/coq-modules/deriving/default.nix +++ b/pkgs/development/coq-modules/deriving/default.nix @@ -13,21 +13,25 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version ssreflect.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.2.2" = cmc (range "8.17" "9.0") (range "2.0.0" "2.4.0"); - "0.2.1" = cmc (range "8.17" "9.0") (range "2.0.0" "2.3.0"); - "0.2.0" = cmc (range "8.17" "8.20") (range "2.0.0" "2.2.0"); - "0.1.1" = cmc (range "8.11" "8.20") (isLe "2.0.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version ssreflect.version ] + [ + (case (range "8.17" "9.0") (range "2.0.0" "2.4.0") "0.2.2") + (case (range "8.17" "9.0") (range "2.0.0" "2.3.0") "0.2.1") + (case (range "8.17" "8.20") (range "2.0.0" "2.2.0") "0.2.0") + (case (range "8.11" "8.20") (isLe "2.0.0") "0.1.1") + ] + null; releaseRev = v: "v${v}"; diff --git a/pkgs/development/coq-modules/dpdgraph/default.nix b/pkgs/development/coq-modules/dpdgraph/default.nix index d48290887f22..936e2f892f58 100644 --- a/pkgs/development/coq-modules/dpdgraph/default.nix +++ b/pkgs/development/coq-modules/dpdgraph/default.nix @@ -15,24 +15,26 @@ mkCoqDerivation { owner = "Karmaki"; repo = "coq-dpdgraph"; inherit version; - defaultVersion = lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.0+8.20" = "8.20"; - "1.0+8.19" = "8.19"; - "1.0+8.18" = "8.18"; - "1.0+8.17" = "8.17"; - "1.0+8.16" = "8.16"; - "1.0+8.15" = "8.15"; - "1.0+8.14" = "8.14"; - "1.0+8.13" = "8.13"; - "0.6.8" = "8.12"; - "0.6.7" = "8.11"; - "0.6.6" = "8.10"; - "0.6.5" = "8.9"; - "0.6.3" = "8.8"; - "0.6.2" = "8.7"; - } - )) null; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch coq.coq-version [ + (case "8.20" "1.0+8.20") + (case "8.19" "1.0+8.19") + (case "8.18" "1.0+8.18") + (case "8.17" "1.0+8.17") + (case "8.16" "1.0+8.16") + (case "8.15" "1.0+8.15") + (case "8.14" "1.0+8.14") + (case "8.13" "1.0+8.13") + (case "8.12" "0.6.8") + (case "8.11" "0.6.7") + (case "8.10" "0.6.6") + (case "8.9" "0.6.5") + (case "8.8" "0.6.3") + (case "8.7" "0.6.2") + ] null; release."1.0+8.20".sha256 = "sha256-szfH/OksCH3SCbcFjwEvLwHE5avmHp1vYiJM6KAXFqs="; release."1.0+8.19".sha256 = "sha256-L1vjEydYiwDFTXES3sgfdaO/D50AbTJKBXUKUCgbpto="; diff --git a/pkgs/development/coq-modules/equations/default.nix b/pkgs/development/coq-modules/equations/default.nix index 0ab9f55039ed..9c415098e663 100644 --- a/pkgs/development/coq-modules/equations/default.nix +++ b/pkgs/development/coq-modules/equations/default.nix @@ -12,26 +12,28 @@ repo = "Coq-Equations"; opam-name = "rocq-equations"; inherit version; - defaultVersion = lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.3.1+9.0" = "9.0"; - "1.3.1+8.20" = "8.20"; - "1.3+8.19" = "8.19"; - "1.3+8.18" = "8.18"; - "1.3+8.17" = "8.17"; - "1.3+8.16" = "8.16"; - "1.3+8.15" = "8.15"; - "1.3+8.14" = "8.14"; - "1.3+8.13" = "8.13"; - "1.2.4+coq8.12" = "8.12"; - "1.2.4+coq8.11" = "8.11"; - "1.2.1+coq8.10-2" = "8.10"; - "1.2.1+coq8.9" = "8.9"; - "1.2+coq8.8" = "8.8"; - "1.0+coq8.7" = "8.7"; - "1.0+coq8.6" = "8.6"; - } - )) null; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch coq.coq-version [ + (case "9.0" "1.3.1+9.0") + (case "8.20" "1.3.1+8.20") + (case "8.19" "1.3+8.19") + (case "8.18" "1.3+8.18") + (case "8.17" "1.3+8.17") + (case "8.16" "1.3+8.16") + (case "8.15" "1.3+8.15") + (case "8.14" "1.3+8.14") + (case "8.13" "1.3+8.13") + (case "8.12" "1.2.4+coq8.12") + (case "8.11" "1.2.4+coq8.11") + (case "8.10" "1.2.1+coq8.10-2") + (case "8.9" "1.2.1+coq8.9") + (case "8.8" "1.2+coq8.8") + (case "8.7" "1.0+coq8.7") + (case "8.6" "1.0+coq8.6") + ] null; release."1.0+coq8.6".version = "1.0"; release."1.0+coq8.6".rev = "v1.0"; diff --git a/pkgs/development/coq-modules/extructures/default.nix b/pkgs/development/coq-modules/extructures/default.nix index 0635ea5f05e2..bab84dfc86b1 100644 --- a/pkgs/development/coq-modules/extructures/default.nix +++ b/pkgs/development/coq-modules/extructures/default.nix @@ -13,22 +13,26 @@ inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-boot.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.5.0" = cmc (range "8.17" "9.0") (range "2.0.0" "2.4.0"); - "0.4.0" = cmc (range "8.17" "8.20") (range "2.0.0" "2.3.0"); - "0.3.1" = cmc (range "8.11" "8.20") (range "1.12.0" "1.19.0"); - "0.3.0" = cmc (range "8.11" "8.14") (isLe "1.12.0"); - "0.2.2" = cmc (range "8.10" "8.12") (isLe "1.12.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-boot.version ] + [ + (case (range "8.17" "9.0") (range "2.0.0" "2.4.0") "0.5.0") + (case (range "8.17" "8.20") (range "2.0.0" "2.3.0") "0.4.0") + (case (range "8.11" "8.20") (range "1.12.0" "1.19.0") "0.3.1") + (case (range "8.11" "8.14") (isLe "1.12.0") "0.3.0") + (case (range "8.10" "8.12") (isLe "1.12.0") "0.2.2") + ] + null; releaseRev = v: "v${v}"; diff --git a/pkgs/development/coq-modules/flocq/default.nix b/pkgs/development/coq-modules/flocq/default.nix index 9f83232d6504..1d7871089fa9 100644 --- a/pkgs/development/coq-modules/flocq/default.nix +++ b/pkgs/development/coq-modules/flocq/default.nix @@ -14,18 +14,19 @@ mkCoqDerivation { domain = "gitlab.inria.fr"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "4.2.1" = range "8.15" "9.0"; - "4.2.0" = range "8.14" "8.20"; - "4.1.3" = range "8.14" "8.18"; - "4.1.1" = range "8.14" "8.17"; - "4.1.0" = range "8.14" "8.16"; - "3.4.3" = range "8.7" "8.15"; - "2.6.1" = range "8.5" "8.8"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.15" "9.0") "4.2.1") + (case (range "8.14" "8.20") "4.2.0") + (case (range "8.14" "8.18") "4.1.3") + (case (range "8.14" "8.17") "4.1.1") + (case (range "8.14" "8.16") "4.1.0") + (case (range "8.7" "8.15") "3.4.3") + (case (range "8.5" "8.8") "2.6.1") + ] null; release."4.2.1".sha256 = "sha256-W5hcAm0GGmNsvre79/iGNcoBwFzStC4G177hZ3ds/4E="; release."4.2.0".sha256 = "sha256-uTeo4GCs6wTLN3sLKsj0xLlt1fUDYfozXtq6iooLUgM="; release."4.1.4".sha256 = "sha256-Use6Mlx79yef1CkCPyGoOItsD69B9KR+mQArCtmre4s="; diff --git a/pkgs/development/coq-modules/fourcolor/default.nix b/pkgs/development/coq-modules/fourcolor/default.nix index 10f11f7f236b..f55e55ffd5b3 100644 --- a/pkgs/development/coq-modules/fourcolor/default.nix +++ b/pkgs/development/coq-modules/fourcolor/default.nix @@ -22,22 +22,26 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.4.1" = cmc (isGe "8.16") (isGe "2.0"); - "1.3.0" = cmc (isGe "8.16") "2.0.0"; - "1.2.5" = cmc (isGe "8.11") (range "1.12" "1.19"); - "1.2.4" = cmc (isGe "8.11") (range "1.11" "1.14"); - "1.2.3" = cmc (isLe "8.13") (lib.pred.inter (isGe "1.11.0") (isLt "1.13")); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (isGe "8.16") (isGe "2.0") "1.4.1") + (case (isGe "8.16") "2.0.0" "1.3.0") + (case (isGe "8.11") (range "1.12" "1.19") "1.2.5") + (case (isGe "8.11") (range "1.11" "1.14") "1.2.4") + (case (isLe "8.13") (lib.pred.inter (isGe "1.11.0") (isLt "1.13")) "1.2.3") + ] + null; propagatedBuildInputs = [ mathcomp.boot diff --git a/pkgs/development/coq-modules/gaia/default.nix b/pkgs/development/coq-modules/gaia/default.nix index 3157176a6e4b..bc69b24b09cb 100644 --- a/pkgs/development/coq-modules/gaia/default.nix +++ b/pkgs/development/coq-modules/gaia/default.nix @@ -22,21 +22,25 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2.3" = cmc (range "8.16" "9.0") (range "2.0" "2.4"); - "2.2" = cmc (range "8.16" "9.0") (range "2.0" "2.3"); - "1.17" = cmc (range "8.10" "8.18") (range "1.12.0" "1.18.0"); - "1.11" = cmc (range "8.10" "8.12") "1.11.0"; - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.16" "9.0") (range "2.0" "2.4") "2.3") + (case (range "8.16" "9.0") (range "2.0" "2.3") "2.2") + (case (range "8.10" "8.18") (range "1.12.0" "1.18.0") "1.17") + (case (range "8.10" "8.12") "1.11.0" "1.11") + ] + null; propagatedBuildInputs = [ mathcomp.boot diff --git a/pkgs/development/coq-modules/graph-theory/default.nix b/pkgs/development/coq-modules/graph-theory/default.nix index ab4eb73fc7e9..57b89553b553 100644 --- a/pkgs/development/coq-modules/graph-theory/default.nix +++ b/pkgs/development/coq-modules/graph-theory/default.nix @@ -24,23 +24,27 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.9.6" = cmc (range "8.18" "9.0") (range "2.0.0" "2.4.0"); - "0.9.4" = cmc (range "8.16" "8.19") (range "2.0.0" "2.3.0"); - "0.9.3" = cmc (range "8.16" "8.18") (range "2.0.0" "2.1.0"); - "0.9.2" = cmc (range "8.14" "8.18") (range "1.13.0" "1.18.0"); - "0.9.1" = cmc (range "8.14" "8.16") (range "1.13.0" "1.14.0"); - "0.9" = cmc (range "8.12" "8.13") (range "1.12.0" "1.14.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.18" "9.0") (range "2.0.0" "2.4.0") "0.9.6") + (case (range "8.16" "8.19") (range "2.0.0" "2.3.0") "0.9.4") + (case (range "8.16" "8.18") (range "2.0.0" "2.1.0") "0.9.3") + (case (range "8.14" "8.18") (range "1.13.0" "1.18.0") "0.9.2") + (case (range "8.14" "8.16") (range "1.13.0" "1.14.0") "0.9.1") + (case (range "8.12" "8.13") (range "1.12.0" "1.14.0") "0.9") + ] + null; propagatedBuildInputs = [ mathcomp.algebra diff --git a/pkgs/development/coq-modules/hierarchy-builder/default.nix b/pkgs/development/coq-modules/hierarchy-builder/default.nix index fc57e1b44834..cf37bf147d4c 100644 --- a/pkgs/development/coq-modules/hierarchy-builder/default.nix +++ b/pkgs/development/coq-modules/hierarchy-builder/default.nix @@ -14,20 +14,21 @@ let owner = "math-comp"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.9.1" = range "8.20" "9.0"; - "1.8.0" = range "8.19" "8.20"; - "1.7.1" = range "8.18" "8.20"; - "1.6.0" = range "8.16" "8.18"; - "1.5.0" = range "8.15" "8.18"; - "1.4.0" = range "8.15" "8.17"; - "1.2.0" = range "8.13" "8.14"; - "1.1.0" = range "8.12" "8.13"; - "0.10.0" = isEq "8.11"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.20" "9.0") "1.9.1") + (case (range "8.19" "8.20") "1.8.0") + (case (range "8.18" "8.20") "1.7.1") + (case (range "8.16" "8.18") "1.6.0") + (case (range "8.15" "8.18") "1.5.0") + (case (range "8.15" "8.17") "1.4.0") + (case (range "8.13" "8.14") "1.2.0") + (case (range "8.12" "8.13") "1.1.0") + (case (isEq "8.11") "0.10.0") + ] null; release."1.9.1".sha256 = "sha256-AiS0ezMyfIYlXnuNsVLz1GlKQZzJX+ilkrKkbo0GrF0="; release."1.8.1".sha256 = "sha256-Z0WAHDyycqgL+Le/zNfEAoLWzFb7WIL+3G3vEBExlb4="; release."1.8.0".sha256 = "sha256-4s/4ZZKj5tiTtSHGIM8Op/Pak4Vp52WVOpd4l9m19fY="; diff --git a/pkgs/development/coq-modules/http/default.nix b/pkgs/development/coq-modules/http/default.nix index 926f2b743712..9d35d8c6ca84 100644 --- a/pkgs/development/coq-modules/http/default.nix +++ b/pkgs/development/coq-modules/http/default.nix @@ -15,13 +15,12 @@ mkCoqDerivation { defaultVersion = let - inherit (lib.versions) isLe range; + case = case: out: { inherit case out; }; + inherit (lib.versions) range; in - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "0.2.1" = range "8.14" "8.19"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.14" "8.19") "0.2.1") + ] null; release = { "0.2.1".sha256 = "sha256-CIcaXEojNdajXNoMBjGlQRc1sOJSKgUlditNxbNSPgk="; }; diff --git a/pkgs/development/coq-modules/hydra-battles/default.nix b/pkgs/development/coq-modules/hydra-battles/default.nix index 648a6d3229fc..985cfd2853bf 100644 --- a/pkgs/development/coq-modules/hydra-battles/default.nix +++ b/pkgs/development/coq-modules/hydra-battles/default.nix @@ -19,13 +19,14 @@ inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "0.9" = range "8.13" "8.16"; - "0.4" = range "8.11" "8.12"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.13" "8.16") "0.9") + (case (range "8.11" "8.12") "0.4") + ] null; useDune = true; diff --git a/pkgs/development/coq-modules/interval/default.nix b/pkgs/development/coq-modules/interval/default.nix index eff13fb6b1f5..d46d4cf043c1 100644 --- a/pkgs/development/coq-modules/interval/default.nix +++ b/pkgs/development/coq-modules/interval/default.nix @@ -18,21 +18,22 @@ mkCoqDerivation rec { domain = "gitlab.inria.fr"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "4.11.2" = range "8.13" "9.0"; - "4.11.1" = range "8.13" "8.20"; - "4.10.0" = range "8.12" "8.19"; - "4.9.0" = range "8.12" "8.18"; - "4.8.0" = range "8.12" "8.17"; - "4.6.0" = range "8.12" "8.16"; - "4.5.2" = range "8.8" "8.16"; - "4.0.0" = range "8.8" "8.12"; - "3.4.2" = range "8.7" "8.11"; - "3.3.0" = range "8.5" "8.6"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.13" "9.0") "4.11.2") + (case (range "8.13" "8.20") "4.11.1") + (case (range "8.12" "8.19") "4.10.0") + (case (range "8.12" "8.18") "4.9.0") + (case (range "8.12" "8.17") "4.8.0") + (case (range "8.12" "8.16") "4.6.0") + (case (range "8.8" "8.16") "4.5.2") + (case (range "8.8" "8.12") "4.0.0") + (case (range "8.7" "8.11") "3.4.2") + (case (range "8.5" "8.6") "3.3.0") + ] null; release."4.11.2".sha256 = "sha256-ouhjHtlxcqt06+Pt+UZAzwp83bVYPh3N+8jnsVvapSU="; release."4.11.1".sha256 = "sha256-QWZvU468rOhK796xCCEawW6rhCRTPnE0iLll9ynKflo="; release."4.11.0".sha256 = "sha256-vPwa4zSjyvxHLGDoNaBnHV2pb77dnQFbC50BL80fcvE="; diff --git a/pkgs/development/coq-modules/iris/default.nix b/pkgs/development/coq-modules/iris/default.nix index 7bfdd94d3c27..b58ea00f12da 100644 --- a/pkgs/development/coq-modules/iris/default.nix +++ b/pkgs/development/coq-modules/iris/default.nix @@ -12,18 +12,19 @@ mkCoqDerivation { owner = "iris"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "4.3.0" = range "8.19" "9.0"; - "4.2.0" = range "8.18" "8.19"; - "4.1.0" = range "8.16" "8.18"; - "4.0.0" = range "8.13" "8.17"; - "3.5.0" = range "8.12" "8.14"; - "3.4.0" = range "8.11" "8.13"; - "3.3.0" = range "8.9" "8.10"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.19" "9.0") "4.3.0") + (case (range "8.18" "8.19") "4.2.0") + (case (range "8.16" "8.18") "4.1.0") + (case (range "8.13" "8.17") "4.0.0") + (case (range "8.12" "8.14") "3.5.0") + (case (range "8.11" "8.13") "3.4.0") + (case (range "8.9" "8.10") "3.3.0") + ] null; release."4.3.0".sha256 = "sha256-3qhjiFI+A3I3fD8rFfJL5Hek77wScfn/FNNbDyGqA1k="; release."4.2.0".sha256 = "sha256-HuiHIe+5letgr1NN1biZZFq0qlWUbFmoVI7Q91+UIfM="; release."4.1.0".sha256 = "sha256-nTZUeZOXiH7HsfGbMKDE7vGrNVCkbMaWxdMWUcTUNlo="; diff --git a/pkgs/development/coq-modules/itauto/default.nix b/pkgs/development/coq-modules/itauto/default.nix index e7183563d8d4..690298742b9a 100644 --- a/pkgs/development/coq-modules/itauto/default.nix +++ b/pkgs/development/coq-modules/itauto/default.nix @@ -22,19 +22,20 @@ release."8.13+no".sha256 = "sha256-gXoxtLcHPoyjJkt7WqvzfCMCQlh6kL2KtCGe3N6RC/A="; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "8.20.0" = isEq "8.20"; - "8.19.0" = isEq "8.19"; - "8.18.0" = isEq "8.18"; - "8.17.0" = isEq "8.17"; - "8.16.0" = isEq "8.16"; - "8.15.0" = isEq "8.15"; - "8.14.0" = isEq "8.14"; - "8.13+no" = isEq "8.13"; - } - )) null; + lib.switch coq.coq-version [ + (case (isEq "8.20") "8.20.0") + (case (isEq "8.19") "8.19.0") + (case (isEq "8.18") "8.18.0") + (case (isEq "8.17") "8.17.0") + (case (isEq "8.16") "8.16.0") + (case (isEq "8.15") "8.15.0") + (case (isEq "8.14") "8.14.0") + (case (isEq "8.13") "8.13+no") + ] null; mlPlugin = true; nativeBuildInputs = (with coq.ocamlPackages; [ ocamlbuild ]); diff --git a/pkgs/development/coq-modules/itree-io/default.nix b/pkgs/development/coq-modules/itree-io/default.nix index c3df0dbf49a1..1b5624cf5bc9 100644 --- a/pkgs/development/coq-modules/itree-io/default.nix +++ b/pkgs/development/coq-modules/itree-io/default.nix @@ -15,13 +15,12 @@ mkCoqDerivation { defaultVersion = let - inherit (lib.versions) isLe range; + case = case: out: { inherit case out; }; + inherit (lib.versions) range; in - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "0.1.1" = range "8.12" "8.19"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.12" "8.19") "0.1.1") + ] null; release = { "0.1.1".sha256 = "sha256-IFwIj8dxW4jm2gvuUJ8LKZFSJeljp0bsn8fezxY6t2o="; }; diff --git a/pkgs/development/coq-modules/jasmin/default.nix b/pkgs/development/coq-modules/jasmin/default.nix index c53ab153f3e9..c58cba094a18 100644 --- a/pkgs/development/coq-modules/jasmin/default.nix +++ b/pkgs/development/coq-modules/jasmin/default.nix @@ -14,19 +14,23 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2025.02.0" = cmc (range "8.19" "9.0") (range "2.2" "2.4"); - "2024.07.2" = cmc (isEq "8.18") (isEq "2.2"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.19" "9.0") (range "2.2" "2.4") "2025.02.0") + (case (isEq "8.18") (isEq "2.2") "2024.07.2") + ] + null; releaseRev = v: "v${v}"; release."2025.02.0".sha256 = "sha256-Jlf0+VPuYWXdWyKHKHSp7h/HuCCp4VkcrgDAmh7pi5s="; diff --git a/pkgs/development/coq-modules/json/default.nix b/pkgs/development/coq-modules/json/default.nix index b48b8de4ec89..06f18199fcf1 100644 --- a/pkgs/development/coq-modules/json/default.nix +++ b/pkgs/development/coq-modules/json/default.nix @@ -15,14 +15,13 @@ defaultVersion = let - inherit (lib.versions) isLe range; + case = case: out: { inherit case out; }; + inherit (lib.versions) range; in - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "0.2.0" = range "8.14" "9.0"; - "0.1.3" = range "8.14" "8.20"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.14" "9.0") "0.2.0") + (case (range "8.14" "8.20") "0.1.3") + ] null; release = { "0.2.0".sha256 = "sha256-qDRTgWLUvu4x3/d3BDcqo2I4W5ZmLyRiwuY/Tm/FuKA="; "0.1.3".sha256 = "sha256-lElAzW4IuX+BB6ngDjlyKn0MytLRfbhQanB+Lct/WR0="; diff --git a/pkgs/development/coq-modules/mathcomp-abel/default.nix b/pkgs/development/coq-modules/mathcomp-abel/default.nix index 925cbbdc62a7..9fb880f99c8f 100644 --- a/pkgs/development/coq-modules/mathcomp-abel/default.nix +++ b/pkgs/development/coq-modules/mathcomp-abel/default.nix @@ -18,20 +18,24 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.2.1" = cmc (range "8.10" "8.16") (range "1.12.0" "1.15.0"); - "1.2.0" = cmc (range "8.10" "8.15") (range "1.12.0" "1.14.0"); - "1.1.2" = cmc (range "8.10" "8.14") (range "1.11.0" "1.12.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.10" "8.16") (range "1.12.0" "1.15.0") "1.2.1") + (case (range "8.10" "8.15") (range "1.12.0" "1.14.0") "1.2.0") + (case (range "8.10" "8.14") (range "1.11.0" "1.12.0") "1.1.2") + ] + null; release."1.2.1".sha256 = "sha256-M1q6WIPBsayHde2hwlTxylH169hcTs3OuFsEkM0e3yc="; release."1.2.0".sha256 = "1picd4m85ipj22j3b84cv8ab3330radzrhd6kp0gpxq14dhv02c2"; diff --git a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix index fc4cca84b4d0..8f1b2ab26d48 100644 --- a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix +++ b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix @@ -19,22 +19,26 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-algebra.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.2.5" = cmc (range "8.20" "9.0") (isGe "2.4"); - "1.2.4" = cmc (range "8.16" "9.0") (isGe "2.0"); - "1.2.2" = cmc (range "8.16" "8.18") (isGe "2.0"); - "1.1.1" = cmc (range "8.16" "8.19") (isGe "1.15"); - "1.0.0" = cmc (range "8.13" "8.16") (isGe "1.12"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-algebra.version ] + [ + (case (range "8.20" "9.0") (isGe "2.4") "1.2.5") + (case (range "8.16" "9.0") (isGe "2.0") "1.2.4") + (case (range "8.16" "8.18") (isGe "2.0") "1.2.2") + (case (range "8.16" "8.19") (isGe "1.15") "1.1.1") + (case (range "8.13" "8.16") (isGe "1.12") "1.0.0") + ] + null; release."1.0.0".sha256 = "sha256-kszARPBizWbxSQ/Iqpf2vLbxYc6AjpUCLnSNlPcNfls="; release."1.1.1".sha256 = "sha256-5wItMeeTRoJlRBH3zBNc2VUZn6pkDde60YAvXTx+J3U="; diff --git a/pkgs/development/coq-modules/mathcomp-analysis/default.nix b/pkgs/development/coq-modules/mathcomp-analysis/default.nix index b24c6fa18849..f87d9ed34893 100644 --- a/pkgs/development/coq-modules/mathcomp-analysis/default.nix +++ b/pkgs/development/coq-modules/mathcomp-analysis/default.nix @@ -44,32 +44,36 @@ let release."0.2.3".sha256 = "0p9mr8g1qma6h10qf7014dv98ln90dfkwn76ynagpww7qap8s966"; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.11.0" = cmc (range "8.20" "9.0") (range "2.1.0" "2.4.0"); - "1.9.0" = cmc (range "8.19" "8.20") (range "2.1.0" "2.3.0"); - "1.1.0" = cmc (range "8.17" "8.20") (range "2.0.0" "2.2.0"); - "0.7.0" = cmc (range "8.17" "8.19") (range "1.17.0" "1.19.0"); - "0.6.7" = cmc (range "8.17" "8.18") (range "1.15.0" "1.18.0"); - "0.6.6" = cmc (range "8.17" "8.18") (range "1.15.0" "1.18.0"); - "0.6.5" = cmc (range "8.14" "8.18") (range "1.15.0" "1.17.0"); - "0.6.1" = cmc (range "8.14" "8.18") (range "1.13.0" "1.16.0"); - "0.5.2" = cmc (range "8.14" "8.18") (range "1.13" "1.15"); - "0.5.1" = cmc (range "8.13" "8.15") (range "1.13" "1.14"); - "0.3.13" = cmc (range "8.13" "8.15") (range "1.12" "1.14"); - "0.3.10" = cmc (range "8.11" "8.14") (range "1.12" "1.13"); - "0.3.3" = cmc (range "8.10" "8.12") "1.11.0"; - "0.3.1" = cmc (range "8.10" "8.11") "1.11.0"; - "0.2.3" = cmc (range "8.8" "8.11") (range "1.8" "1.10"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.20" "9.0") (range "2.1.0" "2.4.0") "1.11.0") + (case (range "8.19" "8.20") (range "2.1.0" "2.3.0") "1.9.0") + (case (range "8.17" "8.20") (range "2.0.0" "2.2.0") "1.1.0") + (case (range "8.17" "8.19") (range "1.17.0" "1.19.0") "0.7.0") + (case (range "8.17" "8.18") (range "1.15.0" "1.18.0") "0.6.7") + (case (range "8.17" "8.18") (range "1.15.0" "1.18.0") "0.6.6") + (case (range "8.14" "8.18") (range "1.15.0" "1.17.0") "0.6.5") + (case (range "8.14" "8.18") (range "1.13.0" "1.16.0") "0.6.1") + (case (range "8.14" "8.18") (range "1.13" "1.15") "0.5.2") + (case (range "8.13" "8.15") (range "1.13" "1.14") "0.5.1") + (case (range "8.13" "8.15") (range "1.12" "1.14") "0.3.13") + (case (range "8.11" "8.14") (range "1.12" "1.13") "0.3.10") + (case (range "8.10" "8.12") "1.11.0" "0.3.3") + (case (range "8.10" "8.11") "1.11.0" "0.3.1") + (case (range "8.8" "8.11") (range "1.8" "1.10") "0.2.3") + ] + null; # list of analysis packages sorted by dependency order packages = { diff --git a/pkgs/development/coq-modules/mathcomp-apery/default.nix b/pkgs/development/coq-modules/mathcomp-apery/default.nix index 697d0e970e6a..45501f1969a0 100644 --- a/pkgs/development/coq-modules/mathcomp-apery/default.nix +++ b/pkgs/development/coq-modules/mathcomp-apery/default.nix @@ -17,18 +17,22 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.0.2" = cmc (range "8.13" "8.16") (range "1.12.0" "1.17.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.13" "8.16") (range "1.12.0" "1.17.0") "1.0.2") + ] + null; release."1.0.2".sha256 = "sha256-llxyMKYvWUA7fyroG1S/jtpioAoArmarR1edi3cikcY="; diff --git a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix index 357fd97d93cf..8e50d9a4ea86 100644 --- a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix +++ b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix @@ -22,13 +22,14 @@ mkCoqDerivation { }; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.0.2" = range "8.10" "9.0"; - "1.0.0" = range "8.5" "8.14"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.10" "9.0") "1.0.2") + (case (range "8.5" "8.14") "1.0.0") + ] null; propagatedBuildInputs = [ mathcomp-boot ]; diff --git a/pkgs/development/coq-modules/mathcomp-finmap/default.nix b/pkgs/development/coq-modules/mathcomp-finmap/default.nix index 97dd95556200..82c1bf7ac48f 100644 --- a/pkgs/development/coq-modules/mathcomp-finmap/default.nix +++ b/pkgs/development/coq-modules/mathcomp-finmap/default.nix @@ -16,28 +16,32 @@ mkCoqDerivation { owner = "math-comp"; inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-boot.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2.2.0" = cmc (range "8.20" "9.0") (range "2.3" "2.4"); - "2.1.0" = cmc (range "8.16" "9.0") (range "2.0" "2.3"); - "2.0.0" = cmc (range "8.16" "8.18") (range "2.0" "2.1"); - "1.5.2" = cmc (range "8.13" "8.20") (range "1.12" "1.19"); - "1.5.1" = cmc (isGe "8.10") (range "1.11" "1.17"); - "1.5.0" = cmc (range "8.7" "8.11") "1.11.0"; - "1.4.0+coq-8.11" = cmc (isEq "8.11") (range "1.8" "1.10"); - "1.4.0" = cmc (range "8.7" "8.11.0") (range "1.8" "1.10"); - "1.3.4" = cmc (range "8.7" "8.11.0") (range "1.8" "1.10"); - "1.1.0" = cmc (range "8.7" "8.9") "1.7.0"; - "1.0.0" = cmc (range "8.6" "8.7") (range "1.6.1" "1.7"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-boot.version ] + [ + (case (range "8.20" "9.0") (range "2.3" "2.4") "2.2.0") + (case (range "8.16" "9.0") (range "2.0" "2.3") "2.1.0") + (case (range "8.16" "8.18") (range "2.0" "2.1") "2.0.0") + (case (range "8.13" "8.20") (range "1.12" "1.19") "1.5.2") + (case (isGe "8.10") (range "1.11" "1.17") "1.5.1") + (case (range "8.7" "8.11") "1.11.0" "1.5.0") + (case (isEq "8.11") (range "1.8" "1.10") "1.4.0+coq-8.11") + (case (range "8.7" "8.11.0") (range "1.8" "1.10") "1.4.0") + (case (range "8.7" "8.11.0") (range "1.8" "1.10") "1.3.4") + (case (range "8.7" "8.9") "1.7.0" "1.1.0") + (case (range "8.6" "8.7") (range "1.6.1" "1.7") "1.0.0") + ] + null; release = { "2.2.0".sha256 = "sha256-oDQEZOutrJxmN8FvzovUIhqw0mwc8Ej7thrieJrW8BY="; "2.1.0".sha256 = "sha256-gh0cnhdVDyo+D5zdtxLc10kGKQLQ3ITzHnMC45mCtpY="; diff --git a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix index 25d3827a89e3..6a29a390174a 100644 --- a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix +++ b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix @@ -19,27 +19,31 @@ inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-analysis.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.9.3" = cmc (range "8.20" "8.20") (isGe "1.10"); - "0.9.1" = cmc (range "8.19" "8.20") (isGe "1.9"); - "0.7.7" = cmc (range "8.19" "8.20") (isGe "1.7"); - "0.7.5" = cmc (range "8.19" "8.20") (isGe "1.7"); - "0.7.3" = cmc (range "8.18" "8.20") (isGe "1.5"); - "0.7.2" = cmc (range "8.18" "8.19") (isGe "1.2"); - "0.7.1" = cmc (range "8.17" "8.19") (isGe "1.0"); - "0.6.1" = cmc (isGe "8.17") (range "0.6.6" "0.7.0"); - "0.5.2" = cmc (range "8.17" "8.18") (range "0.6.0" "0.6.7"); - "0.5.1" = cmc (range "8.15" "8.16") (range "0.5.4" "0.6.5"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-analysis.version ] + [ + (case (range "8.20" "8.20") (isGe "1.10") "0.9.3") + (case (range "8.19" "8.20") (isGe "1.9") "0.9.1") + (case (range "8.19" "8.20") (isGe "1.7") "0.7.7") + (case (range "8.19" "8.20") (isGe "1.7") "0.7.5") + (case (range "8.18" "8.20") (isGe "1.5") "0.7.3") + (case (range "8.18" "8.19") (isGe "1.2") "0.7.2") + (case (range "8.17" "8.19") (isGe "1.0") "0.7.1") + (case (isGe "8.17") (range "0.6.6" "0.7.0") "0.6.1") + (case (range "8.17" "8.18") (range "0.6.0" "0.6.7") "0.5.2") + (case (range "8.15" "8.16") (range "0.5.4" "0.6.5") "0.5.1") + ] + null; release."0.9.3".sha256 = "sha256-8+cnVKNAvZ3MVV3BpS8UmCIxJphsQRBv3swek1eEBjE="; release."0.9.1".sha256 = "sha256-WI20HxMHr1ZUwOGPIUl+nRI8TxVUa2+F1xcGjRDHO9g="; release."0.7.7".sha256 = "sha256-kEbpMl7U+I2kvqi1VrjhIVFkZFO6h0tTHEUZRbHYG7E="; diff --git a/pkgs/development/coq-modules/mathcomp-tarjan/default.nix b/pkgs/development/coq-modules/mathcomp-tarjan/default.nix index a8d233af7d3b..383da1bd8231 100644 --- a/pkgs/development/coq-modules/mathcomp-tarjan/default.nix +++ b/pkgs/development/coq-modules/mathcomp-tarjan/default.nix @@ -18,21 +18,25 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-ssreflect.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.0.3" = cmc (range "8.16" "9.0") (range "2.0.0" "2.4.0"); - "1.0.2" = cmc (range "8.16" "9.0") (range "2.0.0" "2.3.0"); - "1.0.1" = cmc (range "8.12" "8.18") (range "1.12.0" "1.17.0"); - "1.0.0" = cmc (range "8.10" "8.16") (range "1.12.0" "1.17.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-ssreflect.version ] + [ + (case (range "8.16" "9.0") (range "2.0.0" "2.4.0") "1.0.3") + (case (range "8.16" "9.0") (range "2.0.0" "2.3.0") "1.0.2") + (case (range "8.12" "8.18") (range "1.12.0" "1.17.0") "1.0.1") + (case (range "8.10" "8.16") (range "1.12.0" "1.17.0") "1.0.0") + ] + null; release."1.0.3".sha256 = "sha256-5lpOCDyH6NFzGLvnXHHAnR7Qv5oXsUyC8TLBFrIiBag="; release."1.0.2".sha256 = "sha256-U20xgA+e9KTRdvILD1cxN6ia+dlA8uBTIbc4QlKz9ss="; release."1.0.1".sha256 = "sha256-utNjFCAqC5xOuhdyKhfMZkRYJD0xv9Gt6U3ZdQ56mek="; diff --git a/pkgs/development/coq-modules/mathcomp-word/default.nix b/pkgs/development/coq-modules/mathcomp-word/default.nix index c43d7a34f2f6..555b572c467b 100644 --- a/pkgs/development/coq-modules/mathcomp-word/default.nix +++ b/pkgs/development/coq-modules/mathcomp-word/default.nix @@ -56,19 +56,23 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "3.2" = cmc (range "8.16" "9.0") (isGe "2.0"); - "2.4" = cmc (range "8.12" "8.20") (range "1.12" "1.19"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.16" "9.0") (isGe "2.0") "3.2") + (case (range "8.12" "8.20") (range "1.12" "1.19") "2.4") + ] + null; propagatedBuildInputs = [ mathcomp.algebra diff --git a/pkgs/development/coq-modules/mathcomp-zify/default.nix b/pkgs/development/coq-modules/mathcomp-zify/default.nix index 2c91a5056496..8e4dd232dcff 100644 --- a/pkgs/development/coq-modules/mathcomp-zify/default.nix +++ b/pkgs/development/coq-modules/mathcomp-zify/default.nix @@ -20,20 +20,24 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-algebra.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.5.0+2.0+8.16" = cmc (range "8.16" "9.0") (isGe "2.0.0"); - "1.3.0+1.12+8.13" = cmc (range "8.13" "8.20") (range "1.12" "1.19.0"); - "1.1.0+1.12+8.13" = cmc (range "8.13" "8.16") (range "1.12" "1.17.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-algebra.version ] + [ + (case (range "8.16" "9.0") (isGe "2.0.0") "1.5.0+2.0+8.16") + (case (range "8.13" "8.20") (range "1.12" "1.19.0") "1.3.0+1.12+8.13") + (case (range "8.13" "8.16") (range "1.12" "1.17.0") "1.1.0+1.12+8.13") + ] + null; release."1.0.0+1.12+8.13".sha256 = "1j533vx6lacr89bj1bf15l1a0s7rvrx4l00wyjv99aczkfbz6h6k"; release."1.1.0+1.12+8.13".sha256 = "1plf4v6q5j7wvmd5gsqlpiy0vwlw6hy5daq2x42gqny23w9mi2pr"; diff --git a/pkgs/development/coq-modules/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix index 0311a33a406c..f988a6284376 100644 --- a/pkgs/development/coq-modules/mathcomp/default.nix +++ b/pkgs/development/coq-modules/mathcomp/default.nix @@ -31,31 +31,30 @@ let withDoc = single && (args.withDoc or false); defaultVersion = let - inherit (lib.versions) isLe range; + case = case: out: { inherit case out; }; + inherit (lib.versions) range; in - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.4.0" = range "8.20" "9.0"; - "2.3.0" = range "8.19" "9.0"; - "2.2.0" = range "8.17" "8.20"; - "2.1.0" = range "8.17" "8.18"; - "2.0.0" = range "8.17" "8.18"; - "1.19.0" = range "8.19" "8.20"; - "1.18.0" = range "8.17" "8.18"; - "1.17.0" = range "8.15" "8.18"; - "1.16.0" = range "8.13" "8.18"; - "1.15.0" = range "8.14" "8.16"; - "1.14.0" = range "8.11" "8.15"; - "1.13.0" = range "8.11" "8.15"; - "1.12.0" = range "8.10" "8.13"; - "1.11.0" = range "8.7" "8.12"; - "1.10.0" = range "8.7" "8.11"; - "1.9.0" = range "8.7" "8.11"; - "1.8.0" = range "8.7" "8.9"; - "1.7.0" = range "8.6" "8.9"; - "1.6.4" = range "8.5" "8.7"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.20" "9.0") "2.4.0") + (case (range "8.19" "9.0") "2.3.0") + (case (range "8.17" "8.20") "2.2.0") + (case (range "8.17" "8.18") "2.1.0") + (case (range "8.17" "8.18") "2.0.0") + (case (range "8.19" "8.20") "1.19.0") + (case (range "8.17" "8.18") "1.18.0") + (case (range "8.15" "8.18") "1.17.0") + (case (range "8.13" "8.18") "1.16.0") + (case (range "8.14" "8.16") "1.15.0") + (case (range "8.11" "8.15") "1.14.0") + (case (range "8.11" "8.15") "1.13.0") + (case (range "8.10" "8.13") "1.12.0") + (case (range "8.7" "8.12") "1.11.0") + (case (range "8.7" "8.11") "1.10.0") + (case (range "8.7" "8.11") "1.9.0") + (case (range "8.7" "8.9") "1.8.0") + (case (range "8.6" "8.9") "1.7.0") + (case (range "8.5" "8.7") "1.6.4") + ] null; release = { "2.4.0".sha256 = "sha256-A1XgLLwZRvKS8QyceCkSQa7ue6TYyf5fMft5gSx9NOs="; "2.3.0".sha256 = "sha256-wa6OBig8rhAT4iwupSylyCAMhO69rADa0MQIX5zzL+Q="; diff --git a/pkgs/development/coq-modules/metacoq/default.nix b/pkgs/development/coq-modules/metacoq/default.nix index 2856547930ad..bb78843c736f 100644 --- a/pkgs/development/coq-modules/metacoq/default.nix +++ b/pkgs/development/coq-modules/metacoq/default.nix @@ -10,22 +10,24 @@ let repo = "metacoq"; owner = "MetaCoq"; - defaultVersion = lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.0-beta2-8.11" = "8.11"; - "1.0-beta2-8.12" = "8.12"; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch coq.coq-version [ + (case "8.11" "1.0-beta2-8.11") + (case "8.12" "1.0-beta2-8.12") # Do not provide 8.13 because it does not compile with equations 1.3 provided by default (only 1.2.3) - # "1.0-beta2-8.13" = "8.13"; - "1.1-8.14" = "8.14"; - "1.1-8.15" = "8.15"; - "1.1-8.16" = "8.16"; - "1.3.1-8.17" = "8.17"; - "1.3.1-8.18" = "8.18"; - "1.3.3-8.19" = "8.19"; - "1.3.4-8.20" = "8.20"; - "1.3.4-9.0" = "9.0"; - } - )) null; + # (case "8.13" "1.0-beta2-8.13") + (case "8.14" "1.1-8.14") + (case "8.15" "1.1-8.15") + (case "8.16" "1.1-8.16") + (case "8.17" "1.3.1-8.17") + (case "8.18" "1.3.1-8.18") + (case "8.19" "1.3.3-8.19") + (case "8.20" "1.3.4-8.20") + (case "9.0" "1.3.4-9.0") + ] null; release = { "1.0-beta2-8.11".sha256 = "sha256-I9YNk5Di6Udvq5/xpLSNflfjRyRH8fMnRzbo3uhpXNs="; "1.0-beta2-8.12".sha256 = "sha256-I8gpmU9rUQJh0qfp5KOgDNscVvCybm5zX4TINxO1TVA="; diff --git a/pkgs/development/coq-modules/metarocq/default.nix b/pkgs/development/coq-modules/metarocq/default.nix index a90df150f409..aa7b39918427 100644 --- a/pkgs/development/coq-modules/metarocq/default.nix +++ b/pkgs/development/coq-modules/metarocq/default.nix @@ -10,11 +10,13 @@ let repo = "metarocq"; owner = "MetaRocq"; - defaultVersion = lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.4-9.0" = "9.0"; - } - )) null; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch coq.coq-version [ + (case ("9.0") "1.4-9.0") + ] null; release = { "1.4-9.0".sha256 = "sha256-5QecDAMkvgfDPZ7/jDfnOgcE+Eb1LTAozP7nz6nkuxg="; }; diff --git a/pkgs/development/coq-modules/multinomials/default.nix b/pkgs/development/coq-modules/multinomials/default.nix index 6cb2adc7aba6..8b2f7608afc8 100644 --- a/pkgs/development/coq-modules/multinomials/default.nix +++ b/pkgs/development/coq-modules/multinomials/default.nix @@ -20,30 +20,34 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2.4.0" = cmc (range "8.18" "9.0") (range "2.1.0" "2.4.0"); - "2.3.0" = cmc (range "8.17" "9.0") (range "2.1.0" "2.3.0"); - "2.2.0" = cmc (range "8.17" "8.20") (isGe "2.1.0"); - "2.1.0" = cmc (range "8.16" "8.18") "2.1.0"; - "2.0.0" = cmc (range "8.16" "8.18") "2.0.0"; - "1.6.0" = cmc (isGe "8.15") (range "1.15.0" "1.19.0"); - "1.5.6" = cmc (isGe "8.10") (range "1.13.0" "1.17.0"); - "1.5.5" = cmc (range "8.10" "8.16") (range "1.12.0" "1.15.0"); - "1.5.3" = cmc (range "8.10" "8.12") "1.12.0"; - "1.5.2" = cmc (range "8.7" "8.12") "1.11.0"; - "1.5.0" = cmc (range "8.7" "8.11") (range "1.8" "1.10"); - "1.4" = cmc (range "8.7" "8.10") (range "1.8" "1.10"); - "1.1" = cmc "8.6" (range "1.6" "1.7"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.18" "9.0") (range "2.1.0" "2.4.0") "2.4.0") + (case (range "8.17" "9.0") (range "2.1.0" "2.3.0") "2.3.0") + (case (range "8.17" "8.20") (isGe "2.1.0") "2.2.0") + (case (range "8.16" "8.18") "2.1.0" "2.1.0") + (case (range "8.16" "8.18") "2.0.0" "2.0.0") + (case (isGe "8.15") (range "1.15.0" "1.19.0") "1.6.0") + (case (isGe "8.10") (range "1.13.0" "1.17.0") "1.5.6") + (case (range "8.10" "8.16") (range "1.12.0" "1.15.0") "1.5.5") + (case (range "8.10" "8.12") "1.12.0" "1.5.3") + (case (range "8.7" "8.12") "1.11.0" "1.5.2") + (case (range "8.7" "8.11") (range "1.8" "1.10") "1.5.0") + (case (range "8.7" "8.10") (range "1.8" "1.10") "1.4") + (case "8.6" (range "1.6" "1.7") "1.1") + ] + null; release = { "2.4.0".sha256 = "sha256-7zfIddRH+Sl4nhEPtS/lMZwRUZI45AVFpcC/UC8Z0Yo="; "2.3.0".sha256 = "sha256-usIcxHOAuN+f/j3WjVbPrjz8Hl9ac8R6kYeAKi3CEts="; diff --git a/pkgs/development/coq-modules/odd-order/default.nix b/pkgs/development/coq-modules/odd-order/default.nix index 9c0b721141fc..81a59e31e291 100644 --- a/pkgs/development/coq-modules/odd-order/default.nix +++ b/pkgs/development/coq-modules/odd-order/default.nix @@ -18,16 +18,17 @@ mkCoqDerivation { inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch mathcomp.character.version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.2.0" = (range "2.2.0" "2.4.0"); - "2.1.0" = (range "2.1.0" "2.3.0"); - "1.14.0" = (range "1.13.0" "1.15.0"); - "1.13.0" = (range "1.12.0" "1.14.0"); - "1.12.0" = (range "1.10.0" "1.12.0"); - } - )) null; + lib.switch mathcomp.character.version [ + (case ((range "2.2.0" "2.4.0")) "2.2.0") + (case ((range "2.1.0" "2.3.0")) "2.1.0") + (case ((range "1.13.0" "1.15.0")) "1.14.0") + (case ((range "1.12.0" "1.14.0")) "1.13.0") + (case ((range "1.10.0" "1.12.0")) "1.12.0") + ] null; propagatedBuildInputs = [ mathcomp.character diff --git a/pkgs/development/coq-modules/reglang/default.nix b/pkgs/development/coq-modules/reglang/default.nix index d3d1bfc15ff9..819adb3fdd88 100644 --- a/pkgs/development/coq-modules/reglang/default.nix +++ b/pkgs/development/coq-modules/reglang/default.nix @@ -20,21 +20,25 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.2.2" = cmc (range "8.16" "9.0") (range "2.0.0" "2.4.0"); - "1.2.1" = cmc (range "8.16" "9.0") (range "2.0.0" "2.3.0"); - "1.2.0" = cmc (range "8.16" "8.18") (range "2.0.0" "2.1.0"); - "1.1.3" = cmc (range "8.10" "8.20") (isLt "2.0.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.16" "9.0") (range "2.0.0" "2.4.0") "1.2.2") + (case (range "8.16" "9.0") (range "2.0.0" "2.3.0") "1.2.1") + (case (range "8.16" "8.18") (range "2.0.0" "2.1.0") "1.2.0") + (case (range "8.10" "8.20") (isLt "2.0.0") "1.1.3") + ] + null; propagatedBuildInputs = [ mathcomp.ssreflect diff --git a/pkgs/development/coq-modules/relation-algebra/default.nix b/pkgs/development/coq-modules/relation-algebra/default.nix index d512613fad9b..4f0302a72915 100644 --- a/pkgs/development/coq-modules/relation-algebra/default.nix +++ b/pkgs/development/coq-modules/relation-algebra/default.nix @@ -27,22 +27,23 @@ mkCoqDerivation { inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.7.11" = isEq "8.20"; - "1.7.10" = range "8.18" "8.19"; - "1.7.9" = isEq "8.17"; - "1.7.8" = isEq "8.16"; - "1.7.7" = isEq "8.15"; - "1.7.6" = isEq "8.14"; - "1.7.5" = isEq "8.13"; - "1.7.4" = isEq "8.12"; - "1.7.3" = isEq "8.11"; - "1.7.2" = isEq "8.10"; - "1.7.1" = isEq "8.9"; - } - )) null; + lib.switch coq.coq-version [ + (case (isEq "8.20") "1.7.11") + (case (range "8.18" "8.19") "1.7.10") + (case (isEq "8.17") "1.7.9") + (case (isEq "8.16") "1.7.8") + (case (isEq "8.15") "1.7.7") + (case (isEq "8.14") "1.7.6") + (case (isEq "8.13") "1.7.5") + (case (isEq "8.12") "1.7.4") + (case (isEq "8.11") "1.7.3") + (case (isEq "8.10") "1.7.2") + (case (isEq "8.9") "1.7.1") + ] null; mlPlugin = true; diff --git a/pkgs/development/coq-modules/simple-io/default.nix b/pkgs/development/coq-modules/simple-io/default.nix index d2a3ae0a26df..cc8c427619fb 100644 --- a/pkgs/development/coq-modules/simple-io/default.nix +++ b/pkgs/development/coq-modules/simple-io/default.nix @@ -13,14 +13,15 @@ repo = "coq-simple-io"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.10.0" = range "8.17" "9.0"; - "1.8.0" = range "8.11" "8.19"; - "1.3.0" = range "8.7" "8.13"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.17" "9.0") "1.10.0") + (case (range "8.11" "8.19") "1.8.0") + (case (range "8.7" "8.13") "1.3.0") + ] null; release."1.10.0".sha256 = "sha256-67cBhLvRMWLWBL7NXK1zZTQC4PtSKu9qtesU4SqKkOw="; release."1.8.0".sha256 = "sha256-3ADNeXrBIpYRlfUW+LkLHUWV1w1HFrVc/TZISMuwvRY="; release."1.7.0".sha256 = "sha256:1a1q9x2abx71hqvjdai3n12jxzd49mhf3nqqh3ya2ssl2lj609ci"; diff --git a/pkgs/development/coq-modules/ssprove/default.nix b/pkgs/development/coq-modules/ssprove/default.nix index b91ef56a36b7..2d11562ba084 100644 --- a/pkgs/development/coq-modules/ssprove/default.nix +++ b/pkgs/development/coq-modules/ssprove/default.nix @@ -18,28 +18,32 @@ inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + case = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-boot.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.2.4" = cmc (range "8.18" "9.0") (range "2.3.0" "2.4.0"); - "0.2.3" = cmc (range "8.18" "8.20") (range "2.3.0" "2.3.0"); - "0.2.2" = cmc (range "8.18" "8.20") (range "2.1.0" "2.2.0"); + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-boot.version ] + [ + (case (range "8.18" "9.0") (range "2.3.0" "2.4.0") "0.2.4") + (case (range "8.18" "8.20") (range "2.3.0" "2.3.0") "0.2.3") + (case (range "8.18" "8.20") (range "2.1.0" "2.2.0") "0.2.2") # This is the original dependency: - # "0.1.0" = ["8.17" "1.18.0"]; + # (case "8.17" "1.18.0" "0.1.0") # But it is not loadable. The math-comp nixpkgs configuration # will always only output version 1.18.0 for Coq 8.17. # Hence, the Coq 8.17 and math-comp 1.17.0 must be explicitly set # to load it. # (This version is not on the math-comp CI and hence not checked.) - "0.1.0" = cmc "8.17" "1.17.0"; - } - )) null; + (case "8.17" "1.17.0" "0.1.0") + ] + null; releaseRev = v: "v${v}"; diff --git a/pkgs/development/coq-modules/stalmarck/default.nix b/pkgs/development/coq-modules/stalmarck/default.nix index 2da766715881..e493321d8a0a 100644 --- a/pkgs/development/coq-modules/stalmarck/default.nix +++ b/pkgs/development/coq-modules/stalmarck/default.nix @@ -9,12 +9,13 @@ let repo = "stalmarck"; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "8.20.0" = isEq "8.20"; - } - )) null; + lib.switch coq.coq-version [ + (case (isEq "8.20") "8.20.0") + ] null; release = { "8.20.0".sha256 = "sha256-jITxQT1jLyZvWCGPnmK8i3IrwsZwMPOV0aBe9r22TIQ="; }; diff --git a/pkgs/development/coq-modules/stdlib/default.nix b/pkgs/development/coq-modules/stdlib/default.nix index 90933aa24d75..474fd188afdf 100644 --- a/pkgs/development/coq-modules/stdlib/default.nix +++ b/pkgs/development/coq-modules/stdlib/default.nix @@ -14,13 +14,14 @@ inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "9.0.0" = isLe "9.0"; - # the < 9.0 above is artificial as stdlib was included in Coq before - } - )) null; + lib.switch coq.coq-version [ + (case (isLe "9.0") "9.0.0") + # the < 9.0 above is artificial as stdlib was included in Coq before + ] null; releaseRev = v: "V${v}"; release."9.0.0".sha256 = "sha256-2l7ak5Q/NbiNvUzIVXOniEneDXouBMNSSVFbD1Pf8cQ="; diff --git a/pkgs/development/coq-modules/stdpp/default.nix b/pkgs/development/coq-modules/stdpp/default.nix index 41eaacb7fde9..3f64dc57f47c 100644 --- a/pkgs/development/coq-modules/stdpp/default.nix +++ b/pkgs/development/coq-modules/stdpp/default.nix @@ -12,18 +12,19 @@ mkCoqDerivation { domain = "gitlab.mpi-sws.org"; owner = "iris"; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.11.0" = range "8.19" "9.0"; - "1.10.0" = range "8.18" "8.19"; - "1.9.0" = range "8.16" "8.18"; - "1.8.0" = range "8.13" "8.17"; - "1.6.0" = range "8.12" "8.14"; - "1.5.0" = range "8.11" "8.13"; - "1.4.0" = range "8.8" "8.10"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.19" "9.0") "1.11.0") + (case (range "8.18" "8.19") "1.10.0") + (case (range "8.16" "8.18") "1.9.0") + (case (range "8.13" "8.17") "1.8.0") + (case (range "8.12" "8.14") "1.6.0") + (case (range "8.11" "8.13") "1.5.0") + (case (range "8.8" "8.10") "1.4.0") + ] null; release."1.11.0".sha256 = "sha256-yqnkaA5gUdZBJZ3JnvPYh11vKQRl0BAnior1yGowG7k="; release."1.10.0".sha256 = "sha256-bfynevIKxAltvt76lsqVxBmifFkzEhyX8lRgTKxr21I="; release."1.9.0".sha256 = "sha256-OXeB+XhdyzWMp5Karsz8obp0rTeMKrtG7fu/tmc9aeI="; diff --git a/pkgs/development/rocq-modules/bignums/default.nix b/pkgs/development/rocq-modules/bignums/default.nix index 3eced2572c69..238e16b3f9ce 100644 --- a/pkgs/development/rocq-modules/bignums/default.nix +++ b/pkgs/development/rocq-modules/bignums/default.nix @@ -11,12 +11,13 @@ mkRocqDerivation { owner = "coq"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch rocq-core.rocq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "9.0.0+rocq${rocq-core.rocq-version}" = range "9.0" "9.0"; - } - )) null; + lib.switch rocq-core.rocq-version [ + (case (range "9.0" "9.0") "9.0.0+rocq${rocq-core.rocq-version}") + ] null; release."9.0.0+rocq9.0".sha256 = "sha256-ctnwpyNVhryEUA5YEsAImrcJsNMhtBgDSOz+z5Z4R78="; releaseRev = v: "${if lib.versions.isGe "9.0" v then "v" else "V"}${v}"; diff --git a/pkgs/development/rocq-modules/hierarchy-builder/default.nix b/pkgs/development/rocq-modules/hierarchy-builder/default.nix index 30be49a216e1..bb9efa9727cc 100644 --- a/pkgs/development/rocq-modules/hierarchy-builder/default.nix +++ b/pkgs/development/rocq-modules/hierarchy-builder/default.nix @@ -12,12 +12,13 @@ let owner = "math-comp"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch rocq-core.rocq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.9.1" = range "9.0" "9.0"; - } - )) null; + lib.switch rocq-core.rocq-version [ + (case (range "9.0" "9.0") "1.9.1") + ] null; release."1.9.1".sha256 = "sha256-AiS0ezMyfIYlXnuNsVLz1GlKQZzJX+ilkrKkbo0GrF0="; releaseRev = v: "v${v}"; diff --git a/pkgs/development/rocq-modules/rocq-elpi/default.nix b/pkgs/development/rocq-modules/rocq-elpi/default.nix index 8d27cf2e0dfc..ea6ce3f6595e 100644 --- a/pkgs/development/rocq-modules/rocq-elpi/default.nix +++ b/pkgs/development/rocq-modules/rocq-elpi/default.nix @@ -12,11 +12,12 @@ let if elpi-version != null then elpi-version else - (lib.switch rocq-core.rocq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.0.7" = "9.0"; - } - )) { }); + let + case = case: out: { inherit case out; }; + in + lib.switch rocq-core.rocq-version [ + (case ("9.0") "2.0.7") + ] { }; elpi = rocq-core.ocamlPackages.elpi.override { version = default-elpi-version; }; propagatedBuildInputs_wo_elpi = [ rocq-core.ocamlPackages.findlib @@ -27,14 +28,13 @@ let repo = "coq-elpi"; owner = "LPCIC"; inherit version; - defaultVersion = lib.switch rocq-core.rocq-version (lib.lists.sort - (x: y: lib.versions.isLe x.out y.out) - ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.5.2" = "9.0"; - } - ) - ) null; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch rocq-core.rocq-version [ + (case ("9.0") "2.5.2") + ] null; release."2.5.2".sha256 = "sha256-lLzjPrbVB3rrqox528YiheUb0u89R84Xmrgkn0oplOs="; releaseRev = v: "v${v}"; diff --git a/pkgs/development/rocq-modules/stdlib/default.nix b/pkgs/development/rocq-modules/stdlib/default.nix index 17fe604d1df4..595080b1f92d 100644 --- a/pkgs/development/rocq-modules/stdlib/default.nix +++ b/pkgs/development/rocq-modules/stdlib/default.nix @@ -13,12 +13,13 @@ mkRocqDerivation { inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch rocq-core.version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "9.0.0" = isEq "9.0"; - } - )) null; + lib.switch rocq-core.version [ + (case (isEq "9.0") "9.0.0") + ] null; releaseRev = v: "V${v}"; release."9.0.0".sha256 = "sha256-2l7ak5Q/NbiNvUzIVXOniEneDXouBMNSSVFbD1Pf8cQ="; From a63477fc0ee93993d00b85869af97209f9d687b6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 26 Apr 2025 22:51:26 +0000 Subject: [PATCH 44/65] python312Packages.wgpu-py: 0.21.1 -> 0.22.1 Requires `pypng` as test dependency now Also update comment related to testing --- .../python-modules/wgpu-py/default.nix | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/wgpu-py/default.nix b/pkgs/development/python-modules/wgpu-py/default.nix index eab8ceb8a1dc..3b6ad952e907 100644 --- a/pkgs/development/python-modules/wgpu-py/default.nix +++ b/pkgs/development/python-modules/wgpu-py/default.nix @@ -27,6 +27,7 @@ imageio, numpy, psutil, + pypng, pytest, ruff, trio, @@ -37,14 +38,14 @@ }: buildPythonPackage rec { pname = "wgpu-py"; - version = "0.21.1"; + version = "0.22.1"; pyproject = true; src = fetchFromGitHub { owner = "pygfx"; repo = "wgpu-py"; tag = "v${version}"; - hash = "sha256-XlV0ovIF3w/u6f65+3c4zAfisCoQDbzMiINJJTR/I6o="; + hash = "sha256-sjpTTOYv5FXMieUJvCQ2nJ1I0zaguyd7//vdLlt8Bmk="; }; # `requests` is only used to fetch a copy of `wgpu-native` via `tools/hatch_build.py`. @@ -96,13 +97,21 @@ buildPythonPackage rec { imageio numpy psutil + pypng pytest ruff trio ]; - # Tests break due to sandboxing on everything except darwin - # Prefer to run them in passthru + # Tests break due in Linux CI due to wgpu being unable to find any adapters. + # Ordinarily, this would be fixed in an approach similar to `pkgs/by-name/wg/wgpu-native/examples.nix`'s + # usage of `runtimeInputs` and `makeWrapperArgs`. + # Unfortunately, as this is a Python module without a `mainProgram`, `makeWrapperArgs` will not apply here, + # as there is no "script" to wrap. + # + # In addition thereto, the structure of the tests in `wgpu-py` is unconventional, spread in separate folders + # all in the repository's root, which causes `pytestCheckHook` to fail for Darwin platforms too. + # As such, we delegate testing to `passthru`. doCheck = false; passthru = { @@ -155,7 +164,7 @@ buildPythonPackage rec { meta = { description = "WebGPU for Python"; homepage = "https://github.com/pygfx/wgpu-py"; - changelog = "https://github.com/pygfx/wgpu-py/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/pygfx/wgpu-py/blob/${src.tag}/CHANGELOG.md"; platforms = lib.platforms.all; license = lib.licenses.bsd2; From 64b8938f0b39acdffb5d5f8c22933e436796efa9 Mon Sep 17 00:00:00 2001 From: Benjamin Sparks Date: Wed, 28 May 2025 16:03:56 +0200 Subject: [PATCH 45/65] python3Packages.wgpu-py: combine passthru tests into one `installCheckPhase` --- .../python-modules/wgpu-py/default.nix | 62 ++++--------------- 1 file changed, 13 insertions(+), 49 deletions(-) diff --git a/pkgs/development/python-modules/wgpu-py/default.nix b/pkgs/development/python-modules/wgpu-py/default.nix index 3b6ad952e907..fe5b84f5539c 100644 --- a/pkgs/development/python-modules/wgpu-py/default.nix +++ b/pkgs/development/python-modules/wgpu-py/default.nix @@ -33,8 +33,8 @@ trio, # passthru - wgpu-py, testers, + wgpu-py, }: buildPythonPackage rec { pname = "wgpu-py"; @@ -103,62 +103,26 @@ buildPythonPackage rec { trio ]; - # Tests break due in Linux CI due to wgpu being unable to find any adapters. + # Tests break in Linux CI due to wgpu being unable to find any adapters. # Ordinarily, this would be fixed in an approach similar to `pkgs/by-name/wg/wgpu-native/examples.nix`'s # usage of `runtimeInputs` and `makeWrapperArgs`. # Unfortunately, as this is a Python module without a `mainProgram`, `makeWrapperArgs` will not apply here, # as there is no "script" to wrap. - # - # In addition thereto, the structure of the tests in `wgpu-py` is unconventional, spread in separate folders - # all in the repository's root, which causes `pytestCheckHook` to fail for Darwin platforms too. - # As such, we delegate testing to `passthru`. - doCheck = false; + doCheck = stdenv.hostPlatform.isDarwin; - passthru = { - tests = - { - version = testers.testVersion { - package = wgpu-py; - command = "python3 -c 'import wgpu; print(wgpu.__version__)'"; - }; - } - // lib.optionalAttrs stdenv.buildPlatform.isDarwin { - tests = testers.runCommand { - name = "tests"; - script = '' - WGPU_LIB_PATH=${wgpu-native}/lib/libwgpu_native${stdenv.hostPlatform.extensions.library} \ - pytest -v ${wgpu-py.src}/tests - ''; - nativeBuildInputs = [ wgpu-py ] ++ nativeCheckInputs; - }; + installCheckPhase = '' + runHook preInstallCheck - examples = testers.runCommand { - name = "examples"; - script = '' - WGPU_LIB_PATH=${wgpu-native}/lib/libwgpu_native${stdenv.hostPlatform.extensions.library} \ - pytest -v ${wgpu-py.src}/examples - ''; - nativeBuildInputs = [ wgpu-py ] ++ nativeCheckInputs; - }; + for suite in tests examples codegen tests_mem; do + pytest -v $suite + done - codegen = testers.runCommand { - name = "codegen"; - script = '' - WGPU_LIB_PATH=${wgpu-native}/lib/libwgpu_native${stdenv.hostPlatform.extensions.library} \ - pytest -v ${wgpu-py.src}/codegen - ''; - nativeBuildInputs = [ wgpu-py ] ++ nativeCheckInputs; - }; + runHook postInstallCheck + ''; - tests_mem = testers.runCommand { - name = "tests_mem"; - script = '' - WGPU_LIB_PATH=${wgpu-native}/lib/libwgpu_native${stdenv.hostPlatform.extensions.library} \ - pytest -v ${wgpu-py.src}/tests_mem - ''; - nativeBuildInputs = [ wgpu-py ] ++ nativeCheckInputs; - }; - }; + passthru.tests.version = testers.testVersion { + package = wgpu-py; + command = "python3 -c 'import wgpu; print(wgpu.__version__)'"; }; meta = { From 1063473001bb85bf3af2fe21f3a76011ea8c558b Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 29 Jun 2025 16:49:02 +0200 Subject: [PATCH 46/65] release.nix: pass lib-tests to tarball It doesn't make sense for release.nix to run these twice; once directly, and once as part of the tarball job. --- pkgs/top-level/release.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 61218537e7e3..21555a3e03d0 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -95,8 +95,15 @@ let "aarch64" ] (arch: elem "${arch}-darwin" supportedSystems); - nonPackageJobs = { - tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease; }; + nonPackageJobs = rec { + tarball = import ./make-tarball.nix { + inherit + pkgs + lib-tests + nixpkgs + officialRelease + ; + }; release-checks = import ./nixpkgs-basic-release-checks.nix { inherit pkgs nixpkgs supportedSystems; From a61841a597730a4ec18be3f87a257a3989e629dd Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 29 Jun 2025 14:41:47 +0200 Subject: [PATCH 47/65] nixVersions.nix_2_3: add knownVulnerabilities --- ci/default.nix | 4 +++- lib/tests/release.nix | 13 ++++++++++--- .../package-management/nix/common-autoconf.nix | 3 ++- pkgs/tools/package-management/nix/default.nix | 9 +++++++++ pkgs/top-level/make-tarball.nix | 8 +++++++- pkgs/top-level/release.nix | 16 +++++++++++++++- 6 files changed, 46 insertions(+), 7 deletions(-) diff --git a/ci/default.nix b/ci/default.nix index 32e067133422..42eeadc67def 100644 --- a/ci/default.nix +++ b/ci/default.nix @@ -18,7 +18,9 @@ let pkgs = import nixpkgs' { inherit system; - config = { }; + config = { + permittedInsecurePackages = [ "nix-2.3.18" ]; + }; overlays = [ ]; }; diff --git a/lib/tests/release.nix b/lib/tests/release.nix index 51260ea0300b..5a1752010745 100644 --- a/lib/tests/release.nix +++ b/lib/tests/release.nix @@ -2,9 +2,16 @@ # The pkgs used for dependencies for the testing itself # Don't test properties of pkgs.lib, but rather the lib in the parent directory system ? builtins.currentSystem, - pkgs ? import ../.. { inherit system; } // { - lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; - }, + pkgs ? + import ../.. { + inherit system; + config = { + permittedInsecurePackages = [ "nix-2.3.18" ]; + }; + } + // { + lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; + }, # For testing someone may edit impure.nix to return cross pkgs, use `pkgsBuildBuild` directly so everything here works. pkgsBB ? pkgs.pkgsBuildBuild, nix ? pkgs-nixVersions.stable, diff --git a/pkgs/tools/package-management/nix/common-autoconf.nix b/pkgs/tools/package-management/nix/common-autoconf.nix index 1d7ed8cba374..4ad05d61d01b 100644 --- a/pkgs/tools/package-management/nix/common-autoconf.nix +++ b/pkgs/tools/package-management/nix/common-autoconf.nix @@ -11,6 +11,7 @@ inherit hash; }, patches ? [ ], + knownVulnerabilities ? [ ], maintainers ? [ lib.maintainers.lovesegfault lib.maintainers.artturin @@ -335,7 +336,7 @@ let ''; homepage = "https://nixos.org/"; license = licenses.lgpl21Plus; - inherit maintainers teams; + inherit knownVulnerabilities maintainers teams; platforms = platforms.unix; outputsToInstall = [ "out" ] ++ optional enableDocumentation "man"; mainProgram = "nix"; diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 974532d99be4..10f93abf8f51 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -159,6 +159,15 @@ lib.makeExtensible ( patch-monitorfdhup ]; self_attribute_name = "nix_2_3"; + knownVulnerabilities = [ + "CVE-2024-38531" + "CVE-2024-47174" + "CVE-2025-46415" + "CVE-2025-46416" + "CVE-2025-52991" + "CVE-2025-52992" + "CVE-2025-52993" + ]; maintainers = with lib.maintainers; [ flokli ]; teams = [ ]; }).overrideAttrs diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix index 1b90e4bfdb66..b1ddef188d93 100644 --- a/pkgs/top-level/make-tarball.nix +++ b/pkgs/top-level/make-tarball.nix @@ -3,7 +3,13 @@ officialRelease, pkgs ? import nixpkgs.outPath { }, nix ? pkgs.nix, - lib-tests ? import ../../lib/tests/release.nix { inherit pkgs; }, + lib-tests ? import ../../lib/tests/release.nix { + pkgs = import nixpkgs.outPath { + config = { + permittedInsecurePackages = [ "nix-2.3.18" ]; + }; + }; + }, }: pkgs.releaseTools.sourceTarball { diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 21555a3e03d0..49ee9782ad53 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -86,6 +86,7 @@ let id isDerivation optionals + recursiveUpdate ; inherit (release-lib.lib.attrsets) unionOfDisjoint; @@ -111,7 +112,20 @@ let manual = pkgs.nixpkgs-manual.override { inherit nixpkgs; }; metrics = import ./metrics.nix { inherit pkgs nixpkgs; }; - lib-tests = import ../../lib/tests/release.nix { inherit pkgs; }; + lib-tests = import ../../lib/tests/release.nix { + pkgs = import nixpkgs ( + recursiveUpdate + (recursiveUpdate { + inherit system; + config.allowUnsupportedSystem = true; + } nixpkgsArgs) + { + config.permittedInsecurePackages = nixpkgsArgs.config.permittedInsecurePackages or [ ] ++ [ + "nix-2.3.18" + ]; + } + ); + }; pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; }; darwin-tested = From 34927b9ea34c33864aef03c0e38352cb3aa76da1 Mon Sep 17 00:00:00 2001 From: Niklas Korz Date: Sun, 22 Jun 2025 15:39:24 +0200 Subject: [PATCH 48/65] tooling-language-server: rename to deputy, 0.5.0 -> 0.6.0 Changelog: https://github.com/filiptibell/deputy/blob/v0.6.0/CHANGELOG.md --- doc/release-notes/rl-2511.section.md | 2 ++ .../deputy}/package.nix | 16 ++++++++-------- pkgs/top-level/aliases.nix | 1 + 3 files changed, 11 insertions(+), 8 deletions(-) rename pkgs/by-name/{to/tooling-language-server => de/deputy}/package.nix (56%) diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index 13a690ad5eb7..bc3a9ec10910 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -24,6 +24,8 @@ - `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67). +- `tooling-language-server` has been renamed to `deputy` (both the package and binary), following the rename of the upstream project. + - `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input. - `telegram-desktop` packages now uses `Telegram` for its binary. The previous name was `telegram-desktop`. This is due to [an upstream decision](https://github.com/telegramdesktop/tdesktop/commit/56ff5808a3d766f892bc3c3305afb106b629ef6f) to make the name consistent with other platforms. diff --git a/pkgs/by-name/to/tooling-language-server/package.nix b/pkgs/by-name/de/deputy/package.nix similarity index 56% rename from pkgs/by-name/to/tooling-language-server/package.nix rename to pkgs/by-name/de/deputy/package.nix index dc7d529230f3..1cb6c3bd092c 100644 --- a/pkgs/by-name/to/tooling-language-server/package.nix +++ b/pkgs/by-name/de/deputy/package.nix @@ -7,18 +7,18 @@ }: rustPlatform.buildRustPackage rec { - pname = "tooling-language-server"; - version = "0.5.0"; + pname = "deputy"; + version = "0.6.0"; src = fetchFromGitHub { owner = "filiptibell"; - repo = "tooling-language-server"; + repo = "deputy"; tag = "v${version}"; - hash = "sha256-0FF9p3Z8C3C/fcTvu66ozCs/G3UAJ/Kf2v+4IZU4eCA="; + hash = "sha256-dTCikfHqfSVb1F6LYrLqFAEufD6dPgAi6F65yPlCO18="; }; useFetchCargoVendor = true; - cargoHash = "sha256-DxQMAnlE8oWtigU1gUEdTdBIvEtbL8xhaPLx6kt8T2c="; + cargoHash = "sha256-nGheg/HnkYsvfrsd/dPNbFQEHXFtjB5so436nrbKRqo="; nativeInstallCheckInputs = [ versionCheckHook ]; versionCheckProgramArg = "--version"; @@ -28,10 +28,10 @@ rustPlatform.buildRustPackage rec { meta = { description = "Language server for tools and package managers"; - homepage = "https://github.com/filiptibell/tooling-language-server"; - changelog = "https://github.com/filiptibell/tooling-language-server/blob/${src.tag}/CHANGELOG.md"; + homepage = "https://github.com/filiptibell/deputy"; + changelog = "https://github.com/filiptibell/deputy/blob/${src.tag}/CHANGELOG.md"; license = lib.licenses.mpl20; maintainers = with lib.maintainers; [ niklaskorz ]; - mainProgram = "tooling-language-server"; + mainProgram = "deputy"; }; } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d10327ff4865..33caa9292687 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1968,6 +1968,7 @@ mapAliases { tokyo-night-gtk = tokyonight-gtk-theme; # Added 2024-01-28 tomcat_connectors = apacheHttpdPackages.mod_jk; # Added 2024-06-07 ton = throw "'ton' has been removed as there were insufficient maintainer resources to keep up with updates"; # Added 2025-04-27 + tooling-language-server = deputy; # Added 2025-06-22 tor-browser-bundle-bin = tor-browser; # Added 2023-09-23 torrenttools = throw "torrenttools has been removed due to lack of maintanance upstream"; # Added 2025-04-06 torq = throw "torq has been removed because the project went closed source"; # Added 2024-11-24 From dcacba484d1e5b36a9166329258a860a2c62b24e Mon Sep 17 00:00:00 2001 From: Niklas Korz Date: Sun, 22 Jun 2025 15:57:57 +0200 Subject: [PATCH 49/65] deputy: use finalAttrs --- pkgs/by-name/de/deputy/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/de/deputy/package.nix b/pkgs/by-name/de/deputy/package.nix index 1cb6c3bd092c..c9ceffdff9b5 100644 --- a/pkgs/by-name/de/deputy/package.nix +++ b/pkgs/by-name/de/deputy/package.nix @@ -6,14 +6,14 @@ nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "deputy"; version = "0.6.0"; src = fetchFromGitHub { owner = "filiptibell"; repo = "deputy"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-dTCikfHqfSVb1F6LYrLqFAEufD6dPgAi6F65yPlCO18="; }; @@ -29,9 +29,9 @@ rustPlatform.buildRustPackage rec { meta = { description = "Language server for tools and package managers"; homepage = "https://github.com/filiptibell/deputy"; - changelog = "https://github.com/filiptibell/deputy/blob/${src.tag}/CHANGELOG.md"; + changelog = "https://github.com/filiptibell/deputy/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mpl20; maintainers = with lib.maintainers; [ niklaskorz ]; mainProgram = "deputy"; }; -} +}) From cbec98198257fa7dd6e4f34725ffbef18a8967fe Mon Sep 17 00:00:00 2001 From: Benjamin Sparks Date: Wed, 28 May 2025 14:20:48 +0000 Subject: [PATCH 50/65] python3Packages.wgpu-py: 0.22.1 -> 0.22.2 --- .../python-modules/wgpu-py/default.nix | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/pkgs/development/python-modules/wgpu-py/default.nix b/pkgs/development/python-modules/wgpu-py/default.nix index fe5b84f5539c..e951f5a30933 100644 --- a/pkgs/development/python-modules/wgpu-py/default.nix +++ b/pkgs/development/python-modules/wgpu-py/default.nix @@ -38,25 +38,37 @@ }: buildPythonPackage rec { pname = "wgpu-py"; - version = "0.22.1"; + version = "0.22.2"; pyproject = true; src = fetchFromGitHub { owner = "pygfx"; repo = "wgpu-py"; tag = "v${version}"; - hash = "sha256-sjpTTOYv5FXMieUJvCQ2nJ1I0zaguyd7//vdLlt8Bmk="; + hash = "sha256-HGpOEsTj4t57z38qKF6i1oUj7R7aFl8Xgk5y0TtgyMg="; }; - # `requests` is only used to fetch a copy of `wgpu-native` via `tools/hatch_build.py`. - # As we retrieve `wgpu-native` from nixpkgs instead, none of this is needed, and - # remove an extra dependency. - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail 'requires = ["requests", "hatchling"]' 'requires = ["hatchling"]' \ - --replace-fail '[tool.hatch.build.targets.wheel.hooks.custom]' "" \ - --replace-fail 'path = "tools/hatch_build.py"' "" - ''; + postPatch = + # `requests` is only used to fetch a copy of `wgpu-native` via `tools/hatch_build.py`. + # As we retrieve `wgpu-native` from nixpkgs instead, none of this is needed, and + # remove an extra dependency. + '' + substituteInPlace pyproject.toml \ + --replace-fail 'requires = ["requests", "hatchling"]' 'requires = ["hatchling"]' \ + --replace-fail '[tool.hatch.build.targets.wheel.hooks.custom]' "" \ + --replace-fail 'path = "tools/hatch_build.py"' "" + '' + # Skip the compute_textures / astronauts example during testing, as it uses `imageio` to + # retrieve an image of an astronaut, which touches the network. + + '' + substituteInPlace examples/compute_textures.py \ + --replace-fail 'import wgpu' 'import wgpu # run_example = false' + '' + # Tweak tests that fail due to a dependency of `wgpu-native`, `naga`, adding an `ir` module + + '' + substituteInPlace tests/test_wgpu_native_errors.py \ + --replace-fail 'naga::' 'naga::ir::' + ''; # wgpu-py expects to have an appropriately named wgpu-native library in wgpu/resources preBuild = '' @@ -114,7 +126,7 @@ buildPythonPackage rec { runHook preInstallCheck for suite in tests examples codegen tests_mem; do - pytest -v $suite + pytest -vvv $suite done runHook postInstallCheck From 806e0c719dc816abd138029390f29f5376d4dd9c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 30 Jun 2025 09:12:20 +0000 Subject: [PATCH 51/65] parallel-disk-usage: 0.11.1 -> 0.12.0 --- pkgs/by-name/pa/parallel-disk-usage/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pa/parallel-disk-usage/package.nix b/pkgs/by-name/pa/parallel-disk-usage/package.nix index 6075ee223d04..cca97919e092 100644 --- a/pkgs/by-name/pa/parallel-disk-usage/package.nix +++ b/pkgs/by-name/pa/parallel-disk-usage/package.nix @@ -5,17 +5,17 @@ }: rustPlatform.buildRustPackage rec { pname = "parallel-disk-usage"; - version = "0.11.1"; + version = "0.12.0"; src = fetchFromGitHub { owner = "KSXGitHub"; repo = "parallel-disk-usage"; rev = version; - hash = "sha256-yjNz51L/r1jqgeO0qhe8uR4Pn52acle+EmurZqVpWfI="; + hash = "sha256-Wj19lWepCrZe36njX+NMdpwXeRRh3ml9jKbbi7irrpg="; }; useFetchCargoVendor = true; - cargoHash = "sha256-v+cJ1Hw4cae/8A1MpHbIfGRVamI58byqfBLNCKKAHWk="; + cargoHash = "sha256-UK+jonM/ZBGoCKFcQlCo5OqYtKeU0VIWtx83oBh3lJQ="; meta = with lib; { description = "Highly parallelized, blazing fast directory tree analyzer"; From 56b9f694dd4162fdd557125f87b1af3730bbabac Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Mon, 30 Jun 2025 11:30:50 +0200 Subject: [PATCH 52/65] python313Packages.basswood-av: use cython_3_1 --- .../python-modules/basswood-av/default.nix | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/pkgs/development/python-modules/basswood-av/default.nix b/pkgs/development/python-modules/basswood-av/default.nix index 2216ffce3500..38b9997efb63 100644 --- a/pkgs/development/python-modules/basswood-av/default.nix +++ b/pkgs/development/python-modules/basswood-av/default.nix @@ -4,19 +4,10 @@ fetchFromGitHub, setuptools, pkg-config, - cython, + cython_3_1, ffmpeg, }: -let - cython' = cython.overrideAttrs (oldAttrs: rec { - version = "3.1.0"; - src = oldAttrs.src.override { - tag = version; - hash = "sha256-3/C0+ygGgNvw75ZN02Q70TLFa1U4jVgWQDG5FGWErTg="; - }; - }); -in buildPythonPackage rec { pname = "basswood-av"; version = "15.2.1"; @@ -31,7 +22,7 @@ buildPythonPackage rec { build-system = [ setuptools - cython' + cython_3_1 ]; nativeBuildInputs = [ pkg-config ]; From c8dd817b958789540bec06033a519eee00e87438 Mon Sep 17 00:00:00 2001 From: Yureka Date: Mon, 30 Jun 2025 01:47:20 +0200 Subject: [PATCH 53/65] electron-source.electron_37: init at 37.1.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.0.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.1.0 --- pkgs/development/tools/electron/info.json | 1333 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 5 + 2 files changed, 1338 insertions(+) diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json index 66a1203fa894..1794fffdcd85 100644 --- a/pkgs/development/tools/electron/info.json +++ b/pkgs/development/tools/electron/info.json @@ -3909,5 +3909,1338 @@ "modules": "135", "node": "22.16.0", "version": "36.6.0" + }, + "37": { + "chrome": "138.0.7204.35", + "chromium": { + "deps": { + "gn": { + "hash": "sha256-UB9a7Fr1W0yYld6WbXyRR8dFqWsj/zx4KumDZ5JQKSM=", + "rev": "ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b", + "url": "https://gn.googlesource.com/gn", + "version": "2025-05-21" + } + }, + "version": "138.0.7204.35" + }, + "chromium_npm_hash": "sha256-8d5VTHutv51libabhxv7SqPRcHfhVmGDSOvTSv013rE=", + "deps": { + "src": { + "args": { + "hash": "sha256-0C2lONJHtUyEAQ8PNSk5Z4zCZa5XFI2LH4Ew9PgWfuU=", + "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", + "tag": "138.0.7204.35", + "url": "https://chromium.googlesource.com/chromium/src.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/chrome/test/data/perf/canvas_bench": { + "args": { + "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", + "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", + "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/chrome/test/data/perf/frame_rate/content": { + "args": { + "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", + "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", + "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/chrome/test/data/xr/webvr_info": { + "args": { + "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", + "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", + "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/docs/website": { + "args": { + "hash": "sha256-X9GIZkPokZ8ojNVDScDQL8D0tJGsaQMg8ncenuBzFHk=", + "rev": "d21d90790d8ea421b317c4cb52a0d94133422796", + "url": "https://chromium.googlesource.com/website.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/electron": { + "args": { + "hash": "sha256-c/Gm/qLWy96407+XVXF+4z99jNUQwkWSwlHxnvfCbK0=", + "owner": "electron", + "repo": "electron", + "tag": "v37.1.0" + }, + "fetcher": "fetchFromGitHub" + }, + "src/media/cdm/api": { + "args": { + "hash": "sha256-3JBBcBg2ep/7LnvMHBWnqAFG+etETArFXZr4Klv30T4=", + "rev": "852a81f0ae3ab350041d2e44d207a42fb0436ae1", + "url": "https://chromium.googlesource.com/chromium/cdm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/net/third_party/quiche/src": { + "args": { + "hash": "sha256-UYyBMjv6ATIwBXYngGof85pBCHXb/jYXetVo0oBrHf8=", + "rev": "3b42119c3e4be5d4720c3c1b384106fa43e9b5e3", + "url": "https://quiche.googlesource.com/quiche.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/testing/libfuzzer/fuzzers/wasm_corpus": { + "args": { + "hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY=", + "rev": "1df5e50a45db9518a56ebb42cb020a94a090258b", + "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/accessibility_test_framework/src": { + "args": { + "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", + "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", + "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/angle": { + "args": { + "hash": "sha256-jGnuunyWvu43LLpejJTcoSlhCukhv8pX2OAQ7n1adcU=", + "rev": "d1fb74c940fef262809f4a513039b70e94c91440", + "url": "https://chromium.googlesource.com/angle/angle.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/angle/third_party/VK-GL-CTS/src": { + "args": { + "hash": "sha256-EFhi4dELfyq6FcB+YFlzKfoXz44i5ieFK1KUlFzqE1I=", + "rev": "c9d2e24d1a6da00165a0b5908ea4ba05c2e5f0b2", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/angle/third_party/glmark2/src": { + "args": { + "hash": "sha256-VebUALLFKwEa4+oE+jF8mBSzhJd6aflphPmcK1Em8bw=", + "rev": "6edcf02205fd1e8979dc3f3964257a81959b80c8", + "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/angle/third_party/rapidjson/src": { + "args": { + "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", + "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", + "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/anonymous_tokens/src": { + "args": { + "hash": "sha256-GaRtZmYqajLUpt7ToRfMLBlyMiJB5yT9BaaT9pHH7OM=", + "rev": "d708a2602a5947ee068f784daa1594a673d47c4a", + "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/boringssl/src": { + "args": { + "hash": "sha256-+Gs+efB1ZizjMYRSRTQrMDPZsDC+dgNJ9+yHXkzm/ZM=", + "rev": "9295969e1dad2c31d0d99481734c1c68dcbc6403", + "url": "https://boringssl.googlesource.com/boringssl.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/breakpad/breakpad": { + "args": { + "hash": "sha256-+Z7KphmQYCeN0aJkqyMrJ4tIi3BhqN16KoPNLb/bMGo=", + "rev": "2625edb085169e92cf036c236ac79ab594a7b1cc", + "url": "https://chromium.googlesource.com/breakpad/breakpad.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cast_core/public/src": { + "args": { + "hash": "sha256-yQxm1GMMne80bLl1P7OAN3bJLz1qRNAvou2/5MKp2ig=", + "rev": "f5ee589bdaea60418f670fa176be15ccb9a34942", + "url": "https://chromium.googlesource.com/cast_core/public" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/catapult": { + "args": { + "hash": "sha256-xHe9WoAq1FElMSnu5mlEzrH+EzKiwWXeXMCH69KL5a0=", + "rev": "5477c6dfde1132b685c73edc16e1bc71449a691d", + "url": "https://chromium.googlesource.com/catapult.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ced/src": { + "args": { + "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", + "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", + "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/clang-format/script": { + "args": { + "hash": "sha256-d9uweklBffiuCWEb03ti1eFLnMac2qRtvggzXY1n/RU=", + "rev": "37f6e68a107df43b7d7e044fd36a13cbae3413f2", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cld_3/src": { + "args": { + "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", + "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", + "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/colorama/src": { + "args": { + "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", + "rev": "3de9f013df4b470069d03d250224062e8cf15c49", + "url": "https://chromium.googlesource.com/external/colorama.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/compiler-rt/src": { + "args": { + "hash": "sha256-FVdcKGwRuno3AzS6FUvI8OTj3mBMRfFR2A8GzYcwIU4=", + "rev": "57196dd146582915c955f6d388e31aea93220c51", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/content_analysis_sdk/src": { + "args": { + "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", + "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", + "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cpu_features/src": { + "args": { + "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", + "rev": "936b9ab5515dead115606559502e3864958f7f6e", + "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cpuinfo/src": { + "args": { + "hash": "sha256-uochXC0AtOw8N/ycyVJdiRw4pibCW2ENrFMT3jtxDSg=", + "rev": "39ea79a3c132f4e678695c579ea9353d2bd29968", + "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/crabbyavif/src": { + "args": { + "hash": "sha256-IxtMAqN3O/s1GrVKzcge9cQ+DVtJtFvHYvsfjmflwVQ=", + "rev": "eb883022a5886739f07f0241f918e2be97d65ff0", + "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/crc32c/src": { + "args": { + "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", + "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", + "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cros-components/src": { + "args": { + "hash": "sha256-CT9c4LqTwhldsxoEny8MesULwQC4k95F4tfCtRZErGM=", + "rev": "97dc8c7a1df880206cc54d9913a7e9d73677072a", + "url": "https://chromium.googlesource.com/external/google3/cros_components.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cros_system_api": { + "args": { + "hash": "sha256-WlSxI1J+HjAD2UaQjW3oOQpZDnMn/ROpTLYTP4efTi4=", + "rev": "fe88d943e5f328b34e38b91296db39650f6ec6f3", + "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/crossbench": { + "args": { + "hash": "sha256-YomhvLtDFkGWyivN81gRxtOh9U32Zt6+/obTwccJuRo=", + "rev": "feff46a3cd49eb39667205cdfa2b490bcffc9ba1", + "url": "https://chromium.googlesource.com/crossbench.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dav1d/libdav1d": { + "args": { + "hash": "sha256-+DY4p41VuAlx7NvOfXjWzgEhvtpebjkjbFwSYOzSjv4=", + "rev": "8d956180934f16244bdb58b39175824775125e55", + "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn": { + "args": { + "hash": "sha256-N9DVbQE56WWBmJ/PJlYhU+pr8I+PFf/7FzMLCNqx3hg=", + "rev": "86772f20cca54b46f62b65ece1ef61224aef09db", + "url": "https://dawn.googlesource.com/dawn.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/dxc": { + "args": { + "hash": "sha256-0LfNcR1FXy5GcL2yHHA6A7EJIWtZU1U/2xSq/eysUa0=", + "rev": "d72e2b1a15d22fc825e2f3c939f1baac43281ae9", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/dxheaders": { + "args": { + "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", + "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/glfw": { + "args": { + "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", + "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", + "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/khronos/EGL-Registry": { + "args": { + "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", + "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { + "args": { + "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", + "rev": "5bae8738b23d06968e7c3a41308568120943ae77", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/webgpu-cts": { + "args": { + "hash": "sha256-eMDb0nG9HDiesd8KPajbMej8JTll4JkIf17KMnKvW1s=", + "rev": "905c7cbfeaac1cf3feb4c6056dd6f3dbaa06b074", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/webgpu-headers/src": { + "args": { + "hash": "sha256-+Kf4yPBhM6y2kYTZud9vCavT/BBOzDBsph5+/bUuwkM=", + "rev": "60cd9020309b87a30cd7240aad32accd24262a5e", + "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/depot_tools": { + "args": { + "hash": "sha256-1avxBlK0WLHTru5wUecbiGpSEYv8Epobsl4EfCaWX9A=", + "rev": "a8900cc0f023d6a662eb66b317e8ddceeb113490", + "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/devtools-frontend/src": { + "args": { + "hash": "sha256-7ygnGBAeiLxwbTx5s7LRs9+ZOe06tr8VFcSY5cVHnS4=", + "rev": "f8dfe8b36e516cef8a5a169e88d16480d8abdc68", + "url": "https://chromium.googlesource.com/devtools/devtools-frontend" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dom_distiller_js/dist": { + "args": { + "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", + "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", + "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/domato/src": { + "args": { + "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", + "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", + "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dragonbox/src": { + "args": { + "hash": "sha256-AOniXMPgwKpkJqivRd+GazEnhdw53FzhxKqG+GdU+cc=", + "rev": "6c7c925b571d54486b9ffae8d9d18a822801cbda", + "url": "https://chromium.googlesource.com/external/github.com/jk-jeon/dragonbox.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/eigen3/src": { + "args": { + "hash": "sha256-dWWjpQ6M7udOQqUV6P9go3R3O4J2XYpvkngJjRDY4v8=", + "rev": "ae3aba99db4c829b4cc4d9fdd54321dedd814dc4", + "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/electron_node": { + "args": { + "hash": "sha256-rp48HOQB13nZJUByXaL8MMkHNFp/V0qtbDZgoFBIcJY=", + "owner": "nodejs", + "repo": "node", + "tag": "v22.16.0" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/emoji-segmenter/src": { + "args": { + "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=", + "rev": "955936be8b391e00835257059607d7c5b72ce744", + "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/engflow-reclient-configs": { + "args": { + "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", + "owner": "EngFlow", + "repo": "reclient-configs", + "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/expat/src": { + "args": { + "hash": "sha256-qe8O7otL6YcDDBx2DS/+c5mWIS8Rf8RQXVtLFMIAeyk=", + "rev": "69d6c054c1bd5258c2a13405a7f5628c72c177c2", + "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/farmhash/src": { + "args": { + "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", + "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", + "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fast_float/src": { + "args": { + "hash": "sha256-CG5je117WYyemTe5PTqznDP0bvY5TeXn8Vu1Xh5yUzQ=", + "rev": "cb1d42aaa1e14b09e1452cfdef373d051b8c02a4", + "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ffmpeg": { + "args": { + "hash": "sha256-noc3iZ1yCEgkwWyznx48rXC8JuKxla9QgC/CIjRL/y8=", + "rev": "dcdd0fa51b65a0b1688ff6b8f0cc81908f09ded2", + "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/flac": { + "args": { + "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", + "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", + "url": "https://chromium.googlesource.com/chromium/deps/flac.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/flatbuffers/src": { + "args": { + "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", + "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", + "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fontconfig/src": { + "args": { + "hash": "sha256-Kz7KY+evfOciKFHIBLG1JxIRgHRTzuBLgxXHv3m/Y1Y=", + "rev": "8cf0ce700a8abe0d97ace4bf7efc7f9534b729ba", + "url": "https://chromium.googlesource.com/external/fontconfig.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fp16/src": { + "args": { + "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", + "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/freetype-testing/src": { + "args": { + "hash": "sha256-cpzz5QDeAT3UgAZzwW7c0SgLDQsBwy/1Q+5hz2XW4lE=", + "rev": "04fa94191645af39750f5eff0a66c49c5cb2c2cc", + "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/freetype/src": { + "args": { + "hash": "sha256-j5FPldhIOzsOsFBAMyNh44FTeOD8Gm3scoi3B3hhgKQ=", + "rev": "738905b34bd1f5a8ff51bd2bc8e38a2d8be9bfd6", + "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fuzztest/src": { + "args": { + "hash": "sha256-MHli8sadgC3OMesBGhkjPM/yW49KFOtdFuBII1bcFas=", + "rev": "f03aafb7516050ea73f617bf969f03eac641aefc", + "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fxdiv/src": { + "args": { + "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", + "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/gemmlowp/src": { + "args": { + "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", + "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", + "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/glslang/src": { + "args": { + "hash": "sha256-0PocroQj02mdpmFVXr6XB7mVVNzQOaBXm/2GNacZLF0=", + "rev": "93231001597dad1149a5d035af30eda50b9e6b6c", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/google_benchmark/src": { + "args": { + "hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w=", + "rev": "761305ec3b33abf30e08d50eb829e19a802581cc", + "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/googletest/src": { + "args": { + "hash": "sha256-md/jPkFrs/0p0BYGyquh57Zxh+1dKaK26PDtUN1+Ce0=", + "rev": "09ffd0015395354774c059a17d9f5bee36177ff9", + "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/harfbuzz-ng/src": { + "args": { + "hash": "sha256-lNnCtgIegUy4DLhYaGZXcEaFw83KWAHoKpz69AEsWp4=", + "rev": "9f83bbbe64654b45ba5bb06927ff36c2e7588495", + "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/highway/src": { + "args": { + "hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY=", + "rev": "00fe003dac355b979f36157f9407c7c46448958e", + "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/hunspell_dictionaries": { + "args": { + "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", + "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", + "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/icu": { + "args": { + "hash": "sha256-/T7uyzwTCDaamLwSvutvbn6BJuoG1RqeR+xhXI5jmJw=", + "rev": "b929596baebf0ab4ac7ec07f38365db4c50a559d", + "url": "https://chromium.googlesource.com/chromium/deps/icu.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ink/src": { + "args": { + "hash": "sha256-MqJXwtUGL/IakwOO63JX4gx0gTocgQT3hbhw6OcYUbc=", + "rev": "da9cb551ada1e55309b0ac89b9fbff2d29dbfe1e", + "url": "https://chromium.googlesource.com/external/github.com/google/ink.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ink_stroke_modeler/src": { + "args": { + "hash": "sha256-jnIljheEBq96e6zZO87bhVJbA1vIjiRzm1Hh6YMBdnU=", + "rev": "03db1ed37b8b10b47d62ed0fa142d198a3861689", + "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/instrumented_libs": { + "args": { + "hash": "sha256-8kokdsnn5jD9KgM/6g0NuITBbKkGXWEM4BMr1nCrfdU=", + "rev": "69015643b3f68dbd438c010439c59adc52cac808", + "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/jetstream/main": { + "args": { + "hash": "sha256-mE6IoHpLV0LUWEeeiWycXtOhIbhkPvVdLvsPSyv4xPk=", + "rev": "539ab943598b505832a25a2222aa8957f1a20d6f", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/JetStream.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/jetstream/v2.2": { + "args": { + "hash": "sha256-zucA2tqNOsvjhwYQKZ5bFUC73ZF/Fu7KpBflSelvixw=", + "rev": "2145cedef4ca2777b792cb0059d3400ee2a6153c", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/JetStream.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/jsoncpp/source": { + "args": { + "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", + "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", + "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/leveldatabase/src": { + "args": { + "hash": "sha256-ANtMVRZmW6iOjDVn2y15ak2fTagFTTaz1Se6flUHL8w=", + "rev": "4ee78d7ea98330f7d7599c42576ca99e3c6ff9c5", + "url": "https://chromium.googlesource.com/external/leveldb.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libFuzzer/src": { + "args": { + "hash": "sha256-Lb+HczYax0T7qvC0/Nwhc5l2szQTUYDouWRMD/Qz7sA=", + "rev": "e31b99917861f891308269c36a32363b120126bb", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libaddressinput/src": { + "args": { + "hash": "sha256-6h4/DQUBoBtuGfbaTL5Te1Z+24qjTaBuIydcTV18j80=", + "rev": "2610f7b1043d6784ada41392fc9392d1ea09ea07", + "url": "https://chromium.googlesource.com/external/libaddressinput.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libaom/source/libaom": { + "args": { + "hash": "sha256-pyLKjLG83Jlx6I+0M8Ah94ku4NIFcrHNYswfVHMvdrc=", + "rev": "2cca4aba034f99842c2e6cdc173f83801d289764", + "url": "https://aomedia.googlesource.com/aom.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libc++/src": { + "args": { + "hash": "sha256-36ulJk/YTfP5k1sDeA/WQyIO8xaplRKK4cQhfTZdpko=", + "rev": "a01c02c9d4acbdae3b7e8a2f3ee58579a9c29f96", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libc++abi/src": { + "args": { + "hash": "sha256-DkCvfFjMztFTzKf081XyiefW6tMBSZ1AdzcPzXAVPnk=", + "rev": "9810fb23f6ba666f017c2b67c67de2bcac2b44bd", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libdrm/src": { + "args": { + "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", + "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", + "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libgav1/src": { + "args": { + "hash": "sha256-BgTfWmbcMvJB1KewJpRcMtbOd2FVuJ+fi1zAXBXfkrg=", + "rev": "c05bf9be660cf170d7c26bd06bb42b3322180e58", + "url": "https://chromium.googlesource.com/codecs/libgav1.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libipp/libipp": { + "args": { + "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", + "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", + "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libjpeg_turbo": { + "args": { + "hash": "sha256-Ig+tmprZDvlf/M72/DTar2pbxat9ZElgSqdXdoM0lPs=", + "rev": "e14cbfaa85529d47f9f55b0f104a579c1061f9ad", + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/liblouis/src": { + "args": { + "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", + "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", + "url": "https://chromium.googlesource.com/external/liblouis-github.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libphonenumber/dist": { + "args": { + "hash": "sha256-ZbuDrZEUVp/ekjUP8WO/FsjAomRjeDBptT4nQZvTVi4=", + "rev": "9d46308f313f2bf8dbce1dfd4f364633ca869ca7", + "url": "https://chromium.googlesource.com/external/libphonenumber.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libprotobuf-mutator/src": { + "args": { + "hash": "sha256-EaEC6R7SzqLw4QjEcWXFXhZc84lNBp6RSa9izjGnWKE=", + "rev": "7bf98f78a30b067e22420ff699348f084f802e12", + "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libsrtp": { + "args": { + "hash": "sha256-bkG1+ss+1a2rCHGwZjhvf5UaNVbPPZJt9HZSIPBKGwM=", + "rev": "a52756acb1c5e133089c798736dd171567df11f5", + "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libsync/src": { + "args": { + "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", + "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", + "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libunwind/src": { + "args": { + "hash": "sha256-O1S3ijnoVrTHmZDGmgQQe0MVGsSZL7usXAPflGFmMXY=", + "rev": "8575f4ae4fcf8892938bd9766cf1a5c90a0ed04e", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libva-fake-driver/src": { + "args": { + "hash": "sha256-em/8rNqwv6szlxyji7mnYr3nObSW/x3OzEEnkiLuqpI=", + "rev": "a9bcab9cd6b15d4e3634ca44d5e5f7652c612194", + "url": "https://chromium.googlesource.com/chromiumos/platform/libva-fake-driver.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libvpx/source/libvpx": { + "args": { + "hash": "sha256-SFdYF8vnwNHQbZ1N/ZHr4kxfi9o+BAtuqbak80m9uP4=", + "rev": "b84ca9b63730e7d4563573a56a66317eb0087ebf", + "url": "https://chromium.googlesource.com/webm/libvpx.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libwebm/source": { + "args": { + "hash": "sha256-tfji0yPV7v/DETViEp2T7AO6P5xCjPYScTlV3eWFV0w=", + "rev": "c4522d6cd68582d66f1adfd24debfa9bee202afa", + "url": "https://chromium.googlesource.com/webm/libwebm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libwebp/src": { + "args": { + "hash": "sha256-0sKGhXr6Rrpq0eoitAdLQ4l4fgNOzMWIEICrPyzwNz4=", + "rev": "2af6c034ac871c967e04c8c9f8bf2dbc2e271b18", + "url": "https://chromium.googlesource.com/webm/libwebp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libyuv": { + "args": { + "hash": "sha256-J9Wi3aCc6OjtQCP8JnrY7PYrY587dKLaa1KGAMWmE0c=", + "rev": "61bdaee13a701d2b52c6dc943ccc5c888077a591", + "url": "https://chromium.googlesource.com/libyuv/libyuv.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/llvm-libc/src": { + "args": { + "hash": "sha256-BsoHIvdqgYzBUkd23++enEHIhq5GeVWrWdVdhXrHh9A=", + "rev": "9c3ae3120fe83b998d0498dcc9ad3a56c29fad0c", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/lss": { + "args": { + "hash": "sha256-rhp4EcZYdgSfu9cqn+zxxGx6v2IW8uX8V+iA0UfZhFY=", + "rev": "ed31caa60f20a4f6569883b2d752ef7522de51e0", + "url": "https://chromium.googlesource.com/linux-syscall-support.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/material_color_utilities/src": { + "args": { + "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", + "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", + "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/minigbm/src": { + "args": { + "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", + "rev": "3018207f4d89395cc271278fb9a6558b660885f5", + "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/nan": { + "args": { + "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", + "owner": "nodejs", + "repo": "nan", + "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/nasm": { + "args": { + "hash": "sha256-neYrS4kQ76ihUh22Q3uPR67Ld8+yerA922YSZU1KxJs=", + "rev": "9f916e90e6fc34ec302573f6ce147e43e33d68ca", + "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/nearby/src": { + "args": { + "hash": "sha256-qFLs3gMV0v6c0gjyn29D6pRxSAKumpzAWVgHabPFWRw=", + "rev": "959322177f40f2e0f1ecacd8a1aea2805e67b62b", + "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/neon_2_sse/src": { + "args": { + "hash": "sha256-AkDAHOPO5NdXXk0hETS5D67mzw0RVXwPDDKqM0XXo5g=", + "rev": "eb8b80b28f956275e291ea04a7beb5ed8289e872", + "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/openh264/src": { + "args": { + "hash": "sha256-tf0lnxATCkoq+xRti6gK6J47HwioAYWnpEsLGSA5Xdg=", + "rev": "652bdb7719f30b52b08e506645a7322ff1b2cc6f", + "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/openscreen/src": { + "args": { + "hash": "sha256-YlcvSDSCHHqDA43+hd5hpajZrIGqpn3KxhMJD8Wf+rs=", + "rev": "8cc5a0e8f6695263d44206cf5930641979cb3179", + "url": "https://chromium.googlesource.com/openscreen" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/openscreen/src/buildtools": { + "args": { + "hash": "sha256-WnbgaCzZ/BJli6M60kP9e4mVPFDx0yu3eCac5wmQ7iM=", + "rev": "077a66f30fcf281b066fafb6dfc60818c238efb6", + "url": "https://chromium.googlesource.com/chromium/src/buildtools" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/openscreen/src/third_party/tinycbor/src": { + "args": { + "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", + "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", + "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ots/src": { + "args": { + "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", + "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", + "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/pdfium": { + "args": { + "hash": "sha256-FF0iXahVfqbi4OOdH9PPgCTAIQT/q0nlT/H70pubCMQ=", + "rev": "cf433ae5520d061db56391155b59b34e67484f39", + "url": "https://pdfium.googlesource.com/pdfium.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/perfetto": { + "args": { + "hash": "sha256-kzVsti2tygOMgT61TmCz26AByMd3gIXA6xz8RE0iCz4=", + "rev": "dd35b295cd359ba094404218414955f961a0d6ae", + "url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/protobuf-javascript/src": { + "args": { + "hash": "sha256-c/aC+LZQtedL5oouUXw2eTF6xD7LN3J3C0q3D0wl+W0=", + "rev": "28bf5df73ef2f345a936d9cc95d64ba8ed426a53", + "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/pthreadpool/src": { + "args": { + "hash": "sha256-qogacGPNy6SKQaK8CZvGC8YZbVjhDTXuhDqGopB0Eps=", + "rev": "dcc9f28589066af0dbd4555579281230abbf74dd", + "url": "https://chromium.googlesource.com/external/github.com/google/pthreadpool.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/pyelftools": { + "args": { + "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", + "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", + "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/pywebsocket3/src": { + "args": { + "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", + "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/quic_trace/src": { + "args": { + "hash": "sha256-vbXqddDgwqetU0bDYn3qo7OBqT5eG926/MbA1hKkCT0=", + "rev": "ed3deb8a056b260c59f2fd42af6dfa3db48a8cad", + "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/re2/src": { + "args": { + "hash": "sha256-f/k2rloV2Nwb0KuJGUX4SijFxAx69EXcsXOG4vo+Kis=", + "rev": "c84a140c93352cdabbfb547c531be34515b12228", + "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ruy/src": { + "args": { + "hash": "sha256-O3JEtXchCdIHdGvjD6kGMJzj7TWVczQCW2YUHK3cABA=", + "rev": "83fd40d730feb0804fafbc2d8814bcc19a17b2e5", + "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/search_engines_data/resources": { + "args": { + "hash": "sha256-x7zGPqha12Og/AjQp1mkO0MNydM4xXvIcaapNziW0Kw=", + "rev": "09fd22f3a4fb77ab03b7734e0c03ff7d7f97ef88", + "url": "https://chromium.googlesource.com/external/search_engines_data.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/securemessage/src": { + "args": { + "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", + "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", + "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/skia": { + "args": { + "hash": "sha256-k0vE2K9KfeYsTVZchvKEA8M7GJQcekbuO5wHJeycBZo=", + "rev": "a46d5732d9fca93eaec23e502e2eef814b707e6b", + "url": "https://skia.googlesource.com/skia.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/smhasher/src": { + "args": { + "hash": "sha256-OgZQwkQcVgRMf62ROGuY+3zQhBoWuUSP4naTmSKdq8s=", + "rev": "0ff96f7835817a27d0487325b6c16033e2992eb5", + "url": "https://chromium.googlesource.com/external/smhasher.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/snappy/src": { + "args": { + "hash": "sha256-jUwnjbaqXz7fgI2TPRK7SlUPQUVzcpjp4ZlFbEzwA+o=", + "rev": "32ded457c0b1fe78ceb8397632c416568d6714a0", + "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/main": { + "args": { + "hash": "sha256-1/G06WCO5ssBS3+T6E3rnGdIf0r205wVxfJX7lgivR4=", + "rev": "dd661c033abdde11022779f40375c52632a9f43a", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/v2.0": { + "args": { + "hash": "sha256-p7WUS8gZUaS+LOm7pNmRkwgxjx+V8R6yy7bbaEHaIs4=", + "rev": "732af0dfe867f8815e662ac637357e55f285dbbb", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/v2.1": { + "args": { + "hash": "sha256-0z5tZlz32fYh9I1ALqfLm2WWO8HiRBwt0hcmgKQhaeM=", + "rev": "8bf7946e39e47c875c00767177197aea5727e84a", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/v3.0": { + "args": { + "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", + "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/v3.1": { + "args": { + "hash": "sha256-G89mrrgRaANT1vqzhKPQKemHbz56YwR+oku7rlRoCHw=", + "rev": "1386415be8fef2f6b6bbdbe1828872471c5d802a", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/spirv-cross/src": { + "args": { + "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", + "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/spirv-headers/src": { + "args": { + "hash": "sha256-/KfUxWDczLQ/0DOiFC4Z66o+gtoF/7vgvAvKyv9Z9OA=", + "rev": "c9aad99f9276817f18f72a4696239237c83cb775", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/spirv-tools/src": { + "args": { + "hash": "sha256-04CWBDu4Q+H7EtVTealNyGx0Hml7OjIf0FfK0IuzisY=", + "rev": "01021466b5e71deaac9054f56082566c782bfd51", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/sqlite/src": { + "args": { + "hash": "sha256-jqelU2bFZ4XwI5dpkusvgUobmRyYo/41ZKqbEmOdpis=", + "rev": "0a1397d274701c5d39e661e948160da2b9a8db1e", + "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/squirrel.mac": { + "args": { + "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", + "owner": "Squirrel", + "repo": "Squirrel.Mac", + "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/squirrel.mac/vendor/Mantle": { + "args": { + "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", + "owner": "Mantle", + "repo": "Mantle", + "rev": "78d3966b3c331292ea29ec38661b25df0a245948" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/squirrel.mac/vendor/ReactiveObjC": { + "args": { + "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", + "owner": "ReactiveCocoa", + "repo": "ReactiveObjC", + "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/swiftshader": { + "args": { + "hash": "sha256-Fd6T9zFJVPJaF2sbBy+uK0Ia0C6AIZsDbNvPSkbuTJM=", + "rev": "a8133cbb3c8969e3c1e6b3cea2c02ec8312ef9ca", + "url": "https://swiftshader.googlesource.com/SwiftShader.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/text-fragments-polyfill/src": { + "args": { + "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", + "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/tflite/src": { + "args": { + "hash": "sha256-qpwF2+/dw1u24O5+4bW74R43AgGN//NZwzEmlkyHlr0=", + "rev": "151774faba661a5985a8264653f4457c70a56dea", + "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ukey2/src": { + "args": { + "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", + "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", + "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-deps": { + "args": { + "hash": "sha256-kIj8sncNg6dJzg1fgORev/o164G3kMXCGHzlzb09n0U=", + "rev": "5912cbdd295c2bacb5798432a7b1cac9d20c0725", + "url": "https://chromium.googlesource.com/vulkan-deps" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-headers/src": { + "args": { + "hash": "sha256-vB49bFCx9VVEtpwIFcxdqYT+Pk4DgjoPz4rzPfmuRps=", + "rev": "75ad707a587e1469fb53a901b9b68fe9f6fbc11f", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-loader/src": { + "args": { + "hash": "sha256-D5S1xQbsJ4Ov+3u84Mxj3L/3elyW78jpKRbYo8FpD28=", + "rev": "c913466fdc5004584890f89ff91121bdb2ffd4ba", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-tools/src": { + "args": { + "hash": "sha256-snLYtiXK1eBZYsc7X18/wk4TnhmkSqquWxyjmw9IF2A=", + "rev": "60b640cb931814fcc6dabe4fc61f4738c56579f6", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-utility-libraries/src": { + "args": { + "hash": "sha256-2mi5gtacSDxtZB8a3oGZqgLhwntSLXlEzDq6W14RHp4=", + "rev": "49ac28931f28bffaa3cd73dc4ad997284d574962", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-validation-layers/src": { + "args": { + "hash": "sha256-K0KZ8wXTCVRBBN9AWy63ukmE6QkQHKcRgo+YluOhjyc=", + "rev": "f7ceb1d01a292846db77ec87786be84d6fd568d9", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan_memory_allocator": { + "args": { + "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", + "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", + "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wasm_tts_engine/src": { + "args": { + "hash": "sha256-TFkniS4XvP0RlPnI1lv4RxxSY44RUuwCMKmmybENEBw=", + "rev": "352880bb49e2410707543c252ef6b94a21b0f47f", + "url": "https://chromium.googlesource.com/chromium/wasm-tts-engine" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wayland-protocols/gtk": { + "args": { + "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", + "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", + "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wayland-protocols/kde": { + "args": { + "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", + "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", + "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wayland-protocols/src": { + "args": { + "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", + "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wayland/src": { + "args": { + "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", + "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webdriver/pylib": { + "args": { + "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", + "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", + "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webgl/src": { + "args": { + "hash": "sha256-mSketnpcDtz3NnhPkXMpMpq8MWcFiSviJbK6h06fcnw=", + "rev": "c01b768bce4a143e152c1870b6ba99ea6267d2b0", + "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webgpu-cts/src": { + "args": { + "hash": "sha256-eMDb0nG9HDiesd8KPajbMej8JTll4JkIf17KMnKvW1s=", + "rev": "905c7cbfeaac1cf3feb4c6056dd6f3dbaa06b074", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webpagereplay": { + "args": { + "hash": "sha256-qJnO3fFJhaQA77v1lTJ4B7cbXivquTcSvx/m+OcI3No=", + "rev": "18172a359f6dab8e3f70b6c5c8c7c55d3e97537a", + "url": "https://chromium.googlesource.com/webpagereplay.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webrtc": { + "args": { + "hash": "sha256-72NbtdYbyMxSGULvOGsZqLj4kvT79pu+TKcnEmcj/Pc=", + "rev": "e4445e46a910eb407571ec0b0b8b7043562678cf", + "url": "https://webrtc.googlesource.com/src.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/weston/src": { + "args": { + "hash": "sha256-VNHUAtfTB24SIf2kl+MMXF3rG5cJOPM93WU/sVSIQ1A=", + "rev": "4eb10b123b483327214d8da5da67e8bbeeaed8fe", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wuffs/src": { + "args": { + "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", + "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/xdg-utils": { + "args": { + "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", + "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", + "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/xnnpack/src": { + "args": { + "hash": "sha256-aavq+i8EpQmIMPaym6JxwBFjbpqKtHshXUkdBIXDtpw=", + "rev": "f82ad65ca52cb4d39b73088468a5fe00f56fb47c", + "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/zstd/src": { + "args": { + "hash": "sha256-emmJF7XLq5CxXFd0KUrtUtw1YGOHDSiz39vtgVoEPd0=", + "rev": "f9938c217da17ec3e9dcd2a2d99c5cf39536aeb9", + "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/v8": { + "args": { + "hash": "sha256-MXQyDv45BDnLwKCqbueY2a5VBEgmf33Xy8WXLE9Rwsc=", + "rev": "a14ab029e21658cba458b7001281c5d526e67636", + "url": "https://chromium.googlesource.com/v8/v8.git" + }, + "fetcher": "fetchFromGitiles" + } + }, + "electron_yarn_hash": "10n86jnzcq8kh0nk29ljw9wi1fgj13f07h92b009i1dryagliyrs", + "modules": "136", + "node": "22.16.0", + "version": "37.1.0" } } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9cf7c56cd112..8e775d5b6305 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6860,6 +6860,11 @@ with pkgs; electron-source.electron_36 else electron_36-bin; + electron_37 = + if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_37 then + electron-source.electron_37 + else + electron_37-bin; electron = electron_35; electron-bin = electron_35-bin; electron-chromedriver = electron-chromedriver_35; From dae2283583ee83f2dd1aa1d6b3154c459aee7457 Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Thu, 26 Jun 2025 15:56:27 +0200 Subject: [PATCH 54/65] electron_37-bin: init at 37.1.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.0.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.1.0 --- pkgs/development/tools/electron/binary/info.json | 11 +++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 12 insertions(+) diff --git a/pkgs/development/tools/electron/binary/info.json b/pkgs/development/tools/electron/binary/info.json index 12bfb8450616..65989393576a 100644 --- a/pkgs/development/tools/electron/binary/info.json +++ b/pkgs/development/tools/electron/binary/info.json @@ -42,5 +42,16 @@ "x86_64-linux": "6a0decb3e382f32d4ab3db90aabd082ef9ee1154fe205808f887e228fdb2d355" }, "version": "36.6.0" + }, + "37": { + "hashes": { + "aarch64-darwin": "31c57a288b262d17751e6bb6f3862bfaaa7eb2f0a5dfb17965013538d2ceeeb1", + "aarch64-linux": "0aca9ed706f48e1b13c14d9379473c617d906bae8a4ee3a7cc1699ad8feea79b", + "armv7l-linux": "88d33b77debc1d7c189350b9ba411bced78328dca86d4d7e805c4322502fc254", + "headers": "0wizghk8sbggxjcxyxga20021by5b6a4vdr92nkmaadpishs1ylh", + "x86_64-darwin": "78e3c798b65d1e740e92bc2acac56b43aadf803be9fc3de799fd40407548dd83", + "x86_64-linux": "c03c227b2ac340e4a4093b7157e3290581bccf798bc3e0a40b280b0083453299" + }, + "version": "37.1.0" } } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8e775d5b6305..676f331ff7f4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6835,6 +6835,7 @@ with pkgs; electron_34-bin electron_35-bin electron_36-bin + electron_37-bin ; inherit (callPackages ../development/tools/electron/chromedriver { }) From a36c45a4c396c56f17eb1b0509cfec30e672d8cd Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Thu, 26 Jun 2025 15:56:31 +0200 Subject: [PATCH 55/65] electron-chromedriver_37: init at 37.1.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.0.0 - Changelog: https://github.com/electron/electron/releases/tag/v37.1.0 --- .../development/tools/electron/chromedriver/info.json | 11 +++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 12 insertions(+) diff --git a/pkgs/development/tools/electron/chromedriver/info.json b/pkgs/development/tools/electron/chromedriver/info.json index 5373b55ee742..e6536e6699fd 100644 --- a/pkgs/development/tools/electron/chromedriver/info.json +++ b/pkgs/development/tools/electron/chromedriver/info.json @@ -42,5 +42,16 @@ "x86_64-linux": "859c853712a4addb77d4fb1019e27063ef8825004bb93219e991cf5b4103ccb8" }, "version": "36.6.0" + }, + "37": { + "hashes": { + "aarch64-darwin": "f17ed19aa221a0105f688e86de3b2ef2328fcd367cc0c3a1a4ef8470c82f4776", + "aarch64-linux": "b41893387748f0ab996979d16e38852c9c9a27a647f1931b8cc227b6bea079af", + "armv7l-linux": "abb11bb11e40f029061551bdc183b57515ee095de2019ec946bc63018454163d", + "headers": "0wizghk8sbggxjcxyxga20021by5b6a4vdr92nkmaadpishs1ylh", + "x86_64-darwin": "e45df1088579f802258bce0f17ebb5791140ac7b568a6e17047cace76ab9f045", + "x86_64-linux": "aed73451a604782e1be5826a6455e63264ddace4e2d4552a5a400fa16398ab96" + }, + "version": "37.1.0" } } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 676f331ff7f4..042bcebeeab1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6843,6 +6843,7 @@ with pkgs; electron-chromedriver_34 electron-chromedriver_35 electron-chromedriver_36 + electron-chromedriver_37 ; electron_33 = electron_33-bin; From d923eaab472f6cbb6c68fc876686c2d25cc041fc Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Mon, 30 Jun 2025 09:14:13 +0200 Subject: [PATCH 56/65] obs-studio: 31.0.3 -> 31.0.4 --- pkgs/applications/video/obs-studio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index 85619d66e647..c9e07022bcd0 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -81,13 +81,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "obs-studio"; - version = "31.0.3"; + version = "31.0.4"; src = fetchFromGitHub { owner = "obsproject"; repo = "obs-studio"; rev = finalAttrs.version; - hash = "sha256-i1wkGlafPvfMTsQr5Ww5iwmUu+23cr0YmN10llJfohA="; + hash = "sha256-YxBPVXin8oJlo++oJogY1WMamIJmRqtSmKZDBsIZPU4="; fetchSubmodules = true; }; From 8bfedc94de139c97b93b0cb22a59793299d98df0 Mon Sep 17 00:00:00 2001 From: K900 Date: Mon, 30 Jun 2025 12:38:17 +0300 Subject: [PATCH 57/65] path-of-building.data: 2.54.0 -> 2.55.1 Diff: https://github.com/PathOfBuildingCommunity/PathOfBuilding/compare/v2.54.0...v2.55.1 --- pkgs/games/path-of-building/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/games/path-of-building/default.nix b/pkgs/games/path-of-building/default.nix index e362f7ac0447..5f9dde343b59 100644 --- a/pkgs/games/path-of-building/default.nix +++ b/pkgs/games/path-of-building/default.nix @@ -17,13 +17,13 @@ let data = stdenv.mkDerivation (finalAttrs: { pname = "path-of-building-data"; - version = "2.54.0"; + version = "2.55.1"; src = fetchFromGitHub { owner = "PathOfBuildingCommunity"; repo = "PathOfBuilding"; rev = "v${finalAttrs.version}"; - hash = "sha256-NMSr5HJ/YvrqE8uVINzH0b9+U3snQGQYalSJ4bNRh1I="; + hash = "sha256-O3XD52UdkjxtWdsXs6QbXzfik3ZT9TEc2PPZCIGJdCQ="; }; nativeBuildInputs = [ unzip ]; From c8ca634107be32a9fa32e860cb3741ac5546ac52 Mon Sep 17 00:00:00 2001 From: Mateusz Galazyn Date: Mon, 30 Jun 2025 12:12:22 +0200 Subject: [PATCH 58/65] duplicati: 2.1.0.2 -> 2.1.0.5 --- pkgs/by-name/du/duplicati/package.nix | 72 ++++++++++++++++++--------- 1 file changed, 49 insertions(+), 23 deletions(-) diff --git a/pkgs/by-name/du/duplicati/package.nix b/pkgs/by-name/du/duplicati/package.nix index aaef3d602b0d..803bada022dd 100644 --- a/pkgs/by-name/du/duplicati/package.nix +++ b/pkgs/by-name/du/duplicati/package.nix @@ -2,44 +2,70 @@ lib, stdenv, fetchzip, - mono, - sqlite, - makeWrapper, + autoPatchelfHook, + gcc-unwrapped, + zlib, + lttng-ust_2_12, + icu, + openssl, + makeBinaryWrapper, }: +let + _supportedPlatforms = { + "armv7l-linux" = "linux-arm7"; + "x86_64-linux" = "linux-x64"; + "aarch64-linux" = "linux-arm64"; + }; + _platform = _supportedPlatforms."${stdenv.hostPlatform.system}"; + # nix hash convert --to sri "sha256:`nix-prefetch-url --unpack https://updates.duplicati.com/stable/duplicati-2.1.0.5_stable_2025-03-04-linux-arm64-cli.zip`" + _fileHashForSystem = { + "armv7l-linux" = "sha256-FQQ07M0rwvxNkHPW6iK5WBTKgFrZ4LOP4vgINfmtq4k="; + "x86_64-linux" = "sha256-1QspF/A3hOtqd8bVbSqClJIHUN9gBrd18J5qvZJLkQE="; + "aarch64-linux" = "sha256-mSNInaCkNf1MBZK2M42SjJnYRtB5SyGMvSGSn5oH1Cs="; + }; +in stdenv.mkDerivation (finalAttrs: { + # TODO build duplicati from source https://github.com/duplicati/duplicati/blob/master/.github/workflows/build-packages.yml pname = "duplicati"; - version = "2.1.0.2"; - channel = "beta"; - build_date = "2024-11-29"; + version = "2.1.0.5"; + channel = "stable"; + buildDate = "2025-03-04"; src = fetchzip { url = with finalAttrs; - "https://github.com/duplicati/duplicati/releases/download/v${version}-${version}_${channel}_${build_date}/duplicati-${version}_${channel}_${build_date}.zip"; - hash = "sha256-LmW6yGutxP33ghFqyOLKrGDNCQdr8DDFn/IHigsLpzA="; - stripRoot = false; + "https://updates.duplicati.com/stable/duplicati-${version}_${channel}_${buildDate}-${_platform}-cli.zip"; + hash = _fileHashForSystem."${stdenv.hostPlatform.system}"; + stripRoot = true; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ + autoPatchelfHook + makeBinaryWrapper + ]; + buildInputs = [ + gcc-unwrapped + zlib + lttng-ust_2_12 + ]; installPhase = '' - mkdir -p $out/{bin,share/duplicati-${finalAttrs.version}} - cp -r * $out/share/duplicati-${finalAttrs.version} - makeWrapper "${lib.getExe mono}" $out/bin/duplicati-cli \ - --add-flags "$out/share/duplicati-${finalAttrs.version}/Duplicati.CommandLine.exe" \ + runHook preInstall + + mkdir -p $out/{bin,share} + cp -r * "$out/share/" + for file in $out/share/duplicati-*; do + makeBinaryWrapper "$file" "$out/bin/$(basename $file)" \ --prefix LD_LIBRARY_PATH : ${ lib.makeLibraryPath [ - sqlite - ] - } - makeWrapper "${lib.getExe mono}" $out/bin/duplicati-server \ - --add-flags "$out/share/duplicati-${finalAttrs.version}/Duplicati.Server.exe" \ - --prefix LD_LIBRARY_PATH : ${ - lib.makeLibraryPath [ - sqlite + icu + openssl ] } + done + + runHook postInstall ''; meta = { @@ -51,6 +77,6 @@ stdenv.mkDerivation (finalAttrs: { bot-wxt1221 ]; sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; - platforms = lib.platforms.all; + platforms = builtins.attrNames _supportedPlatforms; }; }) From 0fc73e51010df0e889ad7a0cc8a24ab78ac11e92 Mon Sep 17 00:00:00 2001 From: Mateusz Galazyn Date: Mon, 30 Jun 2025 12:12:27 +0200 Subject: [PATCH 59/65] nixos/duplicati: add parameters-file option Co-Authored-By: Jack Michaud --- nixos/modules/services/backup/duplicati.nix | 44 ++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/backup/duplicati.nix b/nixos/modules/services/backup/duplicati.nix index bb205d2ac0dd..b69510f0aecb 100644 --- a/nixos/modules/services/backup/duplicati.nix +++ b/nixos/modules/services/backup/duplicati.nix @@ -6,6 +6,12 @@ }: let cfg = config.services.duplicati; + + parametersFile = + if cfg.parametersFile != null then + cfg.parametersFile + else + pkgs.writeText "duplicati-parameters" cfg.parameters; in { options = { @@ -53,12 +59,48 @@ in Run as root with special care. ''; }; + + parameters = lib.mkOption { + default = ""; + type = lib.types.lines; + example = '' + --webservice-allowedhostnames=* + ''; + description = '' + This option can be used to store some or all of the options given to the + commandline client. + Each line in this option should be of the format --option=value. + The options in this file take precedence over the options provided + through command line arguments. + Duplicati docs: parameters-file + ''; + }; + + parametersFile = lib.mkOption { + default = null; + type = lib.types.nullOr lib.types.path; + description = '' + This file can be used to store some or all of the options given to the + commandline client. + Each line in the file option should be of the format --option=value. + The options in this file take precedence over the options provided + through command line arguments. + Duplicati docs: parameters-file + ''; + }; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ]; + assertions = [ + { + assertion = !(cfg.parametersFile != null && cfg.parameters != ""); + message = "cannot set both services.duplicati.parameters and services.duplicati.parametersFile at the same time"; + } + ]; + systemd.services.duplicati = { description = "Duplicati backup"; after = [ "network.target" ]; @@ -67,7 +109,7 @@ in { User = cfg.user; Group = "duplicati"; - ExecStart = "${cfg.package}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=${cfg.dataDir}"; + ExecStart = "${cfg.package}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=${cfg.dataDir} --parameters-file=${parametersFile}"; Restart = "on-failure"; } (lib.mkIf (cfg.dataDir == "/var/lib/duplicati") { From d2a7d4065042073387ad319f2c1511a22d04f617 Mon Sep 17 00:00:00 2001 From: emilylange Date: Sun, 15 Jun 2025 19:36:06 +0200 Subject: [PATCH 60/65] nixos/sourcehut,sourcehut.*,nixosTests.sourcehut: drop Sourcehut went a year with no update in nixpkgs, the packages did not build for months, the module has issues at runtime, one of the maintainers stopped using NixOS entirely and the other two don't respond to issues. Upstream has since also deprecated the Arch Linux and Debian repositories to install Sourcehut. The only official way that remains is Alpine Linux on x86_64-linux. --- nixos/doc/manual/redirects.json | 19 +- .../manual/release-notes/rl-2511.section.md | 2 + nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 3 + .../services/misc/sourcehut/default.md | 93 - .../services/misc/sourcehut/default.nix | 1568 ----------------- .../services/misc/sourcehut/service.nix | 499 ------ nixos/tests/all-tests.nix | 1 - nixos/tests/sourcehut/builds.nix | 66 - nixos/tests/sourcehut/default.nix | 6 - nixos/tests/sourcehut/git.nix | 109 -- nixos/tests/sourcehut/nodes/common.nix | 117 -- .../version-management/sourcehut/builds.nix | 111 -- .../version-management/sourcehut/core.nix | 104 -- .../version-management/sourcehut/default.nix | 56 - .../sourcehut/fix-gqlgen-trimpath.nix | 35 - .../version-management/sourcehut/git.nix | 153 -- .../version-management/sourcehut/hg.nix | 117 -- .../version-management/sourcehut/hub.nix | 90 - .../version-management/sourcehut/lists.nix | 92 - .../version-management/sourcehut/man.nix | 85 - .../version-management/sourcehut/meta.nix | 99 -- .../version-management/sourcehut/pages.nix | 51 - .../version-management/sourcehut/paste.nix | 86 - .../core-go-update/builds/patch-deps.patch | 25 - .../core-go-update/git/patch-deps.patch | 26 - .../core-go-update/hg/patch-deps.patch | 25 - .../core-go-update/hub/patch-deps.patch | 25 - .../core-go-update/lists/patch-deps.patch | 26 - .../core-go-update/man/patch-deps.patch | 25 - .../core-go-update/meta/patch-deps.patch | 26 - .../core-go-update/pages/patch-deps.patch | 25 - .../core-go-update/paste/patch-deps.patch | 25 - .../core-go-update/todo/patch-deps.patch | 25 - ...ocket-support-in-RedisQueueCollector.patch | 43 - .../version-management/sourcehut/scm.nix | 49 - .../version-management/sourcehut/todo.nix | 90 - .../version-management/sourcehut/update.sh | 95 - .../by-name/sr/srht-gen-oauth-tok/package.nix | 2 - pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 41 files changed, 13 insertions(+), 4085 deletions(-) delete mode 100644 nixos/modules/services/misc/sourcehut/default.md delete mode 100644 nixos/modules/services/misc/sourcehut/default.nix delete mode 100644 nixos/modules/services/misc/sourcehut/service.nix delete mode 100644 nixos/tests/sourcehut/builds.nix delete mode 100644 nixos/tests/sourcehut/default.nix delete mode 100644 nixos/tests/sourcehut/git.nix delete mode 100644 nixos/tests/sourcehut/nodes/common.nix delete mode 100644 pkgs/applications/version-management/sourcehut/builds.nix delete mode 100644 pkgs/applications/version-management/sourcehut/core.nix delete mode 100644 pkgs/applications/version-management/sourcehut/default.nix delete mode 100644 pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix delete mode 100644 pkgs/applications/version-management/sourcehut/git.nix delete mode 100644 pkgs/applications/version-management/sourcehut/hg.nix delete mode 100644 pkgs/applications/version-management/sourcehut/hub.nix delete mode 100644 pkgs/applications/version-management/sourcehut/lists.nix delete mode 100644 pkgs/applications/version-management/sourcehut/man.nix delete mode 100644 pkgs/applications/version-management/sourcehut/meta.nix delete mode 100644 pkgs/applications/version-management/sourcehut/pages.nix delete mode 100644 pkgs/applications/version-management/sourcehut/paste.nix delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/builds/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/git/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/hg/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/hub/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/lists/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/man/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/meta/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/pages/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/paste/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/core-go-update/todo/patch-deps.patch delete mode 100644 pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch delete mode 100644 pkgs/applications/version-management/sourcehut/scm.nix delete mode 100644 pkgs/applications/version-management/sourcehut/todo.nix delete mode 100755 pkgs/applications/version-management/sourcehut/update.sh diff --git a/nixos/doc/manual/redirects.json b/nixos/doc/manual/redirects.json index 3cabffb61df8..922d806b4e16 100644 --- a/nixos/doc/manual/redirects.json +++ b/nixos/doc/manual/redirects.json @@ -1085,18 +1085,6 @@ "module-services-taskserver-manual-ca-management": [ "index.html#module-services-taskserver-manual-ca-management" ], - "module-services-sourcehut": [ - "index.html#module-services-sourcehut" - ], - "module-services-sourcehut-basic-usage": [ - "index.html#module-services-sourcehut-basic-usage" - ], - "module-services-sourcehut-configuration": [ - "index.html#module-services-sourcehut-configuration" - ], - "module-services-sourcehut-httpd": [ - "index.html#module-services-sourcehut-httpd" - ], "module-services-gitlab": [ "index.html#module-services-gitlab" ], @@ -2049,6 +2037,13 @@ "sec-release-25.11-incompatibilities": [ "release-notes.html#sec-release-25.11-incompatibilities" ], + "sec-release-25.11-incompatibilities-sourcehut-removed": [ + "release-notes.html#sec-release-25.11-incompatibilities-sourcehut-removed", + "index.html#module-services-sourcehut", + "index.html#module-services-sourcehut-basic-usage", + "index.html#module-services-sourcehut-configuration", + "index.html#module-services-sourcehut-httpd" + ], "sec-release-25.11-notable-changes": [ "release-notes.html#sec-release-25.11-notable-changes" ], diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 1d3c230e682d..936b7b6db516 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -62,6 +62,8 @@ - The Pocket ID module ([`services.pocket-id`][#opt-services.pocket-id.enable]) and package (`pocket-id`) has been updated to 1.0.0. Some environment variables have been changed or removed, see the [migration guide](https://pocket-id.org/docs/setup/migrate-to-v1/). +- []{#sec-release-25.11-incompatibilities-sourcehut-removed} The `services.sourcehut` module and corresponding `sourcehut` packages were removed due to being broken and unmaintained. + - The `yeahwm` package and `services.xserver.windowManager.yeahwm` module were removed due to the package being broken and unmaintained upstream. - The `services.postgresql` module now sets up a systemd unit `postgresql.target`. Depending on `postgresql.target` guarantees that postgres is in read-write mode and initial/ensure scripts were executed. Depending on `postgresql.service` only guarantees a read-only connection. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 3962550bec1f..5eb40adc5647 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -915,7 +915,6 @@ ./services/misc/sickbeard.nix ./services/misc/snapper.nix ./services/misc/soft-serve.nix - ./services/misc/sourcehut ./services/misc/spice-autorandr.nix ./services/misc/spice-vdagentd.nix ./services/misc/spice-webdavd.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 965510d4a526..4956940c8349 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -236,6 +236,9 @@ in the program being unmaintained. The options `programs.msmtp.*` can be used instead. '') + (mkRemovedOptionModule [ "services" "sourcehut" ] '' + The sourcehut packages and the corresponding module have been removed due to being broken and unmaintained. + '') (mkRemovedOptionModule [ "services" "tvheadend" ] "The tvheadend package and the corresponding module have been removed as nobody was willing to maintain them and they were stuck on an unmaintained version that required FFmpeg 4; please see https://github.com/NixOS/nixpkgs/pull/332259 if you are interested in maintaining a newer version." ) diff --git a/nixos/modules/services/misc/sourcehut/default.md b/nixos/modules/services/misc/sourcehut/default.md deleted file mode 100644 index f965c395038a..000000000000 --- a/nixos/modules/services/misc/sourcehut/default.md +++ /dev/null @@ -1,93 +0,0 @@ -# Sourcehut {#module-services-sourcehut} - -[Sourcehut](https://sr.ht.com/) is an open-source, -self-hostable software development platform. The server setup can be automated using -[services.sourcehut](#opt-services.sourcehut.enable). - -## Basic usage {#module-services-sourcehut-basic-usage} - -Sourcehut is a Python and Go based set of applications. -This NixOS module also provides basic configuration integrating Sourcehut into locally running -`services.nginx`, `services.redis.servers.sourcehut`, `services.postfix` -and `services.postgresql` services. - -A very basic configuration may look like this: -```nix -{ pkgs, ... }: -let - fqdn = - let - join = hostName: domain: hostName + optionalString (domain != null) ".${domain}"; - in join config.networking.hostName config.networking.domain; -in { - - networking = { - hostName = "srht"; - domain = "tld"; - firewall.allowedTCPPorts = [ 22 80 443 ]; - }; - - services.sourcehut = { - enable = true; - git.enable = true; - man.enable = true; - meta.enable = true; - nginx.enable = true; - postfix.enable = true; - postgresql.enable = true; - redis.enable = true; - settings = { - "sr.ht" = { - environment = "production"; - global-domain = fqdn; - origin = "https://${fqdn}"; - # Produce keys with srht-keygen from sourcehut.coresrht. - network-key = "/run/keys/path/to/network-key"; - service-key = "/run/keys/path/to/service-key"; - }; - webhooks.private-key= "/run/keys/path/to/webhook-key"; - }; - }; - - security.acme.certs."${fqdn}".extraDomainNames = [ - "meta.${fqdn}" - "man.${fqdn}" - "git.${fqdn}" - ]; - - services.nginx = { - enable = true; - # only recommendedProxySettings are strictly required, but the rest make sense as well. - recommendedTlsSettings = true; - recommendedOptimisation = true; - recommendedGzipSettings = true; - recommendedProxySettings = true; - - # Settings to setup what certificates are used for which endpoint. - virtualHosts = { - "${fqdn}".enableACME = true; - "meta.${fqdn}".useACMEHost = fqdn; - "man.${fqdn}".useACMEHost = fqdn; - "git.${fqdn}".useACMEHost = fqdn; - }; - }; -} -``` - - The `hostName` option is used internally to configure the nginx -reverse-proxy. The `settings` attribute set is -used by the configuration generator and the result is placed in `/etc/sr.ht/config.ini`. - -## Configuration {#module-services-sourcehut-configuration} - -All configuration parameters are also stored in -`/etc/sr.ht/config.ini` which is generated by -the module and linked from the store to ensure that all values from `config.ini` -can be modified by the module. - -## Using an alternative webserver as reverse-proxy (e.g. `httpd`) {#module-services-sourcehut-httpd} - -By default, `nginx` is used as reverse-proxy for `sourcehut`. -However, it's possible to use e.g. `httpd` by explicitly disabling -`nginx` using [](#opt-services.nginx.enable) and fixing the -`settings`. diff --git a/nixos/modules/services/misc/sourcehut/default.nix b/nixos/modules/services/misc/sourcehut/default.nix deleted file mode 100644 index b6e785802206..000000000000 --- a/nixos/modules/services/misc/sourcehut/default.nix +++ /dev/null @@ -1,1568 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - inherit (builtins) head tail; - inherit (lib) generators maintainers types; - inherit (lib.attrsets) - attrValues - filterAttrs - mapAttrs - mapAttrsToList - recursiveUpdate - ; - inherit (lib.lists) flatten optional optionals; - inherit (lib.options) - literalExpression - mkEnableOption - mkOption - mkPackageOption - ; - inherit (lib.strings) - concatMapStringsSep - concatStringsSep - optionalString - versionOlder - ; - inherit (lib.trivial) mapNullable; - inherit (lib.modules) - mkBefore - mkDefault - mkForce - mkIf - mkMerge - mkRemovedOptionModule - mkRenamedOptionModule - ; - inherit (config.services) - nginx - postfix - postgresql - redis - ; - inherit (config.users) users groups; - cfg = config.services.sourcehut; - domain = cfg.settings."sr.ht".global-domain; - settingsFormat = pkgs.formats.ini { - listToValue = concatMapStringsSep "," (generators.mkValueStringDefault { }); - mkKeyValue = - k: v: - optionalString (v != null) ( - generators.mkKeyValueDefault { - mkValueString = - v: - if v == true then - "yes" - else if v == false then - "no" - else - generators.mkValueStringDefault { } v; - } "=" k v - ); - }; - configIniOfService = - srv: - settingsFormat.generate "sourcehut-${srv}-config.ini" - # Each service needs access to only a subset of sections (and secrets). - ( - filterAttrs (k: v: v != null) ( - mapAttrs - ( - section: v: - let - srvMatch = builtins.match "^([a-z]*)\\.sr\\.ht(::.*)?$" section; - in - if - srvMatch == null # Include sections shared by all services - || head srvMatch == srv # Include sections for the service being configured - then - v - # Enable Web links and integrations between services. - else if tail srvMatch == [ null ] && cfg.${head srvMatch}.enable then - { - inherit (v) origin; - # mansrht crashes without it - oauth-client-id = v.oauth-client-id or null; - } - # Drop sub-sections of other services - else - null - ) - ( - recursiveUpdate cfg.settings { - # Those paths are mounted using BindPaths= or BindReadOnlyPaths= - # for services needing access to them. - "builds.sr.ht::worker".buildlogs = "/var/log/sourcehut/buildsrht-worker"; - "git.sr.ht".post-update-script = "/usr/bin/git.sr.ht-update-hook"; - "git.sr.ht".repos = cfg.settings."git.sr.ht".repos; - "hg.sr.ht".changegroup-script = "/usr/bin/hg.sr.ht-hook-changegroup"; - "hg.sr.ht".repos = cfg.settings."hg.sr.ht".repos; - # Making this a per service option despite being in a global section, - # so that it uses the redis-server used by the service. - "sr.ht".redis-host = cfg.${srv}.redis.host; - "sr.ht".assets = "${cfg.${srv}.package}/share/sourcehut"; - } - ) - ) - ); - commonServiceSettings = srv: { - origin = mkOption { - description = "URL ${srv}.sr.ht is being served at (protocol://domain)"; - type = types.str; - default = "https://${srv}.${domain}"; - defaultText = "https://${srv}.example.com"; - }; - debug-host = mkOption { - description = "Address to bind the debug server to."; - type = with types; nullOr str; - default = null; - }; - debug-port = mkOption { - description = "Port to bind the debug server to."; - type = with types; nullOr str; - default = null; - }; - connection-string = mkOption { - description = "SQLAlchemy connection string for the database."; - type = types.str; - default = "postgresql:///localhost?user=${srv}srht&host=/run/postgresql"; - }; - migrate-on-upgrade = mkEnableOption "automatic migrations on package upgrade" // { - default = true; - }; - oauth-client-id = mkOption { - description = "${srv}.sr.ht's OAuth client id for meta.sr.ht."; - type = types.str; - }; - oauth-client-secret = mkOption { - description = "${srv}.sr.ht's OAuth client secret for meta.sr.ht."; - type = types.path; - apply = s: "<" + toString s; - }; - api-origin = mkOption { - description = "Origin URL for the API"; - type = types.str; - default = "http://${cfg.listenAddress}:${toString (cfg.${srv}.port + 100)}"; - defaultText = lib.literalMD '' - `"http://''${`[](#opt-services.sourcehut.listenAddress)`}:''${toString (`[](#opt-services.sourcehut.${srv}.port)` + 100)}"` - ''; - }; - }; - - # Specialized python containing all the modules - python = pkgs.sourcehut.python.withPackages ( - ps: with ps; [ - gunicorn - eventlet - # For monitoring Celery: sudo -u listssrht celery --app listssrht.process -b redis+socket:///run/redis-sourcehut/redis.sock?virtual_host=1 flower - flower - # Sourcehut services - srht - buildsrht - gitsrht - hgsrht - hubsrht - listssrht - mansrht - metasrht - # Not a python package - #pagessrht - pastesrht - todosrht - ] - ); - mkOptionNullOrStr = - description: - mkOption { - description = description; - type = with types; nullOr str; - default = null; - }; -in -{ - options.services.sourcehut = { - enable = mkEnableOption '' - sourcehut - git hosting, continuous integration, mailing list, ticket tracking, wiki - and account management services - ''; - - listenAddress = mkOption { - type = types.str; - default = "localhost"; - description = "Address to bind to."; - }; - - python = mkOption { - internal = true; - type = types.package; - default = python; - description = '' - The python package to use. It should contain references to the *srht modules and also - gunicorn. - ''; - }; - - minio = { - enable = mkEnableOption ''local minio integration''; - }; - - nginx = { - enable = mkEnableOption ''local nginx integration''; - virtualHost = mkOption { - type = types.attrs; - default = { }; - description = "Virtual-host configuration merged with all Sourcehut's virtual-hosts."; - }; - }; - - postfix = { - enable = mkEnableOption ''local postfix integration''; - }; - - postgresql = { - enable = mkEnableOption ''local postgresql integration''; - }; - - redis = { - enable = mkEnableOption ''local redis integration in a dedicated redis-server''; - }; - - settings = mkOption { - type = lib.types.submodule { - freeformType = settingsFormat.type; - options."sr.ht" = { - global-domain = mkOption { - description = "Global domain name."; - type = types.str; - example = "example.com"; - }; - environment = mkOption { - description = "Values other than \"production\" adds a banner to each page."; - type = types.enum [ - "development" - "production" - ]; - default = "development"; - }; - network-key = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to a secret key to encrypt internal messages with. Use `srht-keygen network` to - generate this key. It must be consistent between all services and nodes. - ''; - type = types.path; - apply = s: "<" + toString s; - }; - owner-email = mkOption { - description = "Owner's email."; - type = types.str; - default = "contact@example.com"; - }; - owner-name = mkOption { - description = "Owner's name."; - type = types.str; - default = "John Doe"; - }; - site-blurb = mkOption { - description = "Blurb for your site."; - type = types.str; - default = "the hacker's forge"; - }; - site-info = mkOption { - description = "The top-level info page for your site."; - type = types.str; - default = "https://sourcehut.org"; - }; - service-key = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to a key used for encrypting session cookies. Use `srht-keygen service` to - generate the service key. This must be shared between each node of the same - service (e.g. git1.sr.ht and git2.sr.ht), but different services may use - different keys. If you configure all of your services with the same - config.ini, you may use the same service-key for all of them. - ''; - type = types.path; - apply = s: "<" + toString s; - }; - site-name = mkOption { - description = "The name of your network of sr.ht-based sites."; - type = types.str; - default = "sourcehut"; - }; - source-url = mkOption { - description = "The source code for your fork of sr.ht."; - type = types.str; - default = "https://git.sr.ht/~sircmpwn/srht"; - }; - }; - options.mail = { - smtp-host = mkOptionNullOrStr "Outgoing SMTP host."; - smtp-port = mkOption { - description = "Outgoing SMTP port."; - type = with types; nullOr port; - default = null; - }; - smtp-user = mkOptionNullOrStr "Outgoing SMTP user."; - smtp-password = mkOptionNullOrStr "Outgoing SMTP password."; - smtp-from = mkOption { - type = types.str; - description = "Outgoing SMTP FROM."; - }; - error-to = mkOptionNullOrStr "Address receiving application exceptions"; - error-from = mkOptionNullOrStr "Address sending application exceptions"; - pgp-privkey = mkOption { - type = types.str; - description = '' - An absolute file path (which should be outside the Nix-store) - to an OpenPGP private key. - - Your PGP key information (DO NOT mix up pub and priv here) - You must remove the password from your secret key, if present. - You can do this with `gpg --edit-key [key-id]`, - then use the `passwd` command and do not enter a new password. - ''; - }; - pgp-pubkey = mkOption { - type = with types; either path str; - description = "OpenPGP public key."; - }; - pgp-key-id = mkOption { - type = types.str; - description = "OpenPGP key identifier."; - }; - }; - options.objects = { - s3-upstream = mkOption { - description = "Configure the S3-compatible object storage service."; - type = with types; nullOr str; - default = null; - }; - s3-access-key = mkOption { - description = "Access key to the S3-compatible object storage service"; - type = with types; nullOr str; - default = null; - }; - s3-secret-key = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to the secret key of the S3-compatible object storage service. - ''; - type = with types; nullOr path; - default = null; - apply = mapNullable (s: "<" + toString s); - }; - }; - options.webhooks = { - private-key = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to a base64-encoded Ed25519 key for signing webhook payloads. - This should be consistent for all *.sr.ht sites, - as this key will be used to verify signatures - from other sites in your network. - Use the `srht-keygen webhook` command to generate a key. - ''; - type = types.path; - apply = s: "<" + toString s; - }; - }; - - options."builds.sr.ht" = commonServiceSettings "builds" // { - allow-free = mkEnableOption "nonpaying users to submit builds"; - redis = mkOption { - description = "The Redis connection used for the Celery worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-builds.sr.ht/redis.sock?virtual_host=2"; - }; - shell = mkOption { - description = '' - Scripts used to launch on SSH connection. - `/usr/bin/master-shell` on master, - `/usr/bin/runner-shell` on runner. - If master and worker are on the same system - set to `/usr/bin/runner-shell`. - ''; - type = types.enum [ - "/usr/bin/master-shell" - "/usr/bin/runner-shell" - ]; - default = "/usr/bin/master-shell"; - }; - }; - options."builds.sr.ht::worker" = { - bind-address = mkOption { - description = '' - HTTP bind address for serving local build information/monitoring. - ''; - type = types.str; - default = "localhost:8080"; - }; - buildlogs = mkOption { - description = "Path to write build logs."; - type = types.str; - default = "/var/log/sourcehut/buildsrht-worker"; - }; - name = mkOption { - description = '' - Listening address and listening port - of the build runner (with HTTP port if not 80). - ''; - type = types.str; - default = "localhost:5020"; - }; - timeout = mkOption { - description = '' - Max build duration. - See . - ''; - type = types.str; - default = "3m"; - }; - }; - - options."git.sr.ht" = commonServiceSettings "git" // { - outgoing-domain = mkOption { - description = "Outgoing domain."; - type = types.str; - default = "https://git.localhost.localdomain"; - }; - post-update-script = mkOption { - description = '' - A post-update script which is installed in every git repo. - This setting is propagated to newer and existing repositories. - ''; - type = types.path; - default = "${cfg.git.package}/bin/git.sr.ht-update-hook"; - defaultText = "\${pkgs.sourcehut.gitsrht}/bin/git.sr.ht-update-hook"; - }; - repos = mkOption { - description = '' - Path to git repositories on disk. - If changing the default, you must ensure that - the gitsrht's user as read and write access to it. - ''; - type = types.str; - default = "/var/lib/sourcehut/git.sr.ht/repos"; - }; - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-git.sr.ht/redis.sock?virtual_host=1"; - }; - }; - options."git.sr.ht::api" = { - internal-ipnet = mkOption { - description = '' - Set of IP subnets which are permitted to utilize internal API - authentication. This should be limited to the subnets - from which your *.sr.ht services are running. - See [](#opt-services.sourcehut.listenAddress). - ''; - type = with types; listOf str; - default = [ - "127.0.0.0/8" - "::1/128" - ]; - }; - }; - - options."hg.sr.ht" = commonServiceSettings "hg" // { - changegroup-script = mkOption { - description = '' - A changegroup script which is installed in every mercurial repo. - This setting is propagated to newer and existing repositories. - ''; - type = types.str; - default = "${cfg.hg.package}/bin/hg.sr.ht-hook-changegroup"; - defaultText = "\${pkgs.sourcehut.hgsrht}/bin/hg.sr.ht-hook-changegroup"; - }; - repos = mkOption { - description = '' - Path to mercurial repositories on disk. - If changing the default, you must ensure that - the hgsrht's user as read and write access to it. - ''; - type = types.str; - default = "/var/lib/sourcehut/hg.sr.ht/repos"; - }; - srhtext = mkOptionNullOrStr '' - Path to the srht mercurial extension - (defaults to where the hgsrht code is) - ''; - clone_bundle_threshold = mkOption { - description = ".hg/store size (in MB) past which the nightly job generates clone bundles."; - type = types.ints.unsigned; - default = 50; - }; - hg_ssh = mkOption { - description = "Path to hg-ssh (if not in $PATH)."; - type = types.str; - default = "${pkgs.mercurial}/bin/hg-ssh"; - defaultText = "\${pkgs.mercurial}/bin/hg-ssh"; - }; - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-hg.sr.ht/redis.sock?virtual_host=1"; - }; - }; - - options."hub.sr.ht" = commonServiceSettings "hub" // { - }; - - options."lists.sr.ht" = commonServiceSettings "lists" // { - allow-new-lists = mkEnableOption "creation of new lists"; - notify-from = mkOption { - description = "Outgoing email for notifications generated by users."; - type = types.str; - default = "lists-notify@localhost.localdomain"; - }; - posting-domain = mkOption { - description = "Posting domain."; - type = types.str; - default = "lists.localhost.localdomain"; - }; - redis = mkOption { - description = "The Redis connection used for the Celery worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-lists.sr.ht/redis.sock?virtual_host=2"; - }; - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-lists.sr.ht/redis.sock?virtual_host=1"; - }; - }; - options."lists.sr.ht::worker" = { - reject-mimetypes = mkOption { - description = '' - Comma-delimited list of Content-Types to reject. Messages with Content-Types - included in this list are rejected. Multipart messages are always supported, - and each part is checked against this list. - - Uses fnmatch for wildcard expansion. - ''; - type = with types; listOf str; - default = [ "text/html" ]; - }; - reject-url = mkOption { - description = "Reject URL."; - type = types.str; - default = "https://man.sr.ht/lists.sr.ht/etiquette.md"; - }; - sock = mkOption { - description = '' - Path for the lmtp daemon's unix socket. Direct incoming mail to this socket. - Alternatively, specify IP:PORT and an SMTP server will be run instead. - ''; - type = types.str; - default = "/tmp/lists.sr.ht-lmtp.sock"; - }; - sock-group = mkOption { - description = '' - The lmtp daemon will make the unix socket group-read/write - for users in this group. - ''; - type = types.str; - default = "postfix"; - }; - }; - - options."man.sr.ht" = commonServiceSettings "man" // { - }; - - options."meta.sr.ht" = - removeAttrs (commonServiceSettings "meta") [ - "oauth-client-id" - "oauth-client-secret" - ] - // { - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-meta.sr.ht/redis.sock?virtual_host=1"; - }; - welcome-emails = mkEnableOption "sending stock sourcehut welcome emails after signup"; - }; - options."meta.sr.ht::api" = { - internal-ipnet = mkOption { - description = '' - Set of IP subnets which are permitted to utilize internal API - authentication. This should be limited to the subnets - from which your *.sr.ht services are running. - See [](#opt-services.sourcehut.listenAddress). - ''; - type = with types; listOf str; - default = [ - "127.0.0.0/8" - "::1/128" - ]; - }; - }; - options."meta.sr.ht::aliases" = mkOption { - description = "Aliases for the client IDs of commonly used OAuth clients."; - type = with types; attrsOf int; - default = { }; - example = { - "git.sr.ht" = 12345; - }; - }; - options."meta.sr.ht::billing" = { - enabled = mkEnableOption "the billing system"; - stripe-public-key = mkOptionNullOrStr "Public key for Stripe. Get your keys at "; - stripe-secret-key = - mkOptionNullOrStr '' - An absolute file path (which should be outside the Nix-store) - to a secret key for Stripe. Get your keys at - '' - // { - apply = mapNullable (s: "<" + toString s); - }; - }; - options."meta.sr.ht::settings" = { - registration = mkEnableOption "public registration"; - onboarding-redirect = mkOption { - description = "Where to redirect new users upon registration."; - type = types.str; - default = "https://meta.localhost.localdomain"; - }; - user-invites = mkOption { - description = '' - How many invites each user is issued upon registration - (only applicable if open registration is disabled). - ''; - type = types.ints.unsigned; - default = 5; - }; - }; - - options."pages.sr.ht" = commonServiceSettings "pages" // { - gemini-certs = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to Gemini certificates. - ''; - type = with types; nullOr path; - default = null; - }; - max-site-size = mkOption { - description = "Maximum size of any given site (post-gunzip), in MiB."; - type = types.int; - default = 1024; - }; - user-domain = mkOption { - description = '' - Configures the user domain, if enabled. - All users are given \.this.domain. - ''; - type = with types; nullOr str; - default = null; - }; - }; - options."pages.sr.ht::api" = { - internal-ipnet = mkOption { - description = '' - Set of IP subnets which are permitted to utilize internal API - authentication. This should be limited to the subnets - from which your *.sr.ht services are running. - See [](#opt-services.sourcehut.listenAddress). - ''; - type = with types; listOf str; - default = [ - "127.0.0.0/8" - "::1/128" - ]; - }; - }; - - options."paste.sr.ht" = commonServiceSettings "paste" // { - }; - - options."todo.sr.ht" = commonServiceSettings "todo" // { - notify-from = mkOption { - description = "Outgoing email for notifications generated by users."; - type = types.str; - default = "todo-notify@localhost.localdomain"; - }; - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-todo.sr.ht/redis.sock?virtual_host=1"; - }; - }; - options."todo.sr.ht::mail" = { - posting-domain = mkOption { - description = "Posting domain."; - type = types.str; - default = "todo.localhost.localdomain"; - }; - sock = mkOption { - description = '' - Path for the lmtp daemon's unix socket. Direct incoming mail to this socket. - Alternatively, specify IP:PORT and an SMTP server will be run instead. - ''; - type = types.str; - default = "/tmp/todo.sr.ht-lmtp.sock"; - }; - sock-group = mkOption { - description = '' - The lmtp daemon will make the unix socket group-read/write - for users in this group. - ''; - type = types.str; - default = "postfix"; - }; - }; - }; - default = { }; - description = '' - The configuration for the sourcehut network. - ''; - }; - - builds = { - enableWorker = mkEnableOption '' - worker for builds.sr.ht - - ::: {.warning} - For smaller deployments, job runners can be installed alongside the master server - but even if you only build your own software, integration with other services - may cause you to run untrusted builds - (e.g. automatic testing of patches via listssrht). - See . - ::: - ''; - - images = mkOption { - type = with types; attrsOf (attrsOf (attrsOf package)); - default = { }; - example = lib.literalExpression '' - (let - # Pinning unstable to allow usage with flakes and limit rebuilds. - pkgs_unstable = builtins.fetchGit { - url = "https://github.com/NixOS/nixpkgs"; - rev = "ff96a0fa5635770390b184ae74debea75c3fd534"; - ref = "nixos-unstable"; - }; - image_from_nixpkgs = (import ("''${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") { - pkgs = (import pkgs_unstable {}); - }); - in - { - nixos.unstable.x86_64 = image_from_nixpkgs; - } - )''; - description = '' - Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2. - ''; - }; - }; - - git = { - gitPackage = mkPackageOption pkgs "git" { - example = "gitFull"; - }; - fcgiwrap.preforkProcess = mkOption { - description = "Number of fcgiwrap processes to prefork."; - type = types.int; - default = 4; - }; - }; - - hg = { - mercurialPackage = mkPackageOption pkgs "mercurial" { }; - cloneBundles = mkOption { - type = types.bool; - default = false; - description = '' - Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories). - ''; - }; - }; - - lists = { - process = { - extraArgs = mkOption { - type = with types; listOf str; - default = [ - "--loglevel DEBUG" - "--pool eventlet" - "--without-heartbeat" - ]; - description = "Extra arguments passed to the Celery responsible for processing mails."; - }; - celeryConfig = mkOption { - type = types.lines; - default = ""; - description = "Content of the `celeryconfig.py` used by the Celery of `listssrht-process`."; - }; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - { - # TODO: make configurable - environment.systemPackages = [ pkgs.sourcehut.coresrht ]; - - services.sourcehut.settings = { - "git.sr.ht".outgoing-domain = mkDefault "https://git.${domain}"; - "lists.sr.ht".notify-from = mkDefault "lists-notify@${domain}"; - "lists.sr.ht".posting-domain = mkDefault "lists.${domain}"; - "meta.sr.ht::settings".onboarding-redirect = mkDefault "https://meta.${domain}"; - "todo.sr.ht".notify-from = mkDefault "todo-notify@${domain}"; - "todo.sr.ht::mail".posting-domain = mkDefault "todo.${domain}"; - }; - } - (mkIf cfg.postgresql.enable { - assertions = [ - { - assertion = postgresql.enable; - message = "postgresql must be enabled and configured"; - } - ]; - }) - (mkIf cfg.postfix.enable { - assertions = [ - { - assertion = postfix.enable; - message = "postfix must be enabled and configured"; - } - ]; - # Needed for sharing the LMTP sockets with JoinsNamespaceOf= - systemd.services.postfix.serviceConfig.PrivateTmp = true; - }) - (mkIf cfg.redis.enable { - services.redis.vmOverCommit = mkDefault true; - }) - (mkIf cfg.nginx.enable { - assertions = [ - { - assertion = nginx.enable; - message = "nginx must be enabled and configured"; - } - ]; - # For proxyPass= in virtual-hosts for Sourcehut services. - services.nginx.recommendedProxySettings = mkDefault true; - }) - (mkIf (cfg.builds.enable || cfg.git.enable || cfg.hg.enable) { - services.openssh = { - # Note that sshd will continue to honor AuthorizedKeysFile. - # Note that you may want automatically rotate - # or link to /dev/null the following log files: - # - /var/log/gitsrht-dispatch - # - /var/log/{build,git,hg}srht-keys - # - /var/log/{git,hg}srht-shell - # - /var/log/gitsrht-update-hook - authorizedKeysCommand = ''/etc/ssh/sourcehut/subdir/srht-dispatch "%u" "%h" "%t" "%k"''; - # srht-dispatch will setuid/setgid according to [git.sr.ht::dispatch] - authorizedKeysCommandUser = "root"; - extraConfig = '' - PermitUserEnvironment SRHT_* - ''; - startWhenNeeded = false; - }; - environment.etc."ssh/sourcehut/config.ini".source = - settingsFormat.generate "sourcehut-dispatch-config.ini" - (filterAttrs (k: v: k == "git.sr.ht::dispatch") cfg.settings); - environment.etc."ssh/sourcehut/subdir/srht-dispatch" = { - # sshd_config(5): The program must be owned by root, not writable by group or others - mode = "0755"; - source = pkgs.writeShellScript "srht-dispatch-wrapper" '' - set -e - set -x - cd /etc/ssh/sourcehut/subdir - ${cfg.git.package}/bin/git.sr.ht-dispatch "$@" - ''; - }; - systemd.tmpfiles.settings."10-sourcehut-gitsrht" = mkIf cfg.git.enable (mkMerge [ - (builtins.listToAttrs ( - map - (name: { - name = "/var/log/sourcehut/git.sr.ht-${name}"; - value.f = { - inherit (cfg.git) user group; - mode = "0644"; - }; - }) - [ - "keys" - "shell" - "update-hook" - ] - )) - { - ${cfg.settings."git.sr.ht".repos}.d = { - inherit (cfg.git) user group; - mode = "0644"; - }; - } - ]); - systemd.services.sshd = { - preStart = mkIf cfg.hg.enable '' - chown ${cfg.hg.user}:${cfg.hg.group} /var/log/sourcehut/hg.sr.ht-keys - ''; - serviceConfig = { - LogsDirectory = "sourcehut"; - BindReadOnlyPaths = - # Note that those /usr/bin/* paths are hardcoded in multiple places in *.sr.ht, - # for instance to get the user from the [git.sr.ht::dispatch] settings. - # *srht-keys needs to: - # - access a redis-server in [sr.ht] redis-host, - # - access the PostgreSQL server in [*.sr.ht] connection-string, - # - query metasrht-api (through the HTTP API). - # Using this has the side effect of creating empty files in /usr/bin/ - optionals cfg.builds.enable [ - "${pkgs.writeShellScript "buildsrht-keys-wrapper" '' - set -e - cd /run/sourcehut/buildsrht/subdir - exec -a "$0" ${cfg.builds.package}/bin/builds.sr.ht-keys "$@" - ''}:/usr/bin/buildsrht-keys" - "${cfg.builds.package}/bin/master-shell:/usr/bin/master-shell" - "${cfg.builds.package}/bin/runner-shell:/usr/bin/runner-shell" - ] - ++ optionals cfg.git.enable [ - # /path/to/gitsrht-keys calls /path/to/gitsrht-shell, - # or [git.sr.ht] shell= if set. - "${pkgs.writeShellScript "gitsrht-keys-wrapper" '' - set -e - cd /run/sourcehut/git.sr.ht/subdir - exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-keys "$@" - ''}:/usr/bin/git.sr.ht-keys" - "${pkgs.writeShellScript "gitsrht-shell-wrapper" '' - set -e - cd /run/sourcehut/git.sr.ht/subdir - export PATH="${cfg.git.gitPackage}/bin:$PATH" - export SRHT_CONFIG=/run/sourcehut/git.sr.ht/config.ini - exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-shell "$@" - ''}:/usr/bin/git.sr.ht-shell" - "${pkgs.writeShellScript "gitsrht-update-hook" '' - set -e - export SRHT_CONFIG=/run/sourcehut/git.sr.ht/config.ini - # hooks/post-update calls /usr/bin/gitsrht-update-hook as hooks/stage-3 - # but this wrapper being a bash script, it overrides $0 with /usr/bin/gitsrht-update-hook - # hence this hack to put hooks/stage-3 back into gitsrht-update-hook's $0 - if test "''${STAGE3:+set}" - then - exec -a hooks/stage-3 ${cfg.git.package}/bin/git.sr.ht-update-hook "$@" - else - export STAGE3=set - exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-update-hook "$@" - fi - ''}:/usr/bin/git.sr.ht-update-hook" - ] - ++ optionals cfg.hg.enable [ - # /path/to/hgsrht-keys calls /path/to/hgsrht-shell, - # or [hg.sr.ht] shell= if set. - "${pkgs.writeShellScript "hgsrht-keys-wrapper" '' - set -e - cd /run/sourcehut/hg.sr.ht/subdir - exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-keys "$@" - ''}:/usr/bin/hg.sr.ht-keys" - "${pkgs.writeShellScript "hg.sr.ht-shell-wrapper" '' - set -e - cd /run/sourcehut/hg.sr.ht/subdir - exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-shell "$@" - ''}:/usr/bin/hg.sr.ht-shell" - # Mercurial's changegroup hooks are run relative to their repository's directory, - # but hgsrht-hook-changegroup looks up ./config.ini - "${pkgs.writeShellScript "hgsrht-hook-changegroup" '' - set -e - test -e "''$PWD"/config.ini || - ln -s /run/sourcehut/hg.sr.ht/config.ini "''$PWD"/config.ini - exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-hook-changegroup "$@" - ''}:/usr/bin/hg.sr.ht-hook-changegroup" - ]; - }; - }; - }) - ]); - - imports = [ - - (import ./service.nix "builds" { - inherit configIniOfService; - pkgname = "buildsrht"; - port = 5002; - extraServices."build.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.builds.package}/bin/builds.sr.ht-api -b ${cfg.listenAddress}:${ - toString (cfg.builds.port + 100) - }"; - }; - # TODO: a celery worker on the master and worker are apparently needed - extraServices."build.sr.ht-worker" = - let - qemuPackage = pkgs.qemu_kvm; - serviceName = "buildsrht-worker"; - statePath = "/var/lib/sourcehut/${serviceName}"; - in - mkIf cfg.builds.enableWorker { - path = [ - pkgs.openssh - pkgs.docker - ]; - preStart = '' - set -x - if test -z "$(docker images -q qemu:latest 2>/dev/null)" \ - || test "$(cat ${statePath}/docker-image-qemu)" != "${qemuPackage.version}" - then - # Create and import qemu:latest image for docker - ${ - pkgs.dockerTools.streamLayeredImage { - name = "qemu"; - tag = "latest"; - contents = [ qemuPackage ]; - } - } | docker load - # Mark down current package version - echo '${qemuPackage.version}' >${statePath}/docker-image-qemu - fi - ''; - serviceConfig = { - ExecStart = "${cfg.builds.package}/bin/builds.sr.ht-worker"; - BindPaths = [ cfg.settings."builds.sr.ht::worker".buildlogs ]; - LogsDirectory = [ "sourcehut/${serviceName}" ]; - RuntimeDirectory = [ "sourcehut/${serviceName}/subdir" ]; - StateDirectory = [ "sourcehut/${serviceName}" ]; - TimeoutStartSec = "1800s"; - # buildsrht-worker looks up ../config.ini - WorkingDirectory = "-" + "/run/sourcehut/${serviceName}/subdir"; - }; - }; - extraConfig = - let - image_dirs = flatten ( - mapAttrsToList ( - distro: revs: - mapAttrsToList ( - rev: archs: - mapAttrsToList ( - arch: image: - pkgs.runCommand "buildsrht-images" { } '' - mkdir -p $out/${distro}/${rev}/${arch} - ln -s ${image}/*.qcow2 $out/${distro}/${rev}/${arch}/root.img.qcow2 - '' - ) archs - ) revs - ) cfg.builds.images - ); - image_dir_pre = pkgs.symlinkJoin { - name = "buildsrht-worker-images-pre"; - paths = image_dirs; - # FIXME: not working, apparently because ubuntu/latest is a broken link - # ++ [ "${cfg.builds.package}/lib/images" ]; - }; - image_dir = pkgs.runCommand "buildsrht-worker-images" { } '' - mkdir -p $out/images - cp -Lr ${image_dir_pre}/* $out/images - ''; - in - mkMerge [ - { - users.users.${cfg.builds.user}.shell = pkgs.bash; - - virtualisation.docker.enable = true; - - services.sourcehut.settings = mkMerge [ - { - # Note that git.sr.ht::dispatch is not a typo, - # gitsrht-dispatch always use this section - "git.sr.ht::dispatch"."/usr/bin/builds.sr.ht-keys" = - mkDefault "${cfg.builds.user}:${cfg.builds.group}"; - } - (mkIf cfg.builds.enableWorker { - "builds.sr.ht::worker".shell = "/usr/bin/runner-shell"; - "builds.sr.ht::worker".images = mkDefault "${image_dir}/images"; - "builds.sr.ht::worker".controlcmd = mkDefault "${image_dir}/images/control"; - }) - ]; - } - (mkIf cfg.builds.enableWorker { - users.groups = { - docker.members = [ cfg.builds.user ]; - }; - }) - (mkIf (cfg.builds.enableWorker && cfg.nginx.enable) { - # Allow nginx access to buildlogs - users.users.${nginx.user}.extraGroups = [ cfg.builds.group ]; - systemd.services.nginx = { - serviceConfig.BindReadOnlyPaths = [ cfg.settings."builds.sr.ht::worker".buildlogs ]; - }; - services.nginx.virtualHosts."logs.${domain}" = mkMerge [ - { - /* - FIXME: is a listen needed? - listen = with builtins; - # FIXME: not compatible with IPv6 - let address = split ":" cfg.settings."builds.sr.ht::worker".name; in - [{ addr = elemAt address 0; port = lib.toInt (elemAt address 2); }]; - */ - locations."/logs/".alias = cfg.settings."builds.sr.ht::worker".buildlogs + "/"; - } - cfg.nginx.virtualHost - ]; - }) - ]; - }) - - (import ./service.nix "git" ( - let - baseService = { - path = [ cfg.git.gitPackage ]; - serviceConfig.BindPaths = [ - "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos" - ]; - }; - in - { - inherit configIniOfService; - mainService = mkMerge [ - baseService - { - serviceConfig.StateDirectory = [ - "sourcehut/git.sr.ht" - "sourcehut/git.sr.ht/repos" - ]; - preStart = mkIf (versionOlder config.system.stateVersion "22.05") (mkBefore '' - # Fix Git hooks of repositories pre-dating https://github.com/NixOS/nixpkgs/pull/133984 - ( - set +f - shopt -s nullglob - for h in /var/lib/sourcehut/git.sr.ht/repos/~*/*/hooks/{pre-receive,update,post-update} - do ln -fnsv /usr/bin/git.sr.ht-update-hook "$h"; done - ) - ''); - } - ]; - port = 5001; - webhooks = true; - extraTimers."git.sr.ht-periodic" = { - service = baseService; - timerConfig.OnCalendar = [ "*:0/20" ]; - }; - extraConfig = mkMerge [ - { - # https://stackoverflow.com/questions/22314298/git-push-results-in-fatal-protocol-error-bad-line-length-character-this - # Probably could use gitsrht-shell if output is restricted to just parameters... - users.users.${cfg.git.user}.shell = pkgs.bash; - services.sourcehut.settings = { - "git.sr.ht::dispatch"."/usr/bin/git.sr.ht-keys" = mkDefault "${cfg.git.user}:${cfg.git.group}"; - }; - systemd.services.sshd = baseService; - } - (mkIf cfg.nginx.enable { - services.nginx.virtualHosts."git.${domain}" = { - locations."/authorize" = { - proxyPass = "http://${cfg.listenAddress}:${toString cfg.git.port}"; - extraConfig = '' - proxy_pass_request_body off; - proxy_set_header Content-Length ""; - proxy_set_header X-Original-URI $request_uri; - ''; - }; - locations."~ ^/([^/]+)/([^/]+)/(HEAD|info/refs|objects/info/.*|git-upload-pack).*$" = { - root = "/var/lib/sourcehut/git.sr.ht/repos"; - fastcgiParams = { - GIT_HTTP_EXPORT_ALL = ""; - GIT_PROJECT_ROOT = "$document_root"; - PATH_INFO = "$uri"; - SCRIPT_FILENAME = "${cfg.git.gitPackage}/bin/git-http-backend"; - }; - extraConfig = '' - auth_request /authorize; - fastcgi_read_timeout 500s; - fastcgi_pass unix:/run/git.sr.ht-fcgiwrap.sock; - gzip off; - ''; - }; - }; - systemd.sockets."git.sr.ht-fcgiwrap" = { - before = [ "nginx.service" ]; - wantedBy = [ - "sockets.target" - "git.sr.ht.service" - ]; - # This path remains accessible to nginx.service, which has no RootDirectory= - socketConfig.ListenStream = "/run/git.sr.ht-fcgiwrap.sock"; - socketConfig.SocketUser = nginx.user; - socketConfig.SocketMode = "600"; - }; - }) - ]; - extraServices."git.sr.ht-api".serviceConfig = { - Restart = "always"; - RestartSec = "5s"; - ExecStart = "${cfg.git.package}/bin/git.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.git.port + 100)}"; - BindPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos" ]; - }; - extraServices."git.sr.ht-fcgiwrap" = mkIf cfg.nginx.enable { - serviceConfig = { - # Socket is passed by gitsrht-fcgiwrap.socket - ExecStart = "${pkgs.fcgiwrap}/bin/fcgiwrap -c ${toString cfg.git.fcgiwrap.preforkProcess}"; - # No need for config.ini - ExecStartPre = mkForce [ ]; - # FIXME: Fails to start with dynamic user - # User = null; - # DynamicUser = true; - BindReadOnlyPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos" ]; - IPAddressDeny = "any"; - InaccessiblePaths = [ - "-+/run/postgresql" - "-+/run/redis-sourcehut" - ]; - PrivateNetwork = true; - RestrictAddressFamilies = mkForce [ "none" ]; - SystemCallFilter = mkForce [ - "@system-service" - "~@aio" - "~@keyring" - "~@memlock" - "~@privileged" - "~@resources" - "~@setuid" - # @timer is needed for alarm() - ]; - }; - }; - } - )) - - (import ./service.nix "hg" ( - let - baseService = { - path = [ cfg.hg.mercurialPackage ]; - serviceConfig.BindPaths = [ "${cfg.settings."hg.sr.ht".repos}:/var/lib/sourcehut/hg.sr.ht/repos" ]; - }; - in - { - inherit configIniOfService; - mainService = mkMerge [ - baseService - { - serviceConfig.StateDirectory = [ - "sourcehut/hg.sr.ht" - "sourcehut/hg.sr.ht/repos" - ]; - } - ]; - port = 5010; - webhooks = true; - extraTimers."hg.sr.ht-periodic" = { - service = baseService; - timerConfig.OnCalendar = [ "*:0/20" ]; - }; - extraTimers."hg.sr.ht-clonebundles" = mkIf cfg.hg.cloneBundles { - service = baseService; - timerConfig.OnCalendar = [ "daily" ]; - timerConfig.AccuracySec = "1h"; - }; - extraServices."hg.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.hgsrht.package}/bin/hg.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.hg.port + 100)}"; - }; - extraConfig = mkMerge [ - { - users.users.${cfg.hg.user}.shell = pkgs.bash; - services.sourcehut.settings = { - # Note that git.sr.ht::dispatch is not a typo, - # gitsrht-dispatch always uses this section. - "git.sr.ht::dispatch"."/usr/bin/hg.sr.ht-keys" = mkDefault "${cfg.hg.user}:${cfg.hg.group}"; - }; - systemd.services.sshd = baseService; - } - (mkIf cfg.nginx.enable { - # Allow nginx access to repositories - users.users.${nginx.user}.extraGroups = [ cfg.hg.group ]; - services.nginx.virtualHosts."hg.${domain}" = { - locations."/authorize" = { - proxyPass = "http://${cfg.listenAddress}:${toString cfg.hg.port}"; - extraConfig = '' - proxy_pass_request_body off; - proxy_set_header Content-Length ""; - proxy_set_header X-Original-URI $request_uri; - ''; - }; - # Let clients reach pull bundles. We don't really need to lock this down even for - # private repos because the bundles are named after the revision hashes... - # so someone would need to know or guess a SHA value to download anything. - # TODO: proxyPass to an hg serve service? - locations."~ ^/[~^][a-z0-9_]+/[a-zA-Z0-9_.-]+/\\.hg/bundles/.*$" = { - root = "/var/lib/nginx/hg.sr.ht/repos"; - extraConfig = '' - auth_request /authorize; - gzip off; - ''; - }; - }; - systemd.services.nginx = { - serviceConfig.BindReadOnlyPaths = [ - "${cfg.settings."hg.sr.ht".repos}:/var/lib/nginx/hg.sr.ht/repos" - ]; - }; - }) - ]; - } - )) - - (import ./service.nix "hub" { - inherit configIniOfService; - port = 5014; - extraConfig = { - services.nginx = mkIf cfg.nginx.enable { - virtualHosts."hub.${domain}" = mkMerge [ - { - serverAliases = [ domain ]; - } - cfg.nginx.virtualHost - ]; - }; - }; - }) - - (import ./service.nix "lists" ( - let - srvsrht = "listssrht"; - in - { - inherit configIniOfService; - port = 5006; - webhooks = true; - extraServices."lists.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.lists.package}/bin/lists.sr.ht-api -b ${cfg.listenAddress}:${ - toString (cfg.lists.port + 100) - }"; - }; - # Receive the mail from Postfix and enqueue them into Redis and PostgreSQL - extraServices."lists.sr.ht-lmtp" = { - wants = [ "postfix.service" ]; - unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service"; - serviceConfig.ExecStart = "${cfg.lists.package}/bin/lists.sr.ht-lmtp"; - # Avoid crashing: os.chown(sock, os.getuid(), sock_gid) - serviceConfig.PrivateUsers = mkForce false; - }; - # Dequeue the mails from Redis and dispatch them - extraServices."lists.sr.ht-process" = { - serviceConfig = { - preStart = '' - cp ${pkgs.writeText "${srvsrht}-webhooks-celeryconfig.py" cfg.lists.process.celeryConfig} \ - /run/sourcehut/${srvsrht}-webhooks/celeryconfig.py - ''; - ExecStart = - "${cfg.python}/bin/celery --app listssrht.process worker --hostname listssrht-process@%%h " - + concatStringsSep " " cfg.lists.process.extraArgs; - # Avoid crashing: os.getloadavg() - ProcSubset = mkForce "all"; - }; - }; - extraConfig = mkIf cfg.postfix.enable { - users.groups.${postfix.group}.members = [ cfg.lists.user ]; - services.sourcehut.settings."lists.sr.ht::mail".sock-group = postfix.group; - services.postfix = { - destination = [ "lists.${domain}" ]; - # FIXME: an accurate recipient list should be queried - # from the lists.sr.ht PostgreSQL database to avoid backscattering. - # But usernames are unfortunately not in that database but in meta.sr.ht. - # Note that two syntaxes are allowed: - # - ~username/list-name@lists.${domain} - # - u.username.list-name@lists.${domain} - localRecipients = [ "@lists.${domain}" ]; - transport = '' - lists.${domain} lmtp:unix:${cfg.settings."lists.sr.ht::worker".sock} - ''; - }; - }; - } - )) - - (import ./service.nix "man" { - inherit configIniOfService; - port = 5004; - }) - - (import ./service.nix "meta" { - inherit configIniOfService; - port = 5000; - webhooks = true; - extraTimers.metasrht-daily.timerConfig = { - OnCalendar = [ "daily" ]; - AccuracySec = "1h"; - }; - extraServices."meta.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - preStart = - "set -x\n" - + concatStringsSep "\n\n" ( - attrValues ( - mapAttrs ( - k: s: - let - srvMatch = builtins.match "^([a-z]*)\\.sr\\.ht$" k; - srv = head srvMatch; - in - # Configure client(s) as "preauthorized" - optionalString (srvMatch != null && cfg.${srv}.enable && ((s.oauth-client-id or null) != null)) '' - # Configure ${srv}'s OAuth client as "preauthorized" - ${postgresql.package}/bin/psql '${cfg.settings."meta.sr.ht".connection-string}' \ - -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${s.oauth-client-id}'" - '' - ) cfg.settings - ) - ); - serviceConfig.ExecStart = "${cfg.meta.package}/bin/meta.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.meta.port + 100)}"; - }; - extraConfig = { - assertions = [ - { - assertion = - let - s = cfg.settings."meta.sr.ht::billing"; - in - s.enabled == "yes" -> (s.stripe-public-key != null && s.stripe-secret-key != null); - message = "If meta.sr.ht::billing is enabled, the keys must be defined."; - } - ]; - environment.systemPackages = optional cfg.meta.enable ( - pkgs.writeShellScriptBin "meta.sr.ht-manageuser" '' - set -eux - if test "$(${pkgs.coreutils}/bin/id -n -u)" != '${cfg.meta.user}' - then exec sudo -u '${cfg.meta.user}' "$0" "$@" - else - # In order to load config.ini - if cd /run/sourcehut/meta.sr.ht - then exec ${cfg.meta.package}/bin/meta.sr.ht-manageuser "$@" - else cat <${stateDir}/db - fi - - ${optionalString cfg.settings.${iniKey}.migrate-on-upgrade '' - # Just try all the migrations because they're not linked to the version - for sql in ${package}/share/sql/migrations/*.sql; do - ${postgresql.package}/bin/psql '${cfg.settings.${iniKey}.connection-string}' -f "$sql" || true - done - ''} - - # Disable webhook - touch ${stateDir}/webhook - ''; - serviceConfig = { - ExecStart = mkForce "${cfg.pages.package}/bin/pages.sr.ht -b ${cfg.listenAddress}:${toString cfg.pages.port}"; - }; - }; - }) - - (import ./service.nix "paste" { - inherit configIniOfService; - port = 5011; - extraServices."paste.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.paste.package}/bin/paste.sr.ht-api -b ${cfg.listenAddress}:${ - toString (cfg.paste.port + 100) - }"; - }; - }) - - (import ./service.nix "todo" { - inherit configIniOfService; - port = 5003; - webhooks = true; - extraServices."todo.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.todo.package}/bin/todo.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.todo.port + 100)}"; - }; - extraServices."todo.sr.ht-lmtp" = { - wants = [ "postfix.service" ]; - unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service"; - serviceConfig.ExecStart = "${cfg.todo.package}/bin/todo.sr.ht-lmtp"; - # Avoid crashing: os.chown(sock, os.getuid(), sock_gid) - serviceConfig.PrivateUsers = mkForce false; - }; - extraConfig = mkIf cfg.postfix.enable { - users.groups.${postfix.group}.members = [ cfg.todo.user ]; - services.sourcehut.settings."todo.sr.ht::mail".sock-group = postfix.group; - services.postfix = { - destination = [ "todo.${domain}" ]; - # FIXME: an accurate recipient list should be queried - # from the todo.sr.ht PostgreSQL database to avoid backscattering. - # But usernames are unfortunately not in that database but in meta.sr.ht. - # Note that two syntaxes are allowed: - # - ~username/tracker-name@todo.${domain} - # - u.username.tracker-name@todo.${domain} - localRecipients = [ "@todo.${domain}" ]; - transport = '' - todo.${domain} lmtp:unix:${cfg.settings."todo.sr.ht::mail".sock} - ''; - }; - }; - }) - - (mkRenamedOptionModule - [ "services" "sourcehut" "originBase" ] - [ "services" "sourcehut" "settings" "sr.ht" "global-domain" ] - ) - (mkRenamedOptionModule - [ "services" "sourcehut" "address" ] - [ "services" "sourcehut" "listenAddress" ] - ) - - (mkRemovedOptionModule [ "services" "sourcehut" "dispatch" ] '' - dispatch is deprecated. See https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/ - for more information. - '') - - (mkRemovedOptionModule [ "services" "sourcehut" "services" ] '' - This option was removed in favor of individual .enable flags. - '') - ]; - - meta.doc = ./default.md; - meta.maintainers = with maintainers; [ - tomberek - nessdoor - christoph-heiss - ]; -} diff --git a/nixos/modules/services/misc/sourcehut/service.nix b/nixos/modules/services/misc/sourcehut/service.nix deleted file mode 100644 index 65df1a05b86e..000000000000 --- a/nixos/modules/services/misc/sourcehut/service.nix +++ /dev/null @@ -1,499 +0,0 @@ -srv: -{ - configIniOfService, - pkgname ? "${srv}srht", # Because "buildsrht" does not follow that pattern (missing an "s"). - srvsrht ? "${srv}.sr.ht", - iniKey ? "${srv}.sr.ht", - webhooks ? false, - extraTimers ? { }, - mainService ? { }, - extraServices ? { }, - extraConfig ? { }, - port, -}: -{ - config, - lib, - pkgs, - ... -}: - -let - inherit (lib) types; - inherit (lib.attrsets) mapAttrs optionalAttrs; - inherit (lib.lists) optional; - inherit (lib.modules) - mkBefore - mkDefault - mkForce - mkIf - mkMerge - ; - inherit (lib.options) mkEnableOption mkOption mkPackageOption; - inherit (lib.strings) concatStringsSep hasSuffix optionalString; - inherit (config.services) postgresql; - redis = config.services.redis.servers."sourcehut-${srvsrht}"; - inherit (config.users) users; - cfg = config.services.sourcehut; - configIni = configIniOfService srv; - srvCfg = cfg.${srv}; - baseService = - serviceName: - { - allowStripe ? false, - }: - extraService: - let - runDir = "/run/sourcehut/${serviceName}"; - rootDir = "/run/sourcehut/chroots/${serviceName}"; - in - mkMerge [ - extraService - { - after = - [ "network.target" ] - ++ optional cfg.postgresql.enable "postgresql.target" - ++ optional cfg.redis.enable "redis-sourcehut-${srvsrht}.service"; - requires = - optional cfg.postgresql.enable "postgresql.target" - ++ optional cfg.redis.enable "redis-sourcehut-${srvsrht}.service"; - path = [ pkgs.gawk ]; - environment.HOME = runDir; - serviceConfig = { - User = mkDefault srvCfg.user; - Group = mkDefault srvCfg.group; - RuntimeDirectory = [ - "sourcehut/${serviceName}" - # Used by *srht-keys which reads ../config.ini - "sourcehut/${serviceName}/subdir" - "sourcehut/chroots/${serviceName}" - ]; - RuntimeDirectoryMode = "2750"; - # No need for the chroot path once inside the chroot - InaccessiblePaths = [ "-+${rootDir}" ]; - # g+rx is for group members (eg. fcgiwrap or nginx) - # to read Git/Mercurial repositories, buildlogs, etc. - # o+x is for intermediate directories created by BindPaths= and like, - # as they're owned by root:root. - UMask = "0026"; - RootDirectory = rootDir; - RootDirectoryStartOnly = true; - PrivateTmp = true; - MountAPIVFS = true; - # config.ini is looked up in there, before /etc/srht/config.ini - # Note that it fails to be set in ExecStartPre= - WorkingDirectory = mkDefault ("-" + runDir); - BindReadOnlyPaths = - [ - builtins.storeDir - "/etc" - "/run/booted-system" - "/run/current-system" - "/run/systemd" - ] - ++ optional cfg.postgresql.enable "/run/postgresql" - ++ optional cfg.redis.enable "/run/redis-sourcehut-${srvsrht}"; - # LoadCredential= are unfortunately not available in ExecStartPre= - # Hence this one is run as root (the +) with RootDirectoryStartOnly= - # to reach credentials wherever they are. - # Note that each systemd service gets its own ${runDir}/config.ini file. - ExecStartPre = mkBefore [ - ( - "+" - + pkgs.writeShellScript "${serviceName}-credentials" '' - set -x - # Replace values beginning with a '<' by the content of the file whose name is after. - gawk '{ if (match($0,/^([^=]+=)<(.+)/,m)) { getline f < m[2]; print m[1] f } else print $0 }' ${configIni} | - ${optionalString (!allowStripe) "gawk '!/^stripe-secret-key=/' |"} - install -o ${srvCfg.user} -g root -m 400 /dev/stdin ${runDir}/config.ini - '' - ) - ]; - # The following options are only for optimizing: - # systemd-analyze security - AmbientCapabilities = ""; - CapabilityBoundingSet = ""; - # ProtectClock= adds DeviceAllow=char-rtc r - DeviceAllow = ""; - LockPersonality = true; - MemoryDenyWriteExecute = true; - NoNewPrivileges = true; - PrivateDevices = true; - PrivateMounts = true; - PrivateNetwork = mkDefault false; - PrivateUsers = true; - ProcSubset = "pid"; - ProtectClock = true; - ProtectControlGroups = true; - ProtectHome = true; - ProtectHostname = true; - ProtectKernelLogs = true; - ProtectKernelModules = true; - ProtectKernelTunables = true; - ProtectProc = "invisible"; - ProtectSystem = "strict"; - RemoveIPC = true; - RestrictAddressFamilies = [ - "AF_UNIX" - "AF_INET" - "AF_INET6" - ]; - RestrictNamespaces = true; - RestrictRealtime = true; - RestrictSUIDSGID = true; - #SocketBindAllow = [ "tcp:${toString srvCfg.port}" "tcp:${toString srvCfg.prometheusPort}" ]; - #SocketBindDeny = "any"; - SystemCallFilter = [ - "@system-service" - "~@aio" - "~@keyring" - "~@memlock" - "~@privileged" - "~@timer" - "@chown" - "@setuid" - ]; - SystemCallArchitectures = "native"; - }; - } - ]; -in -{ - options.services.sourcehut.${srv} = - { - enable = mkEnableOption "${srv} service"; - - package = mkPackageOption pkgs [ "sourcehut" pkgname ] { }; - - user = mkOption { - type = types.str; - default = srvsrht; - description = '' - User for ${srv}.sr.ht. - ''; - }; - - group = mkOption { - type = types.str; - default = srvsrht; - description = '' - Group for ${srv}.sr.ht. - Membership grants access to the Git/Mercurial repositories by default, - but not to the config.ini file (where secrets are). - ''; - }; - - port = mkOption { - type = types.port; - default = port; - description = '' - Port on which the "${srv}" backend should listen. - ''; - }; - - redis = { - host = mkOption { - type = types.str; - default = "unix:///run/redis-sourcehut-${srvsrht}/redis.sock?db=0"; - example = "redis://shared.wireguard:6379/0"; - description = '' - The redis host URL. This is used for caching and temporary storage, and must - be shared between nodes (e.g. git1.sr.ht and git2.sr.ht), but need not be - shared between services. It may be shared between services, however, with no - ill effect, if this better suits your infrastructure. - ''; - }; - }; - - postgresql = { - database = mkOption { - type = types.str; - default = "${srv}.sr.ht"; - description = '' - PostgreSQL database name for the ${srv}.sr.ht service, - used if [](#opt-services.sourcehut.postgresql.enable) is `true`. - ''; - }; - }; - - gunicorn = { - extraArgs = mkOption { - type = with types; listOf str; - default = [ - "--timeout 120" - "--workers 1" - "--log-level=info" - ]; - description = "Extra arguments passed to Gunicorn."; - }; - }; - } - // optionalAttrs webhooks { - webhooks = { - extraArgs = mkOption { - type = with types; listOf str; - default = [ - "--loglevel DEBUG" - "--pool eventlet" - "--without-heartbeat" - ]; - description = "Extra arguments passed to the Celery responsible for webhooks."; - }; - celeryConfig = mkOption { - type = types.lines; - default = ""; - description = "Content of the `celeryconfig.py` used by the Celery responsible for webhooks."; - }; - }; - }; - - config = lib.mkIf (cfg.enable && srvCfg.enable) (mkMerge [ - extraConfig - { - users = { - users = { - "${srvCfg.user}" = { - isSystemUser = true; - group = mkDefault srvCfg.group; - description = mkDefault "sourcehut user for ${srv}.sr.ht"; - }; - }; - groups = - { - "${srvCfg.group}" = { }; - } - // - optionalAttrs - (cfg.postgresql.enable && hasSuffix "0" (postgresql.settings.unix_socket_permissions or "")) - { - "postgres".members = [ srvCfg.user ]; - } - // optionalAttrs (cfg.redis.enable && hasSuffix "0" (redis.settings.unixsocketperm or "")) { - "redis-sourcehut-${srvsrht}".members = [ srvCfg.user ]; - }; - }; - - services.nginx = mkIf cfg.nginx.enable { - virtualHosts."${srv}.${cfg.settings."sr.ht".global-domain}" = mkMerge [ - { - forceSSL = mkDefault true; - locations."/".proxyPass = "http://${cfg.listenAddress}:${toString srvCfg.port}"; - locations."/static" = { - root = "${srvCfg.package}/${pkgs.sourcehut.python.sitePackages}/${srvsrht}"; - extraConfig = mkDefault '' - expires 30d; - ''; - }; - locations."/query" = mkIf (cfg.settings.${iniKey} ? api-origin) { - proxyPass = cfg.settings.${iniKey}.api-origin; - extraConfig = '' - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; - add_header 'Access-Control-Allow-Headers' 'User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; - - if ($request_method = 'OPTIONS') { - add_header 'Access-Control-Max-Age' 1728000; - add_header 'Content-Type' 'text/plain; charset=utf-8'; - add_header 'Content-Length' 0; - return 204; - } - - add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; - ''; - }; - } - cfg.nginx.virtualHost - ]; - }; - - services.postgresql = mkIf cfg.postgresql.enable { - authentication = '' - local ${srvCfg.postgresql.database} ${srvCfg.user} trust - ''; - ensureDatabases = [ srvCfg.postgresql.database ]; - ensureUsers = map (name: { - inherit name; - # We don't use it because we have a special default database name with dots. - # TODO(for maintainers of sourcehut): migrate away from custom preStart script. - ensureDBOwnership = false; - }) [ srvCfg.user ]; - }; - - services.sourcehut.settings = mkMerge [ - { - "${srv}.sr.ht".origin = mkDefault "https://${srv}.${cfg.settings."sr.ht".global-domain}"; - } - - (mkIf cfg.postgresql.enable { - "${srv}.sr.ht".connection-string = - mkDefault "postgresql:///${srvCfg.postgresql.database}?user=${srvCfg.user}&host=/run/postgresql"; - }) - ]; - - services.redis.servers."sourcehut-${srvsrht}" = mkIf cfg.redis.enable { - enable = true; - databases = 3; - syslog = true; - # TODO: set a more informed value - save = mkDefault [ - [ - 1800 - 10 - ] - [ - 300 - 100 - ] - ]; - settings = { - # TODO: set a more informed value - maxmemory = "128MB"; - maxmemory-policy = "volatile-ttl"; - }; - }; - - systemd.services = mkMerge [ - { - "${srvsrht}" = baseService srvsrht { allowStripe = srv == "meta"; } (mkMerge [ - { - description = "sourcehut ${srv}.sr.ht website service"; - before = optional cfg.nginx.enable "nginx.service"; - wants = optional cfg.nginx.enable "nginx.service"; - wantedBy = [ "multi-user.target" ]; - path = optional cfg.postgresql.enable postgresql.package; - # Beware: change in credentials' content will not trigger restart. - restartTriggers = [ configIni ]; - serviceConfig = { - Type = "simple"; - Restart = mkDefault "always"; - #RestartSec = mkDefault "2min"; - StateDirectory = [ "sourcehut/${srvsrht}" ]; - StateDirectoryMode = "2750"; - ExecStart = - "${cfg.python}/bin/gunicorn ${pkgname}.app:app --name ${srvsrht} --bind ${cfg.listenAddress}:${toString srvCfg.port} " - + concatStringsSep " " srvCfg.gunicorn.extraArgs; - }; - preStart = - let - package = srvCfg.package; - version = package.version; - stateDir = "/var/lib/sourcehut/${srvsrht}"; - in - mkBefore '' - set -x - # Use the /run/sourcehut/${srvsrht}/config.ini - # installed by a previous ExecStartPre= in baseService - cd /run/sourcehut/${srvsrht} - - if test ! -e ${stateDir}/db; then - # Setup the initial database. - # Note that it stamps the alembic head afterward - ${postgresql.package}/bin/psql -d ${srvsrht} -f ${package}/share/sourcehut/${srvsrht}-schema.sql - echo ${version} >${stateDir}/db - fi - - ${optionalString cfg.settings.${iniKey}.migrate-on-upgrade '' - if [ "$(cat ${stateDir}/db)" != "${version}" ]; then - # Manage schema migrations using alembic - ${package}/bin/${srvsrht}-migrate -a upgrade head - echo ${version} >${stateDir}/db - fi - ''} - - # Update copy of each users' profile to the latest - # See https://lists.sr.ht/~sircmpwn/sr.ht-admins/<20190302181207.GA13778%40cirno.my.domain> - if test ! -e ${stateDir}/webhook; then - # Update ${iniKey}'s users' profile copy to the latest - ${cfg.python}/bin/sr.ht-update-profiles ${iniKey} - touch ${stateDir}/webhook - fi - ''; - } - mainService - ]); - } - - (mkIf webhooks { - "${srvsrht}-webhooks" = baseService "${srvsrht}-webhooks" { } { - description = "sourcehut ${srv}.sr.ht webhooks service"; - after = [ "${srvsrht}.service" ]; - wantedBy = [ "${srvsrht}.service" ]; - partOf = [ "${srvsrht}.service" ]; - preStart = '' - cp ${pkgs.writeText "${srvsrht}-webhooks-celeryconfig.py" srvCfg.webhooks.celeryConfig} \ - /run/sourcehut/${srvsrht}-webhooks/celeryconfig.py - ''; - serviceConfig = { - Type = "simple"; - Restart = "always"; - ExecStart = - "${cfg.python}/bin/celery --app ${pkgname}.webhooks worker --hostname ${srvsrht}-webhooks@%%h " - + concatStringsSep " " srvCfg.webhooks.extraArgs; - # Avoid crashing: os.getloadavg() - ProcSubset = mkForce "all"; - }; - }; - }) - - (mapAttrs ( - timerName: timer: - (baseService timerName { } (mkMerge [ - { - description = "sourcehut ${timerName} service"; - after = [ - "network.target" - "${srvsrht}.service" - ]; - serviceConfig = { - Type = "oneshot"; - ExecStart = "${srvCfg.package}/bin/${timerName}"; - }; - } - (timer.service or { }) - ])) - ) extraTimers) - - (mapAttrs ( - serviceName: extraService: - baseService serviceName { } (mkMerge [ - { - description = "sourcehut ${serviceName} service"; - # So that extraServices have the PostgreSQL database initialized. - after = [ "${srvsrht}.service" ]; - wantedBy = [ "${srvsrht}.service" ]; - partOf = [ "${srvsrht}.service" ]; - serviceConfig = { - Type = "simple"; - Restart = mkDefault "always"; - }; - } - extraService - ]) - ) extraServices) - - # Work around 'pq: permission denied for schema public' with postgres v15. - # See https://github.com/NixOS/nixpkgs/issues/216989 - # Workaround taken from nixos/forgejo: https://github.com/NixOS/nixpkgs/pull/262741 - # TODO(to maintainers of sourcehut): please migrate away from this workaround - # by migrating away from database name defaults with dots. - (lib.mkIf - ( - cfg.postgresql.enable - && lib.strings.versionAtLeast config.services.postgresql.package.version "15.0" - ) - { - postgresql-setup.postStart = '' - psql -tAc 'ALTER DATABASE "${srvCfg.postgresql.database}" OWNER TO "${srvCfg.user}";' - ''; - } - ) - ]; - - systemd.timers = mapAttrs (timerName: timer: { - description = "sourcehut timer for ${timerName}"; - wantedBy = [ "timers.target" ]; - inherit (timer) timerConfig; - }) extraTimers; - } - ]); -} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 95b0e1fab956..b92e76ed60af 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1273,7 +1273,6 @@ in solanum = runTest ./solanum.nix; sonarr = runTest ./sonarr.nix; sonic-server = runTest ./sonic-server.nix; - sourcehut = handleTest ./sourcehut { }; spacecookie = runTest ./spacecookie.nix; spark = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./spark { }; spiped = runTest ./spiped.nix; diff --git a/nixos/tests/sourcehut/builds.nix b/nixos/tests/sourcehut/builds.nix deleted file mode 100644 index 1add972cc13f..000000000000 --- a/nixos/tests/sourcehut/builds.nix +++ /dev/null @@ -1,66 +0,0 @@ -import ../make-test-python.nix ( - { pkgs, lib, ... }: - let - domain = "sourcehut.localdomain"; - in - { - name = "sourcehut"; - - meta.maintainers = with pkgs.lib.maintainers; [ - tomberek - nessdoor - ]; - - nodes.machine = - { - config, - pkgs, - nodes, - ... - }: - { - imports = [ - ./nodes/common.nix - ]; - - networking.domain = domain; - networking.extraHosts = '' - ${config.networking.primaryIPAddress} builds.${domain} - ${config.networking.primaryIPAddress} meta.${domain} - ''; - - services.sourcehut = { - builds = { - enable = true; - # FIXME: see why it does not seem to activate fully. - #enableWorker = true; - images = { }; - }; - - settings."builds.sr.ht" = { - oauth-client-secret = pkgs.writeText "buildsrht-oauth-client-secret" "2260e9c4d9b8dcedcef642860e0504bc"; - oauth-client-id = "299db9f9c2013170"; - }; - }; - }; - - testScript = '' - start_all() - machine.wait_for_unit("multi-user.target") - - with subtest("Check whether meta comes up"): - machine.wait_for_unit("meta.sr.ht-api.service") - machine.wait_for_unit("meta.sr.ht.service") - machine.wait_for_unit("meta.sr.ht-webhooks.service") - machine.wait_for_open_port(5000) - machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}") - machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}") - - with subtest("Check whether builds comes up"): - machine.wait_for_unit("builds.sr.ht.service") - machine.wait_for_open_port(5002) - machine.succeed("curl -sL http://localhost:5002 | grep builds.${domain}") - #machine.wait_for_unit("buildsrht-worker.service") - ''; - } -) diff --git a/nixos/tests/sourcehut/default.nix b/nixos/tests/sourcehut/default.nix deleted file mode 100644 index 04f1551d70d9..000000000000 --- a/nixos/tests/sourcehut/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ system, pkgs, ... }: - -{ - git = import ./git.nix { inherit system pkgs; }; - builds = import ./builds.nix { inherit system pkgs; }; -} diff --git a/nixos/tests/sourcehut/git.nix b/nixos/tests/sourcehut/git.nix deleted file mode 100644 index a06281aafbb4..000000000000 --- a/nixos/tests/sourcehut/git.nix +++ /dev/null @@ -1,109 +0,0 @@ -import ../make-test-python.nix ( - { pkgs, lib, ... }: - let - domain = "sourcehut.localdomain"; - in - { - name = "sourcehut"; - - meta.maintainers = with pkgs.lib.maintainers; [ - tomberek - nessdoor - ]; - - nodes.machine = - { - config, - pkgs, - nodes, - ... - }: - { - imports = [ - ./nodes/common.nix - ]; - - networking.domain = domain; - networking.extraHosts = '' - ${config.networking.primaryIPAddress} git.${domain} - ${config.networking.primaryIPAddress} meta.${domain} - ''; - - services.sourcehut = { - git.enable = true; - settings."git.sr.ht" = { - oauth-client-secret = pkgs.writeText "gitsrht-oauth-client-secret" "3597288dc2c716e567db5384f493b09d"; - oauth-client-id = "d07cb713d920702e"; - }; - }; - - environment.systemPackages = with pkgs; [ - git - ]; - }; - - testScript = - let - userName = "nixos-test"; - userPass = "AutoNixosTestPwd"; - hutConfig = pkgs.writeText "hut-config" '' - instance "${domain}" { - # Will be replaced at runtime with the generated token - access-token "OAUTH-TOKEN" - } - ''; - sshConfig = pkgs.writeText "ssh-config" '' - Host git.${domain} - IdentityFile = ~/.ssh/id_rsa - ''; - in - '' - start_all() - machine.wait_for_unit("multi-user.target") - machine.wait_for_unit("sshd.service") - - with subtest("Check whether meta comes up"): - machine.wait_for_unit("meta.sr.ht-api.service") - machine.wait_for_unit("meta.sr.ht.service") - machine.wait_for_unit("meta.sr.ht-webhooks.service") - machine.wait_for_open_port(5000) - machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}") - machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}") - - with subtest("Create a new user account and OAuth access key"): - machine.succeed("echo ${userPass} | meta.sr.ht-manageuser -ps -e ${userName}@${domain}\ - -t USER ${userName}"); - cmd = "srht-gen-oauth-tok -i ${domain} -q ${userName} ${userPass}" - (_, token) = machine.execute("srht-gen-oauth-tok -i ${domain} -q ${userName} ${userPass}") - token = token.strip().replace("/", r"\\/") # Escape slashes in token before passing it to sed - machine.execute("mkdir -p ~/.config/hut/") - machine.execute("sed s/OAUTH-TOKEN/" + token + "/ ${hutConfig} > ~/.config/hut/config") - - with subtest("Check whether git comes up"): - machine.wait_for_unit("git.sr.ht-api.service") - machine.wait_for_unit("git.sr.ht.service") - machine.wait_for_unit("git.sr.ht-webhooks.service") - machine.succeed("curl -sL http://git.${domain} | grep git.${domain}") - - with subtest("Add an SSH key for Git access"): - machine.execute("ssh-keygen -q -N \"\" -t rsa -f ~/.ssh/id_rsa") - machine.execute("cat ${sshConfig} > ~/.ssh/config") - machine.succeed("hut meta ssh-key create ~/.ssh/id_rsa.pub") - - with subtest("Create a new repo and push contents to it"): - machine.execute("git init test") - machine.execute("echo \"Hello world!\" > test/hello.txt") - machine.execute("cd test && git add .") - machine.execute("cd test && git commit -m \"Initial commit\"") - machine.execute("cd test && git tag v0.1") - machine.succeed("cd test && git remote add origin git.sr.ht@git.${domain}:~${userName}/test") - machine.execute("( echo -n 'git.${domain} '; cat /etc/ssh/ssh_host_ed25519_key.pub ) > ~/.ssh/known_hosts") - machine.succeed("hut git create test") - machine.succeed("cd test && git push --tags --set-upstream origin master") - - with subtest("Verify that the repo is downloadable and its contents match the original"): - machine.succeed("curl https://git.${domain}/~${userName}/test/archive/v0.1.tar.gz | tar -xz") - machine.succeed("diff test-v0.1/hello.txt test/hello.txt") - ''; - } -) diff --git a/nixos/tests/sourcehut/nodes/common.nix b/nixos/tests/sourcehut/nodes/common.nix deleted file mode 100644 index 54660a4dade5..000000000000 --- a/nixos/tests/sourcehut/nodes/common.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ - config, - pkgs, - nodes, - ... -}: -let - domain = config.networking.domain; - - # Note that wildcard certificates just under the TLD (eg. *.com) - # would be rejected by clients like curl. - tls-cert = pkgs.runCommand "selfSignedCerts" { buildInputs = [ pkgs.openssl ]; } '' - openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 36500 \ - -subj '/CN=${domain}' -extensions v3_req \ - -addext 'subjectAltName = DNS:*.${domain}' - install -D -t $out key.pem cert.pem - ''; -in -{ - # buildsrht needs space - virtualisation.diskSize = 4 * 1024; - virtualisation.memorySize = 2 * 1024; - networking.enableIPv6 = false; - - services.sourcehut = { - enable = true; - nginx.enable = true; - nginx.virtualHost = { - forceSSL = true; - sslCertificate = "${tls-cert}/cert.pem"; - sslCertificateKey = "${tls-cert}/key.pem"; - }; - postgresql.enable = true; - redis.enable = true; - - meta.enable = true; - - settings."sr.ht" = { - environment = "production"; - global-domain = config.networking.domain; - service-key = pkgs.writeText "service-key" "8b327279b77e32a3620e2fc9aabce491cc46e7d821fd6713b2a2e650ce114d01"; - network-key = pkgs.writeText "network-key" "cEEmc30BRBGkgQZcHFksiG7hjc6_dK1XR2Oo5Jb9_nQ="; - }; - settings.webhooks.private-key = pkgs.writeText "webhook-key" "Ra3IjxgFiwG9jxgp4WALQIZw/BMYt30xWiOsqD0J7EA="; - settings.mail = { - smtp-from = "root+hut@${domain}"; - # WARNING: take care to keep pgp-privkey outside the Nix store in production, - # or use LoadCredentialEncrypted= - pgp-privkey = toString ( - pkgs.writeText "sourcehut.pgp-privkey" '' - -----BEGIN PGP PRIVATE KEY BLOCK----- - - lFgEZrFBKRYJKwYBBAHaRw8BAQdAS1Ffiytk0h0z0jfaT3qyiDUV/plVIUwOg1Yr - AXP2YmsAAP0W6QMC3G2G41rzCGLeSHeGibor1+XuxvcwUpVdW7ge+BH/tDZuaXhv - cy90ZXN0cy9zb3VyY2VodXQgPHJvb3QraHV0QHNvdXJjZWh1dC5sb2NhbGRvbWFp - bj6IkwQTFgoAOxYhBMISh2Z08FCi969cq9R2wSP9QF2bBQJmsUEpAhsDBQsJCAcC - AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJENR2wSP9QF2b4JMA+wQLdxVcod/ppyvH - QguGqqhkpk8KquCddOuFnQVAfHFWAQCK5putVk4mGzsoLTbOJCSGRC4pjEktZawQ - MTqJmnOuC5xdBGaxQSkSCisGAQQBl1UBBQEBB0Aed6UYJyighTY+KuPNQ439st3x - x04T1j58sx3AnKgYewMBCAcAAP9WLB79HO1zFRqTCnk7GIEWWogMFKVpazeBUNu9 - h9rzCA2+iHgEGBYKACAWIQTCEodmdPBQovevXKvUdsEj/UBdmwUCZrFBKQIbDAAK - CRDUdsEj/UBdmwgJAQDVk/px/pSzqreSeDLzxlb6dOo+N1KcicsJ0akhSJUcvwD9 - EPhpEDZu/UBKchAutOhWwz+y6pyoF4Vt7XG+jbJQtA4= - =KaQc - -----END PGP PRIVATE KEY BLOCK----- - '' - ); - pgp-pubkey = pkgs.writeText "sourcehut.pgp-pubkey" '' - -----BEGIN PGP PUBLIC KEY BLOCK----- - - mDMEZrFBKRYJKwYBBAHaRw8BAQdAS1Ffiytk0h0z0jfaT3qyiDUV/plVIUwOg1Yr - AXP2Ymu0Nm5peG9zL3Rlc3RzL3NvdXJjZWh1dCA8cm9vdCtodXRAc291cmNlaHV0 - LmxvY2FsZG9tYWluPoiTBBMWCgA7FiEEwhKHZnTwUKL3r1yr1HbBI/1AXZsFAmax - QSkCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ1HbBI/1AXZvgkwD7 - BAt3FVyh3+mnK8dCC4aqqGSmTwqq4J1064WdBUB8cVYBAIrmm61WTiYbOygtNs4k - JIZELimMSS1lrBAxOomac64LuDgEZrFBKRIKKwYBBAGXVQEFAQEHQB53pRgnKKCF - Nj4q481Djf2y3fHHThPWPnyzHcCcqBh7AwEIB4h4BBgWCgAgFiEEwhKHZnTwUKL3 - r1yr1HbBI/1AXZsFAmaxQSkCGwwACgkQ1HbBI/1AXZsICQEA1ZP6cf6Us6q3kngy - 88ZW+nTqPjdSnInLCdGpIUiVHL8A/RD4aRA2bv1ASnIQLrToVsM/suqcqBeFbe1x - vo2yULQO - =luxZ - -----END PGP PUBLIC KEY BLOCK----- - ''; - pgp-key-id = "0xC212876674F050A2F7AF5CABD476C123FD405D9B"; - }; - }; - - networking.firewall.allowedTCPPorts = [ - 80 - 443 - ]; - security.pki.certificateFiles = [ "${tls-cert}/cert.pem" ]; - services.nginx = { - enable = true; - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedTlsSettings = true; - recommendedProxySettings = true; - }; - - services.postgresql = { - enable = true; - enableTCPIP = false; - settings.unix_socket_permissions = "0770"; - }; - - services.openssh = { - enable = true; - settings.PasswordAuthentication = false; - settings.PermitRootLogin = "no"; - }; - - environment.systemPackages = with pkgs; [ - hut # For interacting with the Sourcehut APIs via CLI - srht-gen-oauth-tok # To automatically generate user OAuth tokens - ]; -} diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix deleted file mode 100644 index 5896f6b68149..000000000000 --- a/pkgs/applications/version-management/sourcehut/builds.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - redis, - celery, - pyyaml, - markdown, - ansi2html, - lxml, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: -let - version = "0.95.1"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/builds/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "builds.sr.ht"; - rev = version; - hash = "sha256-On/dKqIuqsCLAgYkJQOeYL7Ne983JzEYKhuLpD5vNu4="; - }; - - buildsrht-api = buildGoModule ( - { - inherit src version patches; - pname = "buildsrht-api"; - modRoot = "api"; - vendorHash = "sha256-GOM7fmJvfPJW3+XzvlwQZ9hBknlXwBKjGSmtIiapleY="; - } - // gqlgen - ); - - buildsrht-worker = buildGoModule ( - { - inherit src version patches; - pname = "buildsrht-worker"; - modRoot = "worker"; - vendorHash = "sha256-nEXnCeUxlUMNUqhe82MKREXcaC9pvqZqyqhyQW+jQjQ="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "buildsrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - redis - celery - pyyaml - markdown - # Unofficial dependencies - ansi2html - lxml - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - mkdir -p $out/lib - mkdir -p $out/bin/builds.sr.ht - - cp -r images $out/lib - cp contrib/submit_image_build $out/bin/builds.sr.ht - ln -s ${buildsrht-api}/bin/api $out/bin/builds.sr.ht-api - ln -s ${buildsrht-worker}/bin/worker $out/bin/builds.sr.ht-worker - install -Dm644 schema.sql $out/share/sourcehut/builds.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "buildsrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/builds.sr.ht"; - description = "Continuous integration service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/core.nix b/pkgs/applications/version-management/sourcehut/core.nix deleted file mode 100644 index d600117e225f..000000000000 --- a/pkgs/applications/version-management/sourcehut/core.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildPythonPackage, - flask, - humanize, - sqlalchemy, - sqlalchemy-utils, - psycopg2, - markdown, - mistletoe, - bleach, - requests, - beautifulsoup4, - pygments, - cryptography, - prometheus-client, - alembic, - redis, - celery, - html5lib, - importlib-metadata, - tinycss2, - sassc, - pythonOlder, - minify, - setuptools-scm, -}: - -buildPythonPackage rec { - pname = "srht"; - version = "0.76.1"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "core.sr.ht"; - rev = version; - hash = "sha256-lAN1JZXQuN2zxi/BdBtbNj52LPj9iYn0WB2OpyQcyuU="; - fetchSubmodules = true; - }; - - patches = [ - # Fix Unix socket support in RedisQueueCollector - patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch - ]; - - nativeBuildInputs = [ - setuptools-scm - ]; - - propagatedNativeBuildInputs = [ - sassc - minify - ]; - - propagatedBuildInputs = [ - flask - humanize - sqlalchemy - sqlalchemy-utils - psycopg2 - markdown - mistletoe - bleach - requests - beautifulsoup4 - pygments - cryptography - prometheus-client - alembic - redis - celery - # Used transitively through beautifulsoup4 - html5lib - # Used transitively trough bleach.css_sanitizer - tinycss2 - # Used by srht.debug - importlib-metadata - ]; - - env = { - PREFIX = placeholder "out"; - PKGVER = version; - }; - - postInstall = '' - make install - ''; - - pythonImportsCheck = [ "srht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/core.sr.ht"; - description = "Core modules for sr.ht"; - license = licenses.bsd3; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/default.nix b/pkgs/applications/version-management/sourcehut/default.nix deleted file mode 100644 index ede187a215fc..000000000000 --- a/pkgs/applications/version-management/sourcehut/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - lib, - python3, - callPackage, - recurseIntoAttrs, - nixosTests, - config, -}: - -# To expose the *srht modules, they have to be a python module so we use `buildPythonModule` -# Then we expose them through all-packages.nix as an application through `toPythonApplication` -# https://github.com/NixOS/nixpkgs/pull/54425#discussion_r250688781 -let - python = python3.override { - self = python; - packageOverrides = self: super: { - srht = self.callPackage ./core.nix { }; - - buildsrht = self.callPackage ./builds.nix { }; - gitsrht = self.callPackage ./git.nix { }; - hgsrht = self.callPackage ./hg.nix { }; - hubsrht = self.callPackage ./hub.nix { }; - listssrht = self.callPackage ./lists.nix { }; - mansrht = self.callPackage ./man.nix { }; - metasrht = self.callPackage ./meta.nix { }; - pastesrht = self.callPackage ./paste.nix { }; - todosrht = self.callPackage ./todo.nix { }; - - scmsrht = self.callPackage ./scm.nix { }; - }; - }; -in -with python.pkgs; -recurseIntoAttrs ( - { - inherit python; - coresrht = toPythonApplication srht; - buildsrht = toPythonApplication buildsrht; - gitsrht = toPythonApplication gitsrht; - hgsrht = toPythonApplication hgsrht; - hubsrht = toPythonApplication hubsrht; - listssrht = toPythonApplication listssrht; - mansrht = toPythonApplication mansrht; - metasrht = toPythonApplication metasrht; - pagessrht = callPackage ./pages.nix { }; - pastesrht = toPythonApplication pastesrht; - todosrht = toPythonApplication todosrht; - passthru.tests = { - nixos-sourcehut = nixosTests.sourcehut; - }; - } - // lib.optionalAttrs config.allowAliases { - # Added 2022-10-29 - dispatchsrht = throw "dispatch is deprecated. See https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/ for more information."; - } -) diff --git a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix b/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix deleted file mode 100644 index 562ce6e445d3..000000000000 --- a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - unzip, - gqlgenVersion, -}: -{ - overrideModAttrs = ( - _: { - # No need to workaround -trimpath: it's not used in goModules, - # but do download `go generate`'s dependencies nonetheless. - preBuild = '' - if [ -d ./loaders ]; then go generate ./loaders; fi - if [ -d ./graph ]; then go generate ./graph; fi - ''; - } - ); - - # Workaround this error: - # go: git.sr.ht/~emersion/go-emailthreads@v0.0.0-20220412093310-4fd792e343ba: module lookup disabled by GOPROXY=off - # tidy failed: go mod tidy failed: exit status 1 - # graph/generate.go:10: running "go": exit status 1 - proxyVendor = true; - - nativeBuildInputs = [ unzip ]; - - # Workaround -trimpath in the package derivation: - # https://github.com/99designs/gqlgen/issues/1537 - # This is to give `go generate ./graph` access to gqlgen's *.gotpl files - # If it fails, the gqlgenVersion may have to be updated. - preBuild = '' - unzip ''${GOPROXY#"file://"}/github.com/99designs/gqlgen/@v/v${gqlgenVersion}.zip - if [ -d ./loaders ]; then go generate ./loaders; fi - if [ -d ./graph ]; then go generate ./graph; fi - rm -rf github.com - ''; -} diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix deleted file mode 100644 index cf58b41994e5..000000000000 --- a/pkgs/applications/version-management/sourcehut/git.nix +++ /dev/null @@ -1,153 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - python, - srht, - scmsrht, - pygit2, - minio, - pythonOlder, - unzip, - pip, - setuptools-scm, -}: -let - version = "0.88.10"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "git.sr.ht"; - rev = version; - hash = "sha256-o7d2EIx9oJAQSIrMMG/TYjAo7PJwT6rE8kcVMKoYenY="; - }; - - patches = [ ./patches/core-go-update/git/patch-deps.patch ]; - - gitApi = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-api"; - modRoot = "api"; - vendorHash = "sha256-20SxOZrvj41L8A5nuOro9DYiK6FyhwJK5cNAvxPB7qw="; - } - // gqlgen - ); - - gitDispatch = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-dispatch"; - modRoot = "dispatch"; - vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y="; - - postPatch = '' - substituteInPlace dispatch/main.go \ - --replace-fail /var/log/git.sr.ht-dispatch /var/log/sourcehut/git.sr.ht-dispatch - ''; - } - // gqlgen - ); - - gitKeys = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-keys"; - modRoot = "keys"; - vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y="; - - postPatch = '' - substituteInPlace keys/main.go \ - --replace-fail /var/log/git.sr.ht-keys /var/log/sourcehut/git.sr.ht-keys - ''; - } - // gqlgen - ); - - gitShell = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-shell"; - modRoot = "shell"; - vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y="; - - postPatch = '' - substituteInPlace shell/main.go \ - --replace-fail /var/log/git.sr.ht-shell /var/log/sourcehut/git.sr.ht-shell - ''; - } - // gqlgen - ); - - gitUpdateHook = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-update-hook"; - modRoot = "update-hook"; - vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y="; - - postPatch = '' - substituteInPlace update-hook/main.go \ - --replace-fail /var/log/git.sr.ht-update-hook /var/log/sourcehut/git.sr.ht-update-hook - ''; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "gitsrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - scmsrht - pygit2 - minio - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - mkdir -p $out/bin - ln -s ${gitApi}/bin/api $out/bin/git.sr.ht-api - ln -s ${gitDispatch}/bin/dispatch $out/bin/git.sr.ht-dispatch - ln -s ${gitKeys}/bin/keys $out/bin/git.sr.ht-keys - ln -s ${gitShell}/bin/shell $out/bin/git.sr.ht-shell - ln -s ${gitUpdateHook}/bin/update-hook $out/bin/git.sr.ht-update-hook - install -Dm644 schema.sql $out/share/sourcehut/git.sr.ht-schema.sql - make PREFIX=$out install-share - ''; - - pythonImportsCheck = [ "gitsrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht"; - description = "Git repository hosting service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/hg.nix b/pkgs/applications/version-management/sourcehut/hg.nix deleted file mode 100644 index 59642035e236..000000000000 --- a/pkgs/applications/version-management/sourcehut/hg.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ - lib, - fetchFromSourcehut, - fetchpatch, - buildGoModule, - buildPythonPackage, - srht, - python-hglib, - scmsrht, - unidiff, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: - -let - version = "0.36.1"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ - (fetchpatch { - name = "update-core-go-and-gqlgen.patch"; - url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht/rev/2765f086c3a67e00219cabe9a1dd01b2012c5c12.patch"; - hash = "sha256-MLZG07tD7vrfvx2GDRUvFd/7VxxZLrAa/C3bB/IvQpI="; - }) - ./patches/core-go-update/hg/patch-deps.patch - ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "hg.sr.ht"; - rev = version; - hash = "sha256-EeWRUb/BZ+KJXNqmzCFYHkvWUaPvF/F7ZaOYM0IEYwk="; - vc = "hg"; - }; - - hgsrht-api = buildGoModule ( - { - inherit src version patches; - pname = "hgsrht-api"; - modRoot = "api"; - vendorHash = "sha256-elaVmyaO5IbzsnBYRjJvmoOFR8gx1xCfzd3z01KNXVA="; - } - // gqlgen - ); - - hgsrht-keys = buildGoModule { - inherit src version patches; - pname = "hgsrht-keys"; - modRoot = "keys"; - vendorHash = "sha256-U5NtgyUgVqI25XBg51U7glNRpR5MZBCcsuuR6f+gZc8="; - - postPatch = '' - substituteInPlace keys/main.go \ - --replace-fail /var/log/hg.sr.ht-keys /var/log/sourcehut/hg.sr.ht-keys - ''; - }; -in -buildPythonPackage rec { - inherit src version patches; - pname = "hgsrht"; - - pyproject = true; - - disabled = pythonOlder "3.7"; - - postPatch = '' - substituteInPlace hg.sr.ht-shell \ - --replace-fail /var/log/hg.sr.ht-shell /var/log/sourcehut/hg.sr.ht-shell - ''; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - python-hglib - scmsrht - srht - unidiff - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${hgsrht-api}/bin/api $out/bin/hg.sr.ht-api - ln -s ${hgsrht-keys}/bin/hgsrht-keys $out/bin/hg.sr.ht-keys - install -Dm644 schema.sql $out/share/sourcehut/hg.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "hgsrht" ]; - - meta = with lib; { - homepage = "https://hg.sr.ht/~sircmpwn/hg.sr.ht"; - description = "Mercurial repository hosting service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/hub.nix b/pkgs/applications/version-management/sourcehut/hub.nix deleted file mode 100644 index 52b30b793ab6..000000000000 --- a/pkgs/applications/version-management/sourcehut/hub.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - python, - srht, - setuptools-scm, - pip, - pyyaml, - pythonOlder, - unzip, -}: - -let - version = "0.20.2"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/hub/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "hub.sr.ht"; - rev = version; - hash = "sha256-blaaJ7kQBkswmSpEVEsDm6vaxuMuCcW2wmeN+fbwzjg="; - }; - - hubsrht-api = buildGoModule ( - { - inherit src version patches; - pname = "hubsrht-api"; - modRoot = "api"; - vendorHash = "sha256-jKNHZrFydp3+cD8MR2izzE8bi4H2uT/7+x/wmPkEIIc="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "hubsrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - pyyaml - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${hubsrht-api}/bin/api $out/bin/hub.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/hub.sr.ht-schema.sql - make install-share - ''; - - # Module has no tests - doCheck = false; - - pythonImportsCheck = [ - "hubsrht" - ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/hub.sr.ht"; - description = "Project hub service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/lists.nix b/pkgs/applications/version-management/sourcehut/lists.nix deleted file mode 100644 index f36515a55b7b..000000000000 --- a/pkgs/applications/version-management/sourcehut/lists.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - aiosmtpd, - asyncpg, - pygit2, - emailthreads, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: - -let - version = "0.62.3"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/lists/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "lists.sr.ht"; - rev = version; - hash = "sha256-HU3hnKdIoseCo1/lt3GIOQ5d3joykN11/Bzvk4xvH4Y="; - }; - - listssrht-api = buildGoModule ( - { - inherit src version patches; - pname = "listssrht-api"; - modRoot = "api"; - vendorHash = "sha256-XKDEr8ESs9oBh7DKu2jgPEMDY99nN25inkNwU/rrza8="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "listssrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - aiosmtpd - asyncpg - pygit2 - # Unofficial dependency - emailthreads - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${listssrht-api}/bin/api $out/bin/lists.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/lists.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "listssrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/lists.sr.ht"; - description = "Mailing list service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/man.nix b/pkgs/applications/version-management/sourcehut/man.nix deleted file mode 100644 index 8b9e0525a926..000000000000 --- a/pkgs/applications/version-management/sourcehut/man.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - pygit2, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: - -let - version = "0.18.1"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/man/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "man.sr.ht"; - rev = version; - hash = "sha256-c2xFC1pmOSGGMP4RVOmgFogj7CY2kHrADsWsm7M5ZK4="; - }; - - mansrht-api = buildGoModule ( - { - inherit src version patches; - pname = "mansrht-api"; - modRoot = "api"; - vendorHash = "sha256-jKNHZrFydp3+cD8MR2izzE8bi4H2uT/7+x/wmPkEIIc="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "mansrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - pygit2 - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${mansrht-api}/bin/api $out/bin/man.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/man.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "mansrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/man.sr.ht"; - description = "Wiki service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/meta.nix b/pkgs/applications/version-management/sourcehut/meta.nix deleted file mode 100644 index 356812b643d8..000000000000 --- a/pkgs/applications/version-management/sourcehut/meta.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildPythonPackage, - buildGoModule, - alembic, - bcrypt, - dnspython, - qrcode, - redis, - srht, - stripe, - prometheus-client, - zxcvbn, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: -let - version = "0.72.11"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/meta/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "meta.sr.ht"; - rev = version; - hash = "sha256-dh+9wSQLL69xZ2Elmkyb9vEwpE7U7szz62VVS/0IM7Q="; - }; - - metasrht-api = buildGoModule ( - { - inherit src version patches; - pname = "metasrht-api"; - modRoot = "api"; - vendorHash = "sha256-z4gRqI05t3m7ANyDJHmBcOCW476IG/eTfLetPRPbqtg="; - } - // gqlgen - ); -in -buildPythonPackage rec { - pname = "metasrht"; - inherit version src patches; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - alembic - bcrypt - dnspython - qrcode - redis - srht - stripe - prometheus-client - zxcvbn - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - mkdir -p $out/bin - ln -s ${metasrht-api}/bin/api $out/bin/meta.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/meta.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "metasrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/meta.sr.ht"; - description = "Account management service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/pages.nix b/pkgs/applications/version-management/sourcehut/pages.nix deleted file mode 100644 index cd3aa0db0ce7..000000000000 --- a/pkgs/applications/version-management/sourcehut/pages.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - unzip, -}: - -buildGoModule ( - rec { - pname = "pagessrht"; - version = "0.16.0"; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "pages.sr.ht"; - rev = version; - hash = "sha256-XnKNXYzg9wuL4U2twkAspaQJZy2HWLQQQl9AITtipVU="; - }; - - patches = ./patches/core-go-update/pages/patch-deps.patch; - - postPatch = '' - substituteInPlace Makefile \ - --replace-fail "all: server daily" "" - ''; - - vendorHash = "sha256-klDROxNvR7lk79ptckulImVVwsAfcnKtJJAaevlZSWU="; - - postInstall = '' - mkdir -p $out/share/sql/ - cp -r -t $out/share/sql/ schema.sql migrations - ''; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/pages.sr.ht"; - description = "Web hosting service for the sr.ht network"; - mainProgram = "pages.sr.ht"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; - # There is no ./loaders but this does not cause troubles - # to go generate - } - // import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - } -) diff --git a/pkgs/applications/version-management/sourcehut/paste.nix b/pkgs/applications/version-management/sourcehut/paste.nix deleted file mode 100644 index e4208de8cd08..000000000000 --- a/pkgs/applications/version-management/sourcehut/paste.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - pip, - pyyaml, - python, - pythonOlder, - setuptools-scm, - unzip, -}: - -let - version = "0.16.1"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/paste/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "paste.sr.ht"; - rev = version; - hash = "sha256-SWtkE2/sTTJo0zAVFRfsA7fVF359OvgiHOT+yRaiads="; - }; - - pastesrht-api = buildGoModule ( - { - inherit src version patches; - pname = "pastesrht-api"; - modRoot = "api"; - vendorHash = "sha256-uVqxPa1YggPgdSzGzXxVNdf4dM2DPGDXajkSXz4NhFM="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "pastesrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - pyyaml - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - mkdir -p $out/bin - ln -s ${pastesrht-api}/bin/api $out/bin/paste.sr.ht-api - make install-share - ''; - - pythonImportsCheck = [ "pastesrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/paste.sr.ht"; - description = "Ad-hoc text file hosting service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - nessdoor - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/builds/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/builds/patch-deps.patch deleted file mode 100644 index 27017b57ed8c..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/builds/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index 07f7c64..972b258 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index aaccf89..73bfe7c 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/git/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/git/patch-deps.patch deleted file mode 100644 index f6e1d18e3c5c..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/git/patch-deps.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/go.mod b/go.mod -index b1e0834..8299f9b 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - git.sr.ht/~sircmpwn/scm.sr.ht/srht-keys v0.0.0-20241202093706-8da5ec7e6b94 - git.sr.ht/~turminal/go-fnmatch v0.0.0-20211021204744-1a55764af6de -diff --git a/go.sum b/go.sum -index 193cce9..9b0bda4 100644 ---- a/go.sum -+++ b/go.sum -@@ -35,6 +35,8 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 - git.sr.ht/~sircmpwn/core-go v0.0.0-20240124105042-864816cfbc0c/go.mod h1:OovCpg5LsbYJjmDTpk5wUgHM4tUor736Pmxekm9BUcQ= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20221010085743-46c4299d76a1/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/hg/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/hg/patch-deps.patch deleted file mode 100644 index 6ab931be71e9..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/hg/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index ba49458..3a31083 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 61766aa..e01c045 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/hub/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/hub/patch-deps.patch deleted file mode 100644 index 495783f16b21..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/hub/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index ea624d5..3674152 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/vektah/gqlparser/v2 v2.5.23 -diff --git a/go.sum b/go.sum -index f67a555..a366a60 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/lists/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/lists/patch-deps.patch deleted file mode 100644 index cd6054d9408c..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/lists/patch-deps.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/go.mod b/go.mod -index da34484..24757a0 100644 ---- a/go.mod -+++ b/go.mod -@@ -6,7 +6,7 @@ toolchain go1.24.0 - - require ( - git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2 -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 4590dd5..0c49985 100644 ---- a/go.sum -+++ b/go.sum -@@ -2,6 +2,8 @@ git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2 h1:5CkkRD - git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2/go.mod h1:CQUF7XpyupxjwxlNX3PHRCYL+N2COXTRRRS4MgM49R4= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/man/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/man/patch-deps.patch deleted file mode 100644 index 581f42528f51..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/man/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index 21c7713..8f158a2 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/vektah/gqlparser/v2 v2.5.23 -diff --git a/go.sum b/go.sum -index f67a555..a366a60 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/meta/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/meta/patch-deps.patch deleted file mode 100644 index 7163246928a9..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/meta/patch-deps.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/go.mod b/go.mod -index 463f022..a7dc400 100644 ---- a/go.mod -+++ b/go.mod -@@ -8,7 +8,7 @@ require ( - git.sr.ht/~emersion/go-oauth2 v0.0.0-20240217160856-2e0d6e20b088 - git.sr.ht/~emersion/gqlclient v0.0.0-20230820050442-8873fe0204b9 - git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89 -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 9c08b1a..abf1a58 100644 ---- a/go.sum -+++ b/go.sum -@@ -6,6 +6,8 @@ git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89 h1:usW1i77LjfTfNzX - git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89/go.mod h1:A+FTCDOSRA0naGMcM9OenO7kMhBxj+Kbd+4nBpg6NO4= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e h1:epi/OdTKtazVbHHn1Qunx+nSHt96+xBBiNgs+SgRGwo= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/pages/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/pages/patch-deps.patch deleted file mode 100644 index fad46f85377b..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/pages/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index 67aa15c..baffe8e 100644 ---- a/go.mod -+++ b/go.mod -@@ -6,7 +6,7 @@ toolchain go1.24.0 - - require ( - git.sr.ht/~adnano/go-gemini v0.2.3 -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0 -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/CAFxX/httpcompression v0.0.9 -diff --git a/go.sum b/go.sum -index ccd1f94..0945505 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~adnano/go-gemini v0.2.3 h1:oJ+Y0/mheZ4Vg0ABjtf5dlmvq1yoONStiaQvmWWkofc= - git.sr.ht/~adnano/go-gemini v0.2.3/go.mod h1:hQ75Y0i5jSFL+FQ7AzWVAYr5LQsaFC7v3ZviNyj46dY= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0 h1:jFSTrW57GbcDoW850vw95zg0pLS1pe+cD5JtAQJ54ho= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/paste/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/paste/patch-deps.patch deleted file mode 100644 index f381b0f186d2..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/paste/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index bc39fc4..bd01e53 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 61766aa..e01c045 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/todo/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/todo/patch-deps.patch deleted file mode 100644 index b54e77147ed8..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/todo/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index a352cfd..ab4beae 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4 -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 5342a85..50c87f1 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4 h1:LvEcAyN0YDwqsa7QkFXne0bQEWAod6jAI2VIc+kk5sk= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch deleted file mode 100644 index fb2c32033128..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 76dd636151735671be74ba9d55f773e190e22827 Mon Sep 17 00:00:00 2001 -From: Julien Moutinho -Date: Fri, 13 May 2022 22:40:46 +0200 -Subject: [PATCH core.sr.ht] Fix Unix socket support in RedisQueueCollector - -The broker URL is not necessarily in the format expected by Redis.from_url - -Especially, Redis.from_url supports this format for Unix sockets: - unix:///run/redis-sourcehut-metasrht/redis.sock?db=0 -See https://redis-py.readthedocs.io/en/stable/#redis.ConnectionPool.from_url - -Whereas Celery+Kombu support Redis but also other transports -and thus expect another scheme: - redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1 -See https://docs.celeryproject.org/en/stable/userguide/configuration.html#redis-backend-settings -and https://github.com/celery/celery/blob/e5d99801e4b56a02af4a2e183879c767228d2817/celery/backends/redis.py#L299-L352 -and https://github.com/celery/kombu/blob/master/kombu/utils/url.py ---- - srht/metrics.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/srht/metrics.py b/srht/metrics.py -index 68caf8e..2df5777 100644 ---- a/srht/metrics.py -+++ b/srht/metrics.py -@@ -1,12 +1,12 @@ - import time -+from celery import Celery - from prometheus_client.metrics_core import GaugeMetricFamily - from redis import ResponseError --from srht.redis import from_url - - - class RedisQueueCollector: - def __init__(self, broker, name, documentation, queue_name="celery"): -- self.redis = from_url(broker) -+ self.redis = Celery("collector", broker=broker).connection_for_read().channel().client - self.queue_name = queue_name - self.name = name - self.documentation = documentation --- -2.35.1 - diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix deleted file mode 100644 index 0a9bf574620f..000000000000 --- a/pkgs/applications/version-management/sourcehut/scm.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildPythonPackage, - srht, - pyyaml, - buildsrht, - pythonOlder, - setuptools-scm, -}: - -buildPythonPackage rec { - pname = "scmsrht"; - version = "0.22.28"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "scm.sr.ht"; - rev = version; - hash = "sha256-+zxqiz5yPpgTwAw7w8GqJFb3OCcJEH/UhS5u2Xs7pzo="; - }; - - nativeBuildInputs = [ - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - pyyaml - buildsrht - ]; - - env.PKGVER = version; - - pythonImportsCheck = [ "scmsrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/scm.sr.ht"; - description = "Shared support code for sr.ht source control services"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/todo.nix b/pkgs/applications/version-management/sourcehut/todo.nix deleted file mode 100644 index 3d9374185563..000000000000 --- a/pkgs/applications/version-management/sourcehut/todo.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - alembic, - pytest, - factory-boy, - python, - unzip, - pythonOlder, - setuptools-scm, -}: - -let - version = "0.77.5"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "todo.sr.ht"; - rev = version; - hash = "sha256-P+ypiW3GHoMClBmW5lUNAG6/sydHHnFGyGajmC3WARg="; - }; - - patches = [ ./patches/core-go-update/todo/patch-deps.patch ]; - - todosrht-api = buildGoModule ( - { - inherit src version patches; - pname = "todosrht-api"; - modRoot = "api"; - vendorHash = "sha256-ny6cyUIgmupeU8SFP8+RSQU7DD3Lk+j+mZQBoXKv63I="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "todosrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - alembic - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${todosrht-api}/bin/api $out/bin/todo.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/todo.sr.ht-schema.sql - make install-share - ''; - - # pytest tests fail - nativeCheckInputs = [ - pytest - factory-boy - ]; - pythonImportsCheck = [ "todosrht" ]; - - meta = with lib; { - homepage = "https://todo.sr.ht/~sircmpwn/todo.sr.ht"; - description = "Ticket tracking service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/update.sh b/pkgs/applications/version-management/sourcehut/update.sh deleted file mode 100755 index e5dd0b5baed0..000000000000 --- a/pkgs/applications/version-management/sourcehut/update.sh +++ /dev/null @@ -1,95 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p gnused git mercurial common-updater-scripts -set -eux -o pipefail - -cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1 -root=../../../.. -tmp=$(mktemp -d) -trap 'rm -rf "$tmp"' EXIT - -attr_path() { - case "$1" in - pagessrht) printf "sourcehut.$1";; - *) printf "sourcehut.python.pkgs.$1";; - esac -} - -default() { - local p="$(attr_path "$1")" - (cd "$root" && nix-instantiate --eval --strict -A $p.meta.position | sed -re 's/^"(.*):[0-9]+"$/\1/') -} - -version() { - local p="$(attr_path "$1")" - (cd "$root" && nix-instantiate --eval --strict -A $p.version | tr -d '"') -} - -src_url() { - local p="$(attr_path "$1")" - nix-instantiate --eval --strict --expr " with import $root {}; let src = $p.drvAttrs.src; in src.meta.homepage" | tr -d '"' -} - -get_latest_version() { - src="$(src_url "$1")" - rm -rf "$tmp" - if [ "$1" = "hgsrht" ]; then - hg clone "$src" "$tmp" >/dev/null - printf "%s %s\n" \ - "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')" \ - "$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)" - else - git clone "$src" "$tmp" >/dev/null - printf "%s %s\n" \ - "$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")" \ - "$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)" - fi -} - -update_version() { - default_nix="$(default "$1")" - oldVersion="$(version "$1")" - read -r version gqlgen_ver < <(get_latest_version "$1") - local p="$(attr_path "$1")" - - (cd "$root" && update-source-version "$p" "$version") - - # update `gqlgenVersion` if necessary - old_gqlgen_ver="$(sed -ne 's/^.*gqlgenVersion = "\(.*\)".*$/\1/p' "$default_nix")" - sed -ri "s|gqlgenVersion = \"$old_gqlgen_ver\";|gqlgenVersion = \"$gqlgen_ver\";|w /dev/stdout" "$default_nix" - - # Update vendorHash of Go modules - retry=true - while "$retry"; do - retry=false; - exec < <(exec nix -L build -f "$root" sourcehut.python.pkgs."$1" 2>&1) - while IFS=' :' read -r origin hash; do - case "$origin" in - (expected|specified) oldHash="$hash";; - (got) sed -i "s|$oldHash|$hash|" "$default_nix"; retry=true; break;; - (*) printf >&2 "%s\n" "$origin${hash:+:$hash}" - esac - done - done - - if [ "$oldVersion" != "$version" ] || [ "$old_gqlgen_ver" != "$gqlgen_ver" ]; then - git add "$default_nix" - git commit -m "sourcehut.$1: $oldVersion -> $version" - fi -} - -if [ $# -gt 0 ]; then - services=("$@") -else - # Beware that some packages must be updated before others, - # eg. buildsrht must be updated before gitsrht, - # otherwise this script would enter an infinite loop - # because the reported $oldHash to be changed - # may not actually be in $default_nix - # but in the file of one of its dependencies. - services=( "srht" "scmsrht" "buildsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht" - "metasrht" "pagessrht" "pastesrht" "todosrht" ) -fi - -for service in "${services[@]}"; do - update_version "$service" -done diff --git a/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix b/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix index 547bd4ea229c..2dfa3fc2357c 100644 --- a/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix +++ b/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix @@ -32,8 +32,6 @@ stdenv.mkDerivation rec { installPhase = "install -Dm755 srht-gen-oauth-tok $out/bin/srht-gen-oauth-tok"; - passthru.tests.sourcehut = nixosTests.sourcehut; - meta = { description = "Script to register a new Sourcehut OAuth token for a given user"; longDescription = '' diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d10327ff4865..cfa5502fc7d2 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1846,6 +1846,7 @@ mapAliases { source-han-serif-simplified-chinese = source-han-serif; source-han-serif-traditional-chinese = source-han-serif; + sourcehut = throw "'sourcehut.*' has been removed due to being broken and unmaintained"; # Added 2025-06-15 solana-validator = throw "'solana-validator' is obsoleted by solana-cli, which also includes the validator binary"; # Added 2024-12-20 spectral = throw "'spectral' has been renamed to/replaced by 'neochat'"; # Converted to throw 2024-10-17 # spidermonkey is not ABI upwards-compatible, so only allow this for nix-shell diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 73ebdf7f1724..24df98de3f1c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4396,8 +4396,6 @@ with pkgs; splot = haskell.lib.compose.justStaticExecutables haskellPackages.splot; - sourcehut = callPackage ../applications/version-management/sourcehut { }; - sshfs = sshfs-fuse; # added 2017-08-14 inherit (callPackages ../tools/misc/sshx { }) From fb0ea04eb0fc6ab88fe353551cb65f52071c6d3c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 30 Jun 2025 10:35:49 +0000 Subject: [PATCH 61/65] hyprshell: 4.2.13 -> 4.5.0 --- pkgs/by-name/hy/hyprshell/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hy/hyprshell/package.nix b/pkgs/by-name/hy/hyprshell/package.nix index 24c7bc6544d8..08494a72ef65 100644 --- a/pkgs/by-name/hy/hyprshell/package.nix +++ b/pkgs/by-name/hy/hyprshell/package.nix @@ -11,17 +11,17 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "hyprshell"; - version = "4.2.13"; + version = "4.5.0"; src = fetchFromGitHub { owner = "H3rmt"; repo = "hyprshell"; tag = "v${finalAttrs.version}"; - hash = "sha256-OgIeNlD2YcW5lWAQvqMvOphIxbIpGOL2WNQmtAGCsbQ="; + hash = "sha256-AfOG2MCHRp/p894mJhCRRGTLd+DpWKAp3Epf5dR7S/E="; }; useFetchCargoVendor = true; - cargoHash = "sha256-/f1AzpuzhVLeSbemgpXkh/ag33bsRMg3lrRPKVGOcK8="; + cargoHash = "sha256-+yjqbTPmfqXGJ85J2+Muhe2/mL1UyBi2XdafY9Mp+Os="; nativeBuildInputs = [ wrapGAppsHook4 From 7321d5dc7b0b2722d03c67bc8851acd014ec446c Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Mon, 30 Jun 2025 11:57:40 +0200 Subject: [PATCH 62/65] coqPackages.*: fix formatting fix --- pkgs/development/coq-modules/coqeal/default.nix | 2 +- pkgs/development/coq-modules/deriving/default.nix | 2 +- pkgs/development/coq-modules/extructures/default.nix | 2 +- pkgs/development/coq-modules/fourcolor/default.nix | 2 +- pkgs/development/coq-modules/gaia/default.nix | 2 +- pkgs/development/coq-modules/graph-theory/default.nix | 2 +- pkgs/development/coq-modules/jasmin/default.nix | 2 +- pkgs/development/coq-modules/mathcomp-abel/default.nix | 2 +- .../coq-modules/mathcomp-algebra-tactics/default.nix | 2 +- .../coq-modules/mathcomp-analysis/default.nix | 2 +- .../development/coq-modules/mathcomp-apery/default.nix | 2 +- .../coq-modules/mathcomp-finmap/default.nix | 2 +- .../coq-modules/mathcomp-infotheo/default.nix | 2 +- .../coq-modules/mathcomp-tarjan/default.nix | 2 +- pkgs/development/coq-modules/mathcomp-word/default.nix | 2 +- pkgs/development/coq-modules/mathcomp-zify/default.nix | 2 +- pkgs/development/coq-modules/multinomials/default.nix | 2 +- pkgs/development/coq-modules/odd-order/default.nix | 10 +++++----- pkgs/development/coq-modules/reglang/default.nix | 2 +- pkgs/development/coq-modules/ssprove/default.nix | 2 +- 20 files changed, 24 insertions(+), 24 deletions(-) diff --git a/pkgs/development/coq-modules/coqeal/default.nix b/pkgs/development/coq-modules/coqeal/default.nix index ead8be66918d..c1810a3730c8 100644 --- a/pkgs/development/coq-modules/coqeal/default.nix +++ b/pkgs/development/coq-modules/coqeal/default.nix @@ -19,7 +19,7 @@ let defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/deriving/default.nix b/pkgs/development/coq-modules/deriving/default.nix index f2b61dccf5ba..bfa2e99a481e 100644 --- a/pkgs/development/coq-modules/deriving/default.nix +++ b/pkgs/development/coq-modules/deriving/default.nix @@ -15,7 +15,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/extructures/default.nix b/pkgs/development/coq-modules/extructures/default.nix index bab84dfc86b1..cfb2e819e22a 100644 --- a/pkgs/development/coq-modules/extructures/default.nix +++ b/pkgs/development/coq-modules/extructures/default.nix @@ -15,7 +15,7 @@ defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/fourcolor/default.nix b/pkgs/development/coq-modules/fourcolor/default.nix index f55e55ffd5b3..7270ac6ffd14 100644 --- a/pkgs/development/coq-modules/fourcolor/default.nix +++ b/pkgs/development/coq-modules/fourcolor/default.nix @@ -24,7 +24,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/gaia/default.nix b/pkgs/development/coq-modules/gaia/default.nix index bc69b24b09cb..a716a1ad0363 100644 --- a/pkgs/development/coq-modules/gaia/default.nix +++ b/pkgs/development/coq-modules/gaia/default.nix @@ -24,7 +24,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/graph-theory/default.nix b/pkgs/development/coq-modules/graph-theory/default.nix index 57b89553b553..f600a46b4a93 100644 --- a/pkgs/development/coq-modules/graph-theory/default.nix +++ b/pkgs/development/coq-modules/graph-theory/default.nix @@ -26,7 +26,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/jasmin/default.nix b/pkgs/development/coq-modules/jasmin/default.nix index c58cba094a18..d7545d9bba62 100644 --- a/pkgs/development/coq-modules/jasmin/default.nix +++ b/pkgs/development/coq-modules/jasmin/default.nix @@ -16,7 +16,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-abel/default.nix b/pkgs/development/coq-modules/mathcomp-abel/default.nix index 9fb880f99c8f..833333392536 100644 --- a/pkgs/development/coq-modules/mathcomp-abel/default.nix +++ b/pkgs/development/coq-modules/mathcomp-abel/default.nix @@ -20,7 +20,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix index 8f1b2ab26d48..0bd7cd8a9fb9 100644 --- a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix +++ b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix @@ -21,7 +21,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-analysis/default.nix b/pkgs/development/coq-modules/mathcomp-analysis/default.nix index f87d9ed34893..5a6ec833428f 100644 --- a/pkgs/development/coq-modules/mathcomp-analysis/default.nix +++ b/pkgs/development/coq-modules/mathcomp-analysis/default.nix @@ -46,7 +46,7 @@ let defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-apery/default.nix b/pkgs/development/coq-modules/mathcomp-apery/default.nix index 45501f1969a0..3ae89da38c16 100644 --- a/pkgs/development/coq-modules/mathcomp-apery/default.nix +++ b/pkgs/development/coq-modules/mathcomp-apery/default.nix @@ -19,7 +19,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-finmap/default.nix b/pkgs/development/coq-modules/mathcomp-finmap/default.nix index 82c1bf7ac48f..11b177e80910 100644 --- a/pkgs/development/coq-modules/mathcomp-finmap/default.nix +++ b/pkgs/development/coq-modules/mathcomp-finmap/default.nix @@ -18,7 +18,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix index 6a29a390174a..c3bb32a15cc5 100644 --- a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix +++ b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix @@ -21,7 +21,7 @@ defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-tarjan/default.nix b/pkgs/development/coq-modules/mathcomp-tarjan/default.nix index 383da1bd8231..e5f1b9ee1b9e 100644 --- a/pkgs/development/coq-modules/mathcomp-tarjan/default.nix +++ b/pkgs/development/coq-modules/mathcomp-tarjan/default.nix @@ -20,7 +20,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-word/default.nix b/pkgs/development/coq-modules/mathcomp-word/default.nix index 555b572c467b..0041eca094ad 100644 --- a/pkgs/development/coq-modules/mathcomp-word/default.nix +++ b/pkgs/development/coq-modules/mathcomp-word/default.nix @@ -58,7 +58,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/mathcomp-zify/default.nix b/pkgs/development/coq-modules/mathcomp-zify/default.nix index 8e4dd232dcff..e1d1a9fdec83 100644 --- a/pkgs/development/coq-modules/mathcomp-zify/default.nix +++ b/pkgs/development/coq-modules/mathcomp-zify/default.nix @@ -22,7 +22,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/multinomials/default.nix b/pkgs/development/coq-modules/multinomials/default.nix index 8b2f7608afc8..bf6a7eaef0f3 100644 --- a/pkgs/development/coq-modules/multinomials/default.nix +++ b/pkgs/development/coq-modules/multinomials/default.nix @@ -22,7 +22,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/odd-order/default.nix b/pkgs/development/coq-modules/odd-order/default.nix index 81a59e31e291..82c0272c16f3 100644 --- a/pkgs/development/coq-modules/odd-order/default.nix +++ b/pkgs/development/coq-modules/odd-order/default.nix @@ -23,11 +23,11 @@ mkCoqDerivation { in with lib.versions; lib.switch mathcomp.character.version [ - (case ((range "2.2.0" "2.4.0")) "2.2.0") - (case ((range "2.1.0" "2.3.0")) "2.1.0") - (case ((range "1.13.0" "1.15.0")) "1.14.0") - (case ((range "1.12.0" "1.14.0")) "1.13.0") - (case ((range "1.10.0" "1.12.0")) "1.12.0") + (case (range "2.2.0" "2.4.0") "2.2.0") + (case (range "2.1.0" "2.3.0") "2.1.0") + (case (range "1.13.0" "1.15.0") "1.14.0") + (case (range "1.12.0" "1.14.0") "1.13.0") + (case (range "1.10.0" "1.12.0") "1.12.0") ] null; propagatedBuildInputs = [ diff --git a/pkgs/development/coq-modules/reglang/default.nix b/pkgs/development/coq-modules/reglang/default.nix index 819adb3fdd88..adbb2bfbae98 100644 --- a/pkgs/development/coq-modules/reglang/default.nix +++ b/pkgs/development/coq-modules/reglang/default.nix @@ -22,7 +22,7 @@ mkCoqDerivation { defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; diff --git a/pkgs/development/coq-modules/ssprove/default.nix b/pkgs/development/coq-modules/ssprove/default.nix index 2d11562ba084..1b8ad91a51b9 100644 --- a/pkgs/development/coq-modules/ssprove/default.nix +++ b/pkgs/development/coq-modules/ssprove/default.nix @@ -20,7 +20,7 @@ defaultVersion = let case = coq: mc: out: { - case = [ + cases = [ coq mc ]; From 83ccb4858ced8bea413d63d031d282cf307d8784 Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Thu, 26 Jun 2025 19:09:53 +0200 Subject: [PATCH 63/65] netsurf-browser: add fgaz to maintainers --- pkgs/applications/networking/browsers/netsurf/buildsystem.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/browsers/netsurf/buildsystem.nix b/pkgs/applications/networking/browsers/netsurf/buildsystem.nix index 3aa6ed08e41c..aae1857ba079 100644 --- a/pkgs/applications/networking/browsers/netsurf/buildsystem.nix +++ b/pkgs/applications/networking/browsers/netsurf/buildsystem.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://www.netsurf-browser.org/"; description = "NetSurf browser shared build system"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ ]; + maintainers = with lib.maintainers; [ fgaz ]; platforms = lib.platforms.unix; }; }) From 52d3d40668db6d7d0582678150f849841fc77151 Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Thu, 26 Jun 2025 19:10:22 +0200 Subject: [PATCH 64/65] dillo: add fgaz to maintainers --- pkgs/by-name/di/dillo/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/di/dillo/package.nix b/pkgs/by-name/di/dillo/package.nix index e32387f02ca2..53b234f354ca 100644 --- a/pkgs/by-name/di/dillo/package.nix +++ b/pkgs/by-name/di/dillo/package.nix @@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: { - Helps authors to comply with web standards by using the bug meter. ''; mainProgram = "dillo"; - maintainers = with lib.maintainers; [ ]; + maintainers = with lib.maintainers; [ fgaz ]; license = lib.licenses.gpl3Plus; platforms = lib.platforms.all; }; From 11c5ba8107f031783f337967f92c29895c24319e Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Thu, 26 Jun 2025 19:29:17 +0200 Subject: [PATCH 65/65] tclPackages.rl_json: 0.15.2 -> 0.15.3 Diff: https://github.com/RubyLane/rl_json/compare/0.15.2...0.15.3 --- pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix b/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix index 7a10f70c8d5d..fd67dfc347f9 100644 --- a/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix +++ b/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "rl_json"; - version = "0.15.2"; + version = "0.15.3"; src = fetchFromGitHub { owner = "RubyLane"; repo = "rl_json"; rev = finalAttrs.version; - hash = "sha256-y62N4DK80baJx7tQ562ZWOEpKcDldKS1pEwR7NpzuZQ="; + hash = "sha256-JyJBf8lMrO/P5grOMojqs1PRoMPRsPWGQYS33eB7bRI="; fetchSubmodules = true; };