libtool-commit
[Top][All Lists]
Advanced

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

[SCM] GNU Libtool branch, master, updated. v2.4.2-38-gaf4537c


From: Gary V. Vaughan
Subject: [SCM] GNU Libtool branch, master, updated. v2.4.2-38-gaf4537c
Date: Mon, 31 Oct 2011 12:52:16 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Libtool".

The branch, master has been updated
       via  af4537cd8a1308a1c783519fccd71e08392ea66c (commit)
       via  c9f43dcc39c858cc5cd14b0e423fe376fa0e01f2 (commit)
       via  54d7385ca66e8f936679063cf41dced89c1fb5b2 (commit)
       via  f1fd9a12cb4475e81f4ee8310a0108d9fc92934d (commit)
      from  bba5b84fcd05fe4872b0228104b7be9b7de8daba (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit af4537cd8a1308a1c783519fccd71e08392ea66c
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Oct 27 12:10:49 2011 +0700

    maint: add autobuild prerequisite only if autobuild.m4 is absent.
    
    * bootstrap (func_require_autobuild_buildreq): Skip if autobuild.m4
    is already present.
    * bootstrap.conf (require_autobuild_bulidreq): No need to set this
    specially any more.
    
    Signed-off-by: Gary V. Vaughan <address@hidden>

commit c9f43dcc39c858cc5cd14b0e423fe376fa0e01f2
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Oct 26 12:58:35 2011 +0700

    maint: ensure bootstrap runs from dist tarball.
    
    * bootstrap (func_gnulib_tool_copy_file): When gnulib-tool is
    not available, check that there is a copy of the file from a
    previous run available before bailing out with a diagnostic.
    (func_install_gnulib_non_module_files): Don't diagnose missing
    files explicitly - func_gnulib_tool_copy_file takes care of it
    now.
    (func_require_checkout_only_file): In the diagnostic for
    not being in a source-controlled tree, note that `--force' must
    be used to rebootstrap.
    (func_require_gnulib_files_already_present): Removed.  All the
    necessary checks are correctly performed in
    func_gnulib_tool_copy_file withot resorting to heuristics.
    (func_require_gnulib_mk): Don't continue to try to access
    gnulib-cache.m4 after discovering we're running from a dist
    tarball.
    (func_require_dotgitmodules_parameters): Skip if .gitmodules
    file is missing and git binary is not available.
    * bootstrap.conf (checkout_only_file): Set to HACKING, which is
    a non-distributed file.
    (libtool_cleanup_empty_dirs): Don't print spurious errors when
    trying to delete gnulib-tool droppings, in case gnulib-tool is
    not available on this run.
    
    Signed-off-by: Gary V. Vaughan <address@hidden>

commit 54d7385ca66e8f936679063cf41dced89c1fb5b2
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Oct 31 16:52:16 2011 +0700

    tests: add a keyword `expensive' to very long running tests.
    
    * tests/cmdline_wrap.at, tests/stresstest.at (AT_KEYWORDS): Add
    `expensive'.
    * NEWS: Updated.
    
    Signed-off-by: Gary V. Vaughan <address@hidden>

commit f1fd9a12cb4475e81f4ee8310a0108d9fc92934d
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Oct 31 18:29:35 2011 +0700

    libtoolize: fix some long-standing sed substitution bugs
    
    * libtoolize.m4sh (func_fixup_Makefile): `\\\\\$' in a " quoted
    script that is evaluated twice before execution becomes a `\$',
    which sed interprets as a literal $.  The script will then delete
    any lines with a first non-whitespace character of `$'. Instead
    use `\\\\$' in single quotes, which sed eventually receives as
    `\\$' and correctly interprets as part of an instruction to
    delete otherwise empty lines ending with a `\'.
    Additionally the rest of the same sed script is no longer
    applied to comment lines to avoid munging the copyright header
    among others.
    * NEWS: Updated.

-----------------------------------------------------------------------

Summary of changes:
 NEWS                  |    7 ++
 bootstrap             |  169 ++++++++++++++++++++-----------------------------
 bootstrap.conf        |   14 +++--
 libtoolize.m4sh       |    5 +-
 tests/cmdline_wrap.at |    2 +-
 tests/stresstest.at   |    2 +-
 6 files changed, 91 insertions(+), 108 deletions(-)

diff --git a/NEWS b/NEWS
index a960e43..3672ff8 100644
--- a/NEWS
+++ b/NEWS
@@ -5,11 +5,18 @@ NEWS - list of user-visible changes between releases of GNU 
Libtool
 ** New features:
 
   - Moved to gnulib release infrastructure.
+  - The Autotest testsuite can be run without the especially time consuming
+    tests with:
+
+        make check-local TESTSUITEFLAGS='-k "!expensive"'
 
 ** Bug fixes:
 
   - Fix a long-standing latent bug in autom4te include path for autotests
     with VPATH builds.
+  - Fix a long-standing latent bug in libtoolize which could delete lines
+    from libltdl/Makefile.am in recursive mode due to underquoting in a
+    sed script.
 
 New in 2.4.2 2011-10-17: git version 2.4.1a, Libtool team:
 
diff --git a/bootstrap b/bootstrap
index 336c8a9..ecfa39b 100755
--- a/bootstrap
+++ b/bootstrap
@@ -942,12 +942,26 @@ func_gnulib_tool_copy_file ()
     gnulib_copy_cmd="$gnulib_tool --copy-file"
     $opt_copy || func_append gnulib_copy_cmd " --symlink"
 
-    test -f "$gnulib_path/$1" || {
-      func_error "error: \`$gnulib_path/$file' does not exist"
-      return 1
-    }
+    if test true = "$gnulib_tool"; then
+      # If gnulib-tool is not available (e.g. bootstrapping in a
+      # distribution tarball), make sure that at least we have some
+      # version of the required file already in place.
+      test -f "$2" || func_fatal_error "\
+error: Can't find, copy or download \`$2', a required
+       gnulib supplied file, please provide the location of a
+       complete \`gnulib' tree by setting \`gnulib_path' in your
+       \`bootstrap.conf' or with the \`--gnulib-srcdir' option -
+       or else specify the location of your \`git' binary by
+       setting \`GIT' in the environment so that a fresh
+       \`gnulib' submodule can be cloned."
+    else
+      test -f "$gnulib_path/$1" || {
+        func_error "error: \`$gnulib_path/$1' does not exist"
+        return 1
+      }
 
-    $gnulib_copy_cmd $1 $2
+      $gnulib_copy_cmd $1 $2
+    fi
 }
 
 
@@ -959,34 +973,25 @@ func_install_gnulib_non_module_files ()
     $debug_cmd
 
     $require_build_aux
-    $require_gnulib_path
+    $require_gnulib_tool
 
     test -n "$gnulib_non_module_files" && {
-      if test -n "$gnulib_path"; then
-        maybe_exit_cmd=:
-
-        for file in $gnulib_non_module_files; do
-          case $file in
-            */COPYING*) dest=COPYING;;
-            */INSTALL) dest=INSTALL;;
-            build-aux/*) dest=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;;
-            *) dest=$file;;
-          esac
-
-          # Be sure to show all copying errors before bailing out
-         func_gnulib_tool_copy_file "$file" "$dest" \
-             || maybe_exit_cmd="exit $EXIT_FAILURE"
-        done
-
-        $maybe_exit_cmd
-      else
-        func_warning recommend "\
-Unable to link \`\$gnulib_non_module_files', please provide the
-location of a complete \`gnulib' tree by setting \`gnulib_path' in
-your \`bootstrap.conf' or with the \`--gnulib-srcdir' option - or
-else specify the location of your \`git' binary by setting \`GIT'
-in the environment so that a fresh \`gnulib' submodule can be cloned."
-      fi
+      maybe_exit_cmd=:
+
+      for file in $gnulib_non_module_files; do
+        case $file in
+          */COPYING*) dest=COPYING;;
+          */INSTALL) dest=INSTALL;;
+          build-aux/*) dest=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;;
+          *) dest=$file;;
+        esac
+
+        # Be sure to show all copying errors before bailing out
+       func_gnulib_tool_copy_file "$file" "$dest" \
+           || maybe_exit_cmd="exit $EXIT_FAILURE"
+      done
+
+      $maybe_exit_cmd
     }
 }
 
@@ -1197,9 +1202,12 @@ func_require_checkout_only_file ()
 {
     $debug_cmd
 
-    test -n "$checkout_only_file" && test ! -f "$checkout_only_file" \
-       && func_fatal_error "\
-error: Bootstrapping from a non-checked-out distribution is risky."
+    $opt_force || {
+      test -n "$checkout_only_file" && test ! -f "$checkout_only_file" \
+          && func_fatal_error "\
+error: Bootstrapping from a non-checked-out distribution is risky.
+       If you wish to bootstrap anyway, use the \`--force' option."
+    }
 
     require_checkout_only_file=:
 }
@@ -1240,7 +1248,11 @@ func_require_autobuild_buildreq ()
 {
     $debug_cmd
 
-    printf '%s\n' "$buildreq" |func_grep_q '^[  ]*autobuild' || {
+    $require_macro_dir
+
+    test -f "$macro_dir/autobuild.m4" \
+        || printf '%s\n' "$buildreq" |func_grep_q '^[   ]*autobuild' \
+        || {
       $require_configure_ac
 
       func_extract_trace AB_INIT
@@ -1634,46 +1646,6 @@ func_require_gnulib_cache ()
 }
 
 
-# require_gnulib_files_already_present
-# ------------------------------------
-# If we have no means to update imported gnulib files, then try to
-# ensure at least that this tree already has files from a previous
-# `gnulib-tool' run.
-require_gnulib_files_already_present=func_require_gnulib_files_already_present
-func_require_gnulib_files_already_present ()
-{
-    $debug_cmd
-
-    $require_build_aux
-    $require_macro_dir
-    $require_gnulib_mk
-    $require_source_base
-
-    # As a heuristic, only bail out if any of the following
-    # are missing.
-    my_gnulib_files_already_present="
-        $build_aux/install-sh
-        $macro_dir/00gnulib.m4
-        $source_base/${gnulib_mk:-Makefile.am}
-    "
-
-    $opt_dry_run || {
-      for my_file in $my_gnulib_files_already_present; do
-        test -f "$my_file" || func_fatal_error "\
-error: Can't find, copy or download required gnulib files,
-       please provide the location of a complete \`gnulib' tree
-       by setting \`gnulib_path' in your \`bootstrap.conf' or
-       with the \`--gnulib-srcdir' option - or else specify the
-       location of your \`git' binary by setting \`GIT' in the
-       environment so that a fresh \`gnulib' submodule can be
-       cloned."
-      done
-    }
-
-    require_gnulib_files_already_present=:
-}
-
-
 # require_gnulib_merge_changelog
 # ------------------------------
 # See if we can use gnulib's git-merge-changelog merge driver.
@@ -1712,7 +1684,7 @@ func_require_gnulib_mk ()
 {
     $debug_cmd
 
-    test -n "$gnulib_mk" || {
+    test -f "$gnulib_cache" && test -z "$gnulib_mk" && {
       $require_gnulib_cache
       $require_macro_dir
 
@@ -1738,33 +1710,36 @@ func_require_dotgitmodules_parameters ()
 
     $require_git
 
-    if test true = "$GIT"; then
+    test true = "$GIT" && {
       # If we can't find git (or if the user specified `--skip-git'),
       # then use an existing gnulib directory specified with
       # `--gnulib-srcdir' if possible.
       test -n "$gnulib_path" \
           || test ! -x "$opt_gnulib_srcdir/gnulib-tool" \
           || gnulib_path="$opt_gnulib_srcdir"
-    fi
+    }
+
 
     $require_dotgitmodules
 
-    # Extract the parameters with sed, since git may be missing
-    test -n "$gnulib_path" \
-      || gnulib_path=`$SED -e '/^.submodule "gnulib".$/,${
-                                /[      ]*path *= */{
-                                 s,[   ]*,,g;s,^[^=]*=,,;p
-                               }
-                             };d' .gitmodules |$SED 1q`
-    test -n "$gnulib_url" \
-      || gnulib_url=`$SED -e '/^.submodule "gnulib".$/,${
-                                /[      ]*url *= */{
-                                 s,[   ]*,,g;s,^[^=]*=,,;p
-                               }
-                             };d' .gitmodules |$SED 1q`
-
-    func_verbose "gnulib_path='$gnulib_path'"
-    func_verbose "gnulib_url='$gnulib_url'"
+    test -f .gitmodules && {
+      # Extract the parameters with sed, since git may be missing
+      test -n "$gnulib_path" \
+        || gnulib_path=`$SED -e '/^.submodule "gnulib".$/,${
+                                   /[   ]*path *= */{
+                                    s,[   ]*,,g;s,^[^=]*=,,;p
+                                  }
+                                };d' .gitmodules |$SED 1q`
+      test -n "$gnulib_url" \
+        || gnulib_url=`$SED -e '/^.submodule "gnulib".$/,${
+                                  /[    ]*url *= */{
+                                   s,[   ]*,,g;s,^[^=]*=,,;p
+                                 }
+                               };d' .gitmodules |$SED 1q`
+
+      func_verbose "gnulib_path='$gnulib_path'"
+      func_verbose "gnulib_url='$gnulib_url'"
+    }
 
     require_gnulib_path=:
     require_gnulib_url=:
@@ -1842,8 +1817,6 @@ func_require_gnulib_tool ()
         || gnulib_tool="$gnulib_path/gnulib-tool"
 
       test -x "$gnulib_tool" || {
-        $require_gnulib_files_already_present
-
         gnulib_tool=true
         func_warning recommend \
             "No \`gnulib-tool' found; gnulib modules may be missing."
@@ -2092,9 +2065,7 @@ func_require_source_base ()
       func_verbose "source_base='$source_base'"
     }
 
-    # Only prevent repeated calls if we found something...
-    # gnulib-cache.m4 might arrive before the next call.
-    test -n "$source_base" && require_source_base=:
+    require_source_base=:
 }
 
 
diff --git a/bootstrap.conf b/bootstrap.conf
index 3d36983..116023c 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -37,6 +37,10 @@ export MAKE
 ## Configuration. ##
 ## -------------- ##
 
+# File that should exist in the top directory of a checked out hierarchy,
+# but not in a distribution tarball.
+checkout_only_file=HACKING
+
 # List of programs (and minimum versions) required to bootstrap, maintain
 # and release Libtool.
 buildreq="
@@ -420,8 +424,11 @@ libtool_cleanup_empty_dirs ()
 {
     $debug_cmd
 
-    rm lib/.gitignore lib/Makefile.am || exit 1
-    rmdir lib || exit 1
+    my_gnulib_source="${source_base-lib}"
+    if test -d "$my_gnulib_source"; then
+      rm -f "$my_gnulib_source/.gitignore" "$my_gnulib_source/Makefile.am" || 
exit 1
+      rmdir "$my_gnulib_source" || exit 1
+    fi
 }
 func_add_hook func_fini libtool_cleanup_empty_dirs
 
@@ -431,9 +438,6 @@ func_add_hook func_fini libtool_cleanup_empty_dirs
 ## Resource management. ##
 ## -------------------- ##
 
-# Although autobuild is awesome, libtool will bootstrap without it.
-require_autobuild_buildreq=:
-
 # require_package_url
 # -------------------
 # Ensure that package_url has a sensible default.
diff --git a/libtoolize.m4sh b/libtoolize.m4sh
index 1626c17..4489b57 100644
--- a/libtoolize.m4sh
+++ b/libtoolize.m4sh
@@ -320,7 +320,7 @@ func_fixup_Makefile ()
     my_filename="$1"
     my_srcdir="$2"
     my_destdir="$3"
-    my_fixup_non_subpackage_script="\
+    my_fixup_non_subpackage_script='/^[^#]/{
       s,(LIBOBJS),(ltdl_LIBOBJS),g
       s,(LTLIBOBJS),(ltdl_LTLIBOBJS),g
       s,libltdl/configure.ac,,
@@ -329,7 +329,8 @@ func_fixup_Makefile ()
       s,libltdl/config-h.in,,
       s,libltdl/Makefile.am,,
       s,libltdl/Makefile.in,,
-      /^[       ]*\\\\\$/d"
+      /^[       ]*\\\\$/d
+    }'
     case $my_filename in
       Makefile.am)
        my_fixup_non_subpackage_script=`echo "$my_fixup_non_subpackage_script" 
| \
diff --git a/tests/cmdline_wrap.at b/tests/cmdline_wrap.at
index 13edabc..c7f5671 100644
--- a/tests/cmdline_wrap.at
+++ b/tests/cmdline_wrap.at
@@ -26,7 +26,7 @@
 # We simulate this by setting max_cmd_len very low.
 
 AT_SETUP([Run tests with low max_cmd_len])
-AT_KEYWORDS([recursive])
+AT_KEYWORDS([recursive expensive])
 m4_ifdef([AT_CAPTURE_FILE],
 [AT_CAPTURE_FILE([testsuite.log])])
 
diff --git a/tests/stresstest.at b/tests/stresstest.at
index e71d492..9568d49 100644
--- a/tests/stresstest.at
+++ b/tests/stresstest.at
@@ -29,7 +29,7 @@
 
 AT_BANNER([Libtool stress test.])
 AT_SETUP([Link option thorough search test])
-AT_KEYWORDS([libtool])
+AT_KEYWORDS([libtool expensive])
 eval `$LIBTOOL --config | $EGREP '^(CC|objdir|allow_undefined_flag)='`
 
 mkdir sub sub2 sub3 2>/dev/null


hooks/post-receive
-- 
GNU Libtool



reply via email to

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