Here's an addendum, also for Tru64. It turns out that the acl_from_text
function wants a comma at the end of the argument string.

With FreeBSD, IRIX and Tru64 covered, we can remove the #else for
unknown flavors of ACLs: If a new platform comes up, it will likely be
like FreeBSD.

Jim, ok to commit?


2008-05-23  Bruno Haible  <[EMAIL PROTECTED]>

        Improve support for ACLs on OSF/1.
        * lib/acl.c (qset_acl): For OSF/1, use a string that ends in a comma.
        Remove fallback for unknown flavors of ACLs.

From 8559805bad1b3f2e9c5bae6d36aa4438249d396a Mon Sep 17 00:00:00 2001
From: Bruno Haible <[EMAIL PROTECTED]>
Date: Fri, 23 May 2008 13:29:46 +0200
Subject: [PATCH] Improve support for ACLs on OSF/1.

---
 ChangeLog |    6 ++++++
 lib/acl.c |    8 ++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5bc446d..05cdf1c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-23  Bruno Haible  <[EMAIL PROTECTED]>
+
+	Improve support for ACLs on OSF/1.
+	* lib/acl.c (qset_acl): For OSF/1, use a string that ends in a comma.
+	Remove fallback for unknown flavors of ACLs.
+
 2008-05-22  Bruno Haible  <[EMAIL PROTECTED]>
 
 	Add support for ACLs on OSF/1.
diff --git a/lib/acl.c b/lib/acl.c
index 5469db9..a164f0c 100644
--- a/lib/acl.c
+++ b/lib/acl.c
@@ -83,8 +83,11 @@ qset_acl (char const *name, int desc, mode_t mode)
 	 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) || HAVE_ACL_TO_SHORT_TEXT /* FreeBSD, IRIX */
+#   if HAVE_ACL_FREE_TEXT /* Tru64 */
+      char acl_text[] = "u::---,g::---,o::---,";
+#   else /* FreeBSD, IRIX */
       char acl_text[] = "u::---,g::---,o::---";
+#   endif
 
       if (mode & S_IRUSR) acl_text[ 3] = 'r';
       if (mode & S_IWUSR) acl_text[ 4] = 'w';
@@ -99,9 +102,6 @@ qset_acl (char const *name, int desc, mode_t mode)
       acl = acl_from_text (acl_text);
       if (!acl)
 	return -1;
-#   else /* Unknown flavor of POSIX-like ACLs */
-      return chmod_or_fchmod (name, desc, mode);
-#   endif
     }
   if (HAVE_ACL_SET_FD && desc != -1)
     ret = acl_set_fd (desc, acl);
-- 
1.5.4.1

Reply via email to