Run 'make update-gnulib-to-latest'; there have been 1127 commits on gnulib
since the last update.
* gnulib: Update to latest.
* bootstrap: Likewise.
* bootstrap-funclib.sh: Likewise.
* cfg.mk (exclude_file_name_regexp--sc_fsf_postal): Add to exempt the
script build-aux/src-sniff.py from this syntax-check.
---
bootstrap | 9 +--
bootstrap-funclib.sh | 139 ++++++++++++++++++++++++++++---------------
cfg.mk | 1 +
gnulib | 2 +-
4 files changed, 98 insertions(+), 53 deletions(-)
diff --git a/bootstrap b/bootstrap
index 4beae0e9..5780ae5a 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,9 +1,9 @@
#! /bin/sh
# Bootstrap this package from checked-out sources.
-scriptversion=2024-04-13.15; # UTC
+scriptversion=2024-07-04.10; # UTC
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 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
@@ -117,7 +117,8 @@ Gnulib sources can be fetched in various ways:
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
are cloned into that directory using git from \$GNULIB_URL, defaulting
- to $default_gnulib_url.
+ to $default_gnulib_url; if GNULIB_REFDIR is set and is a git repository
+ its contents may be used to accelerate the process.
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
then that revision is checked out.
@@ -237,7 +238,7 @@ fi
# ----------------------------------------------------------------------------
# Local Variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp nil t)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
diff --git a/bootstrap-funclib.sh b/bootstrap-funclib.sh
index 21297bff..793c7e60 100644
--- a/bootstrap-funclib.sh
+++ b/bootstrap-funclib.sh
@@ -1,6 +1,6 @@
# A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
-scriptlibversion=2024-04-28.09; # UTC
+scriptlibversion=2024-11-25.15; # UTC
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
#
@@ -468,11 +468,10 @@ prepare_GNULIB_SRCDIR ()
# if the GNULIB_REVISION is a commit hash that only exists in
# origin. In this case, we need a 'git fetch' and then retry
# 'git checkout "$GNULIB_REVISION"'.
- (cd "$GNULIB_SRCDIR" \
- && { git checkout "$GNULIB_REVISION" 2>/dev/null \
- || { git fetch origin && git checkout "$GNULIB_REVISION"; }
- }
- ) || exit $?
+ git -C "$GNULIB_SRCDIR" checkout "$GNULIB_REVISION" 2>/dev/null \
+ || { git -C "$GNULIB_SRCDIR" fetch origin \
+ && git -C "$GNULIB_SRCDIR" checkout "$GNULIB_REVISION"; } \
+ || exit $?
fi
else
if ! $use_git; then
@@ -491,7 +490,7 @@ prepare_GNULIB_SRCDIR ()
if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git; then
# Use GNULIB_REFDIR as a reference.
echo "$0: getting gnulib files..."
- git submodule update --init --reference "$GNULIB_REFDIR"
"$gnulib_path" \
+ git submodule update --init --reference "$GNULIB_REFDIR"
"$gnulib_path"\
|| exit $?
else
# GNULIB_REFDIR is not set or not usable. Ignore it.
@@ -509,33 +508,65 @@ prepare_GNULIB_SRCDIR ()
# The subdirectory 'gnulib' does not yet exist. Clone into it.
echo "$0: getting gnulib files..."
trap cleanup_gnulib HUP INT PIPE TERM
- shallow=
- if test -z "$GNULIB_REVISION"; then
- if git clone -h 2>&1 | grep -- --depth > /dev/null; then
- shallow='--depth 2'
- fi
- git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path"
\
- || cleanup_gnulib
+ gnulib_url=${GNULIB_URL:-$default_gnulib_url}
+ if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git; then
+ # Use GNULIB_REFDIR as a reference.
+ git clone "$GNULIB_REFDIR" "$gnulib_path" \
+ && git -C "$gnulib_path" remote set-url origin "$gnulib_url" \
+ && if test -z "$GNULIB_REVISION"; then
+ git -C "$gnulib_path" pull origin \
+ && {
+ # We want the default branch of "$gnulib_url" (since that's
+ # the behaviour if GNULIB_REFDIR is not specified), not the
+ # current branch of "$GNULIB_REFDIR".
+ default_branch=`LC_ALL=C git -C "$gnulib_path" \
+ remote show origin \
+ | sed -n -e 's/^ *HEAD branch: //p'`
+ test -n "$default_branch" || default_branch='master'
+ git -C "$gnulib_path" checkout "$default_branch"
+ }
+ else
+ # The 'git checkout "$GNULIB_REVISION"' command succeeds if the
+ # GNULIB_REVISION is a commit hash that exists locally, or if it
+ # is a branch name that can be fetched from origin. It fails,
+ # however, if the GNULIB_REVISION is a commit hash that only
+ # exists in origin. In this case, we need a 'git fetch' and then
+ # retry 'git checkout "$GNULIB_REVISION"'.
+ git -C "$gnulib_path" checkout "$GNULIB_REVISION" 2>/dev/null \
+ || { git -C "$gnulib_path" fetch origin \
+ && git -C "$gnulib_path" checkout "$GNULIB_REVISION"; }
+ fi \
+ || cleanup_gnulib
else
- if git fetch -h 2>&1 | grep -- --depth > /dev/null; then
- shallow='--depth 2'
+ # GNULIB_REFDIR is not set or not usable. Ignore it.
+ shallow=
+ if test -z "$GNULIB_REVISION"; then
+ if git clone -h 2>&1 | grep -- --depth > /dev/null; then
+ shallow='--depth 2'
+ fi
+ git clone $shallow "$gnulib_url" "$gnulib_path" \
+ || cleanup_gnulib
+ else
+ if git fetch -h 2>&1 | grep -- --depth > /dev/null; then
+ shallow='--depth 2'
+ fi
+ mkdir -p "$gnulib_path"
+ # Only want a shallow checkout of $GNULIB_REVISION, but git does
not
+ # support cloning by commit hash. So attempt a shallow fetch by
+ # commit hash to minimize the amount of data downloaded and changes
+ # needed to be processed, which can drastically reduce download and
+ # processing time for checkout. If the fetch by commit fails, a
+ # shallow fetch cannot be performed because we do not know what the
+ # depth of the commit is without fetching all commits. So fall back
+ # to fetching all commits.
+ git -C "$gnulib_path" init
+ git -C "$gnulib_path" remote add origin "$gnulib_url"
+ git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
+ || git -C "$gnulib_path" fetch origin \
+ || cleanup_gnulib
+ git -C "$gnulib_path" reset --hard FETCH_HEAD
+ git -C "$gnulib_path" checkout "$GNULIB_REVISION" || cleanup_gnulib
fi
- mkdir -p "$gnulib_path"
- # Only want a shallow checkout of $GNULIB_REVISION, but git does not
- # support cloning by commit hash. So attempt a shallow fetch by
commit
- # hash to minimize the amount of data downloaded and changes needed
to
- # be processed, which can drastically reduce download and processing
- # time for checkout. If the fetch by commit fails, a shallow fetch
can
- # not be performed because we do not know what the depth of the
commit
- # is without fetching all commits. So fall back to fetching all
- # commits.
- git -C "$gnulib_path" init
- git -C "$gnulib_path" remote add origin
${GNULIB_URL:-$default_gnulib_url}
- git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
- || git -C "$gnulib_path" fetch origin \
- || cleanup_gnulib
- git -C "$gnulib_path" reset --hard FETCH_HEAD
- (cd "$gnulib_path" && git checkout "$GNULIB_REVISION") ||
cleanup_gnulib
fi
trap - HUP INT PIPE TERM
else
@@ -543,16 +574,15 @@ prepare_GNULIB_SRCDIR ()
if test -n "$GNULIB_REVISION"; then
if test -d "$gnulib_path/.git"; then
# The 'git checkout "$GNULIB_REVISION"' command succeeds if the
- # GNULIB_REVISION is a commit hash that exists locally, or if it is
- # branch name that can be fetched from origin. It fails, however,
- # if the GNULIB_REVISION is a commit hash that only exists in
- # origin. In this case, we need a 'git fetch' and then retry
- # 'git checkout "$GNULIB_REVISION"'.
- (cd "$gnulib_path" \
- && { git checkout "$GNULIB_REVISION" 2>/dev/null \
- || { git fetch origin && git checkout "$GNULIB_REVISION"; }
- }
- ) || exit $?
+ # GNULIB_REVISION is a commit hash that exists locally, or if it
+ # is a branch name that can be fetched from origin. It fails,
+ # however, if the GNULIB_REVISION is a commit hash that only
+ # exists in origin. In this case, we need a 'git fetch' and then
+ # retry 'git checkout "$GNULIB_REVISION"'.
+ git -C "$gnulib_path" checkout "$GNULIB_REVISION" 2>/dev/null \
+ || { git -C "$gnulib_path" fetch origin \
+ && git -C "$gnulib_path" checkout "$GNULIB_REVISION"; } \
+ || exit $?
else
die "Error: GNULIB_REVISION is specified in bootstrap.conf," \
"but '$gnulib_path' contains no git history"
@@ -682,7 +712,8 @@ Gnulib sources can be fetched in various ways:
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
are cloned into that directory using git from \$GNULIB_URL, defaulting
- to $default_gnulib_url.
+ to $default_gnulib_url; if GNULIB_REFDIR is set and is a git repository
+ its contents may be used to accelerate the process.
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
then that revision is checked out.
@@ -850,9 +881,7 @@ update_po_files() {
&& ls "$ref_po_dir"/*.po 2>/dev/null |
sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
- langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
- test "$langs" = '*' && langs=x
- for po in $langs; do
+ for po in x $(ls $ref_po_dir | sed -n 's/\.po$//p'); do
case $po in x) continue;; esac
new_po="$ref_po_dir/$po.po"
cksum_file="$ref_po_dir/$po.s1"
@@ -1216,6 +1245,20 @@ autogen()
$gnulib_tool $gnulib_tool_options --import $gnulib_modules \
|| die "gnulib-tool failed"
+ if test $with_gettext = yes && test ! -f $m4_base/gettext.m4; then
+ # The gnulib-tool invocation has removed $m4_base/gettext.m4, that the
+ # AUTOPOINT invocation had installed. This can occur when the gnulib
+ # module 'gettext' was previously present but is now not present any
more.
+ # Repeat the AUTOPOINT invocation and the gnulib-tool invocation.
+
+ echo "$0: $AUTOPOINT --force"
+ $AUTOPOINT --force || return
+
+ echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
+ $gnulib_tool $gnulib_tool_options --import $gnulib_modules \
+ || die "gnulib-tool failed"
+ fi
+
for file in $gnulib_files; do
symlink_to_dir "$GNULIB_SRCDIR" $file \
|| die "failed to symlink $file"
@@ -1301,7 +1344,7 @@ autogen()
|| die 'cannot generate runtime-po/Makevars'
# Copy identical files from po to runtime-po.
- (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+ cp -p po/Makefile.in.in po/*-quot po/*.header po/*.sed po/*.sin
runtime-po
fi
fi
@@ -1313,7 +1356,7 @@ autogen()
# ----------------------------------------------------------------------------
# Local Variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp nil t)
# time-stamp-start: "scriptlibversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
diff --git a/cfg.mk b/cfg.mk
index 6e87f202..4de155ae 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -29,6 +29,7 @@ local-checks-to-skip += sc_error_message_period
sc_error_message_uppercase \
sc_file_system sc_indent
exclude_file_name_regexp--sc_obsolete_symbols = build-aux/src-sniff\.py
+exclude_file_name_regexp--sc_fsf_postal = build-aux/src-sniff\.py
exclude_file_name_regexp--sc_space_tab = \
xargs/testsuite/(inputs/.*\.xi|xargs.(gnu|posix|sysv)/.*\.xo)|find/testsuite/test_escapechars\.golden$$
diff --git a/gnulib b/gnulib
index 623bcc22..2da5a78b 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 623bcc22f4744b409ac5e1c00c3b6fd6494b49ce
+Subproject commit 2da5a78bb0b876a4d02db9152c586a243a34379a
--
2.47.1