summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--ChangeLog18
-rw-r--r--README-hacking16
-rwxr-xr-xbootstrap138
-rw-r--r--bootstrap.conf4
-rw-r--r--build-aux/.gitignore2
-rw-r--r--doc/.gitignore2
m---------gnulib0
-rw-r--r--lib/.gitignore16
-rw-r--r--m4/.gitignore10
-rw-r--r--po/.gitignore2
-rw-r--r--po/POTFILES.in2
-rw-r--r--runtime-po/.gitignore2
-rw-r--r--src/output.c2
m---------submodules/autoconf0
15 files changed, 157 insertions, 59 deletions
diff --git a/.gitignore b/.gitignore
index 185cefcd..27f9b06d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+
/*.cache
/*.flc
/*.prj
@@ -30,3 +31,4 @@
/patches
/releases
/stamp-h*
+
diff --git a/ChangeLog b/ChangeLog
index 84bc9136..63a50100 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2011-04-16 Joel E. Denny <joeldenny@joeldenny.org>
+
+ gnulib, autoconf: update.
+ * README-hacking (Updating a submodule): Give advice on how to
+ determine the versions of gnulib and autoconf to which we should
+ update.
+ (Release Procedure): Note that submodules should be updated.
+ * bootstrap.conf (gnulib_modules): Rename pipe to spawn-pipe as
+ suggested in updated gnulib NEWS.
+ * gnulib: Choose a stable snapshot according to advice in Bison's
+ README-hacking.
+ * po/POTFILES.in (lib/pipe.c): Rename to...
+ (lib/spawn-pipe.c): ... this.
+ * src/output.c: Update to include spawn-pipe.h.
+ * submodules/autoconf: Update to latest for improvement in m4.m4
+ that excludes M4 with buggy strstr. The only other changes to
+ files that we use are copyright updates.
+
2011-04-09 Joel E. Denny <joeldenny@joeldenny.org>
Fix missing updates to GPLv3.
diff --git a/README-hacking b/README-hacking
index 0ea345a3..1902a016 100644
--- a/README-hacking
+++ b/README-hacking
@@ -158,6 +158,20 @@ Register your changes.
$ git checkin ...
+For a suggestion of what gnulib commit might be stable enough for a
+formal release, see the ChangeLog in the latest gnulib snapshot at:
+
+ http://erislabs.net/ianb/projects/gnulib/
+
+The autoconf files we use are currently:
+
+ m4/m4.m4
+ lib/m4sugar/m4sugar.m4
+ lib/m4sugar/foreach.m4
+
+These files don't change very often in autoconf, so it should be
+relatively straight-forward to examine the differences in order to
+decide whether to update.
* Test suite
@@ -203,6 +217,8 @@ release:
* Release Procedure
+** Update the submodules. See above.
+
** Try to get the *.pot files to the Translation Project at least one
week before a stable release, to give them time to translate them.
Before generating the *.pot files, make sure that po/POTFILES.in and
diff --git a/bootstrap b/bootstrap
index dcd47739..7cbb5dc4 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,10 +1,10 @@
#! /bin/sh
# Print a version string.
-scriptversion=2010-11-20.03; # UTC
+scriptversion=2011-04-05.18; # UTC
# Bootstrap this package from checked-out sources.
-# Copyright (C) 2003-2010 Free Software Foundation, Inc.
+# Copyright (C) 2003-2011 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -42,30 +42,32 @@ local_gl_dir=gl
bt='._bootmp'
bt_regex=`echo "$bt"| sed 's/\./[.]/g'`
bt2=${bt}2
+me=$0
usage() {
cat <<EOF
-Usage: $0 [OPTION]...
+Usage: $me [OPTION]...
Bootstrap this package from the checked-out sources.
Options:
- --gnulib-srcdir=DIRNAME Specify the local directory where gnulib
+ --gnulib-srcdir=DIRNAME specify the local directory where gnulib
sources reside. Use this if you already
have gnulib sources on your machine, and
do not want to waste your bandwidth downloading
- them again. Defaults to \$GNULIB_SRCDIR.
- --bootstrap-sync If this bootstrap script is not identical to
+ them again. Defaults to \$GNULIB_SRCDIR
+ --bootstrap-sync if this bootstrap script is not identical to
the version in the local gnulib sources,
update this script, and then restart it with
- /bin/sh or the shell \$CONFIG_SHELL if
- defined.
- --no-bootstrap-sync Do not check whether bootstrap is out of sync.
- --copy Copy files instead of creating symbolic links.
- --force Attempt to bootstrap even if the sources seem
- not to have been checked out.
- --skip-po Do not download po files.
-
-If the file $0.conf exists in the same directory as this script, its
+ /bin/sh or the shell \$CONFIG_SHELL
+ --no-bootstrap-sync do not check whether bootstrap is out of sync
+ --copy copy files instead of creating symbolic links
+ --force attempt to bootstrap even if the sources seem
+ not to have been checked out
+ --no-git do not use git to update gnulib. Requires that
+ --gnulib-srcdir point to a correct gnulib snapshot
+ --skip-po do not download po files
+
+If the file $me.conf exists in the same directory as this script, its
contents are read as shell variables to configure the bootstrap.
For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
@@ -128,18 +130,7 @@ source_base=lib
m4_base=m4
doc_base=doc
tests_base=tests
-
-# Extra files from gnulib, which override files from other sources.
-gnulib_extra_files="
- $build_aux/install-sh
- $build_aux/missing
- $build_aux/mdate-sh
- $build_aux/texinfo.tex
- $build_aux/depcomp
- $build_aux/config.guess
- $build_aux/config.sub
- doc/INSTALL
-"
+gnulib_extra_files=''
# Additional gnulib-tool options to use. Use "\newline" to break lines.
gnulib_tool_option_extras=
@@ -178,6 +169,9 @@ vc_ignore=auto
# default.
bootstrap_sync=false
+# Use git to update gnulib sources
+use_git=true
+
# find_tool ENVVAR NAMES...
# -------------------------
# Search for a required program. Use the value of ENVVAR, if set,
@@ -202,11 +196,11 @@ find_tool ()
find_tool_error_prefix="\$$find_tool_envvar: "
fi
if test x"$find_tool_res" = x; then
- echo >&2 "$0: one of these is required: $find_tool_names"
+ echo >&2 "$me: one of these is required: $find_tool_names"
exit 1
fi
($find_tool_res --version </dev/null) >/dev/null 2>&1 || {
- echo >&2 "$0: ${find_tool_error_prefix}cannot run $find_tool_res --version"
+ echo >&2 "$me: ${find_tool_error_prefix}cannot run $find_tool_res --version"
exit 1
}
eval "$find_tool_envvar=\$find_tool_res"
@@ -224,6 +218,18 @@ case "$0" in
*) test -r "$0.conf" && . ./"$0.conf" ;;
esac
+# Extra files from gnulib, which override files from other sources.
+test -z "${gnulib_extra_files}" && \
+ gnulib_extra_files="
+ $build_aux/install-sh
+ $build_aux/missing
+ $build_aux/mdate-sh
+ $build_aux/texinfo.tex
+ $build_aux/depcomp
+ $build_aux/config.guess
+ $build_aux/config.sub
+ doc/INSTALL
+"
if test "$vc_ignore" = auto; then
vc_ignore=
@@ -253,25 +259,49 @@ do
bootstrap_sync=true;;
--no-bootstrap-sync)
bootstrap_sync=false;;
+ --no-git)
+ use_git=false;;
*)
echo >&2 "$0: $option: unknown option"
exit 1;;
esac
done
+if $use_git || test -d "$GNULIB_SRCDIR"; then
+ :
+else
+ echo "$0: Error: --no-git requires --gnulib-srcdir" >&2
+ exit 1
+fi
+
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
exit 1
fi
+# Ensure that lines starting with ! sort last, per gitignore conventions
+# for whitelisting exceptions after a more generic blacklist pattern.
+sort_patterns() {
+ sort -u "$@" | sed '/^!/ {
+ H
+ d
+ }
+ $ {
+ P
+ x
+ s/^\n//
+ }'
+}
+
# If $STR is not already on a line by itself in $FILE, insert it,
# sorting the new contents of the file and replacing $FILE with the result.
insert_sorted_if_absent() {
file=$1
str=$2
test -f $file || touch $file
- echo "$str" | sort -u - $file | cmp - $file > /dev/null \
- || echo "$str" | sort -u - $file -o $file \
+ echo "$str" | sort_patterns - $file | cmp - $file > /dev/null \
+ || { echo "$str" | sort_patterns - $file > $file.bak \
+ && mv $file.bak $file; } \
|| exit 1
}
@@ -384,18 +414,22 @@ check_versions() {
if test "$app" = libtool; then
app=libtoolize
fi
+ # Exempt git if --no-git is in effect.
+ if test "$app" = git; then
+ $use_git || continue
+ fi
# Honor $APP variables ($TAR, $AUTOCONF, etc.)
appvar=`echo $app | tr '[a-z]-' '[A-Z]_'`
test "$appvar" = TAR && appvar=AMTAR
eval "app=\${$appvar-$app}"
inst_ver=$(get_version $app)
if [ ! "$inst_ver" ]; then
- echo "Error: '$app' not found" >&2
+ echo "$me: Error: '$app' not found" >&2
ret=1
elif [ ! "$req_ver" = "-" ]; then
latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
if [ ! "$latest_ver" = "$inst_ver" ]; then
- echo "Error: '$app' version == $inst_ver is too old" >&2
+ echo "$me: Error: '$app' version == $inst_ver is too old" >&2
echo " '$app' version >= $req_ver is required" >&2
ret=1
fi
@@ -428,9 +462,9 @@ fi
if ! printf "$buildreq" | check_versions; then
echo >&2
if test -f README-prereq; then
- echo "See README-prereq for how to get the prerequisite programs" >&2
+ echo "$0: See README-prereq for how to get the prerequisite programs" >&2
else
- echo "Please install the prerequisite programs" >&2
+ echo "$0: Please install the prerequisite programs" >&2
fi
exit 1
fi
@@ -442,11 +476,11 @@ if test -d .git && (git --version) >/dev/null 2>/dev/null ; then
if git config merge.merge-changelog.driver >/dev/null ; then
:
elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then
- echo "initializing git-merge-changelog driver"
+ echo "$0: initializing git-merge-changelog driver"
git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
else
- echo "consider installing git-merge-changelog from gnulib"
+ echo "$0: consider installing git-merge-changelog from gnulib"
fi
fi
@@ -462,7 +496,7 @@ git_modules_config () {
}
gnulib_path=`git_modules_config submodule.gnulib.path`
-: ${gnulib_path=gnulib}
+test -z "$gnulib_path" && gnulib_path=gnulib
# Get gnulib files.
@@ -533,7 +567,7 @@ gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
download_po_files() {
subdir=$1
domain=$2
- echo "$0: getting translations into $subdir for $domain..."
+ echo "$me: getting translations into $subdir for $domain..."
cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
eval "$cmd"
}
@@ -567,7 +601,7 @@ update_po_files() {
! test -f "$po_dir/$po.po" ||
! $SHA1SUM -c --status "$cksum_file" \
< "$new_po" > /dev/null; then
- echo "updated $po_dir/$po.po..."
+ echo "$me: updated $po_dir/$po.po..."
cp "$new_po" "$po_dir/$po.po" \
&& $SHA1SUM < "$new_po" > "$cksum_file"
fi
@@ -612,13 +646,13 @@ symlink_to_dir()
if $copy; then
{
test ! -h "$dst" || {
- echo "$0: rm -f $dst" &&
+ echo "$me: rm -f $dst" &&
rm -f "$dst"
}
} &&
test -f "$dst" &&
cmp -s "$src" "$dst" || {
- echo "$0: cp -fp $src $dst" &&
+ echo "$me: cp -fp $src $dst" &&
cp -fp "$src" "$dst"
}
else
@@ -632,7 +666,7 @@ symlink_to_dir()
*)
case /$dst/ in
*//* | */../* | */./* | /*/*/*/*/*/)
- echo >&2 "$0: invalid symlink calculation: $src -> $dst"
+ echo >&2 "$me: invalid symlink calculation: $src -> $dst"
exit 1;;
/*/*/*/*/) dot_dots=../../../;;
/*/*/*/) dot_dots=../../;;
@@ -640,7 +674,7 @@ symlink_to_dir()
esac;;
esac
- echo "$0: ln -fs $dot_dots$src $dst" &&
+ echo "$me: ln -fs $dot_dots$src $dst" &&
ln -fs "$dot_dots$src" "$dst"
}
fi
@@ -673,7 +707,7 @@ cp_mark_as_generated()
cmp -s "$cp_src" "$cp_dst" || {
# Copy the file first to get proper permissions if it
# doesn't already exist. Then overwrite the copy.
- echo "$0: cp -f $cp_src $cp_dst" &&
+ echo "$me: cp -f $cp_src $cp_dst" &&
rm -f "$cp_dst" &&
cp "$cp_src" "$cp_dst-t" &&
sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
@@ -691,7 +725,7 @@ cp_mark_as_generated()
if cmp -s "$cp_dst-t" "$cp_dst"; then
rm -f "$cp_dst-t"
else
- echo "$0: cp $cp_src $cp_dst # with edits" &&
+ echo "$me: cp $cp_src $cp_dst # with edits" &&
mv -f "$cp_dst-t" "$cp_dst"
fi
fi
@@ -710,7 +744,7 @@ version_controlled_file() {
elif test -d .svn; then
svn log -r HEAD "$dir/$file" > /dev/null 2>&1 && found=yes
else
- echo "$0: no version control for $dir/$file?" >&2
+ echo "$me: no version control for $dir/$file?" >&2
fi
test $found = yes
}
@@ -734,18 +768,18 @@ slurp() {
remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
sed "$remove_intl" $1/$dir/$file |
cmp - $dir/$gnulib_mk > /dev/null || {
- echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
+ echo "$me: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
rm -f $dir/$gnulib_mk &&
sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk &&
gnulib_mk_hook $dir/$gnulib_mk
}
elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
version_controlled_file $dir $file; then
- echo "$0: $dir/$file overrides $1/$dir/$file"
+ echo "$me: $dir/$file overrides $1/$dir/$file"
else
copied=$copied$sep$file; sep=$nl
if test $file = gettext.m4; then
- echo "$0: patching m4/gettext.m4 to remove need for intl/* ..."
+ echo "$me: patching m4/gettext.m4 to remove need for intl/* ..."
rm -f $dir/$file
sed '
/^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
@@ -856,7 +890,7 @@ grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac >/dev/null ||
for command in \
libtool \
- "${ACLOCAL-aclocal} --force -I m4 $ACLOCAL_FLAGS" \
+ "${ACLOCAL-aclocal} --force -I '$m4_base' $ACLOCAL_FLAGS" \
"${AUTOCONF-autoconf} --force" \
"${AUTOHEADER-autoheader} --force" \
"${AUTOMAKE-automake} --add-missing --copy --force-missing"
@@ -867,7 +901,7 @@ do
command="${LIBTOOLIZE-libtoolize} -c -f"
fi
echo "$0: $command ..."
- $command || exit
+ eval "$command" || exit
done
diff --git a/bootstrap.conf b/bootstrap.conf
index 5a12b695..2de61cb5 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -20,8 +20,8 @@ gnulib_modules='
announce-gen argmatch assert config-h c-strcase configmake dirname
error extensions fopen-safer gendocs getopt-gnu gettext
git-version-gen hash inttypes javacomp-script javaexec-script
- maintainer-makefile malloc-gnu mbswidth obstack pipe quote quotearg
- realloc-posix stdbool stpcpy strerror strtoul strverscmp unistd
+ maintainer-makefile malloc-gnu mbswidth obstack quote quotearg
+ realloc-posix spawn-pipe stdbool stpcpy strerror strtoul strverscmp unistd
unistd-safer unlocked-io update-copyright unsetenv verify warnings
xalloc xalloc-die xstrndup
diff --git a/build-aux/.gitignore b/build-aux/.gitignore
index af528906..1b199b47 100644
--- a/build-aux/.gitignore
+++ b/build-aux/.gitignore
@@ -1,3 +1,4 @@
+
/announce-gen
/arg-nonnull.h
/c++defs.h
@@ -20,3 +21,4 @@
/vc-list-files
/warn-on-use.h
/ylwrap
+
diff --git a/doc/.gitignore b/doc/.gitignore
index bcdd8c0e..c5c73a43 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1,3 +1,4 @@
+
/*.info*
/*~
/.dirstamp
@@ -25,3 +26,4 @@
/stamp-vti
/version.texi
/yacc.1
+
diff --git a/gnulib b/gnulib
-Subproject 9aa2d4c522f12870229df0fd01d3140bddf9431
+Subproject eff4c0360a0de49d22629d3bdbd15460c0615ce
diff --git a/lib/.gitignore b/lib/.gitignore
index 574e1574..f3d5da64 100644
--- a/lib/.gitignore
+++ b/lib/.gitignore
@@ -1,3 +1,4 @@
+
/*.a
/*.bak
/*.o
@@ -6,6 +7,7 @@
/.dirstamp
/Makefile
/Makefile.in
+/alignof.h
/alloca.h
/alloca.in.h
/arg-nonnull.h
@@ -32,6 +34,7 @@
/dirname-lgpl.c
/dirname.c
/dirname.h
+/dosname.h
/dup-safer-flag.c
/dup-safer.c
/dup2.c
@@ -72,6 +75,7 @@
/intprops.h
/inttypes.h
/inttypes.in.h
+/ioctl.c
/isnan.c
/isnand-nolibm.h
/isnand.c
@@ -90,12 +94,12 @@
/mbswidth.h
/memchr.c
/memchr.valgrind
+/nonblocking.c
+/nonblocking.h
/obstack.c
/obstack.h
/open.c
/pipe-safer.c
-/pipe.c
-/pipe.h
/pipe2-safer.c
/pipe2.c
/printf-args.c
@@ -130,6 +134,8 @@
/sigprocmask.c
/size_max.h
/snprintf.c
+/spawn-pipe.c
+/spawn-pipe.h
/spawn.h
/spawn.in.h
/spawn_faction_addclose.c
@@ -175,6 +181,10 @@
/strtoul.c
/strverscmp.c
/sys
+/sys_ioctl.h
+/sys_ioctl.in.h
+/sys_socket.h
+/sys_socket.in.h
/sys_stat.h
/sys_stat.in.h
/sys_wait.h
@@ -198,6 +208,7 @@
/vfprintf.c
/vsnprintf.c
/vsprintf.c
+/w32sock.h
/w32spawn.h
/wait-process.c
/wait-process.h
@@ -214,3 +225,4 @@
/xsize.h
/xstrndup.c
/xstrndup.h
+
diff --git a/m4/.gitignore b/m4/.gitignore
index c6ef63e5..d7a4a8f5 100644
--- a/m4/.gitignore
+++ b/m4/.gitignore
@@ -1,3 +1,4 @@
+
/00gnulib.m4
/alloca.m4
/argmatch.m4
@@ -6,6 +7,7 @@
/cloexec.m4
/codeset.m4
/config-h.m4
+/configmake.m4
/dirname.m4
/dos.m4
/double-slash-root.m4
@@ -44,6 +46,7 @@
/inttypes-pri.m4
/inttypes.m4
/inttypes_h.m4
+/ioctl.m4
/isnand.m4
/isnanf.m4
/isnanl.m4
@@ -72,7 +75,6 @@
/nls.m4
/nocrash.m4
/open.m4
-/pipe.m4
/pipe2.m4
/po.m4
/posix_spawn.m4
@@ -96,6 +98,9 @@
/size_max.m4
/snprintf-posix.m4
/snprintf.m4
+/socklen.m4
+/sockpfaf.m4
+/spawn-pipe.m4
/spawn_h.m4
/sprintf-posix.m4
/stat.m4
@@ -115,6 +120,8 @@
/strtol.m4
/strtoul.m4
/strverscmp.m4
+/sys_ioctl_h.m4
+/sys_socket_h.m4
/sys_stat_h.m4
/sys_wait_h.m4
/threadlib.m4
@@ -139,3 +146,4 @@
/xalloc.m4
/xsize.m4
/xstrndup.m4
+
diff --git a/po/.gitignore b/po/.gitignore
index 79594c04..cb5df535 100644
--- a/po/.gitignore
+++ b/po/.gitignore
@@ -1,3 +1,4 @@
+
/*.gmo
/*.po
/*.po~
@@ -20,3 +21,4 @@
/remove-potcdate.sed
/remove-potcdate.sin
/stamp-po
+
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8c1b5966..b62e8a10 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -22,7 +22,7 @@ lib/bitset_stats.c
lib/error.c
lib/getopt.c
lib/obstack.c
-lib/pipe.c
+lib/spawn-pipe.c
lib/quotearg.c
lib/timevar.c
lib/w32spawn.h
diff --git a/runtime-po/.gitignore b/runtime-po/.gitignore
index 44ff8963..3b04a58c 100644
--- a/runtime-po/.gitignore
+++ b/runtime-po/.gitignore
@@ -1,3 +1,4 @@
+
/*.gmo
/*.po
/*.po~
@@ -20,3 +21,4 @@
/remove-potcdate.sed
/remove-potcdate.sin
/stamp-po
+
diff --git a/src/output.c b/src/output.c
index d62b8f0b..207eba96 100644
--- a/src/output.c
+++ b/src/output.c
@@ -24,8 +24,8 @@
#include <configmake.h>
#include <error.h>
#include <get-errno.h>
-#include <pipe.h>
#include <quotearg.h>
+#include <spawn-pipe.h>
#include <timevar.h>
#include <wait-process.h>
diff --git a/submodules/autoconf b/submodules/autoconf
-Subproject 2b0d95faef68d7ed7c08b0edb9ff1c38728376f
+Subproject 8cb01740a0b7044feafcc51ea980583311e52a9