2005-10-05 Ralf Wildenhues Stepan Kasal * lib/autotest/general.m4 (AT_INIT): When ensuring writability before the removals of test dirs, use `find' to avoid modification of symlinked directories. Index: lib/autotest/general.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/autotest/general.m4,v retrieving revision 1.193 diff -u -r1.193 general.m4 --- lib/autotest/general.m4 4 Oct 2005 09:14:12 -0000 1.193 +++ lib/autotest/general.m4 5 Oct 2005 08:52:25 -0000 @@ -276,7 +276,8 @@ ;; --clean | -c ) - test -d "$at_suite_dir" && chmod -R u+rwx "$at_suite_dir" + test -d "$at_suite_dir" && + find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; rm -f -r "$at_suite_dir" "$at_suite_log" exit 0 ;; @@ -670,8 +671,10 @@ # Create a fresh directory for the next test group, and enter. at_group_dir=$at_suite_dir/$at_group_normalized at_group_log=$at_group_dir/$as_me.log - test -d $at_group_dir && chmod -R u+rwx $at_group_dir - rm -f -r $at_group_dir + if test -d $at_group_dir; then + find $at_group_dir -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -fr $at_group_dir + fi mkdir $at_group_dir || AS_ERROR([cannot create $at_group_dir]) cd $at_group_dir @@ -764,10 +767,11 @@ echo "$at_log_msg" >&AS_MESSAGE_LOG_FD # Cleanup the group directory, unless the user wants the files. - $at_debug_p || { - test -d $at_group_dir && chmod -R u+rwx $at_group_dir - rm -f -r $at_group_dir - } + $at_debug_p || + if test -d $at_group_dir; then + find $at_group_dir -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -fr $at_group_dir + fi ;; *) # Upon failure, include the log into the testsuite's global