From: Pádraig Brady
Date: Sun, 1 Jan 2023 13:39:25 +0000 (+0000) Subject: build: update gnulib submodule to latest X-Git-Tag: v9.2~98 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0239f2a782cb6b2181f29b34cd80c06bb704a2ef;p=thirdparty%2Fcoreutils.git build: update gnulib submodule to latest mainly to get updated copyright year * tests/init.sh: Sync with gnulib --- diff --git a/gnulib b/gnulib index 440b528b1d..875461ffdf 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 440b528b1d81dd31b2a2e4dde20d5c837c147811 +Subproject commit 875461ffdf58ac04677957b4ae4160465b83b940 diff --git a/tests/init.sh b/tests/init.sh index 933fdd40f3..7d6afd16e2 100755 --- a/tests/init.sh +++ b/tests/init.sh @@ -271,12 +271,10 @@ test -n "$EXEEXT" && test -n "$BASH_VERSION" && shopt -s expand_aliases # # First, try to use the mktemp program. # Failing that, we'll roll our own mktemp-like function: -# - try to get random bytes from /dev/urandom +# - try to get random bytes from /dev/urandom, mapping them to file-name bytes # - failing that, generate output from a combination of quickly-varying -# sources and gzip. Ignore non-varying gzip header, and extract -# "random" bits from there. -# - given those bits, map to file-name bytes using tr, and try to create -# the desired directory. +# sources and awk. +# - try to create the desired directory. # - make only $MAX_TRIES_ attempts # Helper function. Print $N pseudo-random bytes from a-zA-Z0-9. @@ -296,20 +294,27 @@ rand_bytes_ () return fi - n_plus_50_=`expr $n_ + 50` - cmds_='date; date +%N; free; who -a; w; ps auxww; ps -ef' - data_=` (eval "$cmds_") 2>&1 | gzip ` - - # Ensure that $data_ has length at least 50+$n_ - while :; do - len_=`echo "$data_"|wc -c` - test $n_plus_50_ -le $len_ && break; - data_=` (echo "$data_"; eval "$cmds_") 2>&1 | gzip ` - done - - echo "$data_" \ - | dd bs=1 skip=50 count=$n_ 2>/dev/null \ - | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_ + # Fall back on quickly-varying sources + awk. + # Limit awk program to 7th Edition Unix so that it works even on Solaris 10. + + (date; date +%N; free; who -a; w; ps auxww; ps -ef) 2>&1 | awk ' + BEGIN { + n = '"$n_"' + for (i = 0; i < 256; i++) + ordinal[sprintf ("%c", i)] = i + } + { + for (i = 1; i <= length; i++) + a[ai++ % n] += ordinal[substr ($0, i, 1)] + } + END { + chars = "'"$chars_"'" + charslen = length (chars) + for (i = 0; i < n; i++) + printf "%s", substr (chars, a[i] % charslen + 1, 1) + printf "\n" + } + ' } mktempd_ () @@ -697,4 +702,4 @@ test -f "$srcdir/init.cfg" \ setup_ "$@" # This trap is here, rather than in the setup_ function, because some # shells run the exit trap at shell function exit, rather than script exit. -trap remove_tmp_ 0 +trap remove_tmp_ EXIT