Hello everyone,

I observed that build-aux/bootstrap uses $(command) for command substitution which is known to be less portable than `command`.[1]

Is it on purpose? Thanks in advance.

Regards,
Akash Rawal.

[1] https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Shell-Substitutions.html#Shell-Substitutions
diff --git a/build-aux/bootstrap b/build-aux/bootstrap
index 932ff85e7..1bdf332f8 100755
--- a/build-aux/bootstrap
+++ b/build-aux/bootstrap
@@ -88,7 +88,7 @@ warnf_ ()
   nl='
 '
   case $* in
-    *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
+    *$nl*) me_=`printf "$me"|tr "$nl|" '??'`
        printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
     *) printf "$me: $warnf_format_" "$@" ;;
   esac >&2
@@ -161,7 +161,7 @@ extract_package_name='
      p
   }
 '
-package=$(sed -n "$extract_package_name" configure.ac) \
+package=`sed -n "$extract_package_name" configure.ac` \
   || die 'cannot find package name in configure.ac'
 gnulib_name=lib$package
 
@@ -332,12 +332,12 @@ insert_if_absent() {
   str=$2
   test -f $file || touch $file
   test -r $file || die "Error: failed to read ignore file: $file"
-  duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
+  duplicate_entries=`gitignore_entries $file | sort | uniq -d`
   if [ "$duplicate_entries" ] ; then
     die "Error: Duplicate entries in $file: " $duplicate_entries
   fi
-  linesold=$(gitignore_entries $file | wc -l)
-  linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc 
-l)
+  linesold=`gitignore_entries $file | wc -l`
+  linesnew=` { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l`
   if [ $linesold != $linesnew ] ; then
     { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
       || die "insert_if_absent $file $str: failed"
@@ -354,7 +354,7 @@ insert_vc_ignore() {
     # A .gitignore entry that does not start with '/' applies
     # recursively to subdirectories, so prepend '/' to every
     # .gitignore entry.
-    pattern=$(echo "$pattern" | sed s,^,/,);;
+    pattern=`echo "$pattern" | sed s,^,/,`;;
   esac
   insert_if_absent "$vc_ignore_file" "$pattern"
 }
@@ -391,8 +391,8 @@ sort_ver() { # sort -V is not generally available
   # split on '.' and compare each component
   i=1
   while : ; do
-    p1=$(echo "$ver1" | cut -d. -f$i)
-    p2=$(echo "$ver2" | cut -d. -f$i)
+    p1=`echo "$ver1" | cut -d. -f$i`
+    p2=`echo "$ver2" | cut -d. -f$i`
     if [ ! "$p1" ]; then
       echo "$1 $2"
       break
@@ -405,7 +405,7 @@ sort_ver() { # sort -V is not generally available
       elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
         echo "$1 $2"
       else # numeric, then lexicographic comparison
-        lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
+        lp=`printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1`
         if [ "$lp" = "$p2" ]; then
           echo "$1 $2"
         else
@@ -457,7 +457,7 @@ check_versions() {
       $use_git || continue
     fi
     # Honor $APP variables ($TAR, $AUTOCONF, etc.)
-    appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
+    appvar=`echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
     test "$appvar" = TAR && appvar=AMTAR
     case $appvar in
         GZIP) ;; # Do not use $GZIP:  it contains gzip options.
@@ -500,12 +500,12 @@ check_versions() {
       fi
     else
       # Require app to produce a new enough version string.
-      inst_ver=$(get_version $app)
+      inst_ver=`get_version $app`
       if [ ! "$inst_ver" ]; then
         warn_ "Error: '$app' not found"
         ret=1
       else
-        latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
+        latest_ver=`sort_ver $req_ver $inst_ver | cut -d' ' -f2`
         if [ ! "$latest_ver" = "$inst_ver" ]; then
           warnf_ '%s\n'                                        \
               "Error: '$app' version == $inst_ver is too old"  \
@@ -580,7 +580,7 @@ fi
 
 # Warn the user if autom4te appears to be broken; this causes known
 # issues with at least gettext 0.18.3.
-probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
+probe=`echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -`
 if test "x$probe" != xhi; then
   warn_ "WARNING: your autom4te wrapper eats stdin;"
   warn_ "if bootstrap fails, consider upgrading your autotools"
@@ -613,7 +613,7 @@ git_modules_config () {
 }
 
 if $use_git; then
-  gnulib_path=$(git_modules_config submodule.gnulib.path)
+  gnulib_path=`git_modules_config submodule.gnulib.path`
   test -z "$gnulib_path" && gnulib_path=gnulib
 fi
 
@@ -660,7 +660,7 @@ case ${GNULIB_SRCDIR--} in
         # Older git can't clone into an empty directory.
         rmdir "$gnulib_path" 2>/dev/null
         git clone --reference "$GNULIB_SRCDIR" \
-          "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
+          "`git_modules_config submodule.gnulib.url`" "$gnulib_path" \
           && git submodule init -- "$gnulib_path" \
           && git submodule update -- "$gnulib_path" \
           || exit $?
@@ -677,7 +677,7 @@ esac
 if $bootstrap_sync; then
   cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
     echo "$0: updating bootstrap and restarting..."
-    case $(sh -c 'echo "$1"' -- a) in
+    case `sh -c 'echo "$1"' -- a` in
       a) ignored=--;;
       *) ignored=ignored;;
     esac
@@ -697,10 +697,10 @@ download_po_files() {
   subdir=$1
   domain=$2
   echo "$me: getting translations into $subdir for $domain..."
-  cmd=$(printf "$po_download_command_format" "$domain" "$subdir")
+  cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
   eval "$cmd" && return
   # Fallback to HTTP.
-  cmd=$(printf "$po_download_command_format2" "$subdir" "$domain")
+  cmd=`printf "$po_download_command_format2" "$subdir" "$domain"`
   eval "$cmd"
 }
 
@@ -723,7 +723,7 @@ update_po_files() {
     && ls "$ref_po_dir"/*.po 2>/dev/null |
       sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
 
-  langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
+  langs=`cd $ref_po_dir && echo *.po | sed 's/\.po//g'`
   test "$langs" = '*' && langs=x
   for po in $langs; do
     case $po in x) continue;; esac
@@ -759,14 +759,14 @@ symlink_to_dir()
 
     # If the destination directory doesn't exist, create it.
     # This is required at least for "lib/uniwidth/cjk.h".
-    dst_dir=$(dirname "$dst")
+    dst_dir=`dirname "$dst"`
     if ! test -d "$dst_dir"; then
       mkdir -p "$dst_dir"
 
       # If we've just created a directory like lib/uniwidth,
       # tell version control system(s) it's ignorable.
       # FIXME: for now, this does only one level
-      parent=$(dirname "$dst_dir")
+      parent=`dirname "$dst_dir"`
       for dot_ig in x $vc_ignore; do
         test $dot_ig = x && continue
         ig=$parent/$dot_ig
@@ -794,10 +794,10 @@ symlink_to_dir()
       # so that broken tools aren't confused into skipping needed builds.  See
       # <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
       test -h "$dst" &&
-      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
-      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
+      src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
+      dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
       test "$src_i" = "$dst_i" &&
-      both_ls=$(ls -dt "$src" "$dst") &&
+      both_ls=`ls -dt "$src" "$dst"` &&
       test "X$both_ls" = "X$dst$nl$src" || {
         dot_dots=
         case $src in
@@ -869,7 +869,7 @@ if test $with_gettext = yes || test $use_libtool = 1; then
   # to libtoolize 1.5.22, where the install action was default.
   if test $use_libtool = 1; then
     install=
-    case $($LIBTOOLIZE --help) in
+    case `$LIBTOOLIZE --help` in
       *--install*) install=--install ;;
     esac
     echo "running: $LIBTOOLIZE $install --copy"
@@ -879,7 +879,7 @@ if test $with_gettext = yes || test $use_libtool = 1; then
   find . ! -type d -print | sort >$tempbase.1
   old_IFS=$IFS
   IFS=$nl
-  for file in $(comm -13 $tempbase.0 $tempbase.1); do
+  for file in `comm -13 $tempbase.0 $tempbase.1`; do
     IFS=$old_IFS
     parent=${file%/*}
     version_controlled_file "$parent" "$file" || {
@@ -948,7 +948,7 @@ AUTORECONFFLAGS="--verbose --install --force -I $m4_base 
$ACLOCAL_FLAGS"
 # --no-recursive option had not been invented.  Detect that lack and
 # omit the option when it's not supported.  FIXME in 2017: remove this
 # hack when RHEL 5 autotools are updated, or when they become irrelevant.
-case $($AUTORECONF --help) in
+case `$AUTORECONF --help` in
   *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
 esac
 

Reply via email to