aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/quilt-grep-compat.patch
blob: 25fef506d14447aa44f62d75857f0b53f380c608 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
From upstream
https://git.savannah.nongnu.org/cgit/quilt.git/patch/?id=f73f8d7f71de2878d3f92881a5fcb8eafd78cb5f

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>
---
 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

button' href='/guix/plain/gnu/packages/apr.scm?id=1dd91894c01088d855d0edb1dcda8a772da384f0'>plainabout -rw-r--r--arcan.scm9959logplainabout -rw-r--r--aspell.scm17076logplainabout -rw-r--r--assembly.scm27716logplainabout -rw-r--r--astronomy.scm173577logplainabout -rw-r--r--attr.scm3547logplainabout -rw-r--r--audio.scm247551logplainabout -rw-r--r--augeas.scm2617logplainabout -rw-r--r--authentication.scm7698logplainabout -rw-r--r--autogen.scm4826logplainabout -rw-r--r--autotools.scm26587logplainabout d---------aux-files407logplain -rw-r--r--avahi.scm6442logplainabout -rw-r--r--avr-xyz.scm10090logplainabout -rw-r--r--avr.scm6877logplainabout -rw-r--r--axoloti.scm29229logplainabout -rw-r--r--backup.scm62644logplainabout -rw-r--r--barrier.scm3116logplainabout -rw-r--r--base.scm77607logplainabout -rw-r--r--bash.scm20332logplainabout -rw-r--r--batik.scm13585logplainabout -rw-r--r--bdw-gc.scm6683logplainabout -rw-r--r--benchmark.scm32281logplainabout -rw-r--r--bioconductor.scm880049logplainabout -rw-r--r--bioinformatics.scm902847logplainabout -rw-r--r--bison.scm3264logplainabout -rw-r--r--bittorrent.scm28431logplainabout -rw-r--r--books.scm4542logplainabout -rw-r--r--boost.scm21091logplainabout -rw-r--r--bootloaders.scm93613logplainabout -rw-r--r--bootstrap.scm41522logplainabout -rw-r--r--bqn.scm9341logplainabout -rw-r--r--browser-extensions.scm11027logplainabout -rw-r--r--build-tools.scm42464logplainabout -rw-r--r--busybox.scm7713logplainabout -rw-r--r--c.scm68018logplainabout -rw-r--r--calcurse.scm3469logplainabout -rw-r--r--calendar.scm19800logplainabout -rw-r--r--ccache.scm3300logplainabout -rw-r--r--cdrom.scm44303logplainabout -rw-r--r--cedille.scm5388logplainabout -rw-r--r--certs.scm12934logplainabout -rw-r--r--check.scm142739logplainabout -rw-r--r--chemistry.scm51691logplainabout -rw-r--r--chez.scm57976logplainabout -rw-r--r--chicken.scm13887logplainabout -rw-r--r--chromium.scm44815logplainabout -rw-r--r--ci.scm12270logplainabout -rw-r--r--cinnamon.scm8155logplainabout -rw-r--r--clifm.scm2460logplainabout -rw-r--r--clojure.scm28052logplainabout -rw-r--r--cluster.scm12276logplainabout -rw-r--r--cmake.scm19457logplainabout -rw-r--r--cobol.scm3220logplainabout -rw-r--r--code.scm47793logplainabout -rw-r--r--commencement.scm155450logplainabout -rw-r--r--compression.scm119245logplainabout -rw-r--r--compton.scm6421logplainabout -rw-r--r--configuration-management.scm5648logplainabout -rw-r--r--conky.scm3459logplainabout -rw-r--r--connman.scm8073logplainabout -rw-r--r--containers.scm17869logplainabout -rw-r--r--convmv.scm2300logplainabout -rw-r--r--cook.scm4115logplainabout -rw-r--r--coq.scm31632logplainabout -rw-r--r--cpio.scm2300logplainabout -rw-r--r--cpp.scm125152logplainabout -rw-r--r--cppi.scm1775logplainabout -rw-r--r--cran.scm1484611logplainabout -rw-r--r--crates-apple.scm52550logplainabout -rw-r--r--crates-crypto.scm222119logplainabout -rw-r--r--crates-graphics.scm212819logplainabout -rw-r--r--crates-gtk.scm120503logplainabout -rw-r--r--crates-io.scm2859365logplainabout -rw-r--r--crates-tls.scm52668logplainabout -rw-r--r--crates-vcs.scm174703logplainabout -rw-r--r--crates-web.scm146396logplainabout -rw-r--r--crates-windows.scm90510logplainabout -rw-r--r--cross-base.scm35289logplainabout -rw-r--r--cross-toolchain.scm1871logplainabout -rw-r--r--crypto.scm71212logplainabout -rw-r--r--cryptsetup.scm6853logplainabout -rw-r--r--cups.scm46670logplainabout -rw-r--r--curl.scm19339logplainabout -rw-r--r--cvassistant.scm3600logplainabout -rw-r--r--cybersecurity.scm6304logplainabout -rw-r--r--cyrus-sasl.scm3433logplainabout -rw-r--r--darwin.scm4460logplainabout -rw-r--r--databases.scm216498logplainabout -rw-r--r--datamash.scm6611logplainabout -rw-r--r--datastructures.scm20888logplainabout -rw-r--r--dav.scm6361logplainabout -rw-r--r--dbm.scm8358logplainabout -rw-r--r--dc.scm2177logplainabout -rw-r--r--debian.scm29444logplainabout -rw-r--r--debug.scm42083logplainabout -rw-r--r--dejagnu.scm4416logplainabout -rw-r--r--dezyne.scm6769logplainabout -rw-r--r--dhall.scm4395logplainabout -rw-r--r--dico.scm3645logplainabout -rw-r--r--dictionaries.scm19419logplainabout -rw-r--r--diffoscope.scm13754logplainabout -rw-r--r--digest.scm5494logplainabout -rw-r--r--direct-connect.scm3170logplainabout -rw-r--r--disk.scm71118logplainabout -rw-r--r--display-managers.scm21987logplainabout -rw-r--r--distributed.scm3880logplainabout -rw-r--r--django.scm59206logplainabout -rw-r--r--djvu.scm17497logplainabout -rw-r--r--dlang.scm29445logplainabout -rw-r--r--dns.scm55868logplainabout -rw-r--r--docbook.scm34626logplainabout -rw-r--r--docker.scm36295logplainabout -rw-r--r--documentation.scm18024logplainabout -rw-r--r--dvtm.scm2302logplainabout -rw-r--r--easyrpg.scm4376logplainabout -rw-r--r--ebook.scm28498logplainabout -rw-r--r--education.scm47148logplainabout -rw-r--r--efi.scm9591logplainabout -rw-r--r--electronics.scm20226logplainabout -rw-r--r--elf.scm15813logplainabout -rw-r--r--elixir-xyz.scm10771logplainabout -rw-r--r--elixir.scm8139logplainabout -rw-r--r--elm.scm28978logplainabout -rw-r--r--emacs-xyz.scm1530511logplainabout -rw-r--r--emacs.scm31538logplainabout -rw-r--r--embedded.scm80144logplainabout -rw-r--r--emulators.scm104235logplainabout -rw-r--r--enchant.scm6443logplainabout -rw-r--r--engineering.scm181124logplainabout -rw-r--r--enlightenment.scm23190logplainabout -rw-r--r--entr.scm3484logplainabout -rw-r--r--erlang.scm32591logplainabout -rw-r--r--esolangs.scm6462logplainabout -rw-r--r--fabric-management.scm9955logplainabout -rw-r--r--fcitx.scm9393logplainabout -rw-r--r--fcitx5.scm21137logplainabout -rw-r--r--figlet.scm1797logplainabout -rw-r--r--file-systems.scm94816logplainabout -rw-r--r--file.scm2332logplainabout -rw-r--r--finance.scm95263logplainabout -rw-r--r--firmware.scm74201logplainabout -rw-r--r--flashing-tools.scm25837logplainabout -rw-r--r--flex.scm3195logplainabout -rw-r--r--fltk.scm6087logplainabout -rw-r--r--fonts.scm150486logplainabout -rw-r--r--fontutils.scm86093logplainabout -rw-r--r--forth.scm4803logplainabout -rw-r--r--fpga.scm23628logplainabout -rw-r--r--freedesktop.scm121840logplainabout -rw-r--r--freeipmi.scm2495logplainabout -rw-r--r--fribidi.scm4168logplainabout -rw-r--r--fsf.scm2821logplainabout -rw-r--r--ftp.scm12089logplainabout -rw-r--r--fvwm.scm3047logplainabout -rw-r--r--game-development.scm139831logplainabout -rw-r--r--games.scm485577logplainabout -rw-r--r--gawk.scm9842logplainabout -rw-r--r--gcal.scm2889logplainabout -rw-r--r--gcc.scm70045logplainabout -rw-r--r--gd.scm6636logplainabout -rw-r--r--gdb.scm8589logplainabout -rw-r--r--genealogy.scm4375logplainabout -rw-r--r--genimage.scm6158logplainabout -rw-r--r--geo.scm129997logplainabout -rw-r--r--gettext.scm13919logplainabout -rw-r--r--ghostscript.scm17112logplainabout -rw-r--r--gimp.scm21781logplainabout -rw-r--r--gkrellm.scm2437logplainabout -rw-r--r--gl.scm55926logplainabout -rw-r--r--glib.scm66452logplainabout -rw-r--r--gnome-xyz.scm78083logplainabout -rw-r--r--gnome.scm512545logplainabout -rw-r--r--gnu-doc.scm4139logplainabout -rw-r--r--gnu-pw-mgr.scm2629logplainabout -rw-r--r--gnucash.scm13750logplainabout -rw-r--r--gnunet.scm18923logplainabout -rw-r--r--gnupg.scm49907logplainabout -rw-r--r--gnustep.scm14770logplainabout -rw-r--r--gnuzilla.scm108168logplainabout -rw-r--r--gobby.scm7917logplainabout -rw-r--r--golang-build.scm18785logplainabout -rw-r--r--golang-check.scm32298logplainabout -rw-r--r--golang-compression.scm5585logplainabout -rw-r--r--golang-crypto.scm45694logplainabout -rw-r--r--golang-web.scm61269logplainabout -rw-r--r--golang-xyz.scm48407logplainabout -rw-r--r--golang.scm449183logplainabout -rw-r--r--gperf.scm2354logplainabout -rw-r--r--gpodder.scm9195logplainabout -rw-r--r--gps.scm11577logplainabout -rw-r--r--graph.scm34465logplainabout -rw-r--r--graphics.scm119227logplainabout -rw-r--r--graphviz.scm16459logplainabout -rw-r--r--groff.scm12753logplainabout -rw-r--r--groovy.scm37995logplainabout -rw-r--r--gsasl.scm4354logplainabout -rw-r--r--gstreamer.scm43835logplainabout -rw-r--r--gtk.scm115174logplainabout -rw-r--r--guile-wm.scm9119logplainabout -rw-r--r--guile-xyz.scm246077logplainabout -rw-r--r--guile.scm42169logplainabout -rw-r--r--gv.scm3235logplainabout -rw-r--r--gxmessage.scm2313logplainabout -rw-r--r--hardware.scm61446logplainabout -rw-r--r--haskell-apps.scm37836logplainabout -rw-r--r--haskell-check.scm45864logplainabout -rw-r--r--haskell-crypto.scm31472logplainabout -rw-r--r--haskell-web.scm76542logplainabout -rw-r--r--haskell-xyz.scm640339logplainabout -rw-r--r--haskell.scm72229logplainabout -rw-r--r--haxe.scm11683logplainabout -rw-r--r--heads.scm8429logplainabout -rw-r--r--hexedit.scm4579logplainabout -rw-r--r--high-availability.scm17204logplainabout -rw-r--r--hugs.scm3683logplainabout -rw-r--r--hunspell.scm18650logplainabout -rw-r--r--hurd.scm38447logplainabout -rw-r--r--hyperledger.scm8584logplainabout -rw-r--r--i2p.scm2573logplainabout -rw-r--r--ibus.scm43933logplainabout -rw-r--r--icu4c.scm14294logplainabout -rw-r--r--idris.scm12330logplainabout -rw-r--r--idutils.scm3143logplainabout -rw-r--r--image-processing.scm73481logplainabout -rw-r--r--image-viewers.scm45496logplainabout -rw-r--r--image.scm114489logplainabout -rw-r--r--imagemagick.scm11487logplainabout -rw-r--r--inklingreader.scm2147logplainabout -rw-r--r--inkscape.scm15197logplainabout -rw-r--r--installers.scm7482logplainabout -rw-r--r--instrumentation.scm25134logplainabout -rw-r--r--ipfs.scm16638logplainabout -rw-r--r--irc.scm39106logplainabout -rw-r--r--irods.scm12127logplainabout -rw-r--r--iso-codes.scm4910logplainabout -rw-r--r--jami.scm15892logplainabout -rw-r--r--java-bootstrap.scm32730logplainabout -rw-r--r--java-compression.scm15277logplainabout -rw-r--r--java-graphics.scm11120logplainabout -rw-r--r--java-maths.scm3554logplainabout -rw-r--r--java-rdf.scm35402logplainabout -rw-r--r--java-xml.scm29419logplainabout -rw-r--r--java.scm610419logplainabout -rw-r--r--javascript.scm43124logplainabout -rw-r--r--jemalloc.scm3201logplainabout -rw-r--r--jose.scm1999logplainabout -rw-r--r--julia-jll.scm112091logplainabout -rw-r--r--julia-xyz.scm261331logplainabout -rw-r--r--julia.scm26599logplainabout -rw-r--r--jupyter.scm33637logplainabout -rw-r--r--kawa.scm2548logplainabout -rw-r--r--kde-frameworks.scm151229logplainabout -rw-r--r--kde-games.scm53700logplainabout -rw-r--r--kde-internet.scm16119logplainabout -rw-r--r--kde-multimedia.scm27587logplainabout -rw-r--r--kde-pim.scm75898logplainabout -rw-r--r--kde-plasma.scm103289logplainabout -rw-r--r--kde-systemtools.scm14704logplainabout -rw-r--r--kde-utils.scm44723logplainabout -rw-r--r--kde.scm59862logplainabout -rw-r--r--kerberos.scm11770logplainabout -rw-r--r--kodi.scm21552logplainabout -rw-r--r--language.scm47469logplainabout -rw-r--r--ld-wrapper.in12362logplainabout -rw-r--r--lean.scm4406logplainabout -rw-r--r--lego.scm6648logplainabout -rw-r--r--less.scm5631logplainabout -rw-r--r--lesstif.scm3383logplainabout -rw-r--r--libbsd.scm4484logplainabout -rw-r--r--libcanberra.scm5779logplainabout -rw-r--r--libdaemon.scm4613logplainabout -rw-r--r--libedit.scm2830logplainabout -rw-r--r--libevent.scm12587logplainabout -rw-r--r--libffcall.scm1922logplainabout -rw-r--r--libffi.scm11156logplainabout -rw-r--r--libftdi.scm4638logplainabout -rw-r--r--libidn.scm3575logplainabout -rw-r--r--libphidget.scm1798logplainabout -rw-r--r--libreoffice.scm47902logplainabout