On 2011-09-04 I committed this: > 2011-09-04 Bruno Haible <br...@clisp.org> > > acl: Improve support of NFSv4 ACLs on Solaris 10 (newer version). > * lib/acl-internal.h (ACE_*, NEW_ACE_*): Define also on newer Solaris > 10. > (OLD_ALLOW, OLD_DENY): New macros. > (NEW_ACE_ACCESS_ALLOWED_ACE_TYPE): Renamed from > ACE_ACCESS_ALLOWED_ACE_TYPE. > (NEW_ACE_ACCESS_DENIED_ACE_TYPE): Renamed from > ACE_ACCESS_DENIED_ACE_TYPE. > (OLD_ACE_OWNER, OLD_ACE_GROUP, OLD_ACE_OTHER): New macros. > (NEW_ACE_EXECUTE): Fix value. > (NEW_ACE_APPEND_DATA, NEW_ACE_READ_NAMED_ATTRS, > NEW_ACE_WRITE_NAMED_ATTRS, NEW_ACE_DELETE_CHILD, > NEW_ACE_READ_ATTRIBUTES, NEW_ACE_WRITE_ATTRIBUTES, NEW_ACE_DELETE, > NEW_ACE_READ_ACL, NEW_ACE_WRITE_ACL, NEW_ACE_WRITE_OWNER, > NEW_ACE_SYNCHRONIZE): New macros. > * lib/set-mode-acl.c (qset_acl): On newer Solaris 10, use acl or facl > instead of acl_fromtext, acl_set, facl_set. > Fixes a coreutils/tests/cp/perm failure.
Unfortunately, this patch broke the compilation on the original version of Solaris 10. Christian Jullien reports (in private mail): ! le patch http://lists.gnu.org/archive/html/coreutils/2011-09/msg00065.html ! provoque une erreur sur mon Solaris 10 sparc (gcc 4.6.1) ! ! Tu changes ! ! -# define ACE_EVERYONE 0x4000 ! en ! +# define NEW_ACE_EVERYONE 0x4000 ! ! Mais il est toujours utilisé dans set-mode-acl.c ! ! entries[4].a_flags = ACE_EVERYONE; ! entries[4].a_who = 0; ! entries[4].a_access_mask = NEW_ACE_WRITE_NAMED_ATTRS ! | NEW_ACE_WRITE_ATTRIBUTES ! | NEW_ACE_WRITE_ACL ! | NEW_ACE_WRITE_OWNER; ! entries[5].a_type = NEW_ACE_ACCESS_ALLOWED_ACE_TYPE; ! entries[5].a_flags = ACE_EVERYONE; ! ! Sur ma machine, j'ai ajouté ! ! # define ACE_EVERYONE 0x4000 ! ! Pour que ça compile à nouveau, tout marche bien ensuite. This patch in gnulib should fix it. 2011-09-11 Bruno Haible <br...@clisp.org> acl: Fix compilation on Solaris 10 (older version). * lib/file-has-acl.c (acl_ace_nontrivial): Use NEW_ACE_EVERYONE instead of ACE_EVERYONE. * lib/set-mode-acl.c (qset_acl): Likewise. Reported by Christian Jullien <eli...@orange.fr>. --- lib/file-has-acl.c.orig Sun Sep 11 11:48:25 2011 +++ lib/file-has-acl.c Sun Sep 11 11:47:43 2011 @@ -217,7 +217,7 @@ index2 = 0; else if (ace->a_flags == (NEW_ACE_GROUP | NEW_ACE_IDENTIFIER_GROUP)) index2 = 2; - else if (ace->a_flags == ACE_EVERYONE) + else if (ace->a_flags == NEW_ACE_EVERYONE) index2 = 4; else return 1; --- lib/set-mode-acl.c.orig Sun Sep 11 11:48:25 2011 +++ lib/set-mode-acl.c Sun Sep 11 11:48:13 2011 @@ -328,14 +328,14 @@ else entries[2].a_access_mask |= NEW_ACE_EXECUTE; entries[4].a_type = NEW_ACE_ACCESS_DENIED_ACE_TYPE; - entries[4].a_flags = ACE_EVERYONE; + entries[4].a_flags = NEW_ACE_EVERYONE; entries[4].a_who = 0; entries[4].a_access_mask = NEW_ACE_WRITE_NAMED_ATTRS | NEW_ACE_WRITE_ATTRIBUTES | NEW_ACE_WRITE_ACL | NEW_ACE_WRITE_OWNER; entries[5].a_type = NEW_ACE_ACCESS_ALLOWED_ACE_TYPE; - entries[5].a_flags = ACE_EVERYONE; + entries[5].a_flags = NEW_ACE_EVERYONE; entries[5].a_who = 0; entries[5].a_access_mask = NEW_ACE_READ_NAMED_ATTRS | NEW_ACE_READ_ATTRIBUTES -- In memoriam Georgi Markov <http://en.wikipedia.org/wiki/Georgi_Markov>