Merge pull request #43538 from timokau/fetchpatch-fix
fetchpatch: quote excludes
This commit is contained in:
commit
fddd90e9ea
@ -1,14 +0,0 @@
|
||||
reverted:
|
||||
--- b/src/sage/geometry/polyhedron/backend_cdd.py
|
||||
+++ a/src/sage/geometry/polyhedron/backend_cdd.py
|
||||
@@ -154,7 +154,9 @@
|
||||
... [0.62, -1.38, 0.38],[0.144, -1.04, 0.04],
|
||||
... [0.1309090909, -1.0290909091, 0.04]]
|
||||
sage: Polyhedron(point_list)
|
||||
+ Traceback (most recent call last):
|
||||
+ ...
|
||||
+ ValueError: *Error: Numerical inconsistency is found. Use the GMP exact arithmetic.
|
||||
- A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 14 vertices
|
||||
sage: Polyhedron(point_list, base_ring=QQ)
|
||||
A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 14 vertices
|
||||
"""
|
@ -156,7 +156,12 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0fmw7pzbaxs2dshky6iw9pr8i23p9ih2y2lw661qypdrxh5xw03k";
|
||||
stripLen = 1;
|
||||
})
|
||||
./patches/revert-269c1e1551285.patch
|
||||
(fetchpatch {
|
||||
name = "revert-cddlib-doctest-changes.patch";
|
||||
url = "https://git.sagemath.org/sage.git/patch/?id=269c1e1551285566b8ba7a2b890989e5590e9f11";
|
||||
sha256 = "12bcjhq7hm2pmmj2bgjvcffjyls2x7q61ivlnaj5v5bsvhc183iy";
|
||||
revert = true;
|
||||
})
|
||||
|
||||
|
||||
# Only formatting changes.
|
||||
|
@ -5,11 +5,15 @@
|
||||
# stripLen acts as the -p parameter when applying a patch.
|
||||
|
||||
{ lib, fetchurl, patchutils }:
|
||||
{ stripLen ? 0, extraPrefix ? null, excludes ? [], ... }@args:
|
||||
{ stripLen ? 0, extraPrefix ? null, excludes ? [], includes ? [], revert ? false, ... }@args:
|
||||
|
||||
fetchurl ({
|
||||
postFetch = ''
|
||||
tmpfile="$TMPDIR/${args.sha256}"
|
||||
if [ ! -s "$out" ]; then
|
||||
echo "error: Fetched patch file '$out' is empty!" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
"${patchutils}/bin/lsdiff" "$out" \
|
||||
| sort -u | sed -e 's/[*?]/\\&/g' \
|
||||
| xargs -I{} \
|
||||
@ -21,10 +25,29 @@ fetchurl ({
|
||||
--addnewprefix=b/${extraPrefix} \
|
||||
''} \
|
||||
--clean "$out" > "$tmpfile"
|
||||
if [ ! -s "$tmpfile" ]; then
|
||||
echo "error: Normalized patch '$tmpfile' is empty (while the fetched file was not)!" 1>&2
|
||||
echo "Did you maybe fetch a HTML representation of a patch instead of a raw patch?" 1>&2
|
||||
echo "Fetched file was:" 1>&2
|
||||
cat "$out" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
${patchutils}/bin/filterdiff \
|
||||
-p1 \
|
||||
${builtins.toString (builtins.map (x: "-x ${x}") excludes)} \
|
||||
${builtins.toString (builtins.map (x: "-x ${lib.escapeShellArg x}") excludes)} \
|
||||
${builtins.toString (builtins.map (x: "-i ${lib.escapeShellArg x}") includes)} \
|
||||
"$tmpfile" > "$out"
|
||||
${args.postFetch or ""}
|
||||
'';
|
||||
} // builtins.removeAttrs args ["stripLen" "extraPrefix" "excludes" "postFetch"])
|
||||
|
||||
if [ ! -s "$out" ]; then
|
||||
echo "error: Filtered patch '$out$' is empty (while the original patch file was not)!" 1>&2
|
||||
echo "Check your includes and excludes." 1>&2
|
||||
echo "Normalizd patch file was:" 1>&2
|
||||
cat "$tmpfile" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
'' + lib.optionalString revert ''
|
||||
${patchutils}/bin/interdiff "$out" /dev/null > "$tmpfile"
|
||||
mv "$tmpfile" "$out"
|
||||
'' + (args.postFetch or "");
|
||||
meta.broken = excludes != [] && includes != [];
|
||||
} // builtins.removeAttrs args ["stripLen" "extraPrefix" "excludes" "includes" "revert" "postFetch"])
|
||||
|
Loading…
Reference in New Issue
Block a user