mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
Remove gnulib modules that provide stuff clearly not used within libguestfs (library, daemon, and C tools). Among directly and indirectly modules used previous (and now no more), they are: cycle-check d-ino dev-ino dup3 dup3-tests fcntl-safer fcntl-safer-tests fdopendir fdopendir-tests filevercmp filevercmp-tests ftell ftell-tests ftello ftello-tests fts getaddrinfo getaddrinfo-tests getcwd getcwd-tests gnu-make hostent i-ring i-ring-tests iconv iconv-tests inet_ntop inet_ntop-tests isatty isatty-tests openat-safer openat-safer-tests opendirat ptsname_r ptsname_r-tests read-file read-file-tests rewinddir servent ttyname_r ttyname_r-tests xgetcwd Some of the removed modules are still used pulled indirectly as dependency of other modules. There should be no behaviour change on recent Linux distros, although older distros were not tested (adding a module back is easy, anyway). Remove accordingly unused automake variables, and ignored files.
175 lines
3.8 KiB
Bash
Executable File
175 lines
3.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
usage() {
|
|
echo >&2 "\
|
|
Usage: $0 [OPTION]...
|
|
Bootstrap this package from the checked-out sources.
|
|
|
|
Options:
|
|
--gnulib-srcdir=DIRNAME specify the local directory where gnulib
|
|
sources reside. Use this if you already
|
|
have gnulib sources on your machine, and
|
|
do not want to waste your bandwidth downloading
|
|
them again. Defaults to \$GNULIB_SRCDIR
|
|
"
|
|
}
|
|
|
|
for option
|
|
do
|
|
case $option in
|
|
--help)
|
|
usage
|
|
exit;;
|
|
--gnulib-srcdir=*)
|
|
GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
|
|
*)
|
|
echo >&2 "$0: $option: unknown option"
|
|
exit 1;;
|
|
esac
|
|
done
|
|
|
|
cleanup_gnulib() {
|
|
status=$?
|
|
rm -fr "$gnulib_path"
|
|
exit $status
|
|
}
|
|
|
|
git_modules_config () {
|
|
test -f .gitmodules && git config --file .gitmodules "$@"
|
|
}
|
|
|
|
gnulib_path=$(git_modules_config submodule.gnulib.path)
|
|
test -z "$gnulib_path" && gnulib_path=gnulib
|
|
|
|
# Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a
|
|
# submodule, for use in the rest of the script.
|
|
|
|
case ${GNULIB_SRCDIR--} in
|
|
-)
|
|
if git_modules_config submodule.gnulib.url >/dev/null; then
|
|
echo "$0: getting gnulib files..."
|
|
git submodule init -- "$gnulib_path" || exit $?
|
|
git submodule update -- "$gnulib_path" || exit $?
|
|
|
|
elif [ ! -d "$gnulib_path" ]; then
|
|
echo "$0: getting gnulib files..."
|
|
|
|
trap cleanup_gnulib 1 2 13 15
|
|
|
|
shallow=
|
|
git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
|
|
git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
|
|
cleanup_gnulib
|
|
|
|
trap - 1 2 13 15
|
|
fi
|
|
GNULIB_SRCDIR=$gnulib_path
|
|
;;
|
|
*)
|
|
# Use GNULIB_SRCDIR directly or as a reference.
|
|
if test -d "$GNULIB_SRCDIR"/.git && \
|
|
git_modules_config submodule.gnulib.url >/dev/null; then
|
|
echo "$0: getting gnulib files..."
|
|
if git submodule -h|grep -- --reference > /dev/null; then
|
|
# Prefer the one-liner available in git 1.6.4 or newer.
|
|
git submodule update --init --reference "$GNULIB_SRCDIR" \
|
|
"$gnulib_path" || exit $?
|
|
else
|
|
# This fallback allows at least git 1.5.5.
|
|
if test -f "$gnulib_path"/gnulib-tool; then
|
|
# Since file already exists, assume submodule init already complete.
|
|
git submodule update -- "$gnulib_path" || exit $?
|
|
else
|
|
# Older git can't clone into an empty directory.
|
|
rmdir "$gnulib_path" 2>/dev/null
|
|
git clone --reference "$GNULIB_SRCDIR" \
|
|
"$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
|
|
&& git submodule init -- "$gnulib_path" \
|
|
&& git submodule update -- "$gnulib_path" \
|
|
|| exit $?
|
|
fi
|
|
fi
|
|
GNULIB_SRCDIR=$gnulib_path
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# Autoreconf runs aclocal before libtoolize, which causes spurious
|
|
# warnings if the initial aclocal is confused by the libtoolized
|
|
# (or worse out-of-date) macro directory.
|
|
libtoolize --copy --install
|
|
|
|
gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
|
|
<$gnulib_tool || exit
|
|
|
|
modules='
|
|
accept4
|
|
areadlinkat
|
|
base64
|
|
byteswap
|
|
c-ctype
|
|
cloexec
|
|
closeout
|
|
connect
|
|
error
|
|
fstatat
|
|
full-read
|
|
full-write
|
|
futimens
|
|
getline
|
|
getprogname
|
|
gitlog-to-changelog
|
|
glob
|
|
gnumakefile
|
|
hash
|
|
hash-pjw
|
|
human
|
|
ignore-value
|
|
intprops
|
|
lock
|
|
maintainer-makefile
|
|
manywarnings
|
|
memmem
|
|
mkdtemp
|
|
mkstemps
|
|
netdb
|
|
nonblocking
|
|
perror
|
|
pipe2
|
|
pread
|
|
readlink
|
|
select
|
|
setenv
|
|
sleep
|
|
socket
|
|
strchrnul
|
|
strerror
|
|
strndup
|
|
sys_select
|
|
sys_types
|
|
sys_wait
|
|
tls
|
|
vasprintf
|
|
vc-list-files
|
|
warnings
|
|
xstrtol
|
|
xstrtoll
|
|
xvasprintf
|
|
'
|
|
|
|
# If any tests fail, avoid including them by adding them to
|
|
# this list.
|
|
avoid="--avoid=dummy --avoid=getlogin_r-tests"
|
|
|
|
$gnulib_tool \
|
|
$avoid \
|
|
--with-tests \
|
|
--m4-base=m4 \
|
|
--source-base=gnulib/lib \
|
|
--tests-base=gnulib/tests \
|
|
--libtool \
|
|
--import $modules
|
|
|
|
# Disable autopoint and libtoolize, since they were already done above.
|
|
AUTOPOINT=true LIBTOOLIZE=true autoreconf --verbose --install
|