Subject: test "install/install-C" fails on Mac OS X 10.6.4

From: Richard Godbee <[email-masked]>
Date: Fri, 16 Jul 2010 23:33:09 -0400 (EDT)

When I build coreutils 8.5 on Mac OS X 10.6.4, test "install/install-C" fails.

Some relevant system information:

> % uname -a
> Darwin panic.geos.vt.edu 10.4.0 Darwin Kernel Version 10.4.0: Fri Apr 23 18:28:53 PDT 2010; root:xnu-1504.7.4~1/RELEASE_I386 i386

> % cc -v
> Using built-in specs.
> Target: i686-apple-darwin10
> Configured with: /var/tmp/gcc/gcc-5659~1/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
> Thread model: posix
> gcc version 4.2.1 (Apple Inc. build 5659)

I configured coreutils with:

> CFLAGS="-I/rr/gmp-5.0.1/include" LDFLAGS="-L/rr/gmp-5.0.1/lib" ./configure --build=x86_64-apple-darwin10 --prefix=/rr/coreutils-8.5

"/rr" lives on a case-preserving but case-insensitive HFS+ filesystem.

I ran "make" and "make check" as a non-root user.

The top of tests/test-suite.log looks like:

> =============================================
>    GNU coreutils 8.5: tests/test-suite.log   
> =============================================
> 
> 1 of 342 tests failed.  (77 tests were not run).  

The contents of tests/install/install-C.log are:

> FAIL: install/install-C (exit: 1)
> =================================
> 
> + ginstall --version
> install (GNU coreutils) 8.5
> Copyright (C) 2010 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> 
> Written by David MacKenzie.
> + . ./test-lib.sh
> ++ unset function_test
> ++ eval 'function_test() { return 11; }; function_test'
> +++ function_test
> +++ return 11
> ++ test 11 '!=' 11
> +++ pwd
> ++ test_dir_=/rr/src/coreutils-8.5/tests
> +++ this_test_
> +++ sed 's,.*/,,'
> +++ echo ././install/install-C
> ++ this_test=install-C
> +++ /rr/src/coreutils-8.5/src/mktemp -d --tmp=/rr/src/coreutils-8.5/tests cu-install-C.XXXXXXXXXX
> ++ t_=/rr/src/coreutils-8.5/tests/cu-install-C.Ov3K6MoEJW
> ++ trap remove_tmp_ 0
> ++ trap 'Exit 129' 1
> ++ trap 'Exit 130' 2
> ++ trap 'Exit 141' 13
> ++ trap 'Exit 143' 15
> ++ cd /rr/src/coreutils-8.5/tests/cu-install-C.Ov3K6MoEJW
> ++ diff --version
> ++ grep GNU
> ++ sanitize_path_
> ++ local 'saved_IFS= 	
> '
> ++ IFS=:
> ++ set -- /rr/src/coreutils-8.5/src /Users/rwg/bin /rr/bin /rr/sbin /rr/GMT4.5.3/bin /usr/bin /bin /usr/sbin /sbin /usr/X11R6/bin
> ++ IFS=' 	
> '
> ++ local d d1
> ++ local colon=
> ++ local new_path=
> ++ for d in '"$@"'
> ++ test -z /rr/src/coreutils-8.5/src
> ++ d1=/rr/src/coreutils-8.5/src
> ++ ls -d /rr/src/coreutils-8.5/src/.
> ++ new_path=/rr/src/coreutils-8.5/src
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /Users/rwg/bin
> ++ d1=/Users/rwg/bin
> ++ ls -d /Users/rwg/bin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /rr/bin
> ++ d1=/rr/bin
> ++ ls -d /rr/bin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /rr/sbin
> ++ d1=/rr/sbin
> ++ ls -d /rr/sbin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin:/rr/sbin
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /rr/GMT4.5.3/bin
> ++ d1=/rr/GMT4.5.3/bin
> ++ ls -d /rr/GMT4.5.3/bin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin:/rr/sbin:/rr/GMT4.5.3/bin
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /usr/bin
> ++ d1=/usr/bin
> ++ ls -d /usr/bin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin:/rr/sbin:/rr/GMT4.5.3/bin:/usr/bin
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /bin
> ++ d1=/bin
> ++ ls -d /bin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin:/rr/sbin:/rr/GMT4.5.3/bin:/usr/bin:/bin
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /usr/sbin
> ++ d1=/usr/sbin
> ++ ls -d /usr/sbin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin:/rr/sbin:/rr/GMT4.5.3/bin:/usr/bin:/bin:/usr/sbin
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /sbin
> ++ d1=/sbin
> ++ ls -d /sbin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin:/rr/sbin:/rr/GMT4.5.3/bin:/usr/bin:/bin:/usr/sbin:/sbin
> ++ colon=:
> ++ for d in '"$@"'
> ++ test -z /usr/X11R6/bin
> ++ d1=/usr/X11R6/bin
> ++ ls -d /usr/X11R6/bin/.
> ++ new_path=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin:/rr/sbin:/rr/GMT4.5.3/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin
> ++ colon=:
> ++ PATH=/rr/src/coreutils-8.5/src:/Users/rwg/bin:/rr/bin:/rr/sbin:/rr/GMT4.5.3/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin
> ++ export PATH
> ++ fail=0
> + skip_if_setgid_
> + setgid_tmpdir=setgid-14973
> + umask 77
> + mkdir setgid-14973
> ++ stat --printf %A setgid-14973
> + perms=drwx------
> + rmdir setgid-14973
> + case $perms in
> + mode1=0644
> + mode2=0755
> + mode3=2755
> + echo test
> + echo '`a'\'' -> `b'\'''
> + echo 'removed `b'\''
> `a'\'' -> `b'\'''
> + :
> + ginstall -Cv -m0644 a b
> + compare out out_installed_first
> + diff -u out out_installed_first
> + ginstall -Cv -m0644 a b
> + compare out out_empty
> + diff -u out out_empty
> --- out	2010-07-16 21:15:47.000000000 -0400
> +++ out_empty	2010-07-16 21:15:47.000000000 -0400
> @@ -1,2 +0,0 @@
> -removed `b'
> -`a' -> `b'
> + fail=1
> + ginstall -v --compare -m0644 a b
> + compare out out_empty
> + diff -u out out_empty
> --- out	2010-07-16 21:15:47.000000000 -0400
> +++ out_empty	2010-07-16 21:15:47.000000000 -0400
> @@ -1,2 +0,0 @@
> -removed `b'
> -`a' -> `b'
> + fail=1
> + ginstall -v -m0644 a b
> + compare out out_installed_second
> + diff -u out out_installed_second
> + ginstall -Cv -m2755 a b
> ginstall: the --compare (-C) option is ignored when you specify a mode with non-permission bits
> + compare out out_installed_second
> + diff -u out out_installed_second
> + ginstall -Cv -m2755 a b
> ginstall: the --compare (-C) option is ignored when you specify a mode with non-permission bits
> + compare out out_installed_second
> + diff -u out out_installed_second
> + ln -s a c
> + ln -s b d
> + ginstall -Cv -m0644 c d
> + echo 'removed `d'\''
> `c'\'' -> `d'\'''
> + compare out out_installed_second_cd
> + diff -u out out_installed_second_cd
> + echo test1
> + ginstall -Cv -m0644 a b
> + compare out out_installed_second
> + diff -u out out_installed_second
> + ginstall -Cv -m0644 a b
> + compare out out_empty
> + diff -u out out_empty
> --- out	2010-07-16 21:15:47.000000000 -0400
> +++ out_empty	2010-07-16 21:15:47.000000000 -0400
> @@ -1,2 +0,0 @@
> -removed `b'
> -`a' -> `b'
> + fail=1
> + echo test2
> + ginstall -Cv -m0644 a b
> + compare out out_installed_second
> + diff -u out out_installed_second
> + ginstall -Cv -m0644 a b
> + compare out out_empty
> + diff -u out out_empty
> --- out	2010-07-16 21:15:47.000000000 -0400
> +++ out_empty	2010-07-16 21:15:47.000000000 -0400
> @@ -1,2 +0,0 @@
> -removed `b'
> -`a' -> `b'
> + fail=1
> + ginstall -Cv -m0755 a b
> + compare out out_installed_second
> + diff -u out out_installed_second
> + ginstall -Cv -m0755 a b
> + compare out out_empty
> + diff -u out out_empty
> --- out	2010-07-16 21:15:47.000000000 -0400
> +++ out_empty	2010-07-16 21:15:47.000000000 -0400
> @@ -1,2 +0,0 @@
> -removed `b'
> -`a' -> `b'
> + fail=1
> + ginstall -C --preserve-timestamps a b
> ginstall: options --compare (-C) and --preserve-timestamps are mutually exclusive
> Try `ginstall --help' for more information.
> + ginstall -C --strip --strip-program=echo a b
> ginstall: options --compare (-C) and --strip are mutually exclusive
> Try `ginstall --help' for more information.
> + Exit 1
> + set +e
> + exit 1
> + exit 1
> + remove_tmp_
> + __st=1
> + cleanup_
> + :
> + cd /rr/src/coreutils-8.5/tests
> + chmod -R u+rwx /rr/src/coreutils-8.5/tests/cu-install-C.Ov3K6MoEJW
> + rm -rf /rr/src/coreutils-8.5/tests/cu-install-C.Ov3K6MoEJW
> + exit 1

I would be happy to supply additional information as needed.

Thanks,
Richard