mirror of
git://git.sv.gnu.org/coreutils
synced 2026-05-12 01:47:18 -04:00
b3ff4113fd
Update gnulib submodule to latest and use its new features. Gnulib’s new getentropy module means coreutils can now assume getentropy instead of approximating it, badly in some cases. Gnulib’s improvements to the tempname module mean coreutils no longer needs to maintain private patches. * bootstrap.conf (gnulib_modules): Remove gettimeofday. * gl/lib/randread.c (NAME_OF_NONCE_DEVICE): Remove. (get_nonce): Return success indicator. Remove bytes_bound arg. All callers changed. Rewrite by using getentropy instead of reading the nonce device and falling back on gettimeofday. Fail if getentropy fails. (randread_new): Return NULL (setting errno) if get_nonce fails. All callers changed. * gl/lib/tempname.c.diff, gl/lib/tempname.h.diff: * gl/modules/tempname.diff: Remove. * gl/modules/randread (Depends-on): Depend on getentropy, not gettimeofday. * src/ptx.c (swallow_file_in_memory): * src/shuf.c (read_input): Adjust to read_file changes in Gnulib. * src/shred.c (main): * src/shuf.c (main): * src/sort.c (random_md5_state_init): Diagnose the new form of randread_new failures: randread_new can fail now when !random_source, meaning getentropy failed.
415 lines
7.4 KiB
Plaintext
415 lines
7.4 KiB
Plaintext
# Bootstrap configuration.
|
|
|
|
# Copyright (C) 2006-2020 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
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
|
# We don't need these modules.
|
|
avoided_gnulib_modules='
|
|
--avoid=canonicalize-lgpl
|
|
--avoid=dummy
|
|
'
|
|
|
|
# gnulib modules used by this package.
|
|
gnulib_modules="
|
|
$avoided_gnulib_modules
|
|
acl
|
|
alignof
|
|
alloca
|
|
announce-gen
|
|
areadlink-with-size
|
|
argmatch
|
|
argv-iter
|
|
assert
|
|
autobuild
|
|
backupfile
|
|
backup-rename
|
|
base32
|
|
base64
|
|
btowc
|
|
buffer-lcm
|
|
c-strcase
|
|
cl-strtod
|
|
cl-strtold
|
|
calloc-gnu
|
|
canon-host
|
|
canonicalize
|
|
chmodat
|
|
chown
|
|
chownat
|
|
cloexec
|
|
closein
|
|
closeout
|
|
config-h
|
|
configmake
|
|
crypto/md5
|
|
crypto/sha1
|
|
crypto/sha256
|
|
crypto/sha512
|
|
cycle-check
|
|
d-ino
|
|
d-type
|
|
di-set
|
|
diacrit
|
|
dirfd
|
|
dirname
|
|
do-release-commit-and-tag
|
|
dtoastr
|
|
dup2
|
|
environ
|
|
error
|
|
euidaccess
|
|
exclude
|
|
exitfail
|
|
explicit_bzero
|
|
faccessat
|
|
fadvise
|
|
fchdir
|
|
fclose
|
|
fcntl
|
|
fcntl-safer
|
|
fd-reopen
|
|
fdatasync
|
|
fdopen
|
|
fdutimensat
|
|
file-has-acl
|
|
file-type
|
|
fileblocks
|
|
filemode
|
|
filenamecat
|
|
filevercmp
|
|
flexmember
|
|
fnmatch-gnu
|
|
fopen-safer
|
|
fprintftime
|
|
freopen
|
|
freopen-safer
|
|
fseeko
|
|
fstatat
|
|
fsusage
|
|
fsync
|
|
ftoastr
|
|
ftruncate
|
|
fts
|
|
full-read
|
|
full-write
|
|
getgroups
|
|
gethrxtime
|
|
getline
|
|
getloadavg
|
|
getlogin
|
|
getndelim2
|
|
getopt-gnu
|
|
getpagesize
|
|
getpass-gnu
|
|
gettext-h
|
|
gettime
|
|
getugroups
|
|
getusershell
|
|
git-version-gen
|
|
gitlog-to-changelog
|
|
gnu-make
|
|
gnu-web-doc-update
|
|
gnumakefile
|
|
gnupload
|
|
group-member
|
|
hard-locale
|
|
hash
|
|
hash-pjw
|
|
heap
|
|
host-os
|
|
human
|
|
idcache
|
|
ignore-value
|
|
inttostr
|
|
inttypes
|
|
isapipe
|
|
isatty
|
|
isblank
|
|
largefile
|
|
lchmod
|
|
lchown
|
|
ldtoastr
|
|
lib-ignore
|
|
linebuffer
|
|
link
|
|
link-follow
|
|
linkat
|
|
long-options
|
|
lstat
|
|
maintainer-makefile
|
|
malloc-gnu
|
|
manywarnings
|
|
mbrlen
|
|
mbrtowc
|
|
mbsalign
|
|
mbschr
|
|
mbslen
|
|
mbswidth
|
|
memcasecmp
|
|
memchr
|
|
memcmp2
|
|
mempcpy
|
|
memrchr
|
|
minmax
|
|
mgetgroups
|
|
mkancesdirs
|
|
mkdir
|
|
mkdir-p
|
|
mkfifo
|
|
mknod
|
|
mkostemp
|
|
mkstemp
|
|
mktime
|
|
modechange
|
|
mountlist
|
|
mpsort
|
|
netinet_in
|
|
non-recursive-gnulib-prefix-hack
|
|
nproc
|
|
nstrftime
|
|
obstack
|
|
open
|
|
openat-safer
|
|
parse-datetime
|
|
pathmax
|
|
perl
|
|
physmem
|
|
pipe-posix
|
|
pipe2
|
|
posix-shell
|
|
posixtm
|
|
posixver
|
|
priv-set
|
|
progname
|
|
propername
|
|
pthread-cond
|
|
pthread-mutex
|
|
pthread-thread
|
|
pthread_sigmask
|
|
putenv
|
|
quote
|
|
quotearg
|
|
randint
|
|
randperm
|
|
read-file
|
|
readlink
|
|
readtokens
|
|
readtokens0
|
|
readutmp
|
|
realloc-gnu
|
|
regex
|
|
remove
|
|
rename
|
|
renameat
|
|
renameatu
|
|
rmdir
|
|
root-dev-ino
|
|
rpmatch
|
|
safe-read
|
|
same
|
|
save-cwd
|
|
savedir
|
|
savewd
|
|
select
|
|
selinux-at
|
|
setenv
|
|
settime
|
|
sig2str
|
|
sigaction
|
|
smack
|
|
ssize_t
|
|
stat-macros
|
|
stat-size
|
|
stat-time
|
|
statat
|
|
stdbool
|
|
stdlib-safer
|
|
stpcpy
|
|
stpncpy
|
|
strdup-posix
|
|
strncat
|
|
strnumcmp
|
|
strsignal
|
|
strtoimax
|
|
strtoumax
|
|
symlinkat
|
|
sys_ioctl
|
|
sys_resource
|
|
sys_stat
|
|
sys_wait
|
|
tempname
|
|
termios
|
|
time_rz
|
|
timer-time
|
|
timespec
|
|
tzset
|
|
uname
|
|
unicodeio
|
|
unistd-safer
|
|
unlink-busy
|
|
unlinkat
|
|
unlinkdir
|
|
unlocked-io
|
|
unsetenv
|
|
update-copyright
|
|
uptime
|
|
useless-if-before-free
|
|
userspec
|
|
utimecmp
|
|
utimens
|
|
vasprintf-posix
|
|
vc-list-files
|
|
verify
|
|
verror
|
|
version-etc-fsf
|
|
wchar-single
|
|
wcswidth
|
|
wcwidth
|
|
winsz-ioctl
|
|
winsz-termios
|
|
write-any-file
|
|
xalloc
|
|
xbinary-io
|
|
xdectoint
|
|
xfts
|
|
xgetcwd
|
|
xgetgroups
|
|
xgethostname
|
|
xmemcoll
|
|
xnanosleep
|
|
xprintf
|
|
xprintf-posix
|
|
xreadlink
|
|
xstrtod
|
|
xstrtoimax
|
|
xstrtol
|
|
xstrtol-error
|
|
xstrtold
|
|
xstrtoumax
|
|
year2038
|
|
yesno
|
|
"
|
|
|
|
# Other locale categories that need message catalogs.
|
|
EXTRA_LOCALE_CATEGORIES=LC_TIME
|
|
|
|
# Additional xgettext options to use. Use "\\\newline" to break lines.
|
|
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
|
|
--flag=asnprintf:3:c-format\\\
|
|
--flag=asprintf:2:c-format\\\
|
|
--flag=error:3:c-format\\\
|
|
--flag=error_at_line:5:c-format\\\
|
|
--flag=vasnprintf:3:c-format\\\
|
|
--flag=vasprintf:2:c-format\\\
|
|
--flag=verror:3:c-format\\\
|
|
--flag=verror_at_line:5:c-format\\\
|
|
--flag=wrapf:1:c-format\\\
|
|
--flag=xasprintf:1:c-format\\\
|
|
--flag=xfprintf:2:c-format\\\
|
|
--flag=xprintf:1:c-format\\\
|
|
--from-code=UTF-8\\\
|
|
'
|
|
|
|
# Append these, since we use the propername module.
|
|
see_manual='"This is a proper name. See the gettext manual, section Names."'
|
|
see_manual=\'"$see_manual"\'
|
|
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
|
|
--keyword=proper_name:1,'"$see_manual"'\\\
|
|
--keyword=proper_name_utf8:1,'"$see_manual"'\\\
|
|
'
|
|
|
|
gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink\
|
|
--makefile-name=gnulib.mk
|
|
"
|
|
|
|
# Build prerequisites
|
|
buildreq="\
|
|
autoconf 2.64
|
|
automake 1.11.2
|
|
autopoint 0.19.2
|
|
bison -
|
|
gettext 0.19.2
|
|
git 1.4.4
|
|
gperf -
|
|
gzip -
|
|
makeinfo 6.1
|
|
patch -
|
|
perl 5.5
|
|
rsync -
|
|
tar -
|
|
xz -
|
|
"
|
|
|
|
bootstrap_post_import_hook ()
|
|
{
|
|
# Automake requires that ChangeLog exist.
|
|
touch ChangeLog || return 1
|
|
# List of coreutils programs. See heading comments in the invoked
|
|
# script for more info. Keep this in sync with the rules in
|
|
(m4f=m4/cu-progs.m4 mkf=src/cu-progs.mk tmp=cu-progs.tmp \
|
|
&& rm -f $m4f $mkf $tmp-1 $tmp-2 \
|
|
&& build-aux/gen-lists-of-programs.sh --autoconf >$tmp-1 \
|
|
&& build-aux/gen-lists-of-programs.sh --automake >$tmp-2 \
|
|
&& chmod a-w $tmp-1 $tmp-2 \
|
|
&& mv -f $tmp-1 $m4f && mv -f $tmp-2 $mkf)
|
|
|
|
# Massage lib/gnulib.mk before using it later in the bootstrapping process.
|
|
build-aux/prefix-gnulib-mk --lib-name=$gnulib_name lib/$gnulib_mk
|
|
|
|
# Regenerate src/single-binary.mk
|
|
(mkf=src/single-binary.mk tmp=single-binary.tmp \
|
|
&& rm -f $mkf $tmp \
|
|
&& build-aux/gen-single-binary.sh src/local.mk >$tmp \
|
|
&& chmod a-w $tmp \
|
|
&& mv -f $tmp $mkf)
|
|
}
|
|
|
|
|
|
bootstrap_epilogue()
|
|
{
|
|
# Since this is a "GNU" package, replace this line
|
|
# if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
|
|
# | grep -v 'libtool:' >/dev/null; then
|
|
# with this:
|
|
# if true; then
|
|
# Why? That pipeline searches all files in $(top_srcdir), and if you
|
|
# happen to have large files (or apparently large sparse files), the
|
|
# first grep may well run out of memory.
|
|
perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
|
|
po/Makefile.in.in
|
|
|
|
# Add dummy 'install-html' target, required for packages using
|
|
# non-recursive makefiles with older gettext.
|
|
# See https://debbugs.gnu.org/25690
|
|
if ! grep -w 'install-html' po/Makefile.in.in ; then
|
|
printf 'install-%s:;\n' dvi ps pdf html >> po/Makefile.in.in
|
|
fi
|
|
|
|
# Install our git hooks, as long as "cp" accepts the --backup option,
|
|
# so that we can back up any existing files.
|
|
case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac
|
|
if test $backup = 1; then
|
|
hooks=$(cd scripts/git-hooks && git ls-files)
|
|
for f in $hooks; do
|
|
# If it is identical, skip it.
|
|
cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \
|
|
&& continue
|
|
cp --backup=numbered scripts/git-hooks/$f .git/hooks
|
|
chmod a-w .git/hooks/$f
|
|
done
|
|
fi
|
|
}
|