unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
blob b91dc9869541fc7b655fc753a6a9d78abbf7093f 4389 bytes (raw)
name: gnu/packages/patches/quilt-avoid-grep-warnings.patch 	 # note: path name is non-authoritative(*)

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


debug log:

solving b91dc98695 ...
found b91dc98695 in https://yhetil.org/guix-bugs/cbaaf8180a85e90c627071832eea33862b713ad0.1682858043.git.dev@jpoiret.xyz/

applying [1/1] https://yhetil.org/guix-bugs/cbaaf8180a85e90c627071832eea33862b713ad0.1682858043.git.dev@jpoiret.xyz/
diff --git a/gnu/packages/patches/quilt-avoid-grep-warnings.patch b/gnu/packages/patches/quilt-avoid-grep-warnings.patch
new file mode 100644
index 0000000000..b91dc98695

1:37: space before tab in indent.
 	# Add all files in the snapshot into the file list (they may all
1:38: space before tab in indent.
 	# have changed).
1:39: space before tab in indent.
 	files=( $(find $QUILT_PC/$snap_subdir -type f \
1:42: space before tab in indent.
 		  | sort) )
1:43: space before tab in indent.
 	printf "%s\n" "${files[@]}" >&4
Checking patch gnu/packages/patches/quilt-avoid-grep-warnings.patch...
Applied patch gnu/packages/patches/quilt-avoid-grep-warnings.patch cleanly.
warning: squelched 48 whitespace errors
warning: 53 lines add whitespace errors.

index at:
100644 b91dc9869541fc7b655fc753a6a9d78abbf7093f	gnu/packages/patches/quilt-avoid-grep-warnings.patch

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).