SHA256
1
0
forked from pool/quilt

Accepting request 1002352 from devel:tools:scm

OBS-URL: https://build.opensuse.org/request/show/1002352
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/quilt?expand=0&rev=74
This commit is contained in:
Dominique Leuenberger 2022-09-10 18:17:14 +00:00 committed by Git OBS Bridge
commit 42b486edb7
3 changed files with 152 additions and 7 deletions

View File

@ -0,0 +1,135 @@
From: Jean Delvare <jdelvare@suse.de>
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 <jdelvare@suse.de>
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 \

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Fri Sep 9 08:18:31 UTC 2022 - Jean Delvare <jdelvare@suse.com>
- 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#1203230).
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Feb 15 14:07:30 UTC 2022 - Jean Delvare <jdelvare@suse.com> Tue Feb 15 14:07:30 UTC 2022 - Jean Delvare <jdelvare@suse.com>

View File

@ -38,10 +38,11 @@ Requires: perl
URL: http://savannah.nongnu.org/projects/quilt URL: http://savannah.nongnu.org/projects/quilt
Source: %{name}-%{version}.tar.bz2 Source: %{name}-%{version}.tar.bz2
Source1: suse-start-quilt-mode.el Source1: suse-start-quilt-mode.el
Patch1: expand.diff Patch1: avoid-warnings-with-grep-3.8.patch
Patch2: quilt-support-vimdiff.patch Patch81: expand.diff
Patch3: test-faildiff-workaround-order-bug.patch Patch82: quilt-support-vimdiff.patch
Patch4: suse-workaround-pseudo-release.patch Patch83: test-faildiff-workaround-order-bug.patch
Patch84: suse-workaround-pseudo-release.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch BuildArch: noarch
%if 0%{?suse_version} %if 0%{?suse_version}
@ -62,9 +63,10 @@ un-applied, refreshed, and more.
%prep %prep
%setup -q %setup -q
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch81 -p1
%patch3 -p1 %patch82 -p1
%patch4 -p1 %patch83 -p1
%patch84 -p1
%build %build
# --with-rpmbuild=/usr/lib/rpm/rpmb: # --with-rpmbuild=/usr/lib/rpm/rpmb: