mirror of
https://github.com/mirror/wget.git
synced 2024-12-26 12:50:44 +08:00
* bootstrap: Update script from gnulib
This commit is contained in:
parent
e377b80863
commit
35204ab5d7
76
bootstrap
76
bootstrap
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# Bootstrap this package from checked-out sources.
|
# Bootstrap this package from checked-out sources.
|
||||||
|
|
||||||
scriptversion=2022-12-27.07; # UTC
|
scriptversion=2023-12-10.18; # UTC
|
||||||
|
|
||||||
# Copyright (C) 2003-2024 Free Software Foundation, Inc.
|
# Copyright (C) 2003-2024 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
@ -37,7 +37,7 @@ medir=`dirname "$me"`
|
|||||||
|
|
||||||
# A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
|
# A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
|
||||||
|
|
||||||
scriptlibversion=2023-03-09.17; # UTC
|
scriptlibversion=2023-12-10.18; # UTC
|
||||||
|
|
||||||
# Copyright (C) 2003-2024 Free Software Foundation, Inc.
|
# Copyright (C) 2003-2024 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
@ -340,7 +340,7 @@ check_versions() {
|
|||||||
# Handle the still-experimental Automake-NG programs specially.
|
# Handle the still-experimental Automake-NG programs specially.
|
||||||
# They remain named as the mainstream Automake programs ("automake",
|
# They remain named as the mainstream Automake programs ("automake",
|
||||||
# and "aclocal") to avoid gratuitous incompatibilities with
|
# and "aclocal") to avoid gratuitous incompatibilities with
|
||||||
# preexisting uses (by, say, autoreconf, or custom autogen.sh
|
# preexisting usages (by, say, autoreconf, or custom autogen.sh
|
||||||
# scripts), but correctly identify themselves (as being part of
|
# scripts), but correctly identify themselves (as being part of
|
||||||
# "GNU automake-ng") when asked their version.
|
# "GNU automake-ng") when asked their version.
|
||||||
case $app in
|
case $app in
|
||||||
@ -497,7 +497,8 @@ prepare_GNULIB_SRCDIR ()
|
|||||||
# We already checked that $GNULIB_SRCDIR references a directory.
|
# We already checked that $GNULIB_SRCDIR references a directory.
|
||||||
# Verify that it contains a gnulib checkout.
|
# Verify that it contains a gnulib checkout.
|
||||||
test -f "$GNULIB_SRCDIR/gnulib-tool" \
|
test -f "$GNULIB_SRCDIR/gnulib-tool" \
|
||||||
|| die "Error: --gnulib-srcdir or \$GNULIB_SRCDIR is specified, but does not contain gnulib-tool"
|
|| die "Error: --gnulib-srcdir or \$GNULIB_SRCDIR is specified," \
|
||||||
|
"but does not contain gnulib-tool"
|
||||||
elif $use_git; then
|
elif $use_git; then
|
||||||
gnulib_path=$(git_modules_config submodule.gnulib.path)
|
gnulib_path=$(git_modules_config submodule.gnulib.path)
|
||||||
test -z "$gnulib_path" && gnulib_path=gnulib
|
test -z "$gnulib_path" && gnulib_path=gnulib
|
||||||
@ -558,7 +559,8 @@ prepare_GNULIB_SRCDIR ()
|
|||||||
# be processed, which can drastically reduce download and processing
|
# be processed, which can drastically reduce download and processing
|
||||||
# time for checkout. If the fetch by commit fails, a shallow fetch can
|
# time for checkout. If the fetch by commit fails, a shallow fetch can
|
||||||
# not be performed because we do not know what the depth of the commit
|
# not be performed because we do not know what the depth of the commit
|
||||||
# is without fetching all commits. So fallback to fetching all commits.
|
# is without fetching all commits. So fall back to fetching all
|
||||||
|
# commits.
|
||||||
git -C "$gnulib_path" init
|
git -C "$gnulib_path" init
|
||||||
git -C "$gnulib_path" remote add origin \
|
git -C "$gnulib_path" remote add origin \
|
||||||
${GNULIB_URL:-$default_gnulib_url}
|
${GNULIB_URL:-$default_gnulib_url}
|
||||||
@ -574,7 +576,8 @@ prepare_GNULIB_SRCDIR ()
|
|||||||
GNULIB_SRCDIR=$gnulib_path
|
GNULIB_SRCDIR=$gnulib_path
|
||||||
# Verify that the submodule contains a gnulib checkout.
|
# Verify that the submodule contains a gnulib checkout.
|
||||||
test -f "$gnulib_path/gnulib-tool" \
|
test -f "$gnulib_path/gnulib-tool" \
|
||||||
|| die "Error: $gnulib_path is supposed to contain a gnulib checkout, but does not contain gnulib-tool"
|
|| die "Error: $gnulib_path is supposed to contain a gnulib checkout," \
|
||||||
|
"but does not contain gnulib-tool"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# XXX Should this be done if $use_git is false?
|
# XXX Should this be done if $use_git is false?
|
||||||
@ -594,7 +597,8 @@ upgrade_bootstrap ()
|
|||||||
if test -f "$medir"/bootstrap-funclib.sh; then
|
if test -f "$medir"/bootstrap-funclib.sh; then
|
||||||
update_lib=true
|
update_lib=true
|
||||||
{ cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/top/bootstrap" \
|
{ cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/top/bootstrap" \
|
||||||
&& cmp -s "$medir"/bootstrap-funclib.sh "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" \
|
&& cmp -s "$medir"/bootstrap-funclib.sh \
|
||||||
|
"$GNULIB_SRCDIR/top/bootstrap-funclib.sh" \
|
||||||
&& cmp -s "$medir"/autopull.sh "$GNULIB_SRCDIR/top/autopull.sh" \
|
&& cmp -s "$medir"/autopull.sh "$GNULIB_SRCDIR/top/autopull.sh" \
|
||||||
&& cmp -s "$medir"/autogen.sh "$GNULIB_SRCDIR/top/autogen.sh"; \
|
&& cmp -s "$medir"/autogen.sh "$GNULIB_SRCDIR/top/autogen.sh"; \
|
||||||
}
|
}
|
||||||
@ -611,10 +615,18 @@ upgrade_bootstrap ()
|
|||||||
a) ignored=--;;
|
a) ignored=--;;
|
||||||
*) ignored=ignored;;
|
*) ignored=ignored;;
|
||||||
esac
|
esac
|
||||||
|
u=$update_lib
|
||||||
exec sh -c \
|
exec sh -c \
|
||||||
'{ if '$update_lib' && test -f "$1"; then cp "$1" "$3"; else cp "$2" "$3"; fi; } && { if '$update_lib' && test -f "$4"; then cp "$4" "$5"; else rm -f "$5"; fi; } && { if '$update_lib' && test -f "$6"; then cp "$6" "$7"; else rm -f "$7"; fi; } && { if '$update_lib' && test -f "$8"; then cp "$8" "$9"; else rm -f "$9"; fi; } && shift && shift && shift && shift && shift && shift && shift && shift && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
|
'{ if '$u' && test -f "$1"; then cp "$1" "$3"; else cp "$2" "$3"; fi; } &&
|
||||||
|
{ if '$u' && test -f "$4"; then cp "$4" "$5"; else rm -f "$5"; fi; } &&
|
||||||
|
{ if '$u' && test -f "$6"; then cp "$6" "$7"; else rm -f "$7"; fi; } &&
|
||||||
|
{ if '$u' && test -f "$8"; then cp "$8" "$9"; else rm -f "$9"; fi; } &&
|
||||||
|
shift && shift && shift && shift && shift &&
|
||||||
|
shift && shift && shift && shift &&
|
||||||
|
exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
|
||||||
$ignored \
|
$ignored \
|
||||||
"$GNULIB_SRCDIR/top/bootstrap" "$GNULIB_SRCDIR/build-aux/bootstrap" "$medir/bootstrap" \
|
"$GNULIB_SRCDIR/top/bootstrap" "$GNULIB_SRCDIR/build-aux/bootstrap" \
|
||||||
|
"$medir/bootstrap" \
|
||||||
"$GNULIB_SRCDIR/top/bootstrap-funclib.sh" "$medir/bootstrap-funclib.sh" \
|
"$GNULIB_SRCDIR/top/bootstrap-funclib.sh" "$medir/bootstrap-funclib.sh" \
|
||||||
"$GNULIB_SRCDIR/top/autopull.sh" "$medir/autopull.sh" \
|
"$GNULIB_SRCDIR/top/autopull.sh" "$medir/autopull.sh" \
|
||||||
"$GNULIB_SRCDIR/top/autogen.sh" "$medir/autogen.sh" \
|
"$GNULIB_SRCDIR/top/autogen.sh" "$medir/autogen.sh" \
|
||||||
@ -647,7 +659,9 @@ Optional environment variables:
|
|||||||
Use this if you already have gnulib sources
|
Use this if you already have gnulib sources
|
||||||
and history on your machine, and do not want
|
and history on your machine, and do not want
|
||||||
to waste your bandwidth downloading them again.
|
to waste your bandwidth downloading them again.
|
||||||
GNULIB_URL Cloneable URL of the gnulib repository.
|
GNULIB_URL URL of the gnulib repository. The default is
|
||||||
|
$default_gnulib_url,
|
||||||
|
which is Gnulib's upstream repository.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
--bootstrap-sync if this bootstrap script is not identical to
|
--bootstrap-sync if this bootstrap script is not identical to
|
||||||
@ -747,9 +761,12 @@ autopull()
|
|||||||
done
|
done
|
||||||
|
|
||||||
$use_git || test -n "$GNULIB_SRCDIR" \
|
$use_git || test -n "$GNULIB_SRCDIR" \
|
||||||
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option"
|
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable" \
|
||||||
|
"or --gnulib-srcdir option"
|
||||||
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
||||||
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
|
|| die "Error: \$GNULIB_SRCDIR environment variable" \
|
||||||
|
"or --gnulib-srcdir option is specified," \
|
||||||
|
"but does not denote a directory"
|
||||||
|
|
||||||
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
||||||
die "Running this script from a non-checked-out distribution is risky."
|
die "Running this script from a non-checked-out distribution is risky."
|
||||||
@ -760,7 +777,7 @@ autopull()
|
|||||||
if $use_gnulib || $bootstrap_sync; then
|
if $use_gnulib || $bootstrap_sync; then
|
||||||
prepare_GNULIB_SRCDIR
|
prepare_GNULIB_SRCDIR
|
||||||
if $bootstrap_sync; then
|
if $bootstrap_sync; then
|
||||||
upgrade_bootstrap
|
upgrade_bootstrap "$@"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -811,7 +828,10 @@ autopull()
|
|||||||
uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'`
|
uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'`
|
||||||
fi
|
fi
|
||||||
if test -n "$uninitialized"; then
|
if test -n "$uninitialized"; then
|
||||||
die "Some git submodules are not initialized: "`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'`" Either use option '--no-git', or run 'git submodule update --init' and bootstrap again."
|
uninit_comma=`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'`
|
||||||
|
die "Some git submodules are not initialized: "$uninit_comma \
|
||||||
|
"Either use option '--no-git'," \
|
||||||
|
"or run 'git submodule update --init' and bootstrap again."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -978,7 +998,7 @@ symlink_to_dir()
|
|||||||
for dot_ig in x $vc_ignore; do
|
for dot_ig in x $vc_ignore; do
|
||||||
test $dot_ig = x && continue
|
test $dot_ig = x && continue
|
||||||
ig=$parent/$dot_ig
|
ig=$parent/$dot_ig
|
||||||
insert_vc_ignore $ig "${dst_dir##*/}"
|
insert_vc_ignore $ig "${dst_dir##*/}/"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1075,7 +1095,8 @@ autogen()
|
|||||||
done
|
done
|
||||||
|
|
||||||
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
||||||
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
|
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir" \
|
||||||
|
"option is specified, but does not denote a directory"
|
||||||
|
|
||||||
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
||||||
die "Running this script from a non-checked-out distribution is risky."
|
die "Running this script from a non-checked-out distribution is risky."
|
||||||
@ -1083,7 +1104,8 @@ autogen()
|
|||||||
|
|
||||||
if $use_gnulib; then
|
if $use_gnulib; then
|
||||||
if test -z "$GNULIB_SRCDIR"; then
|
if test -z "$GNULIB_SRCDIR"; then
|
||||||
gnulib_path=$(test -f .gitmodules && git config --file .gitmodules submodule.gnulib.path)
|
gnulib_path=$(test -f .gitmodules &&
|
||||||
|
git config --file .gitmodules submodule.gnulib.path)
|
||||||
test -z "$gnulib_path" && gnulib_path=gnulib
|
test -z "$gnulib_path" && gnulib_path=gnulib
|
||||||
GNULIB_SRCDIR=$gnulib_path
|
GNULIB_SRCDIR=$gnulib_path
|
||||||
fi
|
fi
|
||||||
@ -1104,7 +1126,7 @@ autogen()
|
|||||||
mkdir $build_aux
|
mkdir $build_aux
|
||||||
for dot_ig in x $vc_ignore; do
|
for dot_ig in x $vc_ignore; do
|
||||||
test $dot_ig = x && continue
|
test $dot_ig = x && continue
|
||||||
insert_vc_ignore $dot_ig $build_aux
|
insert_vc_ignore $dot_ig $build_aux/
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1327,7 +1349,9 @@ Optional environment variables:
|
|||||||
have gnulib sources on your machine, and
|
have gnulib sources on your machine, and
|
||||||
do not want to waste your bandwidth downloading
|
do not want to waste your bandwidth downloading
|
||||||
them again.
|
them again.
|
||||||
GNULIB_URL Cloneable URL of the gnulib repository.
|
GNULIB_URL URL of the gnulib repository. The default is
|
||||||
|
$default_gnulib_url,
|
||||||
|
which is Gnulib's upstream repository.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
@ -1458,9 +1482,11 @@ done
|
|||||||
$pull || $gen || pull=true gen=true
|
$pull || $gen || pull=true gen=true
|
||||||
|
|
||||||
$use_git || test -n "$GNULIB_SRCDIR" \
|
$use_git || test -n "$GNULIB_SRCDIR" \
|
||||||
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option"
|
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable" \
|
||||||
|
"or --gnulib-srcdir option"
|
||||||
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
||||||
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
|
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir" \
|
||||||
|
"option is specified, but does not denote a directory"
|
||||||
|
|
||||||
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
||||||
die "Bootstrapping from a non-checked-out distribution is risky."
|
die "Bootstrapping from a non-checked-out distribution is risky."
|
||||||
@ -1470,7 +1496,7 @@ check_build_prerequisites $use_git
|
|||||||
|
|
||||||
if $bootstrap_sync; then
|
if $bootstrap_sync; then
|
||||||
prepare_GNULIB_SRCDIR
|
prepare_GNULIB_SRCDIR
|
||||||
upgrade_bootstrap
|
upgrade_bootstrap "$@"
|
||||||
# Since we have now upgraded if needed, no need to try it a second time below.
|
# Since we have now upgraded if needed, no need to try it a second time below.
|
||||||
bootstrap_sync=false
|
bootstrap_sync=false
|
||||||
fi
|
fi
|
||||||
@ -1483,7 +1509,11 @@ export GNULIB_REFDIR
|
|||||||
|
|
||||||
if $pull && { $use_git || test -z "$SKIP_PO"; }; then
|
if $pull && { $use_git || test -z "$SKIP_PO"; }; then
|
||||||
autopull \
|
autopull \
|
||||||
`if $bootstrap_sync; then echo ' --bootstrap-sync'; else echo ' --no-bootstrap-sync'; fi` \
|
`if $bootstrap_sync; then
|
||||||
|
echo ' --bootstrap-sync'
|
||||||
|
else
|
||||||
|
echo ' --no-bootstrap-sync'
|
||||||
|
fi` \
|
||||||
`if test -z "$checkout_only_file"; then echo ' --force'; fi` \
|
`if test -z "$checkout_only_file"; then echo ' --force'; fi` \
|
||||||
`if ! $use_git; then echo ' --no-git'; fi` \
|
`if ! $use_git; then echo ' --no-git'; fi` \
|
||||||
`if test -n "$SKIP_PO"; then echo ' --skip-po'; fi` \
|
`if test -n "$SKIP_PO"; then echo ' --skip-po'; fi` \
|
||||||
|
Loading…
Reference in New Issue
Block a user