m4-commit
[Top][All Lists]
Advanced

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

[SCM] GNU M4 source repository branch, master, updated. cvs-readonly-215


From: Eric Blake
Subject: [SCM] GNU M4 source repository branch, master, updated. cvs-readonly-215-g33434ce
Date: Mon, 23 Mar 2009 13:06:30 +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 M4 source repository".

http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=33434cee444ebefb51734ec286857e7639500ad3

The branch, master has been updated
       via  33434cee444ebefb51734ec286857e7639500ad3 (commit)
      from  993cc5e94d2546ae7bfcb99cf749edb61a13efaf (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 33434cee444ebefb51734ec286857e7639500ad3
Author: Eric Blake <address@hidden>
Date:   Fri Mar 20 06:54:12 2009 -0600

    Make gnulib a git submodule.
    
    * .gitmodules: New file.
    * gnulib: Record which version of gnulib has been tested.
    * bootstrap: Aid in submodule usage.
    * cfg.mk (gnulib_dir): Alter default location of gnulib.
    * HACKING: Mention how to use submodule.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 6942f58cb5bb624a28672658a4369b85bce77783)

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

Summary of changes:
 .gitmodules |    3 ++
 ChangeLog   |    9 +++++
 HACKING     |   42 ++++++++++++++++++++++---
 bootstrap   |   96 +++++++++++++++++++++++++++++-----------------------------
 cfg.mk      |    2 +-
 gnulib      |    1 +
 6 files changed, 99 insertions(+), 54 deletions(-)
 create mode 100644 .gitmodules
 create mode 160000 gnulib

diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..acb2669
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "gnulib"]
+       path = gnulib
+       url = git://git.sv.gnu.org/gnulib.git
diff --git a/ChangeLog b/ChangeLog
index f25fbe9..4c9c95a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-03-23  Eric Blake  <address@hidden>
+
+       Make gnulib a git submodule.
+       * .gitmodules: New file.
+       * gnulib: Record which version of gnulib has been tested.
+       * bootstrap: Aid in submodule usage.
+       * cfg.mk (gnulib_dir): Alter default location of gnulib.
+       * HACKING: Mention how to use submodule.
+
 2009-03-21  Eric Blake  <address@hidden>
 
        Use memcmp2 to simplify lexicographic comparisons.
diff --git a/HACKING b/HACKING
index 17bbeaf..b409900 100644
--- a/HACKING
+++ b/HACKING
@@ -73,19 +73,46 @@ and is not part of a release distribution.
   - LZMA Utils 4.32 or later (from <http://tukaani.org/lzma/>)
   - Texinfo 4.8 or later
   - Any prerequisites of the above (such as perl, tex)
-  - A git checkout of gnulib.  A read-only copy of gnulib can be
-    obtained by:
+
+  Note that none of these bootstrapping dependencies should be required
+  by a distributed release.
+
+* M4 includes gnulib as a git submodule.  By default, the bootstrap
+  script will attempt to run
+    git submodule update --init
+  to grab a gnulib clone from the official read-only location of
+    git://git.sv.gnu.org/gnulib.git
+
+  However, this can be network and disk intensive.  If you already have
+  another gnulib clone on your disk, you can use the environment
+  variable GNULIB_SRCDIR to point to the previous checkout to speed up
+  the process.  Additionally, both the bootstrap script and gnulib-tool
+  require a shell that supports functions, so you can set the
+  environment variable  CONFIG_SHELL to choose a better shell on systems
+  (like Solaris) where /bin/sh is lacking.  Thus, you may find it
+  convenient to run:
+    GNULIB_SRCDIR=path/to/gnulib CONFIG_SHELL=path/to/sh \
+      path/to/sh ./bootstrap
+
+  A read-only copy of gnulib can be obtained by:
       git clone git://git.sv.gnu.org/gnulib.git
     or
       cvs -d:pserver:address@hidden:/srv/git/gnulib.git \
         co -d gnulib HEAD
 
+  Using a CVS checkout might work, but it is relatively untested,
+  particularly now that we use a git submodule for gnulib.
+
   If you are a member of the savannah group for gnulib, a read-write
   copy can be obtained by:
     git clone <savannah-user>@git.sv.gnu.org:/srv/git/gnulib.git
 
-  Note that none of these bootstrapping dependencies should be required
-  by a distributed release.
+  If you are behind a firewall that blocks the git protocol, you may
+  find it useful to do:
+    git config --global url.http://git.sv.gnu.org/r/.insteadof \
+      git://git.sv.gnu.org/
+  to force git to transparently rewrite all savannah git references to
+  instead use http.
 
 * Either add the gnulib directory to your PATH, or run
     GNULIB_TOOL=path/to/gnulib/gnulib-tool ./bootstrap
@@ -214,13 +241,18 @@ yyyy-mm-dd  Name of Author  <address@hidden>  (tiny 
change)
 
 * Make sure your locale is sane, e.g. by exporting LC_ALL=C.
 
+* Make sure you are happy with the particular gnulib version recorded as
+  the gnulib submodule.  If necessary to update to the latest, run:
+    git submodule foreach git pull
+    git commit -m 'Update gnulib submodule to latest.' gnulib
+
 * Update the version number in configure.ac.
   See http://www.gnu.org/software/libtool/contribute.html for details of
   the numbering scheme (m4 uses the same scheme as libtool).
 
 * Update NEWS, ChangeLog.
 
-* Run ./bootstrap.
+* Run ./bootstrap, perhaps with environment variables set.
 
 * Run ./configure (or create a build directory first and run configure
   from there, if you want to keep the build tree separate).
diff --git a/bootstrap b/bootstrap
index 8bc3021..f5d7321 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# bootstrap (GNU M4) version 2009-03-13
+# bootstrap (GNU M4) version 2009-03-23
 # Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software
 # Foundation, Inc.
 # License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
@@ -33,7 +33,7 @@
 
 # You can also set the following variables to help $progname
 # locate the right tools:
-#   AUTOPOINT, AUTORECONF, AWK, GNULIB_SRCDIR, GNULIB_TOOL, LIBTOOLIZE,
+#   AUTOPOINT, AUTORECONF, AWK, CONFIG_SHELL, GNULIB_SRCDIR, LIBTOOLIZE,
 #   M4, RM, SED
 
 # This script bootstraps a git or CVS checkout of GNU M4 by correctly calling
@@ -50,7 +50,7 @@
 : ${AUTOPOINT=autopoint}
 : ${AUTORECONF=autoreconf}
 : ${AWK=awk}
-: ${GNULIB_TOOL=gnulib-tool}
+: ${CONFIG_SHELL=/bin/sh}
 : ${LIBTOOLIZE=libtoolize}
 : ${M4=m4}
 : ${RM='rm -f'}
@@ -396,35 +396,33 @@ $AUTOPOINT --force
 func_echo "running: $LIBTOOLIZE --force --copy --install"
 ${LIBTOOLIZE} --force --copy --install
 
-## ---------------------------- ##
-## Find the gnulib module tree. ##
-## ---------------------------- ##
+## ------------------------------ ##
+## Update the gnulib module tree. ##
+## ------------------------------ ##
 
-if test -n "$GNULIB_SRCDIR" && test -d "$GNULIB_SRCDIR" ; then
-  gnulibdir=$GNULIB_SRCDIR
+if test -d .git && (git --version) >/dev/null 2>/dev/null ; then
+  if test -f gnulib/gnulib-tool ; then
+    func_echo "updating gnulib submodule"
+    git submodule update \
+      || func_fatal_error "Unable to update gnulib"
+  else
+    # A fresh checkout creates an empty subdirectory gnulib.  However,
+    # older git didn't know how to clone into an empty subdir.  If the
+    # user provided GNULIB_SRCDIR, then make the initial clone refer
+    # to the existing checkout, to save network traffic.
+    func_echo "importing gnulib submodule"
+    if test -d "$GNULIB_SRCDIR" ; then
+      rmdir gnulib 2>/dev/null
+      git clone --reference "$GNULIB_SRCDIR" git://git.sv.gnu.org/gnulib.git \
+ && git submodule init && git submodule update \
+ || func_fatal_error "Unable to update gnulib"
+    else
+      git submodule update --init \
+ || func_fatal_error "Unable to update gnulib"
+    fi
+  fi
 else
-  case $GNULIB_TOOL in
-    /*  )  gnulibdir=$GNULIB_TOOL ;;           # absolute
-    */* )  gnulibdir=`pwd`/$GNULIB_TOOL ;;     # relative
-    *   )  gnulibdir=`which "$GNULIB_TOOL"` ;; # PATH search
-  esac
-
-  # Follow symlinks
-  while test -h "$gnulibdir"; do
-
-    # Resolve symbolic link.
-    sedexpr1='s, -> ,#%%#,'
-    sedexpr2='s,^.*#%%#\(.*\)$,\1,p'
-    linkval=`ls -l "$gnulibdir" | $SED "$sedexpr1" | $SED -n "$sedexpr2"`
-    test -n "$linkval" || break
-
-    case "$linkval" in
-       /* ) gnulibdir="$linkval" ;;
-       * )  gnulibdir=`echo "$gnulibdir" | sed -e 's,/[^/]*$,,'`/"$linkval" ;;
-    esac
-
-  done
-  gnulibdir=`echo "$gnulibdir" | $SED "$dirname"`
+  func_echo "git not detected.  If needed, update gnulib subdirectory manually"
 fi
 
 
@@ -432,9 +430,9 @@ fi
 ## Import Gnulib modules. ##
 ## ---------------------- ##
 
-func_echo "running: ${GNULIB_TOOL} --update"
-${GNULIB_TOOL} --update
-
+func_echo "running: $CONFIG_SHELL gnulib/gnulib-tool --update"
+$CONFIG_SHELL gnulib/gnulib-tool --update \
+  || func_fatal_error "gnulib-tool failed"
 
 ## --------------------------------- ##
 ## Copy additional src only modules. ##
@@ -442,7 +440,8 @@ ${GNULIB_TOOL} --update
 
 func_echo "fetching modules for src directory"
 
-for file in `${GNULIB_TOOL} --extract-filelist $src_modules`; do
+for file in `$CONFIG_SHELL gnulib/gnulib-tool --extract-filelist $src_modules`
+do
 
     dest=`echo $file | $SED "$basename"`
     case $file in
@@ -454,11 +453,11 @@ for file in `${GNULIB_TOOL} --extract-filelist 
$src_modules`; do
     esac
 
     # Be sure to show all copying errors before bailing out
-    if test -f $gnulibdir/$file; then
+    if test -f gnulib/$file; then
        func_echo "copying file \`$dest'"
-       cp $gnulibdir/$file $dest
+       cp gnulib/$file $dest
     else
-       func_error "$gnulibdir/$file does not exist"
+       func_error "gnulib/$file does not exist"
        bailout_cb="exit 1"
     fi
 done
@@ -480,17 +479,18 @@ AUTOPOINT=true LIBTOOLIZE=true \
 ## Gnulib is more up-to-date than automake. ##
 ## ---------------------------------------- ##
 
-func_update "$gnulibdir"/build-aux/config.guess $config_aux_dir/config.guess
-func_update "$gnulibdir"/build-aux/config.sub $config_aux_dir/config.sub
-func_update "$gnulibdir"/build-aux/depcomp $config_aux_dir/depcomp
-func_update "$gnulibdir"/build-aux/install-sh $config_aux_dir/install-sh
-func_update "$gnulibdir"/build-aux/mdate-sh $config_aux_dir/mdate-sh
-func_update "$gnulibdir"/build-aux/missing $config_aux_dir/missing
-func_update "$gnulibdir"/build-aux/texinfo.tex $config_aux_dir/texinfo.tex
-func_update "$gnulibdir"/build-aux/po/Makefile.in.in po/Makefile.in.in
-func_update "$gnulibdir"/build-aux/po/remove-potcdate.sin 
po/remove-potcdate.sin
-func_update "$gnulibdir"/doc/COPYINGv3 COPYING
-func_update "$gnulibdir"/doc/INSTALL INSTALL
+func_update gnulib/build-aux/compile $config_aux_dir/compile
+func_update gnulib/build-aux/config.guess $config_aux_dir/config.guess
+func_update gnulib/build-aux/config.sub $config_aux_dir/config.sub
+func_update gnulib/build-aux/depcomp $config_aux_dir/depcomp
+func_update gnulib/build-aux/install-sh $config_aux_dir/install-sh
+func_update gnulib/build-aux/mdate-sh $config_aux_dir/mdate-sh
+func_update gnulib/build-aux/missing $config_aux_dir/missing
+func_update gnulib/build-aux/texinfo.tex $config_aux_dir/texinfo.tex
+func_update gnulib/build-aux/po/Makefile.in.in po/Makefile.in.in
+func_update gnulib/build-aux/po/remove-potcdate.sin po/remove-potcdate.sin
+func_update gnulib/doc/COPYINGv3 COPYING
+func_update gnulib/doc/INSTALL INSTALL
 
 
 ## ------- ##
diff --git a/cfg.mk b/cfg.mk
index a67d088..2aac5ac 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -37,4 +37,4 @@ local-checks-to-skip = changelog-check
 
 # The local directory containing the checked-out copy of gnulib used in this
 # release.  Used solely to get gnulib's SHA1 for the "announcement" target.
-gnulib_dir = $(srcdir)/../gnulib
+gnulib_dir = $(srcdir)/gnulib
diff --git a/gnulib b/gnulib
new file mode 160000
index 0000000..6c410f6
--- /dev/null
+++ b/gnulib
@@ -0,0 +1 @@
+Subproject commit 6c410f6d2875a0a41671daab4d9751a74c69c451


hooks/post-receive
--
GNU M4 source repository




reply via email to

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