* bootstrap: Sync from coreutils, as follows:

2006-10-11  Paul Eggert  <eggert@cs.ucla.edu>

* bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell
variable was sometimes used without being initialized.  This
messed up the installation of the INSTALL file in some cases.

2006-10-09  Paul Eggert  <eggert@cs.ucla.edu>

* bootstrap (usage, main program, symlink_to_gnulib): Add option
--copy.  Inspired by a suggestion from Bruno Haible.

2006-10-03  Jim Meyering  <jim@meyering.net>

* bootstrap: Undo last change to this file, since now gnulib-tool
sticks with the automake default in generating dependencies.
This commit is contained in:
Paul Eggert
2006-10-13 04:37:19 +00:00
parent cf2a5f7c47
commit 46356ea426
2 changed files with 67 additions and 30 deletions

View File

@@ -1,3 +1,23 @@
2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
* bootstrap: Sync from coreutils, as follows:
2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
* bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell
variable was sometimes used without being initialized. This
messed up the installation of the INSTALL file in some cases.
2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
* bootstrap (usage, main program, symlink_to_gnulib): Add option
--copy. Inspired by a suggestion from Bruno Haible.
2006-10-03 Jim Meyering <jim@meyering.net>
* bootstrap: Undo last change to this file, since now gnulib-tool
sticks with the automake default in generating dependencies.
2006-10-12 Paul Eggert <eggert@cs.ucla.edu> 2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
* configure.ac: Use AC_PROG_CC_STDC; this is more modern than * configure.ac: Use AC_PROG_CC_STDC; this is more modern than
@@ -50,10 +70,10 @@
2006-10-11 Bob Rossi <bob@brasko.net> 2006-10-11 Bob Rossi <bob@brasko.net>
* data/push.c (struct yypvars): Remove yymsgbuf, yymsgbuf_ptr, yymsg, * data/push.c (struct yypvars): Remove yymsgbuf, yymsgbuf_ptr, yymsg,
yymsg_alloc fields. yymsg_alloc fields.
(yypvarsinit, yypushparse): Remove init of removed fields. (yypvarsinit, yypushparse): Remove init of removed fields.
(yypushparse): Use yymsgbuf instead of yymsgbuf_ptr. (yypushparse): Use yymsgbuf instead of yymsgbuf_ptr.
2006-10-09 Paul Eggert <eggert@cs.ucla.edu> 2006-10-09 Paul Eggert <eggert@cs.ucla.edu>

View File

@@ -40,6 +40,7 @@ Options:
have gnulib sources on your machine, and have gnulib sources on your machine, and
do not want to waste your bandwidth dowloading do not want to waste your bandwidth dowloading
them again. them again.
--copy Copy files instead of creating symbolic links.
--force Bootstrap even if the sources didn't come from CVS. --force Bootstrap even if the sources didn't come from CVS.
--skip-po Do not download po files. --skip-po Do not download po files.
--cvs-user=USERNAME Set the CVS username to be used when accessing --cvs-user=USERNAME Set the CVS username to be used when accessing
@@ -112,6 +113,9 @@ excluded_files=
# the distributed version. # the distributed version.
CVS_only_file=CVS CVS_only_file=CVS
# Whether to use copies instead of symlinks.
copy=false
# Override the default configuration, if necessary. # Override the default configuration, if necessary.
test -r bootstrap.conf && . ./bootstrap.conf test -r bootstrap.conf && . ./bootstrap.conf
@@ -133,6 +137,8 @@ do
SKIP_PO=t;; SKIP_PO=t;;
--force) --force)
CVS_only_file=;; CVS_only_file=;;
--copy)
copy=true;;
*) *)
echo >&2 "$0: $option: unknown option" echo >&2 "$0: $option: unknown option"
exit 1;; exit 1;;
@@ -249,29 +255,43 @@ symlink_to_gnulib()
{ {
src=$GNULIB_SRCDIR/$1 src=$GNULIB_SRCDIR/$1
dst=${2-$1} dst=${2-$1}
dot_dots=
case $src in
/*) ;;
*)
case /$dst/ in
*//* | */../* | */./* | /*/*/*/*/*/)
echo >&2 "$0: invalid symlink calculation: $src -> $dst"
exit 1;;
/*/*/*/*/) dot_dots=../../../;;
/*/*/*/) dot_dots=../../;;
/*/*/) dot_dots=../;;
esac;;
esac
test -f "$src" && { test -f "$src" && {
test -h "$dst" && if $copy; then
src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 && {
dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 && test ! -h "$dst" || {
test "$src_i" = "$dst_i" || { echo "$0: rm -f $dst" &&
echo "$0: ln -fs $dot_dots$src $dst" && rm -f "$dst"
ln -fs "$dot_dots$src" "$dst" }
} } &&
test -f "$dst" &&
cmp -s "$src" "$dst" || {
echo "$0: cp -fp $src $dst" &&
cp -fp "$src" "$dst"
}
else
test -h "$dst" &&
src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
test "$src_i" = "$dst_i" || {
dot_dots=
case $src in
/*) ;;
*)
case /$dst/ in
*//* | */../* | */./* | /*/*/*/*/*/)
echo >&2 "$0: invalid symlink calculation: $src -> $dst"
exit 1;;
/*/*/*/*/) dot_dots=../../../;;
/*/*/*/) dot_dots=../../;;
/*/*/) dot_dots=../;;
esac;;
esac
echo "$0: ln -fs $dot_dots$src $dst" &&
ln -fs "$dot_dots$src" "$dst"
}
fi
} }
} }
@@ -326,13 +346,10 @@ slurp() {
if test $file = Makefile.am; then if test $file = Makefile.am; then
copied=$copied${sep}gnulib.mk; sep=$nl copied=$copied${sep}gnulib.mk; sep=$nl
remove_intl='/^[^#].*\/intl/s/^/#/' remove_intl='/^[^#].*\/intl/s/^/#/'
no_dep=no-dependencies sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/gnulib.mk || {
remove_no_dep="/^AUTOMAKE_OPTIONS =.* $no_dep/s/ $no_dep//"
sed_xform="$remove_intl;$remove_no_dep"
sed "$sed_xform" $1/$dir/$file | cmp -s - $dir/gnulib.mk || {
echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." && echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." &&
rm -f $dir/gnulib.mk && rm -f $dir/gnulib.mk &&
sed "$sed_xform" $1/$dir/$file >$dir/gnulib.mk sed "$remove_intl" $1/$dir/$file >$dir/gnulib.mk
} }
elif { test "${2+set}" = set && test -r $2/$dir/$file; } || elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
grep -F "/$file/" $dir/CVS/Entries 2>/dev/null | grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |