From a801089ca3a86b89374dfbcc790944a9aad1aebd 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. (cherry picked from commit a898435b25eca4869e8c49b2b0fb1f649b030ce7) Conflicts: build-aux/.gitignore --- .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 84bc9136..63a50100 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 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 <&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 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 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 d62b8f0b..207eba96 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