configure.ac calls QUILT_COMPAT_PROG_PATH(SED, sed) allowing users to provide their own path to sed via --with-sed=. However, nothing was actually using SED. This patch updates Makefile.in to substitute @SED@ in all .in files, and updates everything in bin/ and quilt/ to actually support this substitution.
With this change it is possible to configure quilt to explicitly use GNU sed on systems where GNU sed is available but not installed by default (e.g. OpenBSD). Signed-off-by: Kent R. Spillner <[email protected]> --- Makefile.in | 1 + bin/patch-wrapper.in | 5 +++-- bin/quilt.in | 4 +++- quilt/annotate.in | 6 ++++-- quilt/diff.in | 4 +++- quilt/grep.in | 4 +++- quilt/header.in | 4 +++- quilt/import.in | 4 +++- quilt/mail.in | 24 +++++++++++++----------- quilt/refresh.in | 4 +++- quilt/scripts/inspect.in | 4 +++- quilt/scripts/patchfns.in | 18 ++++++++++-------- quilt/setup.in | 8 +++++--- 13 files changed, 57 insertions(+), 33 deletions(-) diff --git a/Makefile.in b/Makefile.in index 8040653..cd7c2b9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -257,6 +257,7 @@ $(patsubst %.in,%,$(wildcard bin/*.in quilt/*.in quilt/scripts/*.in)) :: Makefil -e 's:@PERL''@:$(PERL):g' \ -e 's:@BASH''@:$(BASH):g' \ -e 's:@PATCH''@:$(PATCH):g' \ + -e 's:@SED''@:$(SED):g' \ -e 's:@STAT_HARDLINK''@:$(STAT_HARDLINK):g' \ -e 's:@VERSION''@:$(VERSION):g' \ -e 's:@RELEASE''@:$(RELEASE):g' \ diff --git a/bin/patch-wrapper.in b/bin/patch-wrapper.in index 358856a..489fbca 100755 --- a/bin/patch-wrapper.in +++ b/bin/patch-wrapper.in @@ -7,6 +7,7 @@ # used directly, and no quilt metadata will get created. PATCH=@PATCH@ +SED=@SED@ original_options=("$@") # GNU patch recognizes these environment variables @@ -69,9 +70,9 @@ find_pipe_patch() { patch=${patch//\[/\\[} patch=${patch//\]/\\]} set -- $(stat -c $'%a %N\n' /proc/*/fd/* 2>/dev/null \ - | sed -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p") + | $SED -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p") set -- $(stat -c $'%a %N\n' $1/* 2>/dev/null \ - | sed -nre "s,^500 \`.*' -> \`(.*)',\\1,p") + | $SED -nre "s,^500 \`.*' -> \`(.*)',\\1,p") [ $# -eq 1 ] || set -- "$patch" echo "$1" } diff --git a/bin/quilt.in b/bin/quilt.in index 2271833..51773a3 100644 --- a/bin/quilt.in +++ b/bin/quilt.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + # unset posix strict conformance variable since patch cannot be run # non-interactively when it's set. unset POSIXLY_CORRECT @@ -44,7 +46,7 @@ usage() quilt_commands \ | sort \ | column | column -t \ - | sed -e $'s/^/\t/' + | $SED -e $'s/^/\t/' echo $" Global options: diff --git a/quilt/annotate.in b/quilt/annotate.in index 0366f5a..c71e02b 100644 --- a/quilt/annotate.in +++ b/quilt/annotate.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + # Read in library functions if [ "$(type -t patch_file_name)" != function ] then @@ -40,7 +42,7 @@ empty_file() { local file=$1 [ -s "$file" ] \ - && sed -e 's:.*::' "$file" + && $SED -e 's:.*::' "$file" } annotation_for() @@ -140,7 +142,7 @@ fi if [ ${#patches[@]} = 0 ] then - sed -e 's:^:'$'\t'':' "${files[${#files[@]}-1]}" + $SED -e 's:^:'$'\t'':' "${files[${#files[@]}-1]}" exit 0 fi diff --git a/quilt/diff.in b/quilt/diff.in index 6b4f9d6..4894fff 100644 --- a/quilt/diff.in +++ b/quilt/diff.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + # Read in library functions if [ "$(type -t patch_file_name)" != function ] then @@ -82,7 +84,7 @@ included. colorize() { if [ -n "$opt_color" ] then - sed -e ' + $SED -e ' s/^\(Index:\|---\|+++\|\*\*\*\) .*/'$color_diff_hdr'&'$color_clear'/ t ; s/^+.*/'$color_diff_add'&'$color_clear'/ t ; s/^-.*/'$color_diff_rem'&'$color_clear'/ diff --git a/quilt/grep.in b/quilt/grep.in index 0c32fcf..81eb774 100644 --- a/quilt/grep.in +++ b/quilt/grep.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + # Read in library functions if [ "$(type -t patch_file_name)" != function ] then @@ -120,7 +122,7 @@ find "${myargs[@]:-.}" \( \ -type f -print0 \ | xargs -0 grep $opt_H "${args[@]}" \ | if [ ${#myargs[@]} -eq 0 ]; then - sed -e 's,^./,,' + $SED -e 's,^./,,' else cat fi diff --git a/quilt/header.in b/quilt/header.in index a3bbcbc..88daa11 100644 --- a/quilt/header.in +++ b/quilt/header.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + # Read in library functions if [ "$(type -t patch_file_name)" != function ] then @@ -52,7 +54,7 @@ maybe_strip_trailing_whitespace() { if [ -n "$opt_strip_trailing_whitespace" ] then - sed -e 's:[ '$'\t'']*$::' + $SED -e 's:[ '$'\t'']*$::' else cat fi diff --git a/quilt/import.in b/quilt/import.in index cc9deed..5d68678 100644 --- a/quilt/import.in +++ b/quilt/import.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + # Read in library functions if [ "$(type -t patch_file_name)" != function ] then @@ -65,7 +67,7 @@ merge_patches() if [ -z "$opt_desc" ] then local diff=$(diff -u $old_desc $new_desc \ - | sed -e '1,2d') + | $SED -e '1,2d') if [ -n "$diff" ] then printf $"Patch headers differ:\n" >&2 diff --git a/quilt/mail.in b/quilt/mail.in index 109782a..12fc2eb 100644 --- a/quilt/mail.in +++ b/quilt/mail.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED = @SED@ + : ${EDITOR:=vi} # Read in library functions @@ -146,7 +148,7 @@ process_mail() else local from_date=$(LC_ALL=POSIX date "+%a %b %e %H:%M:%S %Y") echo "From $opt_sender_address $from_date" - sed -e 's/^From />From /' $tmpfile + $SED -e 's/^From />From /' $tmpfile echo fi rm -f $tmpfile @@ -305,7 +307,7 @@ Could not determine the envelope sender address. Please use --sender." >&2 ;; esac fi -opt_sender_address=$(echo "$opt_sender" | sed -re 's:.*<([^<>]+)>.*:\1:') +opt_sender_address=$(echo "$opt_sender" | $SED -re 's:.*<([^<>]+)>.*:\1:') if [ -z "$opt_charset" ] then @@ -360,7 +362,7 @@ then # Is the first paragraph short enough to be used as the subject? if [ -z "$subject" ] then - local para=$(sed -e $'/^[ \t]*$/q' $tmpdir/header) + local para=$($SED -e $'/^[ \t]*$/q' $tmpdir/header) if [ ${#para} -gt 0 -a ${#para} -lt 150 ] then subject=$(echo "$para" | join_lines) @@ -378,7 +380,7 @@ then fi subject=$(echo "$subject" \ - | sed -e $'s/^\\(\\(\\[[^]]*\\]\\|fwd:\\|fw:\\|re:\\|aw:\\|tr:\\)[ \t]*\\)*//i') + | $SED -e $'s/^\\(\\(\\[[^]]*\\]\\|fwd:\\|fw:\\|re:\\|aw:\\|tr:\\)[ \t]*\\)*//i') echo "Replace-Subject: $subject" # Add recipients defined by some recognized keywords @@ -391,7 +393,7 @@ then set -- "$*" set -- ${*// /\\|} - sed -n -e "/\<${LOGNAME:-$(whoami)}@/d" \ + $SED -n -e "/\<${LOGNAME:-$(whoami)}@/d" \ -e 's/^\(\(To\|'"$*"'\):[ '$'\t'']*\)\([^"]*\(,[^"]*\)\+[^" '$'\t'']\)\([ '$'\t'']*<.*>\)/\1"\3"\5/I' \ -e 's/^To:\(.*@.*\)/Recipient-To:\1/Ip' \ -e 's/^\('"$*"'\):\(.*@.*\)/Recipient-Cc:\2/Ip' \ @@ -483,7 +485,7 @@ then if [ -z "$opt_subject" ] then opt_subject="Re: $(formail -x Subject: < "$opt_reply_to" \ - | sed -e 's/^ *\([rR][eE]: *\)*//')" + | $SED -e 's/^ *\([rR][eE]: *\)*//')" fi fi @@ -557,7 +559,7 @@ subject_prefix=${subject_prefix//\'/\'\'} subject_prefix=${subject_prefix//\//\\\/} p=${subject_prefix//@num@/$(printf %0*d ${#total} 0)} p=${p//@total@/$total} -sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ +$SED -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ -e '/^Subject-Prefix:/d' \ $introduction \ | $QUILT_DIR/scripts/edmail --charset $opt_charset \ @@ -573,7 +575,7 @@ fi # increment the timestamp by one second and wait with sending until # that time has arrived. This allows MUAs to show the messages in the # correct order. -last_ts=$(date '+%s' -d "$(sed -ne $'s/^Date:[ \t]*//p' $introduction)") +last_ts=$(date '+%s' -d "$($SED -ne $'s/^Date:[ \t]*//p' $introduction)") num=1 for patch in "${patches[@]}"; do @@ -607,7 +609,7 @@ for patch in "${patches[@]}"; do gsub(/'\''/, "'\'\''", s) print options[n] " " r "='\''" s "'\'' \\" } } ' $body)" -# echo "$modify" | sed -e 's/^/>> /' >&2 +# echo "$modify" | $SED -e 's/^/>> /' >&2 p=${subject_prefix//@num@/$(printf %0*d ${#total} $num)} p=${p//@total@/$total} @@ -641,7 +643,7 @@ for patch in "${patches[@]}"; do --replace-header Date="\"$new_date\"" \ To Cc Bcc \ "$modify" \ - | sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ + | $SED -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ -e '/^Subject-Prefix:/d' \ | $QUILT_DIR/scripts/edmail --remove-empty-headers \ | process_mail ) 2> $tmpdir/err @@ -649,7 +651,7 @@ for patch in "${patches[@]}"; do status=$? if [ -s $tmpdir/err ] then - sed -e "s/^/${patch//\//\\/}: /" < $tmpdir/err >&2 + $SED -e "s/^/${patch//\//\\/}: /" < $tmpdir/err >&2 fi if [ $status -ne 0 ] then diff --git a/quilt/refresh.in b/quilt/refresh.in index 6c6b4d0..29cf57e 100644 --- a/quilt/refresh.in +++ b/quilt/refresh.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + # Read in library functions if [ "$(type -t patch_file_name)" != function ] then @@ -285,7 +287,7 @@ then function print_diffstat(arr, i) { if (system("diffstat '"$QUILT_DIFFSTAT_OPTS \ -p$num_strip_level \ - $tmp_patch | sed -e s:^:"'" prefix ":")) + $tmp_patch | $SED -e s:^:"'" prefix ":")) exit 1 } { prefix="" diff --git a/quilt/scripts/inspect.in b/quilt/scripts/inspect.in index e8eff26..0d0b868 100644 --- a/quilt/scripts/inspect.in +++ b/quilt/scripts/inspect.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + : ${QUILT_DIR=@QUILT_DIR@} if ! [ -r $QUILT_DIR/scripts/patchfns ] @@ -162,7 +164,7 @@ cat <<-'EOF' > $tmpdir/bin/wrapper then ( cd $RPM_BUILD_DIR find . -type f \ - | sed -e 's:^.\/::' \ + | $SED -e 's:^.\/::' \ | xargs md5sum \ ) > $tmpdir/more-md5sums fi diff --git a/quilt/scripts/patchfns.in b/quilt/scripts/patchfns.in index e89474f..0a56090 100644 --- a/quilt/scripts/patchfns.in +++ b/quilt/scripts/patchfns.in @@ -7,6 +7,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + export TEXTDOMAIN=quilt export TEXTDOMAINDIR=@LOCALEDIR@ @@ -79,19 +81,19 @@ trap run_exit_handlers EXIT # Quote a string for use in a basic regular expression. quote_bre() { - echo "$1" | sed -e 's:\([][^$/.*\\]\):\\\1:g' + echo "$1" | $SED -e 's:\([][^$/.*\\]\):\\\1:g' } # Quote a string for use in an extended regular expression. quote_re() { - echo "$1" | sed -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g' + echo "$1" | $SED -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g' } # Quote a string for use in a globing pattern. quote_glob() { - echo "$1" | sed -e 's:\([][*?\\]\):\\\1:g' + echo "$1" | $SED -e 's:\([][*?\\]\):\\\1:g' } patch_file_name() @@ -326,7 +328,7 @@ cat_series() { if [ -e $SERIES ] then - sed -e '/^#/d' -e 's/^[ '$'\t'']*//' \ + $SED -e '/^#/d' -e 's/^[ '$'\t'']*//' \ -e 's/[ '$'\t''].*//' -e '/^$/d' $SERIES else return 1 @@ -514,7 +516,7 @@ find_patch() local patch=${1#$SUBDIR_DOWN$QUILT_PATCHES/} local bre=$(quote_bre "$patch") - set -- $(sed -e "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\)\([ "$'\t'"]\|$\)/!d" \ + set -- $($SED -e "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\)\([ "$'\t'"]\|$\)/!d" \ -e 's/[ '$'\t''].*//' $SERIES) if [ $# -eq 1 ] then @@ -657,7 +659,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_bre "$path")\///" fi } @@ -918,8 +920,8 @@ next_filename() { local patch=$1 base num base=$(echo "$patch" \ - | sed -r -e 's:(\.gz|\.bz2|\.xz|\.lzma)$::' -e 's:(\.diff?|\.patch)$::') - num=$(echo "$base" | sed -nre 's:.*-([0-9]+)$:\1:'p) + | $SED -r -e 's:(\.gz|\.bz2|\.xz|\.lzma)$::' -e 's:(\.diff?|\.patch)$::') + num=$(echo "$base" | $SED -nre 's:.*-([0-9]+)$:\1:'p) [ -n "$num" ] || num=1 echo "${base%-$num}-$((num+1))${patch#$base}" } diff --git a/quilt/setup.in b/quilt/setup.in index 0930a89..fa4ad44 100644 --- a/quilt/setup.in +++ b/quilt/setup.in @@ -6,6 +6,8 @@ # # See the COPYING and AUTHORS files for more details. +SED=@SED@ + # Read in library functions if [ "$(type -t patch_file_name)" != function ] then @@ -75,12 +77,12 @@ create_symlink() { fi set -- "$(echo "$PWD/$target" | \ - sed -r -e 's://:/:g' \ + $SED -r -e 's://:/:g' \ -e ':again' \ -e 's:/[^/]+/\.\.(/|$):\1:g' \ -e 'tagain')" \ "$(echo "$PWD/$link" | \ - sed -r -e 's://:/:g' \ + $SED -r -e 's://:/:g' \ -e ':again' \ -e 's:/[^/]+/\.\.(/|$):\1:g' \ -e 'tagain')" @@ -88,7 +90,7 @@ create_symlink() { do set -- "${1#*/}" "${2#*/}" done - up=$(echo "${2%/*}" | sed -re 's:[^/]+:..:g') + up=$(echo "${2%/*}" | $SED -re 's:[^/]+:..:g') set -- "${up:+$up/}$1" set -- "${1%/}" ln -s "${1:-.}" "$link" -- 1.8.4.5 _______________________________________________ Quilt-dev mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/quilt-dev
