bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: acl: add support for MacOS X 10.5


From: Bruno Haible
Subject: Re: acl: add support for MacOS X 10.5
Date: Sat, 24 May 2008 00:43:43 +0200
User-agent: KMail/1.5.4

Jim Meyering wrote:
> Looks good.
> You're welcome to commit regardless of the acl_trivial
> issue mentioned below.

Thanks, applied with a tweak (attached below) that should fix a probable
breakage on IRIX in the original proposal.

> Once you've investigated Solaris ACLs you might want to adjust that
> comment.  I seem to recall seeing trivial ones with 4 or 5 entries.
> ...
> Have you considered using acl_trivial (also used in file-has-acl.c)
> or a replacement that encapsulates this test?

Haven't thought about it yet. Is it the syntactic or semantic triviality
of the ACL which matters? (Example: If the file has the mode rwx------,
owner = 101, and an additional ACL "user:150:---", the ACL is semantically
trivial: the additional ACL has no effect, since user 150 cannot access the
file anyway. But it's not syntactically trivial: 'ls' or getfacl displays it,
and after the mode is changed to rwxrwx--- the additional ACL becomes
effective.)

Also, I'm not sure whether it's worth to use a function whose only known
implementation (in Solaris) is buggy:
  http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6664043

Bruno



--- ChangeLog.orig      2008-05-23 02:37:07.000000000 +0200
+++ ChangeLog   2008-05-23 02:36:17.000000000 +0200
@@ -9,8 +9,8 @@
        * lib/copy-acl.c (copy_acl): Add support for platforms with
        !MODE_INSIDE_ACL.
        * lib/file-has-acl.c (file_has_acl): Likewise.
-       * m4/acl.m4 (gl_FUNC_ACL): Test for some functions that are witness
-       of FreeBSD or MacOS X, respectively.
+       * m4/acl.m4 (gl_FUNC_ACL): Test for some functions that are witness of
+       FreeBSD, MacOS X, or IRIX, respectively.
 
 2008-05-22  Bruno Haible  <address@hidden>
 
--- lib/acl.c.orig      2008-05-23 02:37:07.000000000 +0200
+++ lib/acl.c   2008-05-23 02:34:00.000000000 +0200
@@ -83,7 +83,7 @@
         would need to create a qualifier.  I don't know how to do this.
         So create it using acl_from_text().  */
 
-#   if HAVE_ACL_DELETE_FD_NP && HAVE_ACL_DELETE_FILE_NP /* FreeBSD */
+#   if (HAVE_ACL_DELETE_FD_NP && HAVE_ACL_DELETE_FILE_NP) || 
HAVE_ACL_TO_SHORT_TEXT /* FreeBSD, IRIX */
       char acl_text[] = "u::---,g::---,o::---";
 
       if (mode & S_IRUSR) acl_text[ 3] = 'r';
--- m4/acl.m4.orig      2008-05-23 02:37:07.000000000 +0200
+++ m4/acl.m4   2008-05-23 02:33:13.000000000 +0200
@@ -37,7 +37,8 @@
                 acl_free acl_from_mode acl_from_text \
                 acl_delete_def_file acl_extended_file \
                 acl_delete_fd_np acl_delete_file_np \
-                acl_copy_ext_native acl_create_entry_np])
+                acl_copy_ext_native acl_create_entry_np \
+                acl_to_short_text])
              if test $ac_cv_func_acl_get_file = yes; then
                # If the acl_get_file bug is detected, disable all ACL support.
                gl_ACL_GET_FILE( , [use_acl=0])





reply via email to

[Prev in Thread] Current Thread [Next in Thread]