At Tuesday 06 October 2009, Ralf Wildenhues <[email protected]>
wrote:
> Hi Stefano,
>
> [CUT]
> Thanks for the patch and the explanations. One question/nit:
> > --- a/tests/Makefile.am
> > +++ b/tests/Makefile.am
> > @@ -745,5 +745,9 @@ check_SCRIPTS = defs defs-p
> > aclocal-$(APIVERSION) automake-$(APIVERSION) clean-local:
> > clean-local-check
> > .PHONY: clean-local-check
> > clean-local-check:
> > - -chmod -R u+rwx *.dir
> > + -for d in *.dir; do \
> > + if test -d "$$d"; then \
> > + find "$$d" -type d '!' -perm -200 -exec chmod u+w {} ';';
> > \ + else :; fi; \
> > + done
> > -rm -rf defs-p *.dir
>
> Any reason against using
> -find *.dir -type d '!' -perm -200 -exec chmod u+w {} ';' 2>/dev/null
>
> or, if you care about error messages other than "find: `*.dir': No
> such file or directory", then maybe something like
> -set x *.dir; shift; \
> if test "$$#,$$1" != "1,*.dir"; then \
> find "$$@" -type d '!' -perm -200 -exec chmod u+w {} ';'; \
> else :; fi
>
> to avoid lots of forking in the "normal" case?
No reason at all. I just thought that avoiding forks was not important
here. I have amended and resent my patch. I have also changed your
fix sligthly, to make it even clearer (IMHO).
Regards,
Stefano
From 73fb9764019046d3d2dbd40dc711c8c8a0293b27 Mon Sep 17 00:00:00 2001
From: Stefano Lattarini <[email protected]>
Date: Tue, 6 Oct 2009 17:01:23 +0200
Subject: [PATCH] Testsuite: do not use `chmod -R' when cleaning up.
* tests/Makefile.am (clean-local-check): Do not use `chmod -R' on
the test directories, as that may change or try to change the mode
of installed files: the test directory may contain symlinks to
ltmain.sh files from a Libtool installation, and Solaris `chmod -R'
touches symlink targets. Instead, use the cleanup strategy used
in distdir.am (which is also employed in tests/defs.in).
---
ChangeLog | 10 ++++++++++
tests/Makefile.am | 10 ++++++++--
tests/Makefile.in | 10 ++++++++--
3 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index c76e559..6803f0e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-10-07 Stefano Lattarini <[email protected]>
+
+ Testsuite: do not use `chmod -R' when cleaning up.
+ * tests/Makefile.am (clean-local-check): Do not use `chmod -R' on
+ the test directories, as that may change or try to change the mode
+ of installed files: the test directory may contain symlinks to
+ ltmain.sh files from a Libtool installation, and Solaris `chmod -R'
+ touches symlink targets. Instead, use the cleanup strategy used
+ in distdir.am (which is also employed in tests/defs.in).
+
2009-09-25 Ralf Wildenhues <[email protected]>
Use silent-rules for building the Automake package.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 7f6910b..6f8b977 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -745,5 +745,11 @@ check_SCRIPTS = defs defs-p aclocal-$(APIVERSION) automake-$(APIVERSION)
clean-local: clean-local-check
.PHONY: clean-local-check
clean-local-check:
- -chmod -R u+rwx *.dir
- -rm -rf defs-p *.dir
+ -set x *.dir; shift; \
+ if test "$$#,$$1" = "1,*.dir"; then \
+ : there is no test directory to clean; \
+ else \
+ find "$$@" -type d '!' -perm -200 -exec chmod u+w {} ';'; \
+ rm -rf "$$@"; \
+ fi;
+ -rm -f defs-p
diff --git a/tests/Makefile.in b/tests/Makefile.in
index de86e68..479bcfd 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1345,8 +1345,14 @@ defs-p: defs Makefile.am
clean-local: clean-local-check
.PHONY: clean-local-check
clean-local-check:
- -chmod -R u+rwx *.dir
- -rm -rf defs-p *.dir
+ -set x *.dir; shift; \
+ if test "$$#,$$1" = "1,*.dir"; then \
+ : there is no test directory to clean; \
+ else \
+ find "$$@" -type d '!' -perm -200 -exec chmod u+w {} ';'; \
+ rm -rf "$$@"; \
+ fi;
+ -rm -f defs-p
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
--
1.6.3.3