quilt: update to 0.68.

This commit is contained in:
Đoàn Trần Công Danh 2023-12-18 19:17:02 +07:00
parent 179358a961
commit 1beabb8078
5 changed files with 8 additions and 256 deletions

View File

@ -1,45 +0,0 @@
From ce9c68abb7cee0b4fb0d5a7ff7048d0ab3b726f8 Mon Sep 17 00:00:00 2001
From: Jean Delvare <jdelvare@suse.de>
Date: Thu, 23 Jun 2022 14:36:58 +0200
Subject: [PATCH] patchfns: Compatibility fix for BSD awk
"+" needs to be quoted to be considered as a literal "+" by BSD awk.
Without this fix, patch_header() fails to find the beginning of the
changes and treats the whole patch as a header, subsequently causing
"quilt refresh" to append the refreshed patch after the original one
instead of replacing it.
Bug reported and fix suggested by Dominic Evans.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Fixes: 1d94980dbdd4 ("Tighten the patch format parsing")
---
quilt/scripts/patchfns.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/quilt/scripts/patchfns.in b/quilt/scripts/patchfns.in
index 75cee52..c2d5f9d 100644
--- a/quilt/scripts/patchfns.in
+++ b/quilt/scripts/patchfns.in
@@ -848,7 +848,7 @@ patch_header()
MAYBE_CONTEXT=0
}
MAYBE_UNIFIED {
- if (/^+++[ \t][^ \t]/)
+ if (/^\+\+\+[ \t][^ \t]/)
exit
print eaten
MAYBE_UNIFIED=0
@@ -881,7 +881,7 @@ patch_body()
MAYBE_CONTEXT=0
}
MAYBE_UNIFIED {
- if (/^+++[ \t][^ \t]/) {
+ if (/^\+\+\+[ \t][^ \t]/) {
print eaten
body=1
}
--
2.39.2

View File

@ -1,38 +0,0 @@
From 4dfe7f9e702c85243a71e4de267a13e434b6d6c2 Mon Sep 17 00:00:00 2001
From: Jean Delvare <jdelvare@suse.de>
Date: Fri, 20 Jan 2023 12:56:08 +0100
Subject: [PATCH] test: Fix a race condition
The test suite does not differentiate between stdout and stderr. When
messages are printed to both, the order in which they will reach us
is apparently not guaranteed. Ideally this would be deterministic, but
until then, explicitly test stdout and stderr separately in the test
case itself. Otherwise the test suite fails randomly, which is a pain
for distribution package maintainers.
This fixes bug #63651 reported by Ross Burton:
https://savannah.nongnu.org/bugs/index.php?63651
Signed-off-by: Jean Delvare <jdelvare@suse.de>
---
test/faildiff.test | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/faildiff.test b/test/faildiff.test
index 5afb8e3..0444c15 100644
--- a/test/faildiff.test
+++ b/test/faildiff.test
@@ -27,8 +27,9 @@ What happens on binary files?
> File test.bin added to patch %{P}test.diff
$ printf "\\003\\000\\001" > test.bin
- $ quilt diff -pab --no-index
+ $ quilt diff -pab --no-index 2>/dev/null
>~ (Files|Binary files) a/test\.bin and b/test\.bin differ
+ $ quilt diff -pab --no-index >/dev/null
> Diff failed on file 'test.bin', aborting
$ echo %{?}
> 1
--
2.39.2

View File

@ -1,142 +0,0 @@
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: [PATCH] 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>
---
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 \
--
2.39.2

View File

@ -1,24 +0,0 @@
--- a/test/merge.test
+++ b/test/merge.test
@@ -39,8 +39,9 @@ Test the patch merging functionality of
> Applying patch %{P}c.diff
> Now at patch %{P}c.diff
- $ quilt diff -P b.diff | grep -v "^\\(---\\|+++\\)"
+ $ quilt diff -P b.diff >/dev/null
> Warning: more recent patches modify files in patch %{P}b.diff
+ $ quilt diff -P b.diff 2>/dev/null | grep -v "^\\(---\\|+++\\)"
>~ Index: [^/]+/abc\.txt
> ===================================================================
> @@ -1,3 +1,3 @@
@@ -49,8 +50,9 @@ Test the patch merging functionality of
> +b+
> c
- $ quilt diff --combine a.diff -P b.diff | grep -v "^\\(---\\|+++\\)"
+ $ quilt diff --combine a.diff -P b.diff >/dev/null
> Warning: more recent patches modify files in patch %{P}b.diff
+ $ quilt diff --combine a.diff -P b.diff 2>/dev/null | grep -v "^\\(---\\|+++\\)"
>~ Index: [^/]+/abc\.txt
> ===================================================================
> @@ -1,3 +1,3 @@

View File

@ -1,11 +1,13 @@
# Template file for 'quilt'
pkgname=quilt
version=0.67
version=0.68
revision=1
build_style=gnu-configure
configure_args="--without-rpmbuild --with-bash=/bin/bash
--with-date=/bin/date --with-awk=/bin/awk --with-sed=/bin/sed
--with-column=/usr/bin/column"
make_install_args='BUILD_ROOT=$(DESTDIR)'
make_install_target='install-main'
hostmakedepends="perl ed tar"
# quilt is a bash script.
# All quilt's users use quilt-refresh, which requires perl
@ -15,11 +17,10 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
license="GPL-2.0-only"
homepage="http://savannah.nongnu.org/projects/quilt"
distfiles="http://download.savannah.gnu.org/releases/quilt/quilt-${version}.tar.gz"
checksum=3be3be0987e72a6c364678bb827e3e1fcc10322b56bc5f02b576698f55013cc2
distfiles="http://download-mirror.savannah.gnu.org/releases/quilt/quilt-${version}.tar.gz"
checksum=fe8c09de03c106e85b3737c8f03ade147c956b79ed7af485a1c8a3858db38426
do_install() {
make BUILD_ROOT=\"$DESTDIR\" install
vmkdir usr/share/bash-completion/completions
mv ${DESTDIR}/etc/bash_completion.d/* ${DESTDIR}/usr/share/bash-completion/completions
post_patch() {
vsed -i 's;[$](etcdir)/bash_completion.d;$(datadir)/bash-completion/completions;g' \
Makefile.in
}