diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md index 4d4f3f427cd4..ba105764904c 100644 --- a/doc/builders/fetchers.chapter.md +++ b/doc/builders/fetchers.chapter.md @@ -82,6 +82,53 @@ Note that because the checksum is computed after applying these effects, using o Most other fetchers return a directory rather than a single file. + +## `fetchDebianPatch` {#fetchdebianpatch} + +A wrapper around `fetchpatch`, which takes: +- `patch` and `hash`: the patch's filename without the `.patch` suffix, + and its hash after normalization by `fetchpatch` ; +- `pname`: the Debian source package's name ; +- `version`: the upstream version number ; +- `debianRevision`: the [Debian revision number] if applicable ; +- the `area` of the Debian archive: `main` (default), `contrib`, or `non-free`. + +Here is an example of `fetchDebianPatch` in action: + +```nix +{ lib +, fetchDebianPatch +, buildPythonPackage +}: + +buildPythonPackage rec { + pname = "pysimplesoap"; + version = "1.16.2"; + src = ...; + + patches = [ + (fetchDebianPatch { + inherit pname version; + debianRevision = "5"; + name = "Add-quotes-to-SOAPAction-header-in-SoapClient"; + hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; + }) + ]; + + ... +} +``` + +Patches are fetched from `sources.debian.org`, and so must come from a +package version that was uploaded to the Debian archive. Packages may +be removed from there once that specific version isn't in any suite +anymore (stable, testing, unstable, etc.), so maintainers should use +`copy-tarballs.pl` to archive the patch if it needs to be available +longer-term. + +[Debian revision number]: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version + + ## `fetchsvn` {#fetchsvn} Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `hash`. diff --git a/pkgs/applications/graphics/luminance-hdr/default.nix b/pkgs/applications/graphics/luminance-hdr/default.nix index 97d889c285c6..257878d20f63 100644 --- a/pkgs/applications/graphics/luminance-hdr/default.nix +++ b/pkgs/applications/graphics/luminance-hdr/default.nix @@ -6,13 +6,13 @@ mkDerivation rec { pname = "luminance-hdr"; - version = "2.6.0"; + version = "2.6.1.1"; src = fetchFromGitHub { owner = "LuminanceHDR"; repo = "LuminanceHDR"; rev = "v.${version}"; - sha256 = "1izmgjjp8mgyxv57sjjr05z7g7059ykb5wchlcn4wrnnb6aslnvn"; + sha256 = "sha256-PWqtYGx8drfMVp7D7MzN1sIUTQ+Xz5yyeHN87p2r6PY="; }; env.NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR"; diff --git a/pkgs/build-support/fetchdebianpatch/default.nix b/pkgs/build-support/fetchdebianpatch/default.nix new file mode 100644 index 000000000000..c058b416d381 --- /dev/null +++ b/pkgs/build-support/fetchdebianpatch/default.nix @@ -0,0 +1,19 @@ +{ lib, fetchpatch }: + +lib.makeOverridable ( + { pname, version, debianRevision ? null, patch, hash, + area ? "main", name ? "${patch}.patch" }: + let + inherit (lib.strings) hasPrefix substring; + prefix = + substring 0 (if hasPrefix "lib" pname then 4 else 1) pname; + versionString = + if debianRevision == null then version + else "${version}-${debianRevision}"; + in fetchpatch { + inherit name hash; + url = + "https://sources.debian.org/data/${area}/${prefix}/" + + "${pname}/${versionString}/debian/patches/${patch}.patch"; + } +) diff --git a/pkgs/build-support/fetchdebianpatch/tests.nix b/pkgs/build-support/fetchdebianpatch/tests.nix new file mode 100644 index 000000000000..58f3b395d1fc --- /dev/null +++ b/pkgs/build-support/fetchdebianpatch/tests.nix @@ -0,0 +1,19 @@ +{ testers, fetchDebianPatch, ... }: + +{ + simple = testers.invalidateFetcherByDrvHash fetchDebianPatch { + pname = "pysimplesoap"; + version = "1.16.2"; + debianRevision = "5"; + patch = "Add-quotes-to-SOAPAction-header-in-SoapClient"; + hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; + }; + + libPackage = testers.invalidateFetcherByDrvHash fetchDebianPatch { + pname = "libfile-pid-perl"; + version = "1.01"; + debianRevision = "2"; + patch = "missing-pidfile"; + hash = "sha256-VBsIYyCnjcZLYQ2Uq2MKPK3kF2wiMKvnq0m727DoavM="; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-iconbrowser/default.nix b/pkgs/desktops/pantheon/apps/elementary-iconbrowser/default.nix index 69d52292f28b..cfcf4b8e8a60 100644 --- a/pkgs/desktops/pantheon/apps/elementary-iconbrowser/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-iconbrowser/default.nix @@ -5,7 +5,6 @@ , meson , ninja , pkg-config -, python3 , vala , wrapGAppsHook4 , elementary-gtk-theme @@ -18,20 +17,19 @@ stdenv.mkDerivation rec { pname = "elementary-iconbrowser"; - version = "2.1.1"; + version = "2.2.0"; src = fetchFromGitHub { owner = "elementary"; repo = "iconbrowser"; rev = version; - sha256 = "sha256-xooZfQmeB4rvlO8zKWnUuXPCFQNCTdjd7C53/j9EoHg="; + sha256 = "sha256-F0HxwyXAMAQyGRMhtsuKdmyyrCweM+ImJokN/KN3Kiw="; }; nativeBuildInputs = [ meson ninja pkg-config - python3 vala wrapGAppsHook4 ]; @@ -44,11 +42,6 @@ stdenv.mkDerivation rec { gtksourceview5 ]; - postPatch = '' - chmod +x meson/post_install.py - patchShebangs meson/post_install.py - ''; - preFixup = '' gappsWrapperArgs+=( # The GTK theme is hardcoded. diff --git a/pkgs/development/python-modules/gumath/default.nix b/pkgs/development/python-modules/gumath/default.nix index 41c0d2352c88..013662314b72 100644 --- a/pkgs/development/python-modules/gumath/default.nix +++ b/pkgs/development/python-modules/gumath/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , buildPythonPackage +, fetchpatch , python , numba , ndtypes @@ -13,10 +14,26 @@ buildPythonPackage { pname = "gumath"; + format = "setuptools"; disabled = isPy27; inherit (libgumath) src version meta; + patches = [ + # https://github.com/xnd-project/gumath/pull/42 + (fetchpatch { + name = "remove-np-warnings-call.patch"; + url = "https://github.com/xnd-project/gumath/commit/83ab3aa3b07d55654b4e6e75e5ec6be8190fca97.patch"; + hash = "sha256-7lUXNVH5M+Go1iEu0bud03XI8cyGbdLNdLraMZplDaM="; + }) + (fetchpatch { + name = "remove-np-1.25-bartlett-test-assertion.patch"; + url = "https://github.com/xnd-project/gumath/commit/8741e31f2967ded08c96a7f0631e1e38fe813870.patch"; + hash = "sha256-flltk3RNPHalbcIV0BrkxWuhqqJBrycos7Fyv3P3mWg="; + }) + ]; + nativeCheckInputs = [ numba ]; + propagatedBuildInputs = [ ndtypes xnd ]; postPatch = '' @@ -42,6 +59,5 @@ buildPythonPackage { python test_xndarray.py popd ''; - } diff --git a/pkgs/development/python-modules/pdf2docx/default.nix b/pkgs/development/python-modules/pdf2docx/default.nix index fc9987d3e903..e337bf292fcf 100644 --- a/pkgs/development/python-modules/pdf2docx/default.nix +++ b/pkgs/development/python-modules/pdf2docx/default.nix @@ -5,6 +5,7 @@ , buildPythonPackage , pythonRelaxDepsHook , imagemagick +, pip , pytestCheckHook , pymupdf , fire @@ -29,7 +30,12 @@ buildPythonPackage { hash = "sha256-NrT4GURQIJbqnHstfJrPzwLXT9c2oGBi4QJ6eGIFwu4="; }; - nativeBuildInputs = [ pythonRelaxDepsHook imagemagick ]; + nativeBuildInputs = [ + pip + pythonRelaxDepsHook + imagemagick + ]; + pythonRemoveDeps = [ "opencv-python" ]; preBuild = "echo '${version}' > version.txt"; diff --git a/pkgs/development/python-modules/pysimplesoap/default.nix b/pkgs/development/python-modules/pysimplesoap/default.nix index 11ffdaa7aa58..eecf54425380 100644 --- a/pkgs/development/python-modules/pysimplesoap/default.nix +++ b/pkgs/development/python-modules/pysimplesoap/default.nix @@ -1,5 +1,5 @@ { lib -, fetchpatch +, fetchDebianPatch , fetchPypi , buildPythonPackage , m2crypto @@ -20,28 +20,24 @@ buildPythonPackage rec { m2crypto ]; - patches = - let - debianRevision = "5"; # The Debian package revision we get patches from - fetchDebianPatch = { name, hash }: fetchpatch { - url = "https://salsa.debian.org/python-team/packages/pysimplesoap/-/raw/debian/${version}-${debianRevision}/debian/patches/${name}.patch"; - inherit hash; - }; - in map fetchDebianPatch [ - # Merged upstream: f5f96210e1483f81cb5c582a6619e3ec4b473027 - { name = "Add-quotes-to-SOAPAction-header-in-SoapClient"; - hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; } - # Merged upstream: ad03a21cafab982eed321553c4bfcda1755182eb - { name = "fix-httplib2-version-check"; - hash = "sha256-zUeF3v0N/eMyRVRH3tQLfuUfMKOD/B/aqEwFh/7HxH4="; } - { name = "reorder-type-check-to-avoid-a-TypeError"; - hash = "sha256-2p5Cqvh0SPfJ8B38wb/xq7jWGYgpI9pavA6qkMUb6hA="; } - # Merged upstream: 033e5899e131a2c1bdf7db5852f816f42aac9227 - { name = "Support-integer-values-in-maxOccurs-attribute"; - hash = "sha256-IZ0DP7io+ihcnB5547cR53FAdnpRLR6z4J5KsNrkfaI="; } - { name = "PR204"; - hash = "sha256-JlxeTnKDFxvEMFBthZsaYRbNOoBvLJhBnXCRoiL/nVw="; } - ] ++ [ ./stringIO.patch ]; + patches = map (args: fetchDebianPatch ({ + inherit pname version; + debianRevision = "5"; + } // args)) [ + # Merged upstream: f5f96210e1483f81cb5c582a6619e3ec4b473027 + { patch = "Add-quotes-to-SOAPAction-header-in-SoapClient"; + hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; } + # Merged upstream: ad03a21cafab982eed321553c4bfcda1755182eb + { patch = "fix-httplib2-version-check"; + hash = "sha256-zUeF3v0N/eMyRVRH3tQLfuUfMKOD/B/aqEwFh/7HxH4="; } + { patch = "reorder-type-check-to-avoid-a-TypeError"; + hash = "sha256-2p5Cqvh0SPfJ8B38wb/xq7jWGYgpI9pavA6qkMUb6hA="; } + # Merged upstream: 033e5899e131a2c1bdf7db5852f816f42aac9227 + { patch = "Support-integer-values-in-maxOccurs-attribute"; + hash = "sha256-IZ0DP7io+ihcnB5547cR53FAdnpRLR6z4J5KsNrkfaI="; } + { patch = "PR204"; + hash = "sha256-JlxeTnKDFxvEMFBthZsaYRbNOoBvLJhBnXCRoiL/nVw="; } + ] ++ [ ./stringIO.patch ]; meta = with lib; { description = "Python simple and lightweight SOAP Library"; diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix index 61b3ed1e1e2d..2fd3c6ceb7db 100644 --- a/pkgs/development/python-modules/scrapy/default.nix +++ b/pkgs/development/python-modules/scrapy/default.nix @@ -31,7 +31,7 @@ buildPythonPackage rec { pname = "scrapy"; - version = "2.10.0"; + version = "2.10.1"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -39,7 +39,7 @@ buildPythonPackage rec { src = fetchPypi { inherit version; pname = "Scrapy"; - hash = "sha256-ThajP8jAOli99OjUvcofhnNU6sacz1c2WMf/NPoMrjk="; + hash = "sha256-kdZ4dfu1N2B7B+MTY0RXGKNTK1RObitLr4oEKyGh0Q8="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix index 94cb5ab003cc..b3953486902e 100644 --- a/pkgs/development/python-modules/sentry-sdk/default.nix +++ b/pkgs/development/python-modules/sentry-sdk/default.nix @@ -40,7 +40,7 @@ buildPythonPackage rec { pname = "sentry-sdk"; - version = "1.29.2"; + version = "1.30.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -49,7 +49,7 @@ buildPythonPackage rec { owner = "getsentry"; repo = "sentry-python"; rev = "refs/tags/${version}"; - hash = "sha256-etn7vkKgCN7a8Dxv4gDSVaG6mvCltVh6rTOLaKEyNRA="; + hash = "sha256-bs2Eg9eq39/LeuAWyW8FlnPULRUvQXils7OFrAEIg0w="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/tools/b4/default.nix b/pkgs/development/tools/b4/default.nix index e6f656c4012e..24da485d863d 100644 --- a/pkgs/development/tools/b4/default.nix +++ b/pkgs/development/tools/b4/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "b4"; - version = "0.12.2"; + version = "0.12.3"; src = fetchPypi { inherit pname version; - sha256 = "tvSv14v3iigFWzifCQl5Kxx4Bfs1V/XXHvvaNoKqvm4="; + hash = "sha256-tk4VBvSnHE6VnUAa3QYCqFLQbsHTJ6Bfqwa1wKEC6mI="; }; # tests make dns requests and fails @@ -24,6 +24,7 @@ python3Packages.buildPythonApplication rec { homepage = "https://git.kernel.org/pub/scm/utils/b4/b4.git/about"; license = licenses.gpl2Only; description = "A helper utility to work with patches made available via a public-inbox archive"; - maintainers = with maintainers; [ jb55 qyliss ]; + mainProgram = "b4"; + maintainers = with maintainers; [ jb55 qyliss mfrw ]; }; } diff --git a/pkgs/servers/monitoring/net-snmp/default.nix b/pkgs/servers/monitoring/net-snmp/default.nix index 6f7e696c5d6d..2a49eda4530f 100644 --- a/pkgs/servers/monitoring/net-snmp/default.nix +++ b/pkgs/servers/monitoring/net-snmp/default.nix @@ -10,11 +10,11 @@ in stdenv.mkDerivation rec { pname = "net-snmp"; - version = "5.9.3"; + version = "5.9.4"; src = fetchurl { url = "mirror://sourceforge/net-snmp/${pname}-${version}.tar.gz"; - sha256 = "sha256-IJfym34b8/EwC0uuUvojCNC7jV05mNvgL5RipBOi7wo="; + sha256 = "sha256-i03gE5HnTjxwFL60OWGi1tb6A6zDQoC5WF9JMHRbBUQ="; }; patches = diff --git a/pkgs/servers/sql/postgresql/ext/repmgr.nix b/pkgs/servers/sql/postgresql/ext/repmgr.nix index 79dd4c1bdd21..61e7ee9fc965 100644 --- a/pkgs/servers/sql/postgresql/ext/repmgr.nix +++ b/pkgs/servers/sql/postgresql/ext/repmgr.nix @@ -8,6 +8,7 @@ , flex , curl , json_c +, libxcrypt }: stdenv.mkDerivation rec { @@ -23,7 +24,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ flex ]; - buildInputs = [ postgresql openssl zlib readline curl json_c ]; + buildInputs = [ postgresql openssl zlib readline curl json_c ] + ++ lib.optionals (stdenv.isLinux && lib.versionOlder postgresql.version "13") [ libxcrypt ]; installPhase = '' mkdir -p $out/{bin,lib,share/postgresql/extension} diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index b9d75c790da6..d6fd75359fc4 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -35,6 +35,7 @@ with pkgs; fetchurl = callPackages ../build-support/fetchurl/tests.nix { }; fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { }; fetchpatch2 = callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = fetchpatch2; }; + fetchDebianPatch = callPackages ../build-support/fetchdebianpatch/tests.nix { }; fetchzip = callPackages ../build-support/fetchzip/tests.nix { }; fetchgit = callPackages ../build-support/fetchgit/tests.nix { }; fetchFirefoxAddon = callPackages ../build-support/fetchfirefoxaddon/tests.nix { }; diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix index ef4a46868cad..0ac025f37a32 100644 --- a/pkgs/tools/filesystems/garage/default.nix +++ b/pkgs/tools/filesystems/garage/default.nix @@ -57,7 +57,7 @@ let "sqlite" ]); - passthru = nixosTests.garage; + passthru.tests = nixosTests.garage; meta = { description = "S3-compatible object store for small self-hosted geo-distributed deployments"; @@ -83,13 +83,13 @@ in garage_0_7 = garage_0_7_3; - garage_0_8_2 = generic { - version = "0.8.2"; - sha256 = "sha256-IlDWbNWI1yXvPPF3HIqQvo79M2FQCtoX1wRLJrDbd9k="; - cargoSha256 = "sha256-6l4tDBMcOvckTkEO05rman4hHlmVbBt1nCeX5/dETKk="; + garage_0_8_3 = generic { + version = "0.8.3"; + sha256 = "sha256-NxkFj76L+LpCWzOWbnN3zdhw9Q16uzPibDs+C+voM/0="; + cargoSha256 = "sha256-hbBuUjdlw//s6d24dPBu3R/BTJvmOW1B7tSIXNxLXlU="; }; - garage_0_8 = garage_0_8_2; + garage_0_8 = garage_0_8_3; garage = garage_0_8; } diff --git a/pkgs/tools/graphics/svgbob/default.nix b/pkgs/tools/graphics/svgbob/default.nix index 0ee757f5c812..e5974d04e1ae 100644 --- a/pkgs/tools/graphics/svgbob/default.nix +++ b/pkgs/tools/graphics/svgbob/default.nix @@ -2,15 +2,15 @@ rustPlatform.buildRustPackage rec { pname = "svgbob"; - version = "0.7.0"; + version = "0.7.2"; src = fetchCrate { inherit version; crateName = "svgbob_cli"; - sha256 = "sha256-iWcd+23/Ou7K2YUDf/MJx84LsVMXXqAkGNPs6B0RDqA="; + sha256 = "sha256-QWDi6cpADm5zOzz8hXuqOBtVrqb0DteWmiDXC6PsLS4="; }; - cargoHash = "sha256-YbbVv2ln01nJfCaopKCwvVN7cgrcuaRHNXGHf9j9XUY="; + cargoHash = "sha256-Fj1qjG4SKlchUWW4q0tBC+9fHFFuY6MHngJCFz6J5JY="; postInstall = '' mv $out/bin/svgbob_cli $out/bin/svgbob diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b685411c464f..0557b8dcac50 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1175,6 +1175,11 @@ with pkgs; tests = pkgs.tests.fetchzip; }; + fetchDebianPatch = callPackage ../build-support/fetchdebianpatch { } + // { + tests = pkgs.tests.fetchDebianPatch; + }; + fetchCrate = callPackage ../build-support/rust/fetchcrate.nix { }; fetchFromGitea = callPackage ../build-support/fetchgitea { }; @@ -8386,7 +8391,7 @@ with pkgs; }) garage garage_0_7 garage_0_8 - garage_0_7_3 garage_0_8_2; + garage_0_7_3 garage_0_8_3; garmin-plugin = callPackage ../applications/misc/garmin-plugin { };