From c6476ca11990e993f265eba077d65424b9e80d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20S=C3=BCtter?= Date: Fri, 11 Apr 2025 12:46:50 +0200 Subject: [PATCH 01/36] repart: Enable discard option systemd-repart can be configured to not automatically issue BLKDISCARD commands to the underlying hardware. This PR exposes this option in the repart module. --- nixos/modules/system/boot/systemd/repart.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/nixos/modules/system/boot/systemd/repart.nix b/nixos/modules/system/boot/systemd/repart.nix index a8dc4745c26b..b7ca00cf6a03 100644 --- a/nixos/modules/system/boot/systemd/repart.nix +++ b/nixos/modules/system/boot/systemd/repart.nix @@ -72,6 +72,19 @@ in example = "require"; default = "refuse"; }; + + discard = lib.mkOption { + type = lib.types.bool; + description = '' + Controls whether to issue the BLKDISCARD I/O control command on the + space taken up by any added partitions or on the space in between them. + Usually, it's a good idea to issue this request since it tells the underlying + hardware that the covered blocks shall be considered empty, improving performance. + + See {manpage}`systemd-repart(8)` for details. + ''; + default = true; + }; }; systemd.repart = { @@ -163,6 +176,7 @@ in --definitions=/etc/repart.d \ --dry-run=no \ --empty=${initrdCfg.empty} \ + --discard=${lib.boolToString initrdCfg.discard} \ ${lib.optionalString (initrdCfg.device != null) initrdCfg.device} '' ]; From 7625e0b016b35c7cea393c44f055cbdd8f55c388 Mon Sep 17 00:00:00 2001 From: Zexin Yuan Date: Fri, 18 Apr 2025 19:23:05 +0800 Subject: [PATCH 02/36] blender: fix openusd support --- pkgs/by-name/bl/blender/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/bl/blender/package.nix b/pkgs/by-name/bl/blender/package.nix index 6d4516c07a6e..820b9bb761c9 100644 --- a/pkgs/by-name/bl/blender/package.nix +++ b/pkgs/by-name/bl/blender/package.nix @@ -321,7 +321,7 @@ stdenv'.mkDerivation (finalAttrs: { ps.requests ps.zstandard ] - ++ lib.optional openUsdSupport [ pyPkgsOpenusd ]; + ++ lib.optionals openUsdSupport [ pyPkgsOpenusd ]; blenderExecutable = placeholder "out" From 3280b11e5b3d0721a8e6c64273caf55e23a69109 Mon Sep 17 00:00:00 2001 From: emaryn Date: Tue, 22 Apr 2025 02:58:12 +0800 Subject: [PATCH 03/36] dnsviz: 0.9.4 -> 0.11.1 Diff: https://github.com/dnsviz/dnsviz/compare/v0.9.4...v0.11.1 --- pkgs/tools/networking/dnsviz/default.nix | 30 ++++++++++----------- pkgs/tools/networking/dnsviz/fix-path.patch | 6 ++--- pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/pkgs/tools/networking/dnsviz/default.nix b/pkgs/tools/networking/dnsviz/default.nix index 46a9617cc2cc..bba786016014 100644 --- a/pkgs/tools/networking/dnsviz/default.nix +++ b/pkgs/tools/networking/dnsviz/default.nix @@ -1,21 +1,18 @@ { lib, - buildPythonApplication, + python3Packages, fetchFromGitHub, - dnspython, - m2crypto, - pygraphviz, }: -buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "dnsviz"; - version = "0.9.4"; + version = "0.11.1"; src = fetchFromGitHub { owner = "dnsviz"; repo = "dnsviz"; - rev = "v${version}"; - sha256 = "sha256-x6LdPVQFfsJIuKde1+LbFKz5bBEi+Mri9sVH0nGsbCU="; + tag = "v${version}"; + hash = "sha256-JlPikEvRPFhHcTyRJ2ZgmQOrrc6qzhbAO6+NtiN+Wqo="; }; patches = [ @@ -23,22 +20,23 @@ buildPythonApplication rec { ./fix-path.patch ]; - propagatedBuildInputs = [ + postPatch = '' + substituteInPlace dnsviz/config.py.in \ + --replace-fail '@out@' $out + ''; + + dependencies = with python3Packages; [ dnspython m2crypto pygraphviz ]; - postPatch = '' - substituteInPlace dnsviz/config.py.in --replace '@out@' $out - ''; - # Tests require network connection and /etc/resolv.conf doCheck = false; pythonImportsCheck = [ "dnsviz" ]; - meta = with lib; { + meta = { description = "Tool suite for analyzing and visualizing DNS and DNSSEC behavior"; mainProgram = "dnsviz"; longDescription = '' @@ -47,7 +45,7 @@ buildPythonApplication rec { This tool suite powers the Web-based analysis available at https://dnsviz.net/ ''; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ jojosch ]; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ jojosch ]; }; } diff --git a/pkgs/tools/networking/dnsviz/fix-path.patch b/pkgs/tools/networking/dnsviz/fix-path.patch index 7906058cd98e..4dc963dec71f 100644 --- a/pkgs/tools/networking/dnsviz/fix-path.patch +++ b/pkgs/tools/networking/dnsviz/fix-path.patch @@ -2,10 +2,10 @@ diff --git a/dnsviz/config.py.in b/dnsviz/config.py.in index 373fde2..007f0f1 100644 --- a/dnsviz/config.py.in +++ b/dnsviz/config.py.in -@@ -26,12 +26,7 @@ from __future__ import unicode_literals +@@ -26,12 +26,7 @@ import os import sys - + -_prefix = '__DNSVIZ_INSTALL_PREFIX__' -if (hasattr(sys, 'real_prefix') or hasattr(sys, 'base_prefix')) and \ - not _prefix: @@ -13,6 +13,6 @@ index 373fde2..007f0f1 100644 -else: - DNSVIZ_INSTALL_PREFIX = _prefix +DNSVIZ_INSTALL_PREFIX = "@out@" - DNSVIZ_SHARE_PATH = os.path.join(DNSVIZ_INSTALL_PREFIX, 'share', 'dnsviz') + DNSVIZ_SHARE_PATH = os.getenv('DNSVIZ_SHARE_PATH', os.path.join(DNSVIZ_INSTALL_PREFIX, 'share', 'dnsviz')) JQUERY_PATH = __JQUERY_PATH__ JQUERY_UI_PATH = __JQUERY_UI_PATH__ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2cc78d7b1dfe..30a5b7482906 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3171,7 +3171,7 @@ with pkgs; deluge-2_x = deluge; - dnsviz = python3Packages.callPackage ../tools/networking/dnsviz { }; + dnsviz = callPackage ../tools/networking/dnsviz { }; diffoscopeMinimal = diffoscope.override { enableBloat = false; From 48bb689f0cb020b391096c6593a564a1007b18cb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 26 Apr 2025 13:23:04 +0000 Subject: [PATCH 04/36] peergos: 1.1.0 -> 1.2.0 --- pkgs/by-name/pe/peergos/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pe/peergos/package.nix b/pkgs/by-name/pe/peergos/package.nix index edf1c67f6b08..f1314e631b77 100644 --- a/pkgs/by-name/pe/peergos/package.nix +++ b/pkgs/by-name/pe/peergos/package.nix @@ -41,12 +41,12 @@ let in stdenv.mkDerivation rec { pname = "peergos"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { owner = "Peergos"; repo = "web-ui"; rev = "v${version}"; - hash = "sha256-te+m4S3mhYEocLd9NjQNFA8vbMf470V1dlPqCr0KLV4="; + hash = "sha256-X5yXTCHKGrdvuoKc5nFbn4CWunNsyoJI+EZLpknLAyA="; fetchSubmodules = true; }; From 826c6d17e6ae6e9ccc41fd1d5c1758da5aa40c87 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 27 Apr 2025 20:53:00 +0000 Subject: [PATCH 05/36] python312Packages.pyghmi: 1.5.77 -> 1.6.0 --- pkgs/development/python-modules/pyghmi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyghmi/default.nix b/pkgs/development/python-modules/pyghmi/default.nix index 002585da278f..59133646877f 100644 --- a/pkgs/development/python-modules/pyghmi/default.nix +++ b/pkgs/development/python-modules/pyghmi/default.nix @@ -15,12 +15,12 @@ buildPythonPackage rec { pname = "pyghmi"; - version = "1.5.77"; + version = "1.6.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-RGV3d944MKrbuBM/eX9NIyHiasmLkkHH+zyeEjkIt7U="; + hash = "sha256-jPfGPKQkHLyapGWJ0o05e79pPlw0UWNJeHHJgb+MdFQ="; }; build-system = [ From f97ca76b1043ecc972187a4fcadab5dff18e9547 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 27 Apr 2025 15:27:48 -0700 Subject: [PATCH 06/36] androidenv: support linking "latest" version of all plugins As noted in #379534, the NDK linking broke during refactoring. Add a test for that, and support linking the latest for all platform plugins that take at least one version. --- .../androidenv/compose-android-packages.nix | 73 ++++++++++++------- .../mobile/androidenv/examples/shell.nix | 14 ++++ 2 files changed, 62 insertions(+), 25 deletions(-) diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix index aaf0dd43dc80..57a9afc8a9de 100644 --- a/pkgs/development/mobile/androidenv/compose-android-packages.nix +++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix @@ -13,6 +13,16 @@ let # Coerces a string to an int. coerceInt = val: if lib.isInt val then val else lib.toIntBase10 val; + + # Parses a single version, substituting "latest" with the latest version. + parseVersion = + repo: key: version: + if version == "latest" then repo.latest.${key} else version; + + # Parses a list of versions, substituting "latest" with the latest version. + parseVersions = + repo: key: versions: + lib.unique (map (parseVersion repo key) versions); in { repoJson ? ./repo.json, @@ -74,27 +84,31 @@ in else lib.importJSON repoJson ), - cmdLineToolsVersion ? repo.latest.cmdline-tools, - toolsVersion ? repo.latest.tools, - platformToolsVersion ? repo.latest.platform-tools, - buildToolsVersions ? [ repo.latest.build-tools ], + cmdLineToolsVersion ? "latest", + toolsVersion ? "latest", + platformToolsVersion ? "latest", + buildToolsVersions ? [ "latest" ], includeEmulator ? false, - emulatorVersion ? repo.latest.emulator, + emulatorVersion ? "latest", minPlatformVersion ? null, - maxPlatformVersion ? coerceInt repo.latest.platforms, + maxPlatformVersion ? "latest", numLatestPlatformVersions ? 1, platformVersions ? if minPlatformVersion != null && maxPlatformVersion != null then let - minPlatformVersionInt = coerceInt minPlatformVersion; - maxPlatformVersionInt = coerceInt maxPlatformVersion; + minPlatformVersionInt = coerceInt (parseVersion repo "platforms" minPlatformVersion); + maxPlatformVersionInt = coerceInt (parseVersion repo "platforms" maxPlatformVersion); in lib.range (lib.min minPlatformVersionInt maxPlatformVersionInt) ( lib.max minPlatformVersionInt maxPlatformVersionInt ) else let - minPlatformVersionInt = if minPlatformVersion == null then 1 else coerceInt minPlatformVersion; + minPlatformVersionInt = + if minPlatformVersion == null then + 1 + else + coerceInt (parseVersion repo "platforms" minPlatformVersion); latestPlatformVersionInt = lib.max minPlatformVersionInt (coerceInt repo.latest.platforms); firstPlatformVersionInt = lib.max minPlatformVersionInt ( latestPlatformVersionInt - (lib.max 1 numLatestPlatformVersions) + 1 @@ -115,9 +129,9 @@ in ], # cmake has precompiles on x86_64 and Darwin platforms. Default to true there for compatibility. includeCmake ? stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin, - cmakeVersions ? [ repo.latest.cmake ], + cmakeVersions ? [ "latest" ], includeNDK ? false, - ndkVersion ? repo.latest.ndk, + ndkVersion ? "latest", ndkVersions ? [ ndkVersion ], useGoogleAPIs ? false, useGoogleTVAddOns ? false, @@ -126,6 +140,9 @@ in }: let + # Resolve all the platform versions. + platformVersions' = map coerceInt (parseVersions repo "platforms" platformVersions); + # Determine the Android os identifier from Nix's system identifier os = { @@ -420,7 +437,9 @@ lib.recurseIntoAttrs rec { arch meta ; - package = checkVersion allArchives.packages "platform-tools" platformToolsVersion; + package = checkVersion allArchives.packages "platform-tools" ( + parseVersion repo "platform-tools" platformToolsVersion + ); }; tools = callPackage ./tools.nix { @@ -430,7 +449,7 @@ lib.recurseIntoAttrs rec { arch meta ; - package = checkVersion allArchives.packages "tools" toolsVersion; + package = checkVersion allArchives.packages "tools" (parseVersion repo "tools" toolsVersion); postInstall = '' ${linkPlugin { @@ -464,7 +483,7 @@ lib.recurseIntoAttrs rec { }} ''; } - ) buildToolsVersions; + ) (parseVersions repo "build-tools" buildToolsVersions); emulator = callPackage ./emulator.nix { inherit @@ -473,7 +492,9 @@ lib.recurseIntoAttrs rec { arch meta ; - package = checkVersion allArchives.packages "emulator" emulatorVersion; + package = checkVersion allArchives.packages "emulator" ( + parseVersion repo "emulator" emulatorVersion + ); postInstall = '' ${linkSystemImages { @@ -483,21 +504,21 @@ lib.recurseIntoAttrs rec { ''; }; - inherit platformVersions; + platformVersions = platformVersions'; platforms = map ( version: deployAndroidPackage { package = checkVersion allArchives.packages "platforms" version; } - ) platformVersions; + ) platformVersions'; sources = map ( version: deployAndroidPackage { package = checkVersion allArchives.packages "sources" version; } - ) platformVersions; + ) platformVersions'; system-images = lib.flatten ( map ( @@ -538,7 +559,7 @@ lib.recurseIntoAttrs rec { patchesInstructions = instructions; }) ) systemImageTypes - ) platformVersions + ) platformVersions' ); cmake = map ( @@ -552,7 +573,7 @@ lib.recurseIntoAttrs rec { ; package = checkVersion allArchives.packages "cmake" version; } - ) cmakeVersions; + ) (parseVersions repo "cmake" cmakeVersions); # All NDK bundles. ndk-bundles = @@ -576,11 +597,11 @@ lib.recurseIntoAttrs rec { version: let package = makeNdkBundle ( - allArchives.packages.ndk-bundle.${ndkVersion} or allArchives.packages.ndk.${ndkVersion} + allArchives.packages.ndk-bundle.${version} or allArchives.packages.ndk.${version} ); in lib.optional (shouldLink includeNDK [ package ]) package - ) ndkVersions + ) (parseVersions repo "ndk" ndkVersions) ); # The "default" NDK bundle. @@ -592,7 +613,7 @@ lib.recurseIntoAttrs rec { deployAndroidPackage { package = (checkVersion allArchives "addons" version).google_apis; } - ) (lib.filter (hasVersion allArchives "addons") platformVersions); + ) (lib.filter (hasVersion allArchives "addons") platformVersions'); # Makes a Google TV addons bundle from supported versions. google-tv-addons = map ( @@ -600,9 +621,11 @@ lib.recurseIntoAttrs rec { deployAndroidPackage { package = (checkVersion allArchives "addons" version).google_tv_addon; } - ) (lib.filter (hasVersion allArchives "addons") platformVersions); + ) (lib.filter (hasVersion allArchives "addons") platformVersions'); - cmdline-tools-package = checkVersion allArchives.packages "cmdline-tools" cmdLineToolsVersion; + cmdline-tools-package = checkVersion allArchives.packages "cmdline-tools" ( + parseVersion repo "cmdline-tools" cmdLineToolsVersion + ); # This derivation deploys the tools package and symlinks all the desired # plugins that we want to use. If the license isn't accepted, prints all the licenses diff --git a/pkgs/development/mobile/androidenv/examples/shell.nix b/pkgs/development/mobile/androidenv/examples/shell.nix index 9058e1664fe6..423753cae366 100644 --- a/pkgs/development/mobile/androidenv/examples/shell.nix +++ b/pkgs/development/mobile/androidenv/examples/shell.nix @@ -45,11 +45,19 @@ let # The head unit only works on these platforms includeAuto = pkgs.stdenv.hostPlatform.isx86_64 || pkgs.stdenv.hostPlatform.isDarwin; + ndkVersions = [ + "23.1.7779620" + "25.1.8937393" + "26.1.10909125" + "latest" + ]; + androidComposition = androidEnv.composeAndroidPackages { includeSources = true; includeSystemImages = false; includeEmulator = "if-supported"; includeNDK = "if-supported"; + inherit ndkVersions; useGoogleAPIs = true; useGoogleTVAddOns = true; @@ -191,6 +199,12 @@ pkgs.mkShell rec { fi done + num_ndk_packages="$(echo "$installed_packages_section" | grep '^ndk;' | wc -l)" + if [ $num_ndk_packages -ne ${toString (pkgs.lib.length ndkVersions)} ]; then + echo "Invalid NDK package count: $num_ndk_packages" + exit 1 + fi + touch "$out" ''; }; From 126c22792dbb48b879e533cdf5795aba4e018d17 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 27 Apr 2025 15:53:53 -0700 Subject: [PATCH 07/36] androidenv: update docs to explain the latest version --- doc/languages-frameworks/android.section.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/languages-frameworks/android.section.md b/doc/languages-frameworks/android.section.md index f970776a9b8d..9e93d4eda36d 100644 --- a/doc/languages-frameworks/android.section.md +++ b/doc/languages-frameworks/android.section.md @@ -50,6 +50,7 @@ let platformVersions = [ "34" "35" + "latest" ]; systemImageTypes = [ "google_apis_playstore" ]; abiVersions = [ @@ -130,7 +131,8 @@ For each requested system image we can specify the following options: be included. Defaults to `armeabi-v7a` and `arm64-v8a`. Most of the function arguments have reasonable default settings, preferring the latest -versions of tools when possible. +versions of tools when possible. You can additionally specify "latest" for any plugin version +that you do not care about, and just want the latest of. You can specify license names: From 44728083d2698a4c8038380342eee1be5b1e1773 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 28 Apr 2025 01:34:12 +0000 Subject: [PATCH 08/36] rip2: 0.9.3 -> 0.9.4 --- pkgs/by-name/ri/rip2/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ri/rip2/package.nix b/pkgs/by-name/ri/rip2/package.nix index d7da56c59c7c..9895571a9385 100644 --- a/pkgs/by-name/ri/rip2/package.nix +++ b/pkgs/by-name/ri/rip2/package.nix @@ -10,17 +10,17 @@ rustPlatform.buildRustPackage rec { pname = "rip2"; - version = "0.9.3"; + version = "0.9.4"; src = fetchFromGitHub { owner = "MilesCranmer"; repo = "rip2"; rev = "v${version}"; - hash = "sha256-bwIvjpZgX95Vg14sU6JmYuWNHP38ZBM98ii/Rze+lqA="; + hash = "sha256-lNMFbc0TItvVuzwpVbe7qWlSCzIaFi0/cQwfq2itzbY="; }; useFetchCargoVendor = true; - cargoHash = "sha256-G4AlFICHkBzpVoXbKp8TIyUZ78bhwPxNNeQRMOxfq6o="; + cargoHash = "sha256-KUVybOCtc66AubXjei0YCkXirfuIDgK3xSxjNODun98="; nativeBuildInputs = [ installShellFiles ]; From 0dd09e0af44710f008e5596a3d4a5395907cf47f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 28 Apr 2025 05:42:21 +0000 Subject: [PATCH 09/36] syft: 1.22.0 -> 1.23.1 --- pkgs/by-name/sy/syft/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sy/syft/package.nix b/pkgs/by-name/sy/syft/package.nix index 2c1ecf61d3fc..444059167688 100644 --- a/pkgs/by-name/sy/syft/package.nix +++ b/pkgs/by-name/sy/syft/package.nix @@ -7,13 +7,13 @@ buildGoModule rec { pname = "syft"; - version = "1.22.0"; + version = "1.23.1"; src = fetchFromGitHub { owner = "anchore"; repo = "syft"; tag = "v${version}"; - hash = "sha256-gaOpPgFwnGaDWqJqgZSCZr8kNBhJsb1D3nfaBGwPeG4="; + hash = "sha256-GSDkSM6mQIBb25ez74Cpdri8Ryl6LJz08bumj37yZBA="; # populate values that require us to use git. By doing this in postFetch we # can delete .git afterwards and maintain better reproducibility of the src. leaveDotGit = true; @@ -28,7 +28,7 @@ buildGoModule rec { # hash mismatch with darwin proxyVendor = true; - vendorHash = "sha256-cYZ/7bZHQcKYy9Jg/RrlwZoqOHL3uLAn60JFC3TsVnE="; + vendorHash = "sha256-1vzN92jcksIu0QklQ73dsC9ng193WCinN0BxOWLLQ7Y="; nativeBuildInputs = [ installShellFiles ]; From cedcbf37e2ebe9d3a1ab71e76cfa1404ee9146b7 Mon Sep 17 00:00:00 2001 From: CherryKitten Date: Thu, 24 Apr 2025 11:47:01 +0200 Subject: [PATCH 10/36] gotosocial: move to codeberg --- pkgs/by-name/go/gotosocial/package.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/go/gotosocial/package.nix b/pkgs/by-name/go/gotosocial/package.nix index 639d0718a22b..dfa80583edfe 100644 --- a/pkgs/by-name/go/gotosocial/package.nix +++ b/pkgs/by-name/go/gotosocial/package.nix @@ -1,18 +1,19 @@ { lib, fetchurl, - fetchFromGitHub, + fetchFromGitea, buildGoModule, nixosTests, }: let + domain = "codeberg.org"; owner = "superseriousbusiness"; repo = "gotosocial"; version = "0.19.0"; web-assets = fetchurl { - url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz"; + url = "https://${domain}/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz"; hash = "sha256-Ba497VKK30MWcLlR4CDDUrFZKWf/UXiSgeDr/f7fFkc="; }; in @@ -20,8 +21,8 @@ buildGoModule rec { inherit version; pname = repo; - src = fetchFromGitHub { - inherit owner repo; + src = fetchFromGitea { + inherit domain owner repo; tag = "v${version}"; hash = "sha256-ioIsa2L1w4z1b7tWFhHScmPwRRq0WLngIdm4r2eCveM="; }; @@ -63,7 +64,7 @@ buildGoModule rec { meta = with lib; { homepage = "https://gotosocial.org"; - changelog = "https://github.com/superseriousbusiness/gotosocial/releases/tag/v${version}"; + changelog = "https://codeberg.org/superseriousbusiness/gotosocial/releases/tag/v${version}"; description = "Fast, fun, ActivityPub server, powered by Go"; longDescription = '' ActivityPub social network server, written in Golang. From bae89afba17d71f36159173cdd9d87617eadc220 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 28 Apr 2025 07:40:46 +0000 Subject: [PATCH 11/36] mycelium: 0.5.7 -> 0.6.0 --- pkgs/by-name/my/mycelium/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/my/mycelium/package.nix b/pkgs/by-name/my/mycelium/package.nix index f947e2c1f7ad..77f4525ec95a 100644 --- a/pkgs/by-name/my/mycelium/package.nix +++ b/pkgs/by-name/my/mycelium/package.nix @@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec { pname = "mycelium"; - version = "0.5.7"; + version = "0.6.0"; sourceRoot = "${src.name}/myceliumd"; @@ -20,11 +20,11 @@ rustPlatform.buildRustPackage rec { owner = "threefoldtech"; repo = "mycelium"; rev = "v${version}"; - hash = "sha256-PbEoM+AnZTuo9xtwcDcTH9FZAzPzfBhX41+zVVTdgRo="; + hash = "sha256-H/LDDoWX8fDQMGknY4/SasRGC30fCmtWI3+p8XzEzCg="; }; useFetchCargoVendor = true; - cargoHash = "sha256-63AB63vmxXi6ugLCAOKI1eJcOB8XHWEiCc5yoIEqd+w="; + cargoHash = "sha256-9eiBFTb1dMKnM9VDPcV8dF7ChswVha0zCXjxlD2NCNc="; nativeBuildInputs = [ versionCheckHook ]; buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ From b6b6f025c9f6be391521b916982a88d77f27821c Mon Sep 17 00:00:00 2001 From: emaryn Date: Sun, 20 Apr 2025 07:56:19 +0800 Subject: [PATCH 12/36] contour: 0.5.1.7247 -> 0.6.1.7494 Diff: https://github.com/contour-terminal/contour/compare/v0.5.1.7247...v0.6.1.7494 Changelog: https://github.com/contour-terminal/contour/raw/v25.05pre-git/Changelog.md --- pkgs/by-name/co/contour/package.nix | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/co/contour/package.nix b/pkgs/by-name/co/contour/package.nix index 779144322f25..d26ce03f12da 100644 --- a/pkgs/by-name/co/contour/package.nix +++ b/pkgs/by-name/co/contour/package.nix @@ -24,17 +24,18 @@ sigtool, nixosTests, installShellFiles, + reflection-cpp, }: -stdenv.mkDerivation (final: { +stdenv.mkDerivation (finalAttrs: { pname = "contour"; - version = "0.5.1.7247"; + version = "0.6.1.7494"; src = fetchFromGitHub { owner = "contour-terminal"; repo = "contour"; - rev = "v${final.version}"; - hash = "sha256-/vpbyaULemyM3elwaoofvbeeID7jNrmu8X8HlZxWGCk"; + tag = "v${finalAttrs.version}"; + hash = "sha256-jgasZhdcJ+UF3VIl8HLcxBayvbA/dkaOG8UtANRgeP4="; }; patches = [ ./dont-fix-app-bundle.diff ]; @@ -69,6 +70,7 @@ stdenv.mkDerivation (final: { microsoft-gsl range-v3 yaml-cpp + reflection-cpp ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libutempter ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ @@ -100,13 +102,13 @@ stdenv.mkDerivation (final: { passthru.tests.test = nixosTests.terminal-emulators.contour; - meta = with lib; { + meta = { description = "Modern C++ Terminal Emulator"; homepage = "https://github.com/contour-terminal/contour"; - changelog = "https://github.com/contour-terminal/contour/raw/v${version}/Changelog.md"; - license = licenses.asl20; - maintainers = with maintainers; [ moni ]; - platforms = platforms.unix; + changelog = "https://github.com/contour-terminal/contour/raw/v${finalAttrs.version}/Changelog.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ moni ]; + platforms = lib.platforms.unix; mainProgram = "contour"; }; }) From 1cd1b3ec2a0a41f3fc843ec1bb848fb71246108e Mon Sep 17 00:00:00 2001 From: emaryn <197520219+emaryn@users.noreply.github.com> Date: Mon, 28 Apr 2025 08:14:34 +0000 Subject: [PATCH 13/36] reflection-cpp: init at 0.2.0 --- pkgs/by-name/re/reflection-cpp/package.nix | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pkgs/by-name/re/reflection-cpp/package.nix diff --git a/pkgs/by-name/re/reflection-cpp/package.nix b/pkgs/by-name/re/reflection-cpp/package.nix new file mode 100644 index 000000000000..6c0ed16764d9 --- /dev/null +++ b/pkgs/by-name/re/reflection-cpp/package.nix @@ -0,0 +1,28 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "reflection-cpp"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "contour-terminal"; + repo = "reflection-cpp"; + tag = "v${finalAttrs.version}"; + hash = "sha256-q0h8p6xJ1UectRe656B6mT5+QokxR9N8rqzvgwUBugg="; + }; + + nativeBuildInputs = [ cmake ]; + + meta = { + description = "C++ static reflection support library"; + homepage = "https://github.com/contour-terminal/reflection-cpp"; + license = lib.licenses.asl20; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ emaryn ]; + }; +}) From 08c47b7dec8ebc9083588d6425fd261d56523567 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sun, 20 Apr 2025 05:29:07 +0800 Subject: [PATCH 14/36] conduktor: 2.15.1 -> 2.24.9 Diff: https://github.com/conduktor/builds/compare/v2.15.1...v2.24.9 Changelog: https://www.conduktor.io/changelog/#2.24.9 --- pkgs/by-name/co/conduktor/package.nix | 65 ++++++++++++++++++--------- 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/pkgs/by-name/co/conduktor/package.nix b/pkgs/by-name/co/conduktor/package.nix index e78f4bd35e22..a84c63fc6789 100644 --- a/pkgs/by-name/co/conduktor/package.nix +++ b/pkgs/by-name/co/conduktor/package.nix @@ -1,38 +1,48 @@ { - stdenv, lib, + stdenv, fetchurl, fetchzip, jdk11, - makeWrapper, + openjfx17, + gtk3, + glib, + pango, + cairo, + gdk-pixbuf, + xorg, + makeBinaryWrapper, makeDesktopItem, copyDesktopItems, }: -stdenv.mkDerivation rec { +let + openjfx_jdk = openjfx17.override { withWebKit = true; }; +in +stdenv.mkDerivation (finalAttrs: { pname = "conduktor"; - version = "2.15.1"; + version = "2.24.9"; src = fetchzip { - url = "https://github.com/conduktor/builds/releases/download/v${version}/Conduktor-linux-${version}.zip"; - sha256 = "sha256-9y/7jni5zIITUWd75AxsfG/b5vCYotmeMeC9aYM2WEs="; + url = "https://github.com/conduktor/builds/releases/download/v${finalAttrs.version}/Conduktor-linux-${finalAttrs.version}.zip"; + hash = "sha256-c9QjlKPZpeJi5YTq4gm+sg7my4EP0LI95AfGguF4ork="; }; nativeBuildInputs = [ - makeWrapper + makeBinaryWrapper copyDesktopItems ]; desktopItems = [ (makeDesktopItem { type = "Application"; - name = pname; + name = "conduktor"; desktopName = "Conduktor"; - genericName = meta.description; - exec = pname; + genericName = finalAttrs.meta.description; + exec = "conduktor"; icon = fetchurl { - url = "https://github.com/conduktor/builds/raw/v${version}/.github/resources/Conduktor.png"; - sha256 = "0s7p74qclvac8xj2m22gfxx5m2c7cf0nqpk5sb049p2wvryhn2j4"; + url = "https://github.com/conduktor/builds/raw/v${finalAttrs.version}/.github/resources/Conduktor.png"; + hash = "sha256-mk4c9ecookRb7gR56cedIWfPfQy2uGF+ZbX6NI90KI0="; }; comment = "A beautiful and fully-featured desktop client for Apache Kafka"; }) @@ -44,23 +54,36 @@ stdenv.mkDerivation rec { installPhase = '' runHook preInstall - mkdir -p $out/share/applications - mv * $out - wrapProgram "$out/bin/conduktor" --set JAVA_HOME "${jdk11.home}" + cp -r . $out + wrapProgram $out/bin/conduktor \ + --set JAVA_HOME ${jdk11.home} \ + --set LD_LIBRARY_PATH ${ + lib.makeLibraryPath [ + openjfx_jdk + gtk3 + gtk3 + glib + pango + cairo + gdk-pixbuf + xorg.libXtst + ] + } \ + --add-flags "--module-path ${openjfx_jdk}/lib --add-modules=javafx.controls,javafx.fxml" runHook postInstall ''; - meta = with lib; { + meta = { description = "Apache Kafka Desktop Client"; longDescription = '' Conduktor is a GUI over the Kafka ecosystem, to make the development and management of Apache Kafka clusters as easy as possible. ''; homepage = "https://www.conduktor.io/"; - changelog = "https://www.conduktor.io/changelog/#${version}"; - license = licenses.unfree; - maintainers = with maintainers; [ trobert ]; - platforms = platforms.linux; + changelog = "https://www.conduktor.io/changelog/#${finalAttrs.version}"; + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ trobert ]; + platforms = lib.platforms.linux; }; -} +}) From 58013c9fb2151a0407aa7f8ca2534bbde83f73a6 Mon Sep 17 00:00:00 2001 From: r-vdp Date: Mon, 28 Apr 2025 10:39:54 +0200 Subject: [PATCH 15/36] nixos/mycelium: pull in network-online.target The test was failing because it waits for network-online.target which was not part of the transaction. --- nixos/modules/services/networking/mycelium.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/mycelium.nix b/nixos/modules/services/networking/mycelium.nix index 26c9be290fed..7ba506ef25eb 100644 --- a/nixos/modules/services/networking/mycelium.nix +++ b/nixos/modules/services/networking/mycelium.nix @@ -73,7 +73,13 @@ in systemd.services.mycelium = { description = "Mycelium network"; - after = [ "network.target" ]; + after = [ + "network.target" + "network-online.target" + ]; + wants = [ + "network-online.target" + ]; wantedBy = [ "multi-user.target" ]; restartTriggers = [ cfg.keyFile From 3953f9442c350777ad8cc3e25f92217f2fc05f5b Mon Sep 17 00:00:00 2001 From: emaryn <197520219+emaryn@users.noreply.github.com> Date: Mon, 28 Apr 2025 08:45:38 +0000 Subject: [PATCH 16/36] dnsviz: move to pkgs/by-name --- pkgs/{tools/networking => by-name/dn}/dnsviz/fix-path.patch | 0 .../dnsviz/default.nix => by-name/dn/dnsviz/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{tools/networking => by-name/dn}/dnsviz/fix-path.patch (100%) rename pkgs/{tools/networking/dnsviz/default.nix => by-name/dn/dnsviz/package.nix} (100%) diff --git a/pkgs/tools/networking/dnsviz/fix-path.patch b/pkgs/by-name/dn/dnsviz/fix-path.patch similarity index 100% rename from pkgs/tools/networking/dnsviz/fix-path.patch rename to pkgs/by-name/dn/dnsviz/fix-path.patch diff --git a/pkgs/tools/networking/dnsviz/default.nix b/pkgs/by-name/dn/dnsviz/package.nix similarity index 100% rename from pkgs/tools/networking/dnsviz/default.nix rename to pkgs/by-name/dn/dnsviz/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 30a5b7482906..bc90b5e4c221 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3171,8 +3171,6 @@ with pkgs; deluge-2_x = deluge; - dnsviz = callPackage ../tools/networking/dnsviz { }; - diffoscopeMinimal = diffoscope.override { enableBloat = false; }; From cd74b6e7666c418305240f5a836b0402e9d0808d Mon Sep 17 00:00:00 2001 From: emaryn Date: Tue, 22 Apr 2025 00:58:15 +0800 Subject: [PATCH 17/36] ddosify: 1.0.6 -> 2.6.0 --- pkgs/by-name/dd/ddosify/package.nix | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/dd/ddosify/package.nix b/pkgs/by-name/dd/ddosify/package.nix index e77ce0e5c8b2..d94b7f286067 100644 --- a/pkgs/by-name/dd/ddosify/package.nix +++ b/pkgs/by-name/dd/ddosify/package.nix @@ -2,25 +2,28 @@ lib, buildGoModule, fetchFromGitHub, + versionCheckHook, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "ddosify"; - version = "1.0.6"; + version = "2.6.0"; src = fetchFromGitHub { owner = "ddosify"; repo = "ddosify"; - tag = "v${version}"; - hash = "sha256-5K/qXtdlDC09dEjRwYvoh9SapGLNmvywDMiNdwZDDTQ="; + tag = "selfhosted-${finalAttrs.version}"; + hash = "sha256-EPbpBCSaUVVhxGlj7gRqwHLuj5p6563iiARqkEjA6Rk="; }; vendorHash = "sha256-Wg4JzA2aEwNBsDrkauFUb9AS38ITLBGex9QHzDcdpoM="; + sourceRoot = "${finalAttrs.src.name}/ddosify_engine"; + ldflags = [ "-s" "-w" - "-X=main.GitVersion=${version}" + "-X=main.GitVersion=${finalAttrs.version}" "-X=main.GitCommit=unknown" "-X=main.BuildDate=unknown" ]; @@ -30,16 +33,16 @@ buildGoModule rec { doInstallCheck = true; - installCheckPhase = '' - $out/bin/ddosify -version | grep ${version} > /dev/null - ''; + nativeInstallCheckInputs = [ versionCheckHook ]; - meta = with lib; { + versionCheckProgramArg = "-version"; + + meta = { description = "High-performance load testing tool, written in Golang"; mainProgram = "ddosify"; homepage = "https://ddosify.com/"; - changelog = "https://github.com/ddosify/ddosify/releases/tag/v${version}"; - license = licenses.agpl3Plus; - maintainers = with maintainers; [ bryanasdev000 ]; + changelog = "https://github.com/ddosify/ddosify/releases/tag/selfhosted-${finalAttrs.version}"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ bryanasdev000 ]; }; -} +}) From d2ef92017467fd293fa13e66ae5edddedca19159 Mon Sep 17 00:00:00 2001 From: Paul Meyer Date: Mon, 28 Apr 2025 11:03:53 +0200 Subject: [PATCH 18/36] libnvidia-container: 1.17.2 -> 1.17.6 Signed-off-by: Paul Meyer --- pkgs/by-name/li/libnvidia-container/package.nix | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/li/libnvidia-container/package.nix b/pkgs/by-name/li/libnvidia-container/package.nix index f3d4764bed74..fcec4fa35bad 100644 --- a/pkgs/by-name/li/libnvidia-container/package.nix +++ b/pkgs/by-name/li/libnvidia-container/package.nix @@ -12,14 +12,11 @@ makeWrapper, removeReferencesTo, replaceVars, - go_1_23, applyPatches, nvidia-modprobe, + go, }: let - # https://github.com/NVIDIA/libnvidia-container/pull/297 - go = go_1_23; - modprobeVersion = "550.54.14"; patchedModprobe = applyPatches { src = nvidia-modprobe.src.override { @@ -35,13 +32,13 @@ let in stdenv.mkDerivation rec { pname = "libnvidia-container"; - version = "1.17.2"; + version = "1.17.6"; src = fetchFromGitHub { owner = "NVIDIA"; repo = "libnvidia-container"; rev = "v${version}"; - hash = "sha256-JmJKvAOEPyjVx2Frd0tAMBjnAUTMpMh1KBt6wr5RRmk="; + hash = "sha256-kveP0Px9Fds7pS39aW+cqg2jtiQCMN2zG4GTGRqRrc0="; }; patches = [ From be8e62280813dfa8c905cbc66e36f25a163529dd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 28 Apr 2025 09:04:59 +0000 Subject: [PATCH 19/36] zed-editor: 0.183.10 -> 0.183.11 --- pkgs/by-name/ze/zed-editor/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ze/zed-editor/package.nix b/pkgs/by-name/ze/zed-editor/package.nix index 76e04309f6eb..9bdc03393c89 100644 --- a/pkgs/by-name/ze/zed-editor/package.nix +++ b/pkgs/by-name/ze/zed-editor/package.nix @@ -99,7 +99,7 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "zed-editor"; - version = "0.183.10"; + version = "0.183.11"; outputs = [ "out" ] @@ -111,7 +111,7 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "zed-industries"; repo = "zed"; tag = "v${finalAttrs.version}"; - hash = "sha256-0OiErSiYGobh4CrdFEdEeeYEd4V28qHoo8Af5d/brug="; + hash = "sha256-ctJpwlWue8ntI6dcPhxEV1aQ1Abs2Am2lqVQpYXp7V0="; }; patches = [ @@ -129,7 +129,7 @@ rustPlatform.buildRustPackage (finalAttrs: { ''; useFetchCargoVendor = true; - cargoHash = "sha256-/3OqgKN3SUeA9tPG8g9RfqP0gAT2OA44mNF5US5aUa0="; + cargoHash = "sha256-QC1EiWLiuk+4CG4+6dU0/r6Qvpra8QDPOwEFv76ThAI="; nativeBuildInputs = [ From 1d25a3f76c5020726e3b08a703f13966cd4cc6d7 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sun, 20 Apr 2025 22:10:54 +0800 Subject: [PATCH 20/36] crc: 2.36.0 -> 2.49.0 --- pkgs/by-name/cr/crc/package.nix | 56 +++++++++++++++------------------ pkgs/by-name/cr/crc/update.sh | 8 +---- 2 files changed, 27 insertions(+), 37 deletions(-) diff --git a/pkgs/by-name/cr/crc/package.nix b/pkgs/by-name/cr/crc/package.nix index f94350a168f6..1e127e3d9d6e 100644 --- a/pkgs/by-name/cr/crc/package.nix +++ b/pkgs/by-name/cr/crc/package.nix @@ -2,28 +2,26 @@ lib, buildGoModule, fetchFromGitHub, - testers, - crc, coreutils, + writableTmpDirAsHomeHook, }: let - openShiftVersion = "4.15.12"; + openShiftVersion = "4.18.2"; okdVersion = "4.15.0-0.okd-2024-02-23-163410"; - microshiftVersion = "4.15.12"; - podmanVersion = "4.4.4"; + microshiftVersion = "4.18.2"; writeKey = "$(MODULEPATH)/pkg/crc/segment.WriteKey=cvpHsNcmGCJqVzf6YxrSnVlwFSAZaYtp"; - gitCommit = "27c493c19b7f396931c3b94cc3367f572e6af04a"; - gitHash = "sha256-uxp3DVYbbjKf1Cjj7GCf9QBxFq3K136k51eymD0U018="; + gitCommit = "e843be9c9889abd33ce2f9aee161fac1d44e3fa8"; + gitHash = "sha256-irlVpRBZzE6lfjK8nlNmWlryGj25u/5LcX7pG3WD/Fs="; in -buildGoModule rec { - version = "2.36.0"; +buildGoModule (finalAttrs: { pname = "crc"; + version = "2.49.0"; src = fetchFromGitHub { owner = "crc-org"; repo = "crc"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = gitHash; }; @@ -31,48 +29,46 @@ buildGoModule rec { postPatch = '' substituteInPlace pkg/crc/oc/oc_linux_test.go \ - --replace "/bin/echo" "${coreutils}/bin/echo" + --replace-fail "/bin/echo" "${coreutils}/bin/echo" ''; - subPackages = [ - "cmd/crc" - ]; + subPackages = [ "cmd/crc" ]; tags = [ "containers_image_openpgp" ]; ldflags = [ - "-X github.com/crc-org/crc/v2/pkg/crc/version.crcVersion=${version}" + "-X github.com/crc-org/crc/v2/pkg/crc/version.crcVersion=${finalAttrs.version}" "-X github.com/crc-org/crc/v2/pkg/crc/version.ocpVersion=${openShiftVersion}" "-X github.com/crc-org/crc/v2/pkg/crc/version.okdVersion=${okdVersion}" - "-X github.com/crc-org/crc/v2/pkg/crc/version.podmanVersion=${podmanVersion}" "-X github.com/crc-org/crc/v2/pkg/crc/version.microshiftVersion=${microshiftVersion}" "-X github.com/crc-org/crc/v2/pkg/crc/version.commitSha=${builtins.substring 0 8 gitCommit}" "-X github.com/crc-org/crc/v2/pkg/crc/segment.WriteKey=${writeKey}" ]; - preCheck = '' - export HOME=$(mktemp -d) + nativeCheckInputs = [ writableTmpDirAsHomeHook ]; + + doInstallCheck = true; + + installCheckPhase = '' + runHook preInstallCheck + + HOME=$(mktemp -d) $out/bin/crc version | grep ${finalAttrs.version} > /dev/null + + runHook postInstallCheck ''; - passthru.tests.version = testers.testVersion { - package = crc; - command = '' - export HOME=$(mktemp -d) - crc version - ''; - }; passthru.updateScript = ./update.sh; - meta = with lib; { + meta = { description = "Manage a local OpenShift 4.x cluster, Microshift or a Podman VM optimized for testing and development purposes"; homepage = "https://crc.dev/crc/getting_started/getting_started/introducing/"; - changelog = "https://github.com/crc-org/crc/releases/tag/v${version}"; - license = licenses.asl20; + changelog = "https://github.com/crc-org/crc/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.asl20; mainProgram = "crc"; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ matthewpi shikanime tricktron ]; }; -} +}) diff --git a/pkgs/by-name/cr/crc/update.sh b/pkgs/by-name/cr/crc/update.sh index 4e46cbc428cc..d022177a9354 100755 --- a/pkgs/by-name/cr/crc/update.sh +++ b/pkgs/by-name/cr/crc/update.sh @@ -26,7 +26,7 @@ CRC_COMMIT=$(curl --silent ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \ jq -r "map(select(.name == \"${LATEST_TAG_NAME}\")) | .[0] | .commit.sha") CRC_GIT_PREFETCH=$(nix-prefetch-url --unpack https://github.com/crc-org/crc/archive/${CRC_COMMIT}.tar.gz) -CRC_GIT_HASH=$(nix hash to-sri --type sha256 ${CRC_GIT_PREFETCH}) +CRC_GIT_HASH=$(nix hash convert --to sri --hash-algo sha256 ${CRC_GIT_PREFETCH}) FILE_MAKEFILE=${WORKDIR}/Makefile curl --silent https://raw.githubusercontent.com/crc-org/crc/${CRC_COMMIT}/Makefile >$FILE_MAKEFILE @@ -37,9 +37,6 @@ OPENSHIFT_VERSION=$(grep 'OPENSHIFT_VERSION' ${FILE_MAKEFILE} | OKD_VERSION=$(grep 'OKD_VERSION' ${FILE_MAKEFILE} | head -n1 | awk '{print $3}') -PODMAN_VERSION=$(grep 'PODMAN_VERSION' ${FILE_MAKEFILE} | - head -n1 | awk '{print $3}') - MICROSHIFT_VERSION=$(grep 'MICROSHIFT_VERSION' ${FILE_MAKEFILE} | head -n1 | awk '{print $3}') @@ -61,9 +58,6 @@ sed -i "s|openShiftVersion = \".*\"|openShiftVersion = \"${OPENSHIFT_VERSION:-}\ sed -i "s|okdVersion = \".*\"|okdVersion = \"${OKD_VERSION:-}\"|" \ ${NIXPKGS_CRC_FOLDER}/package.nix -sed -i "s|podmanVersion = \".*\"|podmanVersion = \"${PODMAN_VERSION:-}\"|" \ - ${NIXPKGS_CRC_FOLDER}/package.nix - sed -i "s|microshiftVersion = \".*\"|microshiftVersion = \"${MICROSHIFT_VERSION:-}\"|" \ ${NIXPKGS_CRC_FOLDER}/package.nix From f7543da6287768922fe39444ca0982396fe6f0e0 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 28 Apr 2025 10:37:50 +0200 Subject: [PATCH 21/36] python312Packages.jupyterhub: cleanup --- .../python-modules/jupyterhub/default.nix | 90 +++++++++++-------- 1 file changed, 51 insertions(+), 39 deletions(-) diff --git a/pkgs/development/python-modules/jupyterhub/default.nix b/pkgs/development/python-modules/jupyterhub/default.nix index 0e1fa2f5bc22..2556be5d4b0d 100644 --- a/pkgs/development/python-modules/jupyterhub/default.nix +++ b/pkgs/development/python-modules/jupyterhub/default.nix @@ -1,42 +1,51 @@ { lib, - stdenv, - alembic, - async-generator, - beautifulsoup4, buildPythonPackage, - certipy, - configurable-http-proxy, - cryptography, fetchFromGitHub, fetchNpmDeps, - idna, - importlib-metadata, - jinja2, - jsonschema, - jupyter-events, - jupyterlab, - mock, - nbclassic, + configurable-http-proxy, + + # nativeBuildInputs nodejs, npmHooks, + + # build-system + setuptools, + setuptools-scm, + + # dependencies + alembic, + certipy, + idna, + jinja2, + jupyter-events, oauthlib, packaging, pamela, - playwright, prometheus-client, pydantic, - pytest-asyncio, - pytestCheckHook, python-dateutil, - pythonOlder, requests, - requests-mock, - setuptools, - setuptools-scm, sqlalchemy, tornado, traitlets, + pythonOlder, + async-generator, + importlib-metadata, + + # tests + addBinToPathHook, + beautifulsoup4, + cryptography, + jsonschema, + jupyterlab, + mock, + nbclassic, + playwright, + pytest-asyncio, + pytestCheckHook, + requests-mock, + versionCheckHook, virtualenv, }: @@ -45,8 +54,6 @@ buildPythonPackage rec { version = "5.2.1"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "jupyterhub"; repo = "jupyterhub"; @@ -60,13 +67,15 @@ buildPythonPackage rec { }; postPatch = '' - substituteInPlace jupyterhub/proxy.py --replace-fail \ - "'configurable-http-proxy'" \ - "'${configurable-http-proxy}/bin/configurable-http-proxy'" + substituteInPlace jupyterhub/proxy.py \ + --replace-fail \ + "'configurable-http-proxy'" \ + "'${lib.getExe configurable-http-proxy}'" - substituteInPlace jupyterhub/tests/test_proxy.py --replace-fail \ - "'configurable-http-proxy'" \ - "'${configurable-http-proxy}/bin/configurable-http-proxy'" + substituteInPlace jupyterhub/tests/test_proxy.py \ + --replace-fail \ + "'configurable-http-proxy'" \ + "'${lib.getExe configurable-http-proxy}'" ''; nativeBuildInputs = [ @@ -102,7 +111,10 @@ buildPythonPackage rec { importlib-metadata ]; + pythonImportsCheck = [ "jupyterhub" ]; + nativeCheckInputs = [ + addBinToPathHook beautifulsoup4 cryptography jsonschema @@ -124,12 +136,10 @@ buildPythonPackage rec { )) pytestCheckHook requests-mock + versionCheckHook virtualenv ]; - - preCheck = '' - export PATH=$out/bin:$PATH; - ''; + versionCheckProgramArg = "--version"; disabledTests = [ # Tries to install older versions through pip @@ -164,13 +174,15 @@ buildPythonPackage rec { "jupyterhub/tests/test_user.py" ]; - meta = with lib; { + meta = { description = "Serves multiple Jupyter notebook instances"; homepage = "https://github.com/jupyterhub/jupyterhub"; changelog = "https://github.com/jupyterhub/jupyterhub/blob/${version}/docs/source/reference/changelog.md"; - license = licenses.bsd3; - teams = [ teams.jupyter ]; - # darwin: E OSError: dlopen(/nix/store/43zml0mlr17r5jsagxr00xxx91hz9lky-openpam-20170430/lib/libpam.so, 6): image not found - broken = stdenv.hostPlatform.isDarwin; + license = lib.licenses.bsd3; + teams = [ lib.teams.jupyter ]; + badPlatforms = [ + # E OSError: dlopen(/nix/store/43zml0mlr17r5jsagxr00xxx91hz9lky-openpam-20170430/lib/libpam.so, 6): image not found + lib.systems.inspect.patterns.isDarwin + ]; }; } From 6731f7007fc497722cac6ae101c709bdf6936a1f Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 28 Apr 2025 10:42:05 +0200 Subject: [PATCH 22/36] python312Packages.jupyterhub: 5.2.1 -> 5.3.0 Diff: https://github.com/jupyterhub/jupyterhub/compare/refs/tags/5.2.1...refs/tags/5.3.0 Changelog: https://github.com/jupyterhub/jupyterhub/blob/5.3.0/docs/source/reference/changelog.md --- pkgs/development/python-modules/jupyterhub/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/jupyterhub/default.nix b/pkgs/development/python-modules/jupyterhub/default.nix index 2556be5d4b0d..2b2e302ae490 100644 --- a/pkgs/development/python-modules/jupyterhub/default.nix +++ b/pkgs/development/python-modules/jupyterhub/default.nix @@ -51,19 +51,19 @@ buildPythonPackage rec { pname = "jupyterhub"; - version = "5.2.1"; + version = "5.3.0"; pyproject = true; src = fetchFromGitHub { owner = "jupyterhub"; repo = "jupyterhub"; rev = "refs/tags/${version}"; - hash = "sha256-zOWcXpByJRzI9sTjTl+w/vo99suKOEN0TvPn1ZWlNmc="; + hash = "sha256-FAVNS7GPvglFuSTDTAUtZ6ZzY4yH+eo34KhUQ4C3b4I="; }; npmDeps = fetchNpmDeps { inherit src; - hash = "sha256-My7WUAqIvOrbbVTxSnA6a5NviM6u95+iyykx1xbudpw="; + hash = "sha256-1ffF3i/IgE+J+0M+z6bzwZ9H8u0EYcYXTiBD9Jj7HdQ="; }; postPatch = '' From 5e483b267048dd1ccce657a9e457baa341a3b868 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 28 Apr 2025 10:36:28 +0200 Subject: [PATCH 23/36] python312Packages.batchspawner: fix --- .../python-modules/batchspawner/default.nix | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/batchspawner/default.nix b/pkgs/development/python-modules/batchspawner/default.nix index d53834e60b18..a4658f9b0694 100644 --- a/pkgs/development/python-modules/batchspawner/default.nix +++ b/pkgs/development/python-modules/batchspawner/default.nix @@ -2,11 +2,15 @@ lib, buildPythonPackage, fetchFromGitHub, + + # build-system setuptools, - wheel, + + # dependencies jinja2, jupyterhub, - pythonOlder, + + # tests pytest-asyncio, pytest-cov-stub, pytestCheckHook, @@ -17,8 +21,6 @@ buildPythonPackage rec { version = "1.3.0"; pyproject = true; - disabled = pythonOlder "3.6"; - src = fetchFromGitHub { owner = "jupyterhub"; repo = "batchspawner"; @@ -26,9 +28,17 @@ buildPythonPackage rec { hash = "sha256-Z7kB8b7s11wokTachLI/N+bdUV+FfCRTemL1KYQpzio="; }; + # When using pytest-asyncio>=0.24, jupyterhub no longer re-defines the event_loop function in its + # conftest.py, so it cannot be imported from there. + postPatch = '' + substituteInPlace batchspawner/tests/conftest.py \ + --replace-fail \ + "from jupyterhub.tests.conftest import db, event_loop # noqa" \ + "from jupyterhub.tests.conftest import db" + ''; + build-system = [ setuptools - wheel ]; dependencies = [ @@ -44,12 +54,12 @@ buildPythonPackage rec { pythonImportsCheck = [ "batchspawner" ]; - meta = with lib; { + meta = { description = "Spawner for Jupyterhub to spawn notebooks using batch resource managers"; mainProgram = "batchspawner-singleuser"; homepage = "https://github.com/jupyterhub/batchspawner"; changelog = "https://github.com/jupyterhub/batchspawner/blob/v${version}/CHANGELOG.md"; - license = licenses.bsd3; + license = lib.licenses.bsd3; maintainers = [ ]; }; } From 81fb274f29b68688b46d0fdf1355d1f8c5c3fb85 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sat, 26 Apr 2025 12:56:24 +0800 Subject: [PATCH 24/36] gkrellm: 2.3.11 -> 2.4.0 --- .../gk/gkrellm/package.nix} | 32 +++++++++---------- pkgs/top-level/all-packages.nix | 4 --- 2 files changed, 15 insertions(+), 21 deletions(-) rename pkgs/{applications/misc/gkrellm/default.nix => by-name/gk/gkrellm/package.nix} (73%) diff --git a/pkgs/applications/misc/gkrellm/default.nix b/pkgs/by-name/gk/gkrellm/package.nix similarity index 73% rename from pkgs/applications/misc/gkrellm/default.nix rename to pkgs/by-name/gk/gkrellm/package.nix index d99d9cf44b31..aada0333d9d8 100644 --- a/pkgs/applications/misc/gkrellm/default.nix +++ b/pkgs/by-name/gk/gkrellm/package.nix @@ -1,7 +1,7 @@ { lib, - fetchurl, stdenv, + fetchurl, gettext, pkg-config, glib, @@ -10,19 +10,18 @@ libSM, libICE, which, - IOKit, copyDesktopItems, makeDesktopItem, wrapGAppsHook3, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "gkrellm"; - version = "2.3.11"; + version = "2.4.0"; src = fetchurl { - url = "http://gkrellm.srcbox.net/releases/gkrellm-${version}.tar.bz2"; - sha256 = "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y"; + url = "http://gkrellm.srcbox.net/releases/gkrellm-${finalAttrs.version}.tar.bz2"; + hash = "sha256-b4NmV2C5Nq1LVfkYKx7HYB+vOKDyXqHkvdyZZQiPAy0="; }; nativeBuildInputs = [ @@ -31,6 +30,7 @@ stdenv.mkDerivation rec { which wrapGAppsHook3 ]; + buildInputs = [ gettext glib @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { libX11 libSM libICE - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ IOKit ]; + ]; hardeningDisable = [ "format" ]; @@ -53,12 +53,11 @@ stdenv.mkDerivation rec { ''; makeFlags = [ "STRIP=-s" ]; - installFlags = [ "DESTDIR=$(out)" ]; - # This icon is used by the desktop file. - postInstall = '' - install -Dm444 -T src/icon.xpm $out/share/pixmaps/gkrellm.xpm - ''; + installFlags = [ + "DESTDIR=$(out)" + "PREFIX=''" + ]; desktopItems = [ (makeDesktopItem { @@ -75,16 +74,15 @@ stdenv.mkDerivation rec { }) ]; - meta = with lib; { + meta = { description = "Themeable process stack of system monitors"; longDescription = '' GKrellM is a single process stack of system monitors which supports applying themes to match its appearance to your window manager, Gtk, or any other theme. ''; - homepage = "http://gkrellm.srcbox.net"; - license = licenses.gpl3Plus; - platforms = platforms.linux; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 87e9c90b0156..4ff99b3fe7bb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14414,10 +14414,6 @@ with pkgs; jdk = jdk.override { enableJavaFX = true; }; }; - gkrellm = callPackage ../applications/misc/gkrellm { - inherit (darwin.apple_sdk.frameworks) IOKit; - }; - gnunet = callPackage ../applications/networking/p2p/gnunet { }; gnunet-gtk = callPackage ../applications/networking/p2p/gnunet/gtk.nix { }; From b961b7312af6e4b891f67fad381c1b5cbd457a4a Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sun, 26 Jan 2025 08:47:45 +0100 Subject: [PATCH 25/36] opensmtpd.table-ldap: init at 1.0 The opensmtpd-extra package has been deprecated in favor of standalone repositories for each of the filters. Introduce table-ldap, which is one of these new standalone filters to read login info from an LDAP server. --- .../op/opensmtpd-table-ldap/package.nix | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 pkgs/by-name/op/opensmtpd-table-ldap/package.nix diff --git a/pkgs/by-name/op/opensmtpd-table-ldap/package.nix b/pkgs/by-name/op/opensmtpd-table-ldap/package.nix new file mode 100644 index 000000000000..ac81d8d4a7d2 --- /dev/null +++ b/pkgs/by-name/op/opensmtpd-table-ldap/package.nix @@ -0,0 +1,54 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + libevent, + libressl, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "opensmtpd-table-ldap"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "OpenSMTPD"; + repo = "table-ldap"; + tag = finalAttrs.version; + hash = "sha256-dfwvgFYBED3GyZ347JSNIyiik133GYLT6p+XkIIm//w="; + }; + + strictDeps = true; + + buildInputs = [ + libevent + libressl + ]; + + nativeBuildInputs = [ + autoconf + automake + ]; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-path-socket=/run" + "--with-path-pidfile=/run" + ]; + + preConfigure = '' + sh bootstrap + ''; + + meta = { + homepage = "https://www.opensmtpd.org/"; + description = "ldap table for the OpenSMTPD mail server"; + changelog = "https://github.com/OpenSMTPD/table-ldap/releases/tag/${finalAttrs.version}"; + license = lib.licenses.isc; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + pks + ]; + }; +}) From 85ae8c21ae5803657a165ac40419e19f65ba9b79 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sun, 26 Jan 2025 09:23:31 +0100 Subject: [PATCH 26/36] opensmtpd.table-mysql: init at 1.2.1 The opensmtpd-extra package has been deprecated in favor of standalone repositories for each of the filters. Introduce table-mysql, which is one of these new standalone filters to read login info from a MySQL or MariaDB database. --- .../op/opensmtpd-table-mysql/package.nix | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 pkgs/by-name/op/opensmtpd-table-mysql/package.nix diff --git a/pkgs/by-name/op/opensmtpd-table-mysql/package.nix b/pkgs/by-name/op/opensmtpd-table-mysql/package.nix new file mode 100644 index 000000000000..c1bd227783b0 --- /dev/null +++ b/pkgs/by-name/op/opensmtpd-table-mysql/package.nix @@ -0,0 +1,53 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + libmysqlclient, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "opensmtpd-table-mysql"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "OpenSMTPD"; + repo = "table-mysql"; + tag = finalAttrs.version; + hash = "sha256-0N1fuYJvJKAoOJMH2bX0pdvAqb26w/6JSuv6ycnRZHU="; + }; + + strictDeps = true; + + buildInputs = [ + libmysqlclient + ]; + + nativeBuildInputs = [ + autoconf + automake + libmysqlclient + ]; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-path-socket=/run" + "--with-path-pidfile=/run" + ]; + + preConfigure = '' + sh bootstrap + ''; + + meta = { + homepage = "https://www.opensmtpd.org/"; + description = "ldap table for the OpenSMTPD mail server"; + changelog = "https://github.com/OpenSMTPD/table-mysql/releases/tag/${finalAttrs.version}"; + license = lib.licenses.isc; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + pks + ]; + }; +}) From f3b6355afdb60d73d4cd10c9408c6c01ed911202 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sun, 26 Jan 2025 09:23:54 +0100 Subject: [PATCH 27/36] opensmtpd.table-passwd: init at 1.0.2 The opensmtpd-extra package has been deprecated in favor of standalone repositories for each of the filters. Introduce table-passwd, which is one of these new standalone filters to read login info from "passwd" files. --- .../op/opensmtpd-table-passwd/package.nix | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 pkgs/by-name/op/opensmtpd-table-passwd/package.nix diff --git a/pkgs/by-name/op/opensmtpd-table-passwd/package.nix b/pkgs/by-name/op/opensmtpd-table-passwd/package.nix new file mode 100644 index 000000000000..3a068ad41867 --- /dev/null +++ b/pkgs/by-name/op/opensmtpd-table-passwd/package.nix @@ -0,0 +1,47 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "opensmtpd-table-passwd"; + version = "1.0.2"; + + src = fetchFromGitHub { + owner = "OpenSMTPD"; + repo = "table-passwd"; + tag = finalAttrs.version; + hash = "sha256-veE7PADO8KAMEnMrDc9V/xbVMqwF3rUoYPmpQSIJw9o="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + autoconf + automake + ]; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-path-socket=/run" + "--with-path-pidfile=/run" + ]; + + preConfigure = '' + sh bootstrap + ''; + + meta = { + homepage = "https://www.opensmtpd.org/"; + description = "passwd table for the OpenSMTPD mail server"; + changelog = "https://github.com/OpenSMTPD/table-passwd/releases/tag/${finalAttrs.version}"; + license = lib.licenses.isc; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + pks + ]; + }; +}) From bed3e8069df5ffc8f62f1747c9bc53dd3d0947ef Mon Sep 17 00:00:00 2001 From: Paul Meyer Date: Mon, 28 Apr 2025 11:36:39 +0200 Subject: [PATCH 28/36] libnvidia-container: renew - use finalAttrs - use tag in fetchFromGithub - no meta = with lib; Signed-off-by: Paul Meyer --- .../li/libnvidia-container/package.nix | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/li/libnvidia-container/package.nix b/pkgs/by-name/li/libnvidia-container/package.nix index fcec4fa35bad..6f5119017601 100644 --- a/pkgs/by-name/li/libnvidia-container/package.nix +++ b/pkgs/by-name/li/libnvidia-container/package.nix @@ -30,14 +30,14 @@ let ]; }; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "libnvidia-container"; version = "1.17.6"; src = fetchFromGitHub { owner = "NVIDIA"; repo = "libnvidia-container"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-kveP0Px9Fds7pS39aW+cqg2jtiQCMN2zG4GTGRqRrc0="; }; @@ -62,13 +62,13 @@ stdenv.mkDerivation rec { postPatch = '' sed -i \ - -e 's/^REVISION ?=.*/REVISION = ${src.rev}/' \ + -e 's/^REVISION ?=.*/REVISION = ${finalAttrs.src.tag}/' \ -e 's/^COMPILER :=.*/COMPILER = $(CC)/' \ mk/common.mk sed -i \ - -e 's/^GIT_TAG ?=.*/GIT_TAG = ${version}/' \ - -e 's/^GIT_COMMIT ?=.*/GIT_COMMIT = ${src.rev}/' \ + -e 's/^GIT_TAG ?=.*/GIT_TAG = ${finalAttrs.version}/' \ + -e 's/^GIT_COMMIT ?=.*/GIT_COMMIT = ${finalAttrs.src.tag}/' \ versions.mk mkdir -p deps/src/nvidia-modprobe-${modprobeVersion} @@ -105,7 +105,7 @@ stdenv.mkDerivation rec { postFixup = '' for lib in libnvidia-container libnvidia-container-go; do rm -f "$out/lib/$lib.so" - ln -s "$out/lib/$lib.so.${version}" "$out/lib/$lib.so.1" + ln -s "$out/lib/$lib.so.${finalAttrs.version}" "$out/lib/$lib.so.1" ln -s "$out/lib/$lib.so.1" "$out/lib/$lib.so" done ''; @@ -161,20 +161,20 @@ stdenv.mkDerivation rec { ]; in '' - remove-references-to -t "${go}" $out/lib/libnvidia-container-go.so.${version} + remove-references-to -t "${go}" $out/lib/libnvidia-container-go.so.${finalAttrs.version} wrapProgram $out/bin/nvidia-container-cli --prefix LD_LIBRARY_PATH : ${libraryPath} ''; disallowedReferences = [ go ]; - meta = with lib; { + meta = { homepage = "https://github.com/NVIDIA/libnvidia-container"; description = "NVIDIA container runtime library"; - license = licenses.asl20; - platforms = platforms.linux; + license = lib.licenses.asl20; + platforms = lib.platforms.linux; mainProgram = "nvidia-container-cli"; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ cpcloud msanft ]; }; -} +}) From c7a567cd44d23fb5d3bec1809a68f2e7028ee1fb Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sun, 26 Jan 2025 09:24:16 +0100 Subject: [PATCH 29/36] opensmtpd.table-postgres: init at 1.1.1 The opensmtpd-extra package has been deprecated in favor of standalone repositories for each of the filters. Introduce table-postgres, which is one of these new standalone filters to read login info from a Postgres database. --- .../op/opensmtpd-table-postgres/package.nix | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 pkgs/by-name/op/opensmtpd-table-postgres/package.nix diff --git a/pkgs/by-name/op/opensmtpd-table-postgres/package.nix b/pkgs/by-name/op/opensmtpd-table-postgres/package.nix new file mode 100644 index 000000000000..3e62a3cb7eb7 --- /dev/null +++ b/pkgs/by-name/op/opensmtpd-table-postgres/package.nix @@ -0,0 +1,52 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + libpq, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "opensmtpd-table-postgres"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "OpenSMTPD"; + repo = "table-postgres"; + tag = finalAttrs.version; + hash = "sha256-CGtqCQnsUvgsBIJOVXphkisp3Iij+oW88w7Y1njusx8="; + }; + + strictDeps = true; + + buildInputs = [ + libpq + ]; + + nativeBuildInputs = [ + autoconf + automake + ]; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-path-socket=/run" + "--with-path-pidfile=/run" + ]; + + preConfigure = '' + sh bootstrap + ''; + + meta = { + homepage = "https://www.opensmtpd.org/"; + description = "ldap table for the OpenSMTPD mail server"; + changelog = "https://github.com/OpenSMTPD/table-postgres/releases/tag/${finalAttrs.version}"; + license = lib.licenses.isc; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + pks + ]; + }; +}) From c45505b1aa35b513f4235575afb87cb84aadf55a Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sun, 26 Jan 2025 09:24:44 +0100 Subject: [PATCH 30/36] opensmtpd.table-redis: init at 1.0.1 The opensmtpd-extra package has been deprecated in favor of standalone repositories for each of the filters. Introduce table-redis, which is one of these new standalone filters to read login info from a Redis instance. Building table-redis does not work out of the box: while the project correctly includes the hiredis include directory, the header itself is contained in a "hiredis/" subdirectory. Add a patch to fix this. --- .../op/opensmtpd-table-redis/package.nix | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 pkgs/by-name/op/opensmtpd-table-redis/package.nix diff --git a/pkgs/by-name/op/opensmtpd-table-redis/package.nix b/pkgs/by-name/op/opensmtpd-table-redis/package.nix new file mode 100644 index 000000000000..e4f1cb775a9d --- /dev/null +++ b/pkgs/by-name/op/opensmtpd-table-redis/package.nix @@ -0,0 +1,54 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + hiredis, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "opensmtpd-table-redis"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "OpenSMTPD"; + repo = "table-redis"; + tag = finalAttrs.version; + hash = "sha256-eS/jzran7/j3xrFuEqTLam0pokD/LBl4v2s/1ferCqk="; + }; + + strictDeps = true; + + buildInputs = [ + hiredis + ]; + + nativeBuildInputs = [ + autoconf + automake + ]; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-path-socket=/run" + "--with-path-pidfile=/run" + ]; + + env.NIX_CFLAGS_COMPILE = "-I${hiredis}/include/hiredis"; + + preConfigure = '' + sh bootstrap + ''; + + meta = { + homepage = "https://www.opensmtpd.org/"; + description = "ldap table for the OpenSMTPD mail server"; + changelog = "https://github.com/OpenSMTPD/table-redis/releases/tag/${finalAttrs.version}"; + license = lib.licenses.isc; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + pks + ]; + }; +}) From bef886ed23f67b93d4dff35e5e164b0e81e9d8b6 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sun, 26 Jan 2025 09:25:07 +0100 Subject: [PATCH 31/36] opensmtpd.table-socketmap: init at 1.1.1 The opensmtpd-extra package has been deprecated in favor of standalone repositories for each of the filters. Introduce table-socketmap, which is one of these new standalone filters to read login info from a Unix socket. --- .../op/opensmtpd-table-socketmap/package.nix | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 pkgs/by-name/op/opensmtpd-table-socketmap/package.nix diff --git a/pkgs/by-name/op/opensmtpd-table-socketmap/package.nix b/pkgs/by-name/op/opensmtpd-table-socketmap/package.nix new file mode 100644 index 000000000000..e3346765857c --- /dev/null +++ b/pkgs/by-name/op/opensmtpd-table-socketmap/package.nix @@ -0,0 +1,47 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "opensmtpd-table-socketmap"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "OpenSMTPD"; + repo = "table-socketmap"; + tag = finalAttrs.version; + hash = "sha256-YTV0ijD264C7JAiB5ZfuCZhAmkLN0GSNl1vkZ3i3aRo="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + autoconf + automake + ]; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-path-socket=/run" + "--with-path-pidfile=/run" + ]; + + preConfigure = '' + sh bootstrap + ''; + + meta = { + homepage = "https://www.opensmtpd.org/"; + description = "ldap table for the OpenSMTPD mail server"; + changelog = "https://github.com/OpenSMTPD/table-socketmap/releases/tag/${finalAttrs.version}"; + license = lib.licenses.isc; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + pks + ]; + }; +}) From 058a8bce1e01c4a526f8766cda42d0d0f65fc947 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Mon, 16 Dec 2024 08:03:19 +0100 Subject: [PATCH 32/36] opensmtpd.table-sqlite: init at 1.0.1 The opensmtpd-extra package has been deprecated in favor of standalone repositories for each of the filters. Introduce table-sqlite, which is one of these new standalone filters to read login info from an sqlite database. --- .../op/opensmtpd-table-sqlite/package.nix | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 pkgs/by-name/op/opensmtpd-table-sqlite/package.nix diff --git a/pkgs/by-name/op/opensmtpd-table-sqlite/package.nix b/pkgs/by-name/op/opensmtpd-table-sqlite/package.nix new file mode 100644 index 000000000000..a85f91f48f17 --- /dev/null +++ b/pkgs/by-name/op/opensmtpd-table-sqlite/package.nix @@ -0,0 +1,52 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + sqlite, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "opensmtpd-table-sqlite"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "OpenSMTPD"; + repo = "table-sqlite"; + tag = finalAttrs.version; + hash = "sha256-Y5AveTo+Ol6cMcxOW3/GMZZD+17HiQdQ4Vg5WHPjKgA="; + }; + + strictDeps = true; + + buildInputs = [ + sqlite + ]; + + nativeBuildInputs = [ + autoconf + automake + ]; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-path-socket=/run" + "--with-path-pidfile=/run" + ]; + + preConfigure = '' + sh bootstrap + ''; + + meta = { + homepage = "https://www.opensmtpd.org/"; + description = "ldap table for the OpenSMTPD mail server"; + changelog = "https://github.com/OpenSMTPD/table-sqlite/releases/tag/${finalAttrs.version}"; + license = lib.licenses.isc; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + pks + ]; + }; +}) From 132c73dd296a80fc3e272057ad1e82fd2656609f Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Mon, 16 Dec 2024 08:20:58 +0100 Subject: [PATCH 33/36] nixos/opensmtpd: adapt to changed filter location The location of filters for OpenSMTPD has been changed to "libexec/smtpd". Adapt the service accordingly. --- nixos/modules/services/mail/opensmtpd.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/mail/opensmtpd.nix b/nixos/modules/services/mail/opensmtpd.nix index 2fc628a64aeb..54dd5aac4d52 100644 --- a/nixos/modules/services/mail/opensmtpd.nix +++ b/nixos/modules/services/mail/opensmtpd.nix @@ -132,14 +132,14 @@ in procEnv = pkgs.buildEnv { name = "opensmtpd-procs"; paths = [ cfg.package ] ++ cfg.procPackages; - pathsToLink = [ "/libexec/opensmtpd" ]; + pathsToLink = [ "/libexec/smtpd" ]; }; in { wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; serviceConfig.ExecStart = "${cfg.package}/sbin/smtpd -d -f ${conf} ${args}"; - environment.OPENSMTPD_PROC_PATH = "${procEnv}/libexec/opensmtpd"; + environment.OPENSMTPD_PROC_PATH = "${procEnv}/libexec/smtpd"; }; }; } From feddb6a2bcd9c1dbceb7a4811a1a9362ee766656 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Tue, 25 Mar 2025 19:29:51 +0100 Subject: [PATCH 34/36] opensmtpd-extras: drop in favor of standalone tables Upstream has archived the OpenSMTPD-extras repository with 82c49af (add deprecation notice, 2024-10-22). Instead, it has created a set of repositories, each containing one of the tables. The old tables aren't compatible anymore with recent OpenSMTPD versions due to changed protocols. Other extras, like the queues, don't have an alternative to the best of my knowledge. Furthermore, opensmtpd-extras doesn't even build anymore, furthermore indicating that there aren't any users of this package. Remove the "opensmtpd-extras" package and raise errors pointing to the new standalone tables. Add a release note. --- doc/release-notes/rl-2505.section.md | 4 + nixos/modules/services/mail/opensmtpd.nix | 4 +- pkgs/servers/mail/opensmtpd/extras.nix | 113 ---------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 1 - 5 files changed, 7 insertions(+), 116 deletions(-) delete mode 100644 pkgs/servers/mail/opensmtpd/extras.nix diff --git a/doc/release-notes/rl-2505.section.md b/doc/release-notes/rl-2505.section.md index 774954bc3bc9..349f4ae86721 100644 --- a/doc/release-notes/rl-2505.section.md +++ b/doc/release-notes/rl-2505.section.md @@ -54,6 +54,10 @@ The hook can be disabled by providing `dontCheckForBrokenSymlinks = true;` as an argument to `mkDerivation`. For more information, [check the docs](https://nixos.org/manual/nixpkgs/unstable/#no-broken-symlinks.sh) or [see this PR](https://github.com/NixOS/nixpkgs/pull/370750). +- `opensmtpd-extras` has been deprecated by upstream and is not compatible with + OpenSMTPD 7.6.0 or later. The package has been removed in favor of a set of new + `opensmtpd-table-*` packages. + - The hand written `perlPackages.SearchXapian` bindings have been dropped in favor of the (mostly compatible) `perlPackages.Xapian`. diff --git a/nixos/modules/services/mail/opensmtpd.nix b/nixos/modules/services/mail/opensmtpd.nix index 54dd5aac4d52..9db7d78b7cad 100644 --- a/nixos/modules/services/mail/opensmtpd.nix +++ b/nixos/modules/services/mail/opensmtpd.nix @@ -76,8 +76,8 @@ in description = '' Packages to search for filters, tables, queues, and schedulers. - Add OpenSMTPD-extras here if you want to use the filters, etc. from - that package. + Add packages here if you want to use them as as such, for example + from the opensmtpd-table-* packages. ''; }; }; diff --git a/pkgs/servers/mail/opensmtpd/extras.nix b/pkgs/servers/mail/opensmtpd/extras.nix deleted file mode 100644 index 8f09e5803fa8..000000000000 --- a/pkgs/servers/mail/opensmtpd/extras.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - openssl, - libevent, - libasr, - ncurses, - pkg-config, - lua5, - perl, - libmysqlclient, - libpq, - sqlite, - hiredis, - enableLua ? true, - enablePerl ? true, - enableMysql ? true, - enablePostgres ? true, - enableSqlite ? true, - enableRedis ? true, -}: - -stdenv.mkDerivation rec { - pname = "opensmtpd-extras"; - version = "6.7.1"; - - src = fetchurl { - url = "https://www.opensmtpd.org/archives/${pname}-${version}.tar.gz"; - sha256 = "1b1mx71bvmv92lbm08wr2p60g3qhikvv3n15zsr6dcwbk9aqahzq"; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - openssl - libevent - libasr - lua5 - perl - libmysqlclient - libpq - sqlite - hiredis - ]; - - configureFlags = - [ - "--sysconfdir=/etc" - "--localstatedir=/var" - "--with-privsep-user=smtpd" - "--with-libevent-dir=${libevent.dev}" - - "--with-filter-clamav" - "--with-filter-dkim-signer" - "--with-filter-dnsbl" - "--with-filter-monkey" - "--with-filter-pause" - "--with-filter-regex" - "--with-filter-spamassassin" - "--with-filter-stub" - "--with-filter-trace" - "--with-filter-void" - "--with-queue-null" - "--with-queue-ram" - "--with-queue-stub" - "--with-table-ldap" - "--with-table-socketmap" - "--with-table-passwd" - "--with-table-stub" - "--with-scheduler-ram" - "--with-scheduler-stub" - - ] - ++ lib.optionals enableLua [ - "--with-lua=${pkg-config}" - "--with-filter-lua" - - ] - ++ lib.optionals enablePerl [ - "--with-perl=${perl}" - "--with-filter-perl" - - ] - ++ lib.optionals enableMysql [ - "--with-table-mysql" - - ] - ++ lib.optionals enablePostgres [ - "--with-table-postgres" - - ] - ++ lib.optionals enableSqlite [ - "--with-table-sqlite" - - ] - ++ lib.optionals enableRedis [ - "--with-table-redis" - ]; - - env.NIX_CFLAGS_COMPILE = - lib.optionalString enableRedis "-I${hiredis}/include/hiredis -lhiredis" - + lib.optionalString enableMysql " -L${libmysqlclient}/lib/mysql"; - - meta = with lib; { - homepage = "https://www.opensmtpd.org/"; - description = "Extra plugins for the OpenSMTPD mail server"; - license = licenses.isc; - platforms = platforms.linux; - maintainers = with maintainers; [ - ekleog - ]; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index ebad76789d55..58f6d3a978ec 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1349,6 +1349,7 @@ mapAliases { openlens = throw "Lens Closed its source code, package obsolete/stale - consider lens as replacement"; # Added 2024-09-04 openlp = throw "openlp has been removed for now because the outdated version depended on insecure and removed packages and it needs help to upgrade and maintain it; see https://github.com/NixOS/nixpkgs/pull/314882"; # Added 2024-07-29 openmpt123 = throw "'openmpt123' has been renamed to/replaced by 'libopenmpt'"; # Converted to throw 2024-10-17 + opensmtpd-extras = throw "opensmtpd-extras has been removed in favor of separate opensmtpd-table-* packages"; # Added 2025-01-26 openssl_3_0 = openssl_3; # Added 2022-06-27 opensycl = lib.warnOnInstantiate "'opensycl' has been renamed to 'adaptivecpp'" adaptivecpp; # Added 2024-12-04 opensyclWithRocm = lib.warnOnInstantiate "'opensyclWithRocm' has been renamed to 'adaptivecppWithRocm'" adaptivecppWithRocm; # Added 2024-12-04 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 87e9c90b0156..7a7caef1a887 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12101,7 +12101,6 @@ with pkgs; }; opensmtpd = callPackage ../servers/mail/opensmtpd { }; - opensmtpd-extras = callPackage ../servers/mail/opensmtpd/extras.nix { }; opensmtpd-filter-rspamd = callPackage ../servers/mail/opensmtpd/filter-rspamd.nix { }; system-sendmail = lowPrio (callPackage ../servers/mail/system-sendmail { }); From dc8c84ce28f953140e5b051539e02467bcef5fd2 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sat, 26 Apr 2025 06:34:28 +0200 Subject: [PATCH 35/36] opensmtpd-filter-rspamd: migrate to by-name --- .../op/opensmtpd-filter-rspamd/package.nix} | 0 pkgs/top-level/all-packages.nix | 1 - 2 files changed, 1 deletion(-) rename pkgs/{servers/mail/opensmtpd/filter-rspamd.nix => by-name/op/opensmtpd-filter-rspamd/package.nix} (100%) diff --git a/pkgs/servers/mail/opensmtpd/filter-rspamd.nix b/pkgs/by-name/op/opensmtpd-filter-rspamd/package.nix similarity index 100% rename from pkgs/servers/mail/opensmtpd/filter-rspamd.nix rename to pkgs/by-name/op/opensmtpd-filter-rspamd/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7a7caef1a887..3b39004e6779 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12101,7 +12101,6 @@ with pkgs; }; opensmtpd = callPackage ../servers/mail/opensmtpd { }; - opensmtpd-filter-rspamd = callPackage ../servers/mail/opensmtpd/filter-rspamd.nix { }; system-sendmail = lowPrio (callPackage ../servers/mail/system-sendmail { }); From d27fc8088c797102734180f7f262db765df67617 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Sat, 26 Apr 2025 06:34:47 +0200 Subject: [PATCH 36/36] opensmtpd: migrate to by-name --- .../opensmtpd/default.nix => by-name/op/opensmtpd/package.nix} | 0 pkgs/{servers/mail => by-name/op}/opensmtpd/proc_path.diff | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{servers/mail/opensmtpd/default.nix => by-name/op/opensmtpd/package.nix} (100%) rename pkgs/{servers/mail => by-name/op}/opensmtpd/proc_path.diff (100%) diff --git a/pkgs/servers/mail/opensmtpd/default.nix b/pkgs/by-name/op/opensmtpd/package.nix similarity index 100% rename from pkgs/servers/mail/opensmtpd/default.nix rename to pkgs/by-name/op/opensmtpd/package.nix diff --git a/pkgs/servers/mail/opensmtpd/proc_path.diff b/pkgs/by-name/op/opensmtpd/proc_path.diff similarity index 100% rename from pkgs/servers/mail/opensmtpd/proc_path.diff rename to pkgs/by-name/op/opensmtpd/proc_path.diff diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3b39004e6779..d4e8914fa241 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12100,8 +12100,6 @@ with pkgs; modules = [ ]; }; - opensmtpd = callPackage ../servers/mail/opensmtpd { }; - system-sendmail = lowPrio (callPackage ../servers/mail/system-sendmail { }); # PulseAudio daemons