From a898435b25eca4869e8c49b2b0fb1f649b030ce7 Mon Sep 17 00:00:00 2001 From: "Joel E. Denny" Date: Sat, 16 Apr 2011 14:59:32 -0400 Subject: [PATCH] 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. --- .gitignore | 2 + ChangeLog | 18 ++++++ README-hacking | 16 +++++ bootstrap | 138 ++++++++++++++++++++++++++---------------- bootstrap.conf | 4 +- build-aux/.gitignore | 2 + doc/.gitignore | 2 + gnulib | 2 +- lib/.gitignore | 16 ++++- m4/.gitignore | 10 ++- po/.gitignore | 2 + po/POTFILES.in | 2 +- runtime-po/.gitignore | 2 + src/output.c | 2 +- submodules/autoconf | 2 +- 15 files changed, 159 insertions(+), 61 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 0a95d2ff..70ee0043 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2011-04-16 Joel E. Denny + + 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 Fix missing updates to GPLv3. diff --git a/README-hacking b/README-hacking index f6b8903e..bd66a9bd 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 @@ -200,6 +214,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 <&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 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 02ddc05f..d5a33999 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 eb4e6bf8..582cc36b 100644 --- a/build-aux/.gitignore +++ b/build-aux/.gitignore @@ -1,3 +1,4 @@ + /Makefile /Makefile.in /announce-gen @@ -22,3 +23,4 @@ /vc-list-files /warn-on-use.h /ylwrap + diff --git a/doc/.gitignore b/doc/.gitignore index 9fc5e705..d9de64ab 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1,3 +1,4 @@ + /*.info* /*~ /.dirstamp @@ -26,3 +27,4 @@ /stamp-vti /version.texi /yacc.1 + diff --git a/gnulib b/gnulib index 9aa2d4c5..eff4c036 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 9aa2d4c522f12870229df0fd01d3140bddf94317 +Subproject commit eff4c0360a0de49d22629d3bdbd15460c0615cee 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 5e28ef9c..7f4ca64d 100644 --- a/src/output.c +++ b/src/output.c @@ -24,8 +24,8 @@ #include #include #include -#include #include +#include #include #include diff --git a/submodules/autoconf b/submodules/autoconf index 2b0d95fa..8cb01740 160000 --- a/submodules/autoconf +++ b/submodules/autoconf @@ -1 +1 @@ -Subproject commit 2b0d95faef68d7ed7c08b0edb9ff1c38728376fa +Subproject commit 8cb01740a0b7044feafcc51ea980583311e52a99 -- 2.45.2