Merge master into staging-next

authored by github-actions[bot] and committed by GitHub e3e1b16e 76cc08f9

+161 -56
+47
doc/builders/fetchers.chapter.md
··· 82 82 83 83 Most other fetchers return a directory rather than a single file. 84 84 85 + 86 + ## `fetchDebianPatch` {#fetchdebianpatch} 87 + 88 + A wrapper around `fetchpatch`, which takes: 89 + - `patch` and `hash`: the patch's filename without the `.patch` suffix, 90 + and its hash after normalization by `fetchpatch` ; 91 + - `pname`: the Debian source package's name ; 92 + - `version`: the upstream version number ; 93 + - `debianRevision`: the [Debian revision number] if applicable ; 94 + - the `area` of the Debian archive: `main` (default), `contrib`, or `non-free`. 95 + 96 + Here is an example of `fetchDebianPatch` in action: 97 + 98 + ```nix 99 + { lib 100 + , fetchDebianPatch 101 + , buildPythonPackage 102 + }: 103 + 104 + buildPythonPackage rec { 105 + pname = "pysimplesoap"; 106 + version = "1.16.2"; 107 + src = ...; 108 + 109 + patches = [ 110 + (fetchDebianPatch { 111 + inherit pname version; 112 + debianRevision = "5"; 113 + name = "Add-quotes-to-SOAPAction-header-in-SoapClient"; 114 + hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; 115 + }) 116 + ]; 117 + 118 + ... 119 + } 120 + ``` 121 + 122 + Patches are fetched from `sources.debian.org`, and so must come from a 123 + package version that was uploaded to the Debian archive. Packages may 124 + be removed from there once that specific version isn't in any suite 125 + anymore (stable, testing, unstable, etc.), so maintainers should use 126 + `copy-tarballs.pl` to archive the patch if it needs to be available 127 + longer-term. 128 + 129 + [Debian revision number]: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version 130 + 131 + 85 132 ## `fetchsvn` {#fetchsvn} 86 133 87 134 Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `hash`.
+2 -2
pkgs/applications/graphics/luminance-hdr/default.nix
··· 6 6 7 7 mkDerivation rec { 8 8 pname = "luminance-hdr"; 9 - version = "2.6.0"; 9 + version = "2.6.1.1"; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = "LuminanceHDR"; 13 13 repo = "LuminanceHDR"; 14 14 rev = "v.${version}"; 15 - sha256 = "1izmgjjp8mgyxv57sjjr05z7g7059ykb5wchlcn4wrnnb6aslnvn"; 15 + sha256 = "sha256-PWqtYGx8drfMVp7D7MzN1sIUTQ+Xz5yyeHN87p2r6PY="; 16 16 }; 17 17 18 18 env.NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
+19
pkgs/build-support/fetchdebianpatch/default.nix
··· 1 + { lib, fetchpatch }: 2 + 3 + lib.makeOverridable ( 4 + { pname, version, debianRevision ? null, patch, hash, 5 + area ? "main", name ? "${patch}.patch" }: 6 + let 7 + inherit (lib.strings) hasPrefix substring; 8 + prefix = 9 + substring 0 (if hasPrefix "lib" pname then 4 else 1) pname; 10 + versionString = 11 + if debianRevision == null then version 12 + else "${version}-${debianRevision}"; 13 + in fetchpatch { 14 + inherit name hash; 15 + url = 16 + "https://sources.debian.org/data/${area}/${prefix}/" 17 + + "${pname}/${versionString}/debian/patches/${patch}.patch"; 18 + } 19 + )
+19
pkgs/build-support/fetchdebianpatch/tests.nix
··· 1 + { testers, fetchDebianPatch, ... }: 2 + 3 + { 4 + simple = testers.invalidateFetcherByDrvHash fetchDebianPatch { 5 + pname = "pysimplesoap"; 6 + version = "1.16.2"; 7 + debianRevision = "5"; 8 + patch = "Add-quotes-to-SOAPAction-header-in-SoapClient"; 9 + hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; 10 + }; 11 + 12 + libPackage = testers.invalidateFetcherByDrvHash fetchDebianPatch { 13 + pname = "libfile-pid-perl"; 14 + version = "1.01"; 15 + debianRevision = "2"; 16 + patch = "missing-pidfile"; 17 + hash = "sha256-VBsIYyCnjcZLYQ2Uq2MKPK3kF2wiMKvnq0m727DoavM="; 18 + }; 19 + }
+2 -9
pkgs/desktops/pantheon/apps/elementary-iconbrowser/default.nix
··· 5 5 , meson 6 6 , ninja 7 7 , pkg-config 8 - , python3 9 8 , vala 10 9 , wrapGAppsHook4 11 10 , elementary-gtk-theme ··· 18 17 19 18 stdenv.mkDerivation rec { 20 19 pname = "elementary-iconbrowser"; 21 - version = "2.1.1"; 20 + version = "2.2.0"; 22 21 23 22 src = fetchFromGitHub { 24 23 owner = "elementary"; 25 24 repo = "iconbrowser"; 26 25 rev = version; 27 - sha256 = "sha256-xooZfQmeB4rvlO8zKWnUuXPCFQNCTdjd7C53/j9EoHg="; 26 + sha256 = "sha256-F0HxwyXAMAQyGRMhtsuKdmyyrCweM+ImJokN/KN3Kiw="; 28 27 }; 29 28 30 29 nativeBuildInputs = [ 31 30 meson 32 31 ninja 33 32 pkg-config 34 - python3 35 33 vala 36 34 wrapGAppsHook4 37 35 ]; ··· 43 41 gtk4 44 42 gtksourceview5 45 43 ]; 46 - 47 - postPatch = '' 48 - chmod +x meson/post_install.py 49 - patchShebangs meson/post_install.py 50 - ''; 51 44 52 45 preFixup = '' 53 46 gappsWrapperArgs+=(
+17 -1
pkgs/development/python-modules/gumath/default.nix
··· 1 1 { lib 2 2 , stdenv 3 3 , buildPythonPackage 4 + , fetchpatch 4 5 , python 5 6 , numba 6 7 , ndtypes ··· 13 14 14 15 buildPythonPackage { 15 16 pname = "gumath"; 17 + format = "setuptools"; 16 18 disabled = isPy27; 17 19 inherit (libgumath) src version meta; 18 20 21 + patches = [ 22 + # https://github.com/xnd-project/gumath/pull/42 23 + (fetchpatch { 24 + name = "remove-np-warnings-call.patch"; 25 + url = "https://github.com/xnd-project/gumath/commit/83ab3aa3b07d55654b4e6e75e5ec6be8190fca97.patch"; 26 + hash = "sha256-7lUXNVH5M+Go1iEu0bud03XI8cyGbdLNdLraMZplDaM="; 27 + }) 28 + (fetchpatch { 29 + name = "remove-np-1.25-bartlett-test-assertion.patch"; 30 + url = "https://github.com/xnd-project/gumath/commit/8741e31f2967ded08c96a7f0631e1e38fe813870.patch"; 31 + hash = "sha256-flltk3RNPHalbcIV0BrkxWuhqqJBrycos7Fyv3P3mWg="; 32 + }) 33 + ]; 34 + 19 35 nativeCheckInputs = [ numba ]; 36 + 20 37 propagatedBuildInputs = [ ndtypes xnd ]; 21 38 22 39 postPatch = '' ··· 42 59 python test_xndarray.py 43 60 popd 44 61 ''; 45 - 46 62 } 47 63
+7 -1
pkgs/development/python-modules/pdf2docx/default.nix
··· 5 5 , buildPythonPackage 6 6 , pythonRelaxDepsHook 7 7 , imagemagick 8 + , pip 8 9 , pytestCheckHook 9 10 , pymupdf 10 11 , fire ··· 29 30 hash = "sha256-NrT4GURQIJbqnHstfJrPzwLXT9c2oGBi4QJ6eGIFwu4="; 30 31 }; 31 32 32 - nativeBuildInputs = [ pythonRelaxDepsHook imagemagick ]; 33 + nativeBuildInputs = [ 34 + pip 35 + pythonRelaxDepsHook 36 + imagemagick 37 + ]; 38 + 33 39 pythonRemoveDeps = [ "opencv-python" ]; 34 40 35 41 preBuild = "echo '${version}' > version.txt";
+19 -23
pkgs/development/python-modules/pysimplesoap/default.nix
··· 1 1 { lib 2 - , fetchpatch 2 + , fetchDebianPatch 3 3 , fetchPypi 4 4 , buildPythonPackage 5 5 , m2crypto ··· 20 20 m2crypto 21 21 ]; 22 22 23 - patches = 24 - let 25 - debianRevision = "5"; # The Debian package revision we get patches from 26 - fetchDebianPatch = { name, hash }: fetchpatch { 27 - url = "https://salsa.debian.org/python-team/packages/pysimplesoap/-/raw/debian/${version}-${debianRevision}/debian/patches/${name}.patch"; 28 - inherit hash; 29 - }; 30 - in map fetchDebianPatch [ 31 - # Merged upstream: f5f96210e1483f81cb5c582a6619e3ec4b473027 32 - { name = "Add-quotes-to-SOAPAction-header-in-SoapClient"; 33 - hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; } 34 - # Merged upstream: ad03a21cafab982eed321553c4bfcda1755182eb 35 - { name = "fix-httplib2-version-check"; 36 - hash = "sha256-zUeF3v0N/eMyRVRH3tQLfuUfMKOD/B/aqEwFh/7HxH4="; } 37 - { name = "reorder-type-check-to-avoid-a-TypeError"; 38 - hash = "sha256-2p5Cqvh0SPfJ8B38wb/xq7jWGYgpI9pavA6qkMUb6hA="; } 39 - # Merged upstream: 033e5899e131a2c1bdf7db5852f816f42aac9227 40 - { name = "Support-integer-values-in-maxOccurs-attribute"; 41 - hash = "sha256-IZ0DP7io+ihcnB5547cR53FAdnpRLR6z4J5KsNrkfaI="; } 42 - { name = "PR204"; 43 - hash = "sha256-JlxeTnKDFxvEMFBthZsaYRbNOoBvLJhBnXCRoiL/nVw="; } 44 - ] ++ [ ./stringIO.patch ]; 23 + patches = map (args: fetchDebianPatch ({ 24 + inherit pname version; 25 + debianRevision = "5"; 26 + } // args)) [ 27 + # Merged upstream: f5f96210e1483f81cb5c582a6619e3ec4b473027 28 + { patch = "Add-quotes-to-SOAPAction-header-in-SoapClient"; 29 + hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; } 30 + # Merged upstream: ad03a21cafab982eed321553c4bfcda1755182eb 31 + { patch = "fix-httplib2-version-check"; 32 + hash = "sha256-zUeF3v0N/eMyRVRH3tQLfuUfMKOD/B/aqEwFh/7HxH4="; } 33 + { patch = "reorder-type-check-to-avoid-a-TypeError"; 34 + hash = "sha256-2p5Cqvh0SPfJ8B38wb/xq7jWGYgpI9pavA6qkMUb6hA="; } 35 + # Merged upstream: 033e5899e131a2c1bdf7db5852f816f42aac9227 36 + { patch = "Support-integer-values-in-maxOccurs-attribute"; 37 + hash = "sha256-IZ0DP7io+ihcnB5547cR53FAdnpRLR6z4J5KsNrkfaI="; } 38 + { patch = "PR204"; 39 + hash = "sha256-JlxeTnKDFxvEMFBthZsaYRbNOoBvLJhBnXCRoiL/nVw="; } 40 + ] ++ [ ./stringIO.patch ]; 45 41 46 42 meta = with lib; { 47 43 description = "Python simple and lightweight SOAP Library";
+2 -2
pkgs/development/python-modules/scrapy/default.nix
··· 31 31 32 32 buildPythonPackage rec { 33 33 pname = "scrapy"; 34 - version = "2.10.0"; 34 + version = "2.10.1"; 35 35 format = "setuptools"; 36 36 37 37 disabled = pythonOlder "3.7"; ··· 39 39 src = fetchPypi { 40 40 inherit version; 41 41 pname = "Scrapy"; 42 - hash = "sha256-ThajP8jAOli99OjUvcofhnNU6sacz1c2WMf/NPoMrjk="; 42 + hash = "sha256-kdZ4dfu1N2B7B+MTY0RXGKNTK1RObitLr4oEKyGh0Q8="; 43 43 }; 44 44 45 45 nativeBuildInputs = [
+2 -2
pkgs/development/python-modules/sentry-sdk/default.nix
··· 40 40 41 41 buildPythonPackage rec { 42 42 pname = "sentry-sdk"; 43 - version = "1.29.2"; 43 + version = "1.30.0"; 44 44 format = "setuptools"; 45 45 46 46 disabled = pythonOlder "3.7"; ··· 49 49 owner = "getsentry"; 50 50 repo = "sentry-python"; 51 51 rev = "refs/tags/${version}"; 52 - hash = "sha256-etn7vkKgCN7a8Dxv4gDSVaG6mvCltVh6rTOLaKEyNRA="; 52 + hash = "sha256-bs2Eg9eq39/LeuAWyW8FlnPULRUvQXils7OFrAEIg0w="; 53 53 }; 54 54 55 55 propagatedBuildInputs = [
+4 -3
pkgs/development/tools/b4/default.nix
··· 2 2 3 3 python3Packages.buildPythonApplication rec { 4 4 pname = "b4"; 5 - version = "0.12.2"; 5 + version = "0.12.3"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "tvSv14v3iigFWzifCQl5Kxx4Bfs1V/XXHvvaNoKqvm4="; 9 + hash = "sha256-tk4VBvSnHE6VnUAa3QYCqFLQbsHTJ6Bfqwa1wKEC6mI="; 10 10 }; 11 11 12 12 # tests make dns requests and fails ··· 24 24 homepage = "https://git.kernel.org/pub/scm/utils/b4/b4.git/about"; 25 25 license = licenses.gpl2Only; 26 26 description = "A helper utility to work with patches made available via a public-inbox archive"; 27 - maintainers = with maintainers; [ jb55 qyliss ]; 27 + mainProgram = "b4"; 28 + maintainers = with maintainers; [ jb55 qyliss mfrw ]; 28 29 }; 29 30 }
+2 -2
pkgs/servers/monitoring/net-snmp/default.nix
··· 10 10 11 11 in stdenv.mkDerivation rec { 12 12 pname = "net-snmp"; 13 - version = "5.9.3"; 13 + version = "5.9.4"; 14 14 15 15 src = fetchurl { 16 16 url = "mirror://sourceforge/net-snmp/${pname}-${version}.tar.gz"; 17 - sha256 = "sha256-IJfym34b8/EwC0uuUvojCNC7jV05mNvgL5RipBOi7wo="; 17 + sha256 = "sha256-i03gE5HnTjxwFL60OWGi1tb6A6zDQoC5WF9JMHRbBUQ="; 18 18 }; 19 19 20 20 patches =
+3 -1
pkgs/servers/sql/postgresql/ext/repmgr.nix
··· 8 8 , flex 9 9 , curl 10 10 , json_c 11 + , libxcrypt 11 12 }: 12 13 13 14 stdenv.mkDerivation rec { ··· 23 24 24 25 nativeBuildInputs = [ flex ]; 25 26 26 - buildInputs = [ postgresql openssl zlib readline curl json_c ]; 27 + buildInputs = [ postgresql openssl zlib readline curl json_c ] 28 + ++ lib.optionals (stdenv.isLinux && lib.versionOlder postgresql.version "13") [ libxcrypt ]; 27 29 28 30 installPhase = '' 29 31 mkdir -p $out/{bin,lib,share/postgresql/extension}
+1
pkgs/test/default.nix
··· 35 35 fetchurl = callPackages ../build-support/fetchurl/tests.nix { }; 36 36 fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { }; 37 37 fetchpatch2 = callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = fetchpatch2; }; 38 + fetchDebianPatch = callPackages ../build-support/fetchdebianpatch/tests.nix { }; 38 39 fetchzip = callPackages ../build-support/fetchzip/tests.nix { }; 39 40 fetchgit = callPackages ../build-support/fetchgit/tests.nix { }; 40 41 fetchFirefoxAddon = callPackages ../build-support/fetchfirefoxaddon/tests.nix { };
+6 -6
pkgs/tools/filesystems/garage/default.nix
··· 57 57 "sqlite" 58 58 ]); 59 59 60 - passthru = nixosTests.garage; 60 + passthru.tests = nixosTests.garage; 61 61 62 62 meta = { 63 63 description = "S3-compatible object store for small self-hosted geo-distributed deployments"; ··· 83 83 84 84 garage_0_7 = garage_0_7_3; 85 85 86 - garage_0_8_2 = generic { 87 - version = "0.8.2"; 88 - sha256 = "sha256-IlDWbNWI1yXvPPF3HIqQvo79M2FQCtoX1wRLJrDbd9k="; 89 - cargoSha256 = "sha256-6l4tDBMcOvckTkEO05rman4hHlmVbBt1nCeX5/dETKk="; 86 + garage_0_8_3 = generic { 87 + version = "0.8.3"; 88 + sha256 = "sha256-NxkFj76L+LpCWzOWbnN3zdhw9Q16uzPibDs+C+voM/0="; 89 + cargoSha256 = "sha256-hbBuUjdlw//s6d24dPBu3R/BTJvmOW1B7tSIXNxLXlU="; 90 90 }; 91 91 92 - garage_0_8 = garage_0_8_2; 92 + garage_0_8 = garage_0_8_3; 93 93 94 94 garage = garage_0_8; 95 95 }
+3 -3
pkgs/tools/graphics/svgbob/default.nix
··· 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "svgbob"; 5 - version = "0.7.0"; 5 + version = "0.7.2"; 6 6 7 7 src = fetchCrate { 8 8 inherit version; 9 9 crateName = "svgbob_cli"; 10 - sha256 = "sha256-iWcd+23/Ou7K2YUDf/MJx84LsVMXXqAkGNPs6B0RDqA="; 10 + sha256 = "sha256-QWDi6cpADm5zOzz8hXuqOBtVrqb0DteWmiDXC6PsLS4="; 11 11 }; 12 12 13 - cargoHash = "sha256-YbbVv2ln01nJfCaopKCwvVN7cgrcuaRHNXGHf9j9XUY="; 13 + cargoHash = "sha256-Fj1qjG4SKlchUWW4q0tBC+9fHFFuY6MHngJCFz6J5JY="; 14 14 15 15 postInstall = '' 16 16 mv $out/bin/svgbob_cli $out/bin/svgbob
+6 -1
pkgs/top-level/all-packages.nix
··· 1175 1175 tests = pkgs.tests.fetchzip; 1176 1176 }; 1177 1177 1178 + fetchDebianPatch = callPackage ../build-support/fetchdebianpatch { } 1179 + // { 1180 + tests = pkgs.tests.fetchDebianPatch; 1181 + }; 1182 + 1178 1183 fetchCrate = callPackage ../build-support/rust/fetchcrate.nix { }; 1179 1184 1180 1185 fetchFromGitea = callPackage ../build-support/fetchgitea { }; ··· 8386 8391 }) 8387 8392 garage 8388 8393 garage_0_7 garage_0_8 8389 - garage_0_7_3 garage_0_8_2; 8394 + garage_0_7_3 garage_0_8_3; 8390 8395 8391 8396 garmin-plugin = callPackage ../applications/misc/garmin-plugin { }; 8392 8397