fetchpatch: explicitly use patchutils 0.3.3

This commit is contained in:
Bob van der Linden 2019-04-13 23:12:55 +02:00
parent 81e9ddfd72
commit 9555fd73f3
No known key found for this signature in database
GPG Key ID: 2A90361F99CF1795
1 changed files with 7 additions and 4 deletions

View File

@ -5,6 +5,9 @@
# stripLen acts as the -p parameter when applying a patch. # stripLen acts as the -p parameter when applying a patch.
{ lib, fetchurl, buildPackages }: { lib, fetchurl, buildPackages }:
let
patchutils = buildPackages.patchutils_0_3_3;
in
{ stripLen ? 0, extraPrefix ? null, excludes ? [], includes ? [], revert ? false, ... }@args: { stripLen ? 0, extraPrefix ? null, excludes ? [], includes ? [], revert ? false, ... }@args:
fetchurl ({ fetchurl ({
@ -14,10 +17,10 @@ fetchurl ({
echo "error: Fetched patch file '$out' is empty!" 1>&2 echo "error: Fetched patch file '$out' is empty!" 1>&2
exit 1 exit 1
fi fi
"${buildPackages.patchutils}/bin/lsdiff" "$out" \ "${patchutils}/bin/lsdiff" "$out" \
| sort -u | sed -e 's/[*?]/\\&/g' \ | sort -u | sed -e 's/[*?]/\\&/g' \
| xargs -I{} \ | xargs -I{} \
"${buildPackages.patchutils}/bin/filterdiff" \ "${patchutils}/bin/filterdiff" \
--include={} \ --include={} \
--strip=${toString stripLen} \ --strip=${toString stripLen} \
${lib.optionalString (extraPrefix != null) '' ${lib.optionalString (extraPrefix != null) ''
@ -32,7 +35,7 @@ fetchurl ({
cat "$out" 1>&2 cat "$out" 1>&2
exit 1 exit 1
fi fi
${buildPackages.patchutils}/bin/filterdiff \ ${patchutils}/bin/filterdiff \
-p1 \ -p1 \
${builtins.toString (builtins.map (x: "-x ${lib.escapeShellArg x}") excludes)} \ ${builtins.toString (builtins.map (x: "-x ${lib.escapeShellArg x}") excludes)} \
${builtins.toString (builtins.map (x: "-i ${lib.escapeShellArg x}") includes)} \ ${builtins.toString (builtins.map (x: "-i ${lib.escapeShellArg x}") includes)} \
@ -46,7 +49,7 @@ fetchurl ({
exit 1 exit 1
fi fi
'' + lib.optionalString revert '' '' + lib.optionalString revert ''
${buildPackages.patchutils}/bin/interdiff "$out" /dev/null > "$tmpfile" ${patchutils}/bin/interdiff "$out" /dev/null > "$tmpfile"
mv "$tmpfile" "$out" mv "$tmpfile" "$out"
'' + (args.postFetch or ""); '' + (args.postFetch or "");
meta.broken = excludes != [] && includes != []; meta.broken = excludes != [] && includes != [];