From 5e946fb24d88688b3133297bd48e1d93bdf91ccead6307dab58a22350fcd0f6f Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Fri, 9 Sep 2022 08:23:01 +0000 Subject: [PATCH] - avoid-warnings-with-grep-3.8.patch: Avoid warnings with grep 3.8. GNU grep version 3.8 became more strict about needless quoting in patterns. There was an occurrence of that in quilt, which broke the test suite (boo#203230). OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/quilt?expand=0&rev=125 --- avoid-warnings-with-grep-3.8.patch | 135 +++++++++++++++++++++++++++++ quilt.changes | 8 ++ quilt.spec | 16 ++-- 3 files changed, 152 insertions(+), 7 deletions(-) create mode 100644 avoid-warnings-with-grep-3.8.patch diff --git a/avoid-warnings-with-grep-3.8.patch b/avoid-warnings-with-grep-3.8.patch new file mode 100644 index 0000000..5682750 --- /dev/null +++ b/avoid-warnings-with-grep-3.8.patch @@ -0,0 +1,135 @@ +From: Jean Delvare +Date: Fri, 9 Sep 2022 10:10:37 +0200 +Subject: Avoid warnings with grep 3.8 +Patch-mainline: yes +Git-commit: f73f8d7f71de2878d3f92881a5fcb8eafd78cb5f +References: boo#1203230 + +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 + +diff --git a/quilt/diff.in b/quilt/diff.in +index e90dc33db36a..07788ffc5e75 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 bb17a463a613..eac45a9c9635 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 c2d5f9dbe946..1bd723315e2c 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 dbf7d05bd2b7..866aa339d41e 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 \ diff --git a/quilt.changes b/quilt.changes index 5594810..8053b08 100644 --- a/quilt.changes +++ b/quilt.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Sep 9 08:18:31 UTC 2022 - Jean Delvare + +- avoid-warnings-with-grep-3.8.patch: Avoid warnings with grep + 3.8. GNU grep version 3.8 became more strict about needless + quoting in patterns. There was an occurrence of that in quilt, + which broke the test suite (boo#203230). + ------------------------------------------------------------------- Tue Feb 15 14:07:30 UTC 2022 - Jean Delvare diff --git a/quilt.spec b/quilt.spec index 4e85b3c..759d843 100644 --- a/quilt.spec +++ b/quilt.spec @@ -38,10 +38,11 @@ Requires: perl URL: http://savannah.nongnu.org/projects/quilt Source: %{name}-%{version}.tar.bz2 Source1: suse-start-quilt-mode.el -Patch1: expand.diff -Patch2: quilt-support-vimdiff.patch -Patch3: test-faildiff-workaround-order-bug.patch -Patch4: suse-workaround-pseudo-release.patch +Patch1: avoid-warnings-with-grep-3.8.patch +Patch81: expand.diff +Patch82: quilt-support-vimdiff.patch +Patch83: test-faildiff-workaround-order-bug.patch +Patch84: suse-workaround-pseudo-release.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch %if 0%{?suse_version} @@ -62,9 +63,10 @@ un-applied, refreshed, and more. %prep %setup -q %patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 +%patch81 -p1 +%patch82 -p1 +%patch83 -p1 +%patch84 -p1 %build # --with-rpmbuild=/usr/lib/rpm/rpmb: