[libvirt] [PATCH] maint: update to latest gnulib

Several portability changes, but the one we are most interested in is the improvement to bootstrap to detect perl modules. This patch doesn't actually change our bootstrap requirements (that will be a separate patch), but sets the stage for it. * .gnulib: Update to latest, for bootstrap improvements. * bootstrap: Regenerate from upstream. Signed-off-by: Eric Blake <eblake@redhat.com> --- Upstream gnulib is still working out an issue with modern mingw supporting %lld in printf by default; until that is sorted, we do not want to pick up gnulib cf88e56 in isolation. Pushing under the gnulib maintenance rule, before we freeze. * .gnulib 9565c3b...3914f31 (67):
bootstrap: Allow perl modules in $buildreq apply _GL_ATTRIBUTE_PURE to some inline functions vasnprintf: fix potential incorrect errno vasnprintf: fix potential use after free autoupdate filevercmp, posixtm: avoid compiler warnings with -O3 Fix LDBL80_WORDS macro on big endian platforms. autoupdate git-version-gen: do not print new line characters gnulib-tool: recognize x:* as an absolute path argp: avoid extraneous translation and mem leak with empty pre doc autoupdate doc: mention that _BSD_SOURCE is deprecated for _DEFAULT_SOURCE uniname/uniname-tests: skip if system's libunistring is used printf: fix configure check on big endian systems pipe-filter-gi, pipe-filter-ii: port to AIX gitlog-to-changelog: add --until update from texinfo extern-inline: update commentary about GCC bugs gen-uni-tables: untabify gen-uni-tables: check out-of-range values added to 3-level tables gen-uni-tables: utilize 'assert' gen-uni-tables: cosmetic improvements fcntl-h-tests: port to PA-RISC GNU/Linux fts: port to C89 unistd: port to iOS obstack: do not reject malloc-style obstack_chunkfun, obstack_freefun autoupdate update from texinfo obstack: avoid potentially-nonportable function casts obstack: fix macro return values obstack: do not assume system-supplied obstack is size_t safe obstack: port to platforms that #define __alignof__ linkat: don't unconditionally replace on GNU/Linux linkat: wrap to handle symlinks on OS X 10.10 open, openat: document nonstandard FreeBSD, NetBSD O_NOFOLLOW errno obstack: add NEWS entry for recent incompatible changes mountlist: don't use libmount to decide on dummy/remote maint: add missing ChangeLog entries for Modra's obstack changes obstack: prefer __alignof__ to alignof obstack: prefer alignof to calculating alignments by hand obstack: use size_t alignments and check for overflow obstack: 64-bit obstack support, part 3 obstack: 64-bit obstack support, part 2 obstack: 64-bit obstack support, part 1 obstack: tidy part 2 obstack: tidy part 1 socketlib, sockets, sys_socket: Use AC_REQUIRE to pacify autoconf. iconv: avoid false detection of non-working iconv bootstrap: print more diagnostics for missing programs bootstrap: only update the gnulib submodule symlinkat: port to AIX 7.1 readlinkat: port to AIX 7.1 remove spurious { modules/fcntl: fix error reporting by dupfd basename, dirname: Improve documentation. exclude: declare exclude_patopts static autoupdate dirname: support compilation with C++ qsort_r: include <config.h> avltree-list: avoid compiler warnings qsort_r: new module, for GNU-style qsort_r strerror_r-posix: support compilation with C++ fcntl-h: fix compilation with Intel C++ compiler autoupdate mountlist: use /proc/self/mountinfo when available users.txt: add cmogstored
--- .gnulib | 2 +- bootstrap | 42 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/.gnulib b/.gnulib index 9565c3b..3914f31 160000 --- a/.gnulib +++ b/.gnulib @@ -1 +1 @@ -Subproject commit 9565c3be73eb6d76b7b42a21d68d2e00a62abb6d +Subproject commit 3914f3153576e9a5ba4002bde27de05211b5a79c diff --git a/bootstrap b/bootstrap index ce90bc4..e0c4ec2 100755 --- a/bootstrap +++ b/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh # Print a version string. -scriptversion=2013-12-05.23; # UTC +scriptversion=2014-12-08.12; # UTC # Bootstrap this package from checked-out sources. @@ -42,6 +42,9 @@ export LC_ALL local_gl_dir=gl +# Honour $PERL, but work even if there is none +PERL="${PERL-perl}" + me=$0 usage() { @@ -210,7 +213,17 @@ bootstrap_sync=false use_git=true check_exists() { - ($1 --version </dev/null) >/dev/null 2>&1 + if test "$1" = "--verbose"; then + ($2 --version </dev/null) >/dev/null 2>&1 + if test $? -ge 126; then + # If not found, run with diagnostics as one may be + # presented with env variables to set to find the right version + ($2 --version </dev/null) + fi + else + ($1 --version </dev/null) >/dev/null 2>&1 + fi + test $? -lt 126 } @@ -408,7 +421,7 @@ sort_ver() { # sort -V is not generally available get_version() { app=$1 - $app --version >/dev/null 2>&1 || return 1 + $app --version >/dev/null 2>&1 || { $app --version; return 1; } $app --version 2>&1 | sed -n '# Move version to start of line. @@ -446,6 +459,7 @@ check_versions() { test "$appvar" = TAR && appvar=AMTAR case $appvar in GZIP) ;; # Do not use $GZIP: it contains gzip options. + PERL::*) ;; # Keep perl modules as-is *) eval "app=\${$appvar-$app}" ;; esac @@ -463,11 +477,22 @@ check_versions() { ret=1 continue } ;; + # Another check is for perl modules. These can be written as + # e.g. perl::XML::XPath in case of XML::XPath module, etc. + perl::*) + # Extract module name + app="${app#perl::}" + if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then + warn_ "Error: perl module '$app' not found" + ret=1 + fi + continue + ;; esac if [ "$req_ver" = "-" ]; then # Merely require app to exist; not all prereq apps are well-behaved # so we have to rely on $? rather than get_version. - if ! check_exists $app; then + if ! check_exists --verbose $app; then warn_ "Error: '$app' not found" ret=1 fi @@ -598,8 +623,8 @@ case ${GNULIB_SRCDIR--} in # Note that $use_git is necessarily true in this case. if git_modules_config submodule.gnulib.url >/dev/null; then echo "$0: getting gnulib files..." - git submodule init || exit $? - git submodule update || exit $? + git submodule init -- "$gnulib_path" || exit $? + git submodule update -- "$gnulib_path" || exit $? elif [ ! -d "$gnulib_path" ]; then echo "$0: getting gnulib files..." @@ -628,13 +653,14 @@ case ${GNULIB_SRCDIR--} in # This fallback allows at least git 1.5.5. if test -f "$gnulib_path"/gnulib-tool; then # Since file already exists, assume submodule init already complete. - git submodule update || exit $? + git submodule update -- "$gnulib_path" || exit $? else # Older git can't clone into an empty directory. rmdir "$gnulib_path" 2>/dev/null git clone --reference "$GNULIB_SRCDIR" \ "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ - && git submodule init && git submodule update \ + && git submodule init -- "$gnulib_path" \ + && git submodule update -- "$gnulib_path" \ || exit $? fi fi -- 1.9.3
participants (1)
-
Eric Blake