[PATCH 1/2] maint: update gnulib to latest

2022-01-02 Thread Bernhard Voelker
Run 'make update-gnulib-to-latest', mainly to update the copyright
year numbers with:

  > maint: run 'make update-copyright'

* bootstrap: Sync from gnulib/build-aux/bootstrap.
* gnulib: Update to latest.
* tests/init.sh: Sync from 'gnulib/tests/init.sh'.
---
 bootstrap | 2 +-
 gnulib| 2 +-
 tests/init.sh | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/bootstrap b/bootstrap
index 63e76dee..96588618 100755
--- a/bootstrap
+++ b/bootstrap
@@ -4,7 +4,7 @@ scriptversion=2021-04-11.09; # UTC
 
 # Bootstrap this package from checked-out sources.
 
-# Copyright (C) 2003-2021 Free Software Foundation, Inc.
+# Copyright (C) 2003-2022 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
diff --git a/gnulib b/gnulib
index 5209414e..75541c6a 16
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 5209414e95ed830b8b687ae71be8911ef0969e3e
+Subproject commit 75541c6adaf6fc45541a35d2c8803b9b68f2a7fc
diff --git a/tests/init.sh b/tests/init.sh
index a975592f..933fdd40 100755
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -1,6 +1,6 @@
 # source this file; set up for tests
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2022 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
-- 
2.34.1




[PATCH 1/2] maint: update gnulib to latest

2021-12-30 Thread Bernhard Voelker
Run 'make update-gnulib-to-latest'.

* bootstrap: Sync from gnulib/build-aux/bootstrap.
* gnulib: Update to latest.
---
 bootstrap | 220 +++---
 gnulib|   2 +-
 2 files changed, 111 insertions(+), 111 deletions(-)

diff --git a/bootstrap b/bootstrap
index 73365985..63e76dee 100755
--- a/bootstrap
+++ b/bootstrap
@@ -313,6 +313,116 @@ find_tool ()
   eval "export $find_tool_envvar"
 }
 
+# Strip blank and comment lines to leave significant entries.
+gitignore_entries() {
+  sed '/^#/d; /^$/d' "$@"
+}
+
+# If $STR is not already on a line by itself in $FILE, insert it at the start.
+# Entries are inserted at the start of the ignore list to ensure existing
+# entries starting with ! are not overridden.  Such entries support
+# whitelisting exceptions after a more generic blacklist pattern.
+insert_if_absent() {
+  file=$1
+  str=$2
+  test -f $file || touch $file
+  test -r $file || die "Error: failed to read ignore file: $file"
+  duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
+  if [ "$duplicate_entries" ] ; then
+die "Error: Duplicate entries in $file: " $duplicate_entries
+  fi
+  linesold=$(gitignore_entries $file | wc -l)
+  linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc 
-l)
+  if [ $linesold != $linesnew ] ; then
+{ echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
+  || die "insert_if_absent $file $str: failed"
+  fi
+}
+
+# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
+# insert_if_absent.
+insert_vc_ignore() {
+  vc_ignore_file="$1"
+  pattern="$2"
+  case $vc_ignore_file in
+  *.gitignore)
+# A .gitignore entry that does not start with '/' applies
+# recursively to subdirectories, so prepend '/' to every
+# .gitignore entry.
+pattern=$(echo "$pattern" | sed s,^,/,);;
+  esac
+  insert_if_absent "$vc_ignore_file" "$pattern"
+}
+
+symlink_to_dir()
+{
+  src=$1/$2
+  dst=${3-$2}
+
+  test -f "$src" && {
+
+# If the destination directory doesn't exist, create it.
+# This is required at least for "lib/uniwidth/cjk.h".
+dst_dir=$(dirname "$dst")
+if ! test -d "$dst_dir"; then
+  mkdir -p "$dst_dir"
+
+  # If we've just created a directory like lib/uniwidth,
+  # tell version control system(s) it's ignorable.
+  # FIXME: for now, this does only one level
+  parent=$(dirname "$dst_dir")
+  for dot_ig in x $vc_ignore; do
+test $dot_ig = x && continue
+ig=$parent/$dot_ig
+insert_vc_ignore $ig "${dst_dir##*/}"
+  done
+fi
+
+if $copy; then
+  {
+test ! -h "$dst" || {
+  echo "$me: rm -f $dst" &&
+  rm -f "$dst"
+}
+  } &&
+  test -f "$dst" &&
+  cmp -s "$src" "$dst" || {
+echo "$me: cp -fp $src $dst" &&
+cp -fp "$src" "$dst"
+  }
+else
+  # Leave any existing symlink alone, if it already points to the source,
+  # so that broken build tools that care about symlink times
+  # aren't confused into doing unnecessary builds.  Conversely, if the
+  # existing symlink's timestamp is older than the source, make it afresh,
+  # so that broken tools aren't confused into skipping needed builds.  See
+  # .
+  test -h "$dst" &&
+  src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
+  dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
+  test "$src_i" = "$dst_i" &&
+  both_ls=$(ls -dt "$src" "$dst") &&
+  test "X$both_ls" = "X$dst$nl$src" || {
+dot_dots=
+case $src in
+/*) ;;
+*)
+  case /$dst/ in
+  *//* | */../* | */./* | /*/*/*/*/*/)
+ die "invalid symlink calculation: $src -> $dst";;
+  /*/*/*/*/)dot_dots=../../../;;
+  /*/*/*/)  dot_dots=../../;;
+  /*/*/)dot_dots=../;;
+  esac;;
+esac
+
+echo "$me: ln -fs $dot_dots$src $dst" &&
+ln -fs "$dot_dots$src" "$dst"
+  }
+fi
+  }
+}
+
 # Override the default configuration, if necessary.
 # Make sure that bootstrap.conf is sourced from the current directory
 # if we were invoked as "sh bootstrap".
@@ -375,47 +485,6 @@ if test -n "$checkout_only_file" && test ! -r 
"$checkout_only_file"; then
   die "Bootstrapping from a non-checked-out distribution is risky."
 fi
 
-# Strip blank and comment lines to leave significant entries.
-gitignore_entries() {
-  sed '/^#/d; /^$/d' "$@"
-}
-
-# If $STR is not already on a line by itself in $FILE, insert it at the start.
-# Entries are inserted at the start of the ignore list to ensure existing
-# entries starting with ! are not overridden.  Such entries support
-# whitelisting exceptions after a more generic blacklist pattern.
-insert_if_absent() {
-  file=$1
-  str=$2
-  test -f $file || touch $file
-  test -r $file || die "Error: failed to read ignore file: $file"
-  du

[PATCH 1/2] maint: update gnulib to latest

2020-05-25 Thread Bernhard Voelker
Run 'make update-gnulib-to-latest', mainly for some performance
improvement for FTS with -L:

  > Tune fts for FTS_LOGICAL+FTS_NOSTAT

* gnulib: Update to latest.
---
 gnulib | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnulib b/gnulib
index 47bf2cf3..01e57974 16
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 47bf2cf3184027c1eb9c1dfeea5c5b8b2d69710d
+Subproject commit 01e57974abc6e78daed8a6f012a832ebd6d67ac0
-- 
2.26.2