Jim Meyering <[EMAIL PROTECTED]> writes:

> Comparing the differences in the sh -x output should
> help us get to the bottom of this.

Yes, thanks, that did the trick.

It turns out that my personal "ls" defaults to "ls -A" (this is an old
security-related habit of mine), but the coreutils bootstrap procedure
(accidentally or deliberately? I can't easily tell which) relies on
the fact that "ls" does not output file names beginning with ".".  The
following patch ports to my personal environment (which I hope you
don't mind supporting).

The more worrisome aspect here is that the current bootstrap
environment seems to assume that gnulib file names won't start with
".".  Is that a safe assumption in the future?  Anyway, the following
patch puts in a FIXME about this.


* bootstrap (slurp): Work even in environments where "ls" defaults
to "ls -A".  Put in a FIXME, though, since the current code does
not slurp files whose names start with ".", and this looks like
it might be a troublesome area.
diff --git a/bootstrap b/bootstrap
index 442309c..bad0cbe 100755
--- a/bootstrap
+++ b/bootstrap
@@ -391,7 +391,11 @@ slurp() {
   for dir in . `(cd $1 && find * -type d -print)`; do
     copied=
     sep=
-    for file in `ls $1/$dir`; do
+    for file in `ls -a $1/$dir`; do
+      case $file in
+      .|..) continue;;
+      .*) continue;; # FIXME: should all file names starting with "." be 
ignored?
+      esac
       test -d $1/$dir/$file && continue
       for excluded_file in $excluded_files; do
        test "$dir/$file" = "$excluded_file" && continue 2
M ChangeLog
M bootstrap
Committed as 4f0036f65ba7a84b99d1b2d16820a14719ff08af


Reply via email to