When building coreutils 9.4.170-7b206 on x86_64 GNU/Linux, I got a test failure in tests/chmod/symlinks, apparently because I was building in a setgid directory. The log file of the failed test is attached.
,---- | $ LANG=C ls -ld /usr/local/src/coreutils | drwxr-sr-x 17 sven src 4096 Mar 24 17:18 /usr/local/src/coreutils `---- Cheers, Sven
++ initial_cwd_=/usr/local/src/coreutils +++ testdir_prefix_ +++ printf gt ++ pfx_=gt +++ mktempd_ /usr/local/src/coreutils gt-symlinks.sh.XXXX +++ case $# in +++ destdir_=/usr/local/src/coreutils +++ template_=gt-symlinks.sh.XXXX +++ MAX_TRIES_=4 +++ case $destdir_ in +++ destdir_slash_=/usr/local/src/coreutils/ +++ case $template_ in ++++ unset TMPDIR +++ d=/usr/local/src/coreutils/gt-symlinks.sh.ErOW +++ case $d in +++ : +++ test -d /usr/local/src/coreutils/gt-symlinks.sh.ErOW ++++ ls -dgo /usr/local/src/coreutils/gt-symlinks.sh.ErOW +++ perms='drwx--S--- 2 4096 Mar 24 17:17 /usr/local/src/coreutils/gt-symlinks.sh.ErOW' +++ case $perms in +++ : +++ echo /usr/local/src/coreutils/gt-symlinks.sh.ErOW +++ return ++ test_dir_=/usr/local/src/coreutils/gt-symlinks.sh.ErOW ++ cd /usr/local/src/coreutils/gt-symlinks.sh.ErOW ++ case $srcdir in ++ srcdir=../. ++ builddir=.. ++ export srcdir builddir ++ gl_init_sh_nl_=' ' ++ IFS=' ' ++ for sig_ in 1 2 3 13 15 +++ expr 1 + 128 ++ eval 'trap '\''Exit 129'\'' 1' +++ trap 'Exit 129' 1 ++ for sig_ in 1 2 3 13 15 +++ expr 2 + 128 ++ eval 'trap '\''Exit 130'\'' 2' +++ trap 'Exit 130' 2 ++ for sig_ in 1 2 3 13 15 +++ expr 3 + 128 ++ eval 'trap '\''Exit 131'\'' 3' +++ trap 'Exit 131' 3 ++ for sig_ in 1 2 3 13 15 +++ expr 13 + 128 ++ eval 'trap '\''Exit 141'\'' 13' +++ trap 'Exit 141' 13 ++ for sig_ in 1 2 3 13 15 +++ expr 15 + 128 ++ eval 'trap '\''Exit 143'\'' 15' +++ trap 'Exit 143' 15 ++ saved_IFS=' ' ++ IFS=: ++ new_PATH= ++ sep_= ++ for dir in $PATH ++ case "$dir" in ++ test -d /usr/local/src/coreutils/src/. ++ new_PATH=/usr/local/src/coreutils/src ++ sep_=: ++ for dir in $PATH ++ case "$dir" in ++ test -d /home/sven/bin/. ++ new_PATH=/usr/local/src/coreutils/src:/home/sven/bin ++ sep_=: ++ for dir in $PATH ++ case "$dir" in ++ test -d /usr/local/bin/. ++ new_PATH=/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin ++ sep_=: ++ for dir in $PATH ++ case "$dir" in ++ test -d /usr/bin/. ++ new_PATH=/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin:/usr/bin ++ sep_=: ++ for dir in $PATH ++ case "$dir" in ++ test -d /bin/. ++ new_PATH=/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin:/usr/bin:/bin ++ sep_=: ++ for dir in $PATH ++ case "$dir" in ++ test -d /usr/local/games/. ++ new_PATH=/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games ++ sep_=: ++ for dir in $PATH ++ case "$dir" in ++ test -d /usr/games/. ++ new_PATH=/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games ++ sep_=: ++ for dir in $PATH ++ case "$dir" in ++ test -d /sbin/. ++ new_PATH=/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin ++ sep_=: ++ for dir in $PATH ++ case "$dir" in ++ test -d /usr/sbin/. ++ new_PATH=/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin ++ sep_=: ++ IFS=' ' ++ PATH=/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin ++ export PATH ++ trap remove_tmp_ EXIT + path_prepend_ ./src + test 1 '!=' 0 + path_dir_=./src + case $path_dir_ in + abs_path_dir_=/usr/local/src/coreutils/./src + case $abs_path_dir_ in + PATH=/usr/local/src/coreutils/./src:/usr/local/src/coreutils/src:/home/sven/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin + create_exe_shims_ /usr/local/src/coreutils/./src + case $EXEEXT in + return 0 + shift + test 0 '!=' 0 + export PATH + print_ver_ chmod + require_built_ chmod + skip_=no + for i in "$@" + case " $built_programs " in + test no = yes + test yes = yes + local i + for i in $* + env chmod --version chmod (GNU coreutils) 9.4.170-7b206 Copyright (C) 2024 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://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 and Jim Meyering. + mkdir -p a/b a/c + touch a/b/file a/c/file + ln -s foo a/dangle + ln -s ../b/file a/c/link + ln -s b a/dirlink + reset_modes + chmod 777 a/b a/c a/b/file a/c/file + chmod 755 -R a/c + ls -l a/b + count_755 0 ++ grep rwxr-xr-x out ++ wc -l + test 0 = 0 + ls -lR a/c + count_755 1 ++ grep rwxr-xr-x out ++ wc -l + test 1 = 1 + reset_modes + chmod 777 a/b a/c a/b/file a/c/file + chmod 755 -LR a/c + ls -ld a/c a/c/file a/b/file + count_755 3 ++ grep rwxr-xr-x out ++ wc -l + test 2 = 3 + cat out -rwxr-xr-x 1 sven src 0 Mar 24 17:17 a/b/file drwxr-sr-x 2 sven src 4096 Mar 24 17:17 a/c -rwxr-xr-x 1 sven src 0 Mar 24 17:17 a/c/file + fail=1 + reset_modes + chmod 777 a/b a/c a/b/file a/c/file + chmod 755 -RP a/c/ + ls -l a/b + count_755 0 ++ grep rwxr-xr-x out ++ wc -l + test 0 = 0 + reset_modes + chmod 777 a/b a/c a/b/file a/c/file + chmod 755 --dereference a/c/link + ls -l a/b + count_755 1 ++ grep rwxr-xr-x out ++ wc -l + test 1 = 1 + reset_modes + chmod 777 a/b a/c a/b/file a/c/file + chmod 755 --no-dereference a/c/link + ls -l a/b + count_755 0 ++ grep rwxr-xr-x out ++ wc -l + test 0 = 0 + for noderef in '-h' '-RP' '-P' + chmod 755 --no-dereference a/dangle + for noderef in '-h' '-RP' '-P' + chmod 755 --no-dereference a/dangle + for noderef in '-h' '-RP' '-P' + chmod 755 --no-dereference a/dangle + for deref in '' '--deref' '-R' + returns_ 1 chmod 755 a/dangle + for deref in '' '--deref' '-R' + returns_ 1 chmod 755 --deref a/dangle + for deref in '' '--deref' '-R' + returns_ 1 chmod 755 -R a/dangle + Exit 1 + set +e + exit 1 + exit 1 + remove_tmp_ + __st=1 + cleanup_ + : + test '' = yes + cd /usr/local/src/coreutils + chmod -R u+rwx /usr/local/src/coreutils/gt-symlinks.sh.ErOW + rm -rf /usr/local/src/coreutils/gt-symlinks.sh.ErOW + exit 1 FAIL tests/chmod/symlinks.sh (exit status: 1)