quilt-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Quilt-dev] [PATCH] Substitute sed with configured path


From: Martin Quinson
Subject: Re: [Quilt-dev] [PATCH] Substitute sed with configured path
Date: Tue, 24 Dec 2013 19:35:34 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Hello,

thanks for this patch. 

I have one question, out of curiosity. Why do you set SED to @SED@ and
then call $SET. Wouldn't it be more efficient to directly call @SED@ ?

I mean that instead of doing that:
> -          | sed -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p")
> +          | $SED -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p")
I would do that:
> +          | @SED@ -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p")

Do I miss something here?

Thanks again for this patch, that's a pity that our --with-sed option
was not functionnal.

Bye, Mt.

On Tue, Dec 24, 2013 at 08:42:57AM -0600, Kent R. Spillner wrote:
> 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 <address@hidden>
> ---
>  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.
>  
>  address@hidden@
> address@hidden@
>  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.
>  
> address@hidden@
> +
>  # 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.
>  
> address@hidden@
> +
>  # 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 [ address@hidden = 0 ]
>  then
> -     sed -e 's:^:'$'\t'':' "address@hidden"
> +     $SED -e 's:^:'$'\t'':' "address@hidden"
>       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.
>  
> address@hidden@
> +
>  # 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.
>  
> address@hidden@
> +
>  # Read in library functions
>  if [ "$(type -t patch_file_name)" != function ]
>  then
> @@ -120,7 +122,7 @@ find "address@hidden:-.}" \( \
>       -type f -print0 \
>  | xargs -0 grep $opt_H "address@hidden" \
>  | if [ address@hidden -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.
>  
> address@hidden@
> +
>  # 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.
>  
> address@hidden@
> +
>  # 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:\(address@hidden)/Recipient-To:\1/Ip' \
>                      -e 's/^\('"$*"'\):\(address@hidden)/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 "address@hidden"; do
> @@ -607,7 +609,7 @@ for patch in "address@hidden"; 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 "address@hidden"; 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 "address@hidden"; 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.
>  
> address@hidden@
> +
>  # 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.
>  
> address@hidden@
> +
>  : address@hidden@}
>  
>  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.
>  
> address@hidden@
> +
>  export TEXTDOMAIN=quilt
>  export address@hidden@
>  
> @@ -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.
>  
> address@hidden@
> +
>  # 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
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/quilt-dev

-- 
Data and source codes are to scientific experimental studies what
proofs are to mathematics. They thus need to be reviewed and shared.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]