>From 7bc983dde89f2fa736846087cf796ab32c64b5cb Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Sun, 11 May 2025 09:56:37 -0700 Subject: [PATCH] build: update gnulib submodule to latest * bootstrap: Update using './bootstrap --bootstrap-sync'. --- bootstrap | 58 ++++++++++++++++++++++++++++++++++++------------------- gnulib | 2 +- 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/bootstrap b/bootstrap index a0af39c2e..fef3cbcd3 100755 --- a/bootstrap +++ b/bootstrap @@ -37,7 +37,7 @@ medir=`dirname "$me"` # A library of shell functions for autopull.sh, autogen.sh, and bootstrap. -scriptlibversion=2024-11-12.21; # UTC +scriptlibversion=2025-02-16.12; # UTC # Copyright (C) 2003-2025 Free Software Foundation, Inc. # @@ -152,7 +152,8 @@ po_download_command_format=\ "wget --mirror --level=1 -nd -nv -A.po -P '%s' \ https://translationproject.org/latest/%s/" -# Prefer a non-empty tarname (4th argument of AC_INIT if given), else +# When extracting the package name from an AC_INIT invocation, +# prefer a non-empty tarname (4th argument of AC_INIT if given), else # fall back to the package name (1st argument with munging). extract_package_name=' /^AC_INIT(\[*/{ @@ -164,17 +165,20 @@ extract_package_name=' q } s/[],)].*// - s/^GNU // - y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g p } ' -package=$(${AUTOCONF:-autoconf} --trace AC_INIT:\$4 configure.ac 2>/dev/null) +normalize_package_name=' + s/^GNU // + y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g +' +package=$(${AUTOCONF:-autoconf} --trace 'AC_INIT:$4' configure.ac 2>/dev/null) if test -z "$package"; then package=$(sed -n "$extract_package_name" configure.ac) \ || die 'cannot find package name in configure.ac' fi +package=$(echo "$package" | sed "$normalize_package_name") gnulib_name=lib$package build_aux=build-aux @@ -576,18 +580,11 @@ prepare_GNULIB_SRCDIR () || cleanup_gnulib else # GNULIB_REFDIR is not set or not usable. Ignore it. - shallow= + shallow='--depth 2' 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 @@ -596,13 +593,34 @@ prepare_GNULIB_SRCDIR () # 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 + # $GNULIB_REVISION can be a commit id, a tag name, or a branch name. + mkdir -p "$gnulib_path" + # Use a -c option to silence an annoying message + # "hint: Using 'master' as the name for the initial branch." + # (cf. ). + git -C "$gnulib_path" -c init.defaultBranch=master 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 + if git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" + then + # "git fetch" of the specific commit succeeded. + git -C "$gnulib_path" reset --hard FETCH_HEAD \ + || cleanup_gnulib + # "git fetch" does not fetch tags (at least in git version 2.43). + # If $GNULIB_REVISION is a tag (not a commit id or branch name), + # add the tag explicitly. + revision=`git -C "$gnulib_path" log -1 --pretty=format:%H` + branch=`LC_ALL=C git -C "$gnulib_path" remote show origin \ + | sed -n -e 's/^ \([^ ]*\) * tracked$/\1/p'` + test "$revision" = "$GNULIB_REVISION" \ + || test "$branch" = "$GNULIB_REVISION" \ + || git -C "$gnulib_path" tag "$GNULIB_REVISION" + else + # Fetch the entire repository. + git -C "$gnulib_path" fetch origin \ + || cleanup_gnulib + git -C "$gnulib_path" checkout "$GNULIB_REVISION" \ + || cleanup_gnulib + fi fi fi trap - HUP INT PIPE TERM diff --git a/gnulib b/gnulib index 955360a66..a92aa1799 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 955360a66c99bdd9ac3688519a8b521b06958fd3 +Subproject commit a92aa179978a136fa9cc9023d02b5529b19a2210 -- 2.49.0