findutils/bootstrap.conf
Bernhard Voelker 11576f4e6a find: add -files0-from option
* bootstrap.conf (gnulib_modules): Add argv-iter and same-inode.
* find/defs.h (struct options): Add files0_from and ok_prompt_stdin
members.
* find/ftsfind.c (argv-iter.h, same-inode.h, xalloc.h): Add #include
for gnulib headers.
(process_all_startpoints): Change loop over starting point arguments
to a loop using the argv_iter gnulib module.
* find/parser.c (parse_table): Add option.
(parse_files0_from): Declare and define function.
(insert_exec_ok): Set options flag ok_prompt_stdin to true for
the -ok and -okdir action.
* find/util.c (usage): Add new option.
(set_option_defaults): Initialize new struct members.
* doc/find.texi (node Starting points): Add new section describing
the regular processing of starting points, and that with the new
option.  Also mention in the description of -ok and -okdir that they
conflict with the new option.
* find/find.1: Document the new option here as well.
* tests/find/files0-from.sh: Add test.
* tests/local.mk (all_tests): Reference it.
* NEWS (New features in find): Mention the new option.
2021-05-08 14:13:36 +02:00

279 lines
6.4 KiB
Plaintext

# Bootstrap configuration.
# Copyright (C) 2006-2021 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/>.
# Automake requires that ChangeLog exists.
touch ChangeLog
# Random extra gnulib files needed for findutils.
# copied from 'import-gnulib.config'
gnulib_extra_files='
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/mdate-sh
build-aux/mkinstalldirs
build-aux/texinfo.tex
'
# gnulib modules needed only for maintainer things.
maintainer_modules='
gitlog-to-changelog
maintainer-makefile
update-copyright
gendocs
'
# 'consider' comments copied from 'import-gnulib.config':
# consider using do-release-commit-and-tag
# consider using gendocs
# consider using getdelim
# consider using gethrxtime
# consider using getsubopt (for -D)
# consider using gnu-web-doc-update
# consider using idprov-drop and privset for locate
# consider using long-options
# consider using nproc in xargs
# consider using pmccabe2html
# consider using selinux-h
# consider using gendocs
# consider using sig2str in xargs
# consider using signal (why not: maybe we don't need those features)
# consider using the dev-ino moduile to support -samefile.
# consider removing stpcpy
# We have rpmatch, either use it for -ok and xargs or remove the dependency
# use fileblocks, filemode properly.
# Considered, but no:
# consider using autobuild (the information is not usually interesting for us)
# consider using same-inode (we don't keep a full struct stat for the ref file)
# Modules needed for findutils.
# We need regex to ensure that we can build on platforms like
# Solaris which lack those functions.
# gnulib modules used by this package.
gnulib_modules="
alloca
areadlinkat
argmatch
argv-iter
assert
byteswap
c-strcasestr
c-strstr
canonicalize
cloexec
closein
closeout
ctype
d-ino
d-type
dirent-safer
dirname
dup2
errno
error
faccessat
fchdir
fcntl
fcntl-safer
fdopendir
fflush
fileblocks
filemode
fnmatch-gnu
fopen-safer
fts
gcc-attributes
getdelim
getline
getopt-gnu
gettext-h
gettimeofday
git-version-gen
gnupload
gpl-3.0
hash
human
idcache
inline
intprops
inttypes
isblank
locale
lstat
malloc-gnu
manywarnings
math
mbrtowc
mbscasestr
mbswidth
mbsstr
mktime
modechange
modf
mountlist
nstrftime
open
openat-safer
parse-datetime
pathmax
perror
progname
quotearg
readlink
realloc-gnu
regex
rpmatch
safe-read
same-inode
save-cwd
savedir
selinux-at
snprintf
stat
stat-macros
stat-size
stat-time
stdarg
stdbool
stddef
stdio
stdint
stdlib
stpcpy
strcasestr
strdup-posix
string
strndup
strtoull
strtoumax
sys_stat
sys_time
sys_wait
timespec
uname
unistd-safer
unlinkat
verify
version-etc
version-etc-fsf
warnings
wchar
wcwidth
xalloc
xalloc-die
xgetcwd
xstrtod
xstrtol
xstrtol-error
xstrtoumax
year2038
yesno
${maintainer_modules}
"
# Override bootstrap's defaults, with values consistent with
# 'import-gnulib.sh'
local_gl_dir='gnulib-local'
source_base=gl/lib
m4_base=gl/m4
# use 'libgnulib' instead of the default lib$package (=libfindutils)
# 'libgnulib' is mentioned in various 'Makefile.am' files.
gnulib_name=libgnulib
# Create 'gl/Makefile.am' which is mentioned in 'configure.ac'.
hack_gnulib_tool_makefile() {
cat > gl/Makefile.am <<EOF
# Copyright (C) 2004, 2009 Free Software Foundation, Inc.
#
# This file is free software, distributed under the terms of the GNU
# General Public License. As a special exception to the GNU General
# Public License, this file may be distributed as part of a program
# that contains a configuration script generated by Automake, under
# the same distribution terms as the rest of that program.
#
# This file was generated by $0
#
SUBDIRS = lib
EXTRA_DIST = m4/gnulib-cache.m4
EOF
}
# after 'gnulib-tool' is done, create the 'gl/Makefile.am' to be backward
# compatible with 'import-gnulib.sh'.
bootstrap_post_import_hook() {
hack_gnulib_tool_makefile
}
# For compatibility with 'import-gnulib.sh', add gnulib's test directory.
# 'gnulib-tests/Makefile' is mentioned in 'configure.ac'
gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink"
# Additional xgettext options to use. Use "\\\newline" to break lines.
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
--from-code=UTF-8\\\
--flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\
--flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\
--flag=wrapf:1:c-format\\\
'
# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
# appears in configure.ac, exclude some unnecessary files.
# Without grep's -E option (not portable enough, pre-configure),
# the following test is ugly. Also, this depends on the existence
# of configure.ac, not the obsolescent-named configure.in. But if
# you're using this infrastructure, you should care about such things.
gettext_external=0
grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
gettext_external=1
grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
gettext_external=1
if test $gettext_external = 1; then
# Gettext supplies these files, but we don't need them since
# we don't have an intl subdirectory.
excluded_files='
m4/glibc2.m4
m4/intdiv0.m4
m4/lcmessage.m4
m4/lock.m4
m4/printf-posix.m4
m4/size_max.m4
m4/uintmax_t.m4
m4/ulonglong.m4
m4/visibility.m4
m4/xsize.m4
'
fi
# Build prerequisites
buildreq="\
autoconf 2.64
automake 1.11.2
git 1.5.5
tar -
gettext 0.19.2
"