gnu: quilt: Patch for newer grep.
* gnu/packages/patchutils.scm (quilt)[source]: Add patch to work with newer versions of grep. * gnu/packages/patches/quilt-grep-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
		
							parent
							
								
									45c6abaef5
								
							
						
					
					
						commit
						3988a81c10
					
				
					 3 changed files with 149 additions and 1 deletions
				
			
		|  | @ -1828,6 +1828,7 @@ dist_patch_DATA =						\ | ||||||
|   %D%/packages/patches/qtscript-disable-tests.patch		\
 |   %D%/packages/patches/qtscript-disable-tests.patch		\
 | ||||||
|   %D%/packages/patches/quagga-reproducible-build.patch          \
 |   %D%/packages/patches/quagga-reproducible-build.patch          \
 | ||||||
|   %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
 |   %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
 | ||||||
|  |   %D%/packages/patches/quilt-grep-compat.patch 			\
 | ||||||
|   %D%/packages/patches/qtwayland-gcc-11.patch			\
 |   %D%/packages/patches/qtwayland-gcc-11.patch			\
 | ||||||
|   %D%/packages/patches/qtwayland-dont-recreate-callbacks.patch	\
 |   %D%/packages/patches/qtwayland-dont-recreate-callbacks.patch	\
 | ||||||
|   %D%/packages/patches/qtwayland-cleanup-callbacks.patch	\
 |   %D%/packages/patches/qtwayland-cleanup-callbacks.patch	\
 | ||||||
|  |  | ||||||
							
								
								
									
										145
									
								
								gnu/packages/patches/quilt-grep-compat.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								gnu/packages/patches/quilt-grep-compat.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,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 | ||||||
|  | 
 | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
| ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> | ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> | ||||||
| ;;; Copyright © 2022 jgart <jgart@dismail.de> | ;;; Copyright © 2022 jgart <jgart@dismail.de> | ||||||
| ;;; Copyright © 2023 Andy Tai <atai@atai.org> | ;;; Copyright © 2023 Andy Tai <atai@atai.org> | ||||||
|  | ;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -117,7 +118,8 @@ listing the files modified by a patch.") | ||||||
|        (uri (string-append "mirror://savannah/quilt/" |        (uri (string-append "mirror://savannah/quilt/" | ||||||
|                            "quilt-" version ".tar.gz")) |                            "quilt-" version ".tar.gz")) | ||||||
|        (sha256 |        (sha256 | ||||||
|         (base32 "01vfvk4pqigahx82fhaaffg921ivd3k7rylz1yfvy4zbdyd32jri")))) |         (base32 "01vfvk4pqigahx82fhaaffg921ivd3k7rylz1yfvy4zbdyd32jri")) | ||||||
|  |        (patches (search-patches "quilt-grep-compat.patch")))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (native-inputs |     (native-inputs | ||||||
|      `(("gettext" ,gettext-minimal))) |      `(("gettext" ,gettext-minimal))) | ||||||
|  |  | ||||||
		Reference in a new issue