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 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 --- 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 est-end', no longer works. Instead, set the test runner in each test right before 'test-begin'. * gnu/build/marionette.scm (system-test-runner): New procedure. * gnu/tests/audio.scm (run-mpd-test): Replace (exit (= ...)) idiom by (test-runner-current (system-test-runner)). * gnu/tests/base.scm (run-basic-test) (run-cleanup-test, run-mcron-test, run-nss-mdns-test): Likewise. * gnu/tests/ci.scm (run-laminar-test): Likewise. * gnu/tests/cups.scm (run-cups-test): Likewise. * gnu/tests/databases.scm (run-memcached-test) (run-postgresql-test, run-mysql-test): Likewise. * gnu/tests/desktop.scm (run-elogind-test): Likewise. * gnu/tests/dict.scm (run-dicod-test): Likewise. * gnu/tests/docker.scm (run-docker-test): Likewise. (run-docker-system-test): Likewise. * gnu/tests/file-sharing.scm (run-transmission-daemon-test): Likewise. * gnu/tests/ganeti.scm (run-ganeti-test): Likewise. * gnu/tests/guix.scm (run-guix-build-coordinator-test): Likewise. (run-guix-data-service-test): Likewise. * gnu/tests/ldap.scm (run-ldap-test): Likewise. * gnu/tests/linux-modules.scm (run-loadable-kernel-modules-test-base): Likewise. * gnu/tests/mail.scm (run-opensmtpd-test) (run-exim-test, run-dovecot-test, run-getmail-test): Likewise. * gnu/tests/messaging.scm (run-xmpp-test) (run-bitlbee-test, run-quassel-test): Likewise. * gnu/tests/monitoring.scm (run-prometheus-node-exporter-server-test) (run-zabbix-server-test): Likewise. * gnu/tests/networking.scm (run-inetd-test, run-openvswitch-test) (run-dhcpd-test, run-tor-test, run-iptables-test, run-ipfs-test): Likewise. * gnu/tests/nfs.scm (run-nfs-test) (run-nfs-server-test, run-nfs-root-fs-test): Likewise. * gnu/tests/package-management.scm (run-nix-test): Likewise. * gnu/tests/reconfigure.scm (run-switch-to-system-test) (run-upgrade-services-test, run-install-bootloader-test): Likewise. * gnu/tests/rsync.scm (run-rsync-test): Likewise. * gnu/tests/security-token.scm (run-pcscd-test): Likewise. * gnu/tests/singularity.scm (run-singularity-test): Likewise. * gnu/tests/ssh.scm (run-ssh-test): Likewise. * gnu/tests/telephony.scm (run-jami-test): Likewise. * gnu/tests/version-control.scm (run-cgit-test): Likewise. (run-git-http-test, run-gitolite-test, run-gitile-test): Likewise. * gnu/tests/virtualization.scm (run-libvirt-test, run-childhurd-test): Likewise. * gnu/tests/web.scm (run-webserver-test, run-php-fpm-test) (run-hpcguix-web-server-test, run-tailon-test, run-patchwork-test): Likewise. Ludovic Courtès