]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
quilt: backport a patch to address grep 3.8 failures
authorAlexander Kanavin <alex.kanavin@gmail.com>
Thu, 27 Oct 2022 20:16:10 +0000 (22:16 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 29 Oct 2022 15:23:27 +0000 (16:23 +0100)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
meta/recipes-devtools/quilt/quilt.inc
meta/recipes-devtools/quilt/quilt/fix-grep-3.8.patch [new file with mode: 0644]

index 07611e6d853c9ea47871dfa5289d5e088857765b..ec69705093b94fc2e40ec39fbb20f08334707ae0 100644 (file)
@@ -12,6 +12,7 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quilt/quilt-${PV}.tar.gz \
         file://Makefile \
         file://test.sh \
         file://0001-tests-Allow-different-output-from-mv.patch \
+        file://fix-grep-3.8.patch \
 "
 
 SRC_URI:append:class-target = " file://gnu_patch_test_fix_target.patch"
diff --git a/meta/recipes-devtools/quilt/quilt/fix-grep-3.8.patch b/meta/recipes-devtools/quilt/quilt/fix-grep-3.8.patch
new file mode 100644 (file)
index 0000000..68a4b4c
--- /dev/null
@@ -0,0 +1,144 @@
+From f73f8d7f71de2878d3f92881a5fcb8eafd78cb5f Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Fri, 9 Sep 2022 10:10:37 +0200
+Subject: Avoid warnings with grep 3.8
+
+GNU grep version 3.8 became more strict about needless quoting in
+patterns. We have one occurrence of that in quilt, where "/"
+characters are being quoted by default. There are cases where they
+indeed need to be quoted (typically when used in a sed s/// command)
+but most of the time they do not, and this results in the following
+warning:
+
+grep: warning: stray \ before /
+
+So rename quote_bre() to quote_sed_re(), and introduce
+quote_grep_re() which does not quote "/".
+
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+Upstream-Status: Backport [https://git.savannah.nongnu.org/cgit/quilt.git/commit/?id=f73f8d7f71de2878d3f92881a5fcb8eafd78cb5f]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ quilt/diff.in             |  2 +-
+ quilt/patches.in          |  2 +-
+ quilt/scripts/patchfns.in | 20 +++++++++++++-------
+ quilt/upgrade.in          |  4 ++--
+ 4 files changed, 17 insertions(+), 11 deletions(-)
+
+diff --git a/quilt/diff.in b/quilt/diff.in
+index e90dc33..07788ff 100644
+--- a/quilt/diff.in
++++ b/quilt/diff.in
+@@ -255,7 +255,7 @@ then
+       # Add all files in the snapshot into the file list (they may all
+       # have changed).
+       files=( $(find $QUILT_PC/$snap_subdir -type f \
+-                | sed -e "s/^$(quote_bre $QUILT_PC/$snap_subdir/)//" \
++                | sed -e "s/^$(quote_sed_re $QUILT_PC/$snap_subdir/)//" \
+                 | sort) )
+       printf "%s\n" "${files[@]}" >&4
+       unset files
+diff --git a/quilt/patches.in b/quilt/patches.in
+index bb17a46..eac45a9 100644
+--- a/quilt/patches.in
++++ b/quilt/patches.in
+@@ -60,7 +60,7 @@ scan_unapplied()
+       # Quote each file name only once
+       for file in "${opt_files[@]}"
+       do
+-              files_bre[${#files_bre[@]}]=$(quote_bre "$file")
++              files_bre[${#files_bre[@]}]=$(quote_grep_re "$file")
+       done
+       # "Or" all files in a single pattern
+diff --git a/quilt/scripts/patchfns.in b/quilt/scripts/patchfns.in
+index c2d5f9d..1bd7233 100644
+--- a/quilt/scripts/patchfns.in
++++ b/quilt/scripts/patchfns.in
+@@ -78,8 +78,14 @@ array_join()
+       done
+ }
+-# Quote a string for use in a basic regular expression.
+-quote_bre()
++# Quote a string for use in a regular expression for a grep pattern.
++quote_grep_re()
++{
++      echo "$1" | sed -e 's:\([][^$.*\\]\):\\\1:g'
++}
++
++# Quote a string for use in a regular expression for a sed s/// command.
++quote_sed_re()
+ {
+       echo "$1" | sed -e 's:\([][^$/.*\\]\):\\\1:g'
+ }
+@@ -215,7 +221,7 @@ patch_in_series()
+       if [ -e "$SERIES" ]
+       then
+-              grep -q "^$(quote_bre $patch)\([ \t]\|$\)" "$SERIES"
++              grep -q "^$(quote_grep_re $patch)\([ \t]\|$\)" "$SERIES"
+       else
+               return 1
+       fi
+@@ -365,7 +371,7 @@ is_applied()
+ {
+       local patch=$1
+       [ -e $DB ] || return 1
+-      grep -q "^$(quote_bre $patch)\$" $DB
++      grep -q "^$(quote_grep_re $patch)\$" $DB
+ }
+ applied_patches()
+@@ -465,7 +471,7 @@ remove_from_db()
+       local tmpfile
+       if tmpfile=$(gen_tempfile)
+       then
+-              grep -v "^$(quote_bre $patch)\$" $DB > $tmpfile
++              grep -v "^$(quote_grep_re $patch)\$" $DB > $tmpfile
+               cat $tmpfile > $DB
+               rm -f $tmpfile
+               [ -s $DB ] || rm -f $DB
+@@ -520,7 +526,7 @@ find_patch()
+               fi
+               local patch=${1#$SUBDIR_DOWN$QUILT_PATCHES/}
+-              local bre=$(quote_bre "$patch")
++              local bre=$(quote_sed_re "$patch")
+               set -- $(sed -e "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\|\.lz\)\([ "$'\t'"]\|$\)/!d" \
+                              -e 's/[ '$'\t''].*//' "$SERIES")
+               if [ $# -eq 1 ]
+@@ -631,7 +637,7 @@ files_in_patch()
+       then
+               find "$path" -type f \
+                              -a ! -path "$(quote_glob "$path")/.timestamp" |
+-              sed -e "s/$(quote_bre "$path")\///"
++              sed -e "s/$(quote_sed_re "$path")\///"
+       fi
+ }
+diff --git a/quilt/upgrade.in b/quilt/upgrade.in
+index dbf7d05..866aa33 100644
+--- a/quilt/upgrade.in
++++ b/quilt/upgrade.in
+@@ -74,7 +74,7 @@ printf $"Converting meta-data to version %s\n" "$DB_VERSION"
+ for patch in $(applied_patches)
+ do
+-      proper_name="$(grep "^$(quote_bre $patch)"'\(\|\.patch\|\.diff?\)\(\|\.gz\|\.bz2\)\([ \t]\|$\)' $SERIES)"
++      proper_name="$(grep "^$(quote_grep_re $patch)"'\(\|\.patch\|\.diff?\)\(\|\.gz\|\.bz2\)\([ \t]\|$\)' $SERIES)"
+       proper_name=${proper_name#$QUILT_PATCHES/}
+       proper_name=${proper_name%% *}
+       if [ -z "$proper_name" ]
+@@ -84,7 +84,7 @@ do
+       fi
+       if [ "$patch" != "$proper_name" -a -d $QUILT_PC/$patch ] \
+-         && grep -q "^$(quote_bre $patch)\$" \
++         && grep -q "^$(quote_grep_re $patch)\$" \
+                  $QUILT_PC/applied-patches
+       then
+               mv $QUILT_PC/$patch $QUILT_PC/$proper_name \
+-- 
+cgit v1.1
+