* lib/acl-internal.h (MODE_INSIDE_ACL): Remove code for IRIX.
* lib/acl-internal.c (acl_access_nontrivial): Likewise.
* lib/acl_entries.c (acl_entries): Likewise.
* lib/file-has-acl.c: Update comments.
* lib/get-permissions.c: Likewise.
* lib/set-permissions.c: Likewise.
* m4/acl.m4 (gl_FUNC_ACL): Likewise.
* doc/acl-resources.txt: Remove info about IRIX.
2025-09-10 Bruno Haible <bruno@clisp.org>
+ acl-permissions, file-has-acl: Remove support for IRIX.
+ * lib/acl-internal.h (MODE_INSIDE_ACL): Remove code for IRIX.
+ * lib/acl-internal.c (acl_access_nontrivial): Likewise.
+ * lib/acl_entries.c (acl_entries): Likewise.
+ * lib/file-has-acl.c: Update comments.
+ * lib/get-permissions.c: Likewise.
+ * lib/set-permissions.c: Likewise.
+ * m4/acl.m4 (gl_FUNC_ACL): Likewise.
+ * doc/acl-resources.txt: Remove info about IRIX.
+
acl, file-has-acl, copy-file tests: Remove support for IRIX.
* tests/test-file-has-acl.sh: Remove code for IRIX ACLs.
* tests/test-set-mode-acl.sh: Likewise.
setacl
-IRIX ACLs
-
-Manual pages:
- http://techpubs.sgi.com/library/tpl/cgi-bin/browse.cgi?cmd=search&db=man&srch=acl&coll=0650&range=0,133
- http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/p_man/cat4/acl.z
-Includes:
- <sys/acl.h>
-Library:
- none needed
-Functions:
- acl_add_perm
- acl_calc_mask
- acl_clear_perms
- acl_copy_entry
- acl_copy_ext
- acl_copy_int
- acl_create_entry
- acl_delete_def_file
- acl_delete_entry
- acl_delete_perm
- acl_dup
- acl_free
- acl_from_text
- acl_get_entry
- acl_get_fd
- acl_get_file
- acl_get_permset
- acl_get_qualifier
- acl_get_tag_type
- acl_init
- acl_set_fd
- acl_set_file
- acl_set_permset
- acl_set_qualifier
- acl_set_tag_type
- acl_size
- acl_to_short_text
- acl_to_text
- acl_valid
-Utilities:
- chacl
-
-
AIX ACLs
Documentation:
# include <string.h>
#endif
-#if USE_ACL && HAVE_ACL_GET_FILE /* Linux, FreeBSD, NetBSD >= 10, Mac OS X, IRIX, Cygwin >= 2.5 */
+#if USE_ACL && HAVE_ACL_GET_FILE /* Linux, FreeBSD, NetBSD >= 10, Mac OS X, Cygwin >= 2.5 */
# if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
return (acl_entries (acl) > 0);
}
-# else /* Linux, FreeBSD, NetBSD >= 10, IRIX, Cygwin >= 2.5 */
+# else /* Linux, FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
/* ACL is an ACL, from a file, stored as type ACL_TYPE_ACCESS.
Return 1 if the given ACL is non-trivial.
}
return got_one;
-# elif HAVE_ACL_TO_SHORT_TEXT /* IRIX */
- /* Don't use acl_get_entry: it is undocumented. */
-
- int count = acl->acl_cnt;
- int i;
-
- for (i = 0; i < count; i++)
- {
- acl_entry_t ace = &acl->acl_entry[i];
- acl_tag_t tag = ace->ae_tag;
-
- if (!(tag == ACL_USER_OBJ || tag == ACL_GROUP_OBJ
- || tag == ACL_OTHER_OBJ))
- return 1;
- }
- return 0;
-
# else
errno = ENOSYS;
free_permission_context (struct permission_context *ctx)
{
#if USE_ACL
-# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, NetBSD >= 10, Mac OS X, IRIX, Cygwin >= 2.5 */
+# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, NetBSD >= 10, Mac OS X, Cygwin >= 2.5 */
if (ctx->acl)
acl_free (ctx->acl);
# if !HAVE_ACL_TYPE_EXTENDED
# if HAVE_ACL_GET_FILE
/* POSIX 1003.1e (draft 17 -- abandoned) specific version. */
-/* Linux, FreeBSD, Mac OS X, IRIX, Cygwin >= 2.5 */
+/* Linux, FreeBSD, Mac OS X, Cygwin >= 2.5 */
# ifndef MIN_ACL_ENTRIES
# define MIN_ACL_ENTRIES 4
# endif
/* Set to 0 if a file's mode is stored independently from the ACL. */
-# if (HAVE_ACL_COPY_EXT_NATIVE && HAVE_ACL_CREATE_ENTRY_NP) || defined __sgi /* Mac OS X, IRIX */
+# if HAVE_ACL_COPY_EXT_NATIVE && HAVE_ACL_CREATE_ENTRY_NP /* Mac OS X */
# define MODE_INSIDE_ACL 0
# endif
struct permission_context {
mode_t mode;
#if USE_ACL
-# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Cygwin >= 2.5 */
+# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, Cygwin >= 2.5 */
acl_t acl;
# if !HAVE_ACL_TYPE_EXTENDED
acl_t default_acl;
#include "acl-internal.h"
/* This file assumes POSIX-draft like ACLs
- (Linux, FreeBSD, NetBSD >= 10, Mac OS X, IRIX, Cygwin >= 2.5). */
+ (Linux, FreeBSD, NetBSD >= 10, Mac OS X, Cygwin >= 2.5). */
/* Return the number of entries in ACL.
Return -1 and set errno upon failure to determine it. */
if (acl != NULL)
{
-#if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, NetBSD >= 10, Mac OS X, Cygwin >= 2.5 */
-# if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
+#if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
/* acl_get_entry returns 0 when it successfully fetches an entry,
and -1/EINVAL at the end. */
acl_entry_t ace;
got_one >= 0;
got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
count++;
-# else /* Linux, FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
+#else /* Linux, FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
/* acl_get_entry returns 1 when it successfully fetches an entry,
and 0 at the end. */
acl_entry_t ace;
count++;
if (got_one < 0)
return -1;
-# endif
-#else /* IRIX */
- /* Don't use acl_get_entry: it is undocumented. */
- count = acl->acl_cnt;
#endif
}
#if (!USE_LINUX_XATTR && USE_ACL && HAVE_ACL_GET_FILE \
&& !HAVE_ACL_EXTENDED_FILE && !HAVE_ACL_TYPE_EXTENDED)
-/* FreeBSD, NetBSD >= 10, IRIX, Cygwin >= 2.5 */
+/* FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
-# if HAVE_ACL_GET_FD && !HAVE_ACL_GET_LINK_NP /* IRIX, Cygwin >= 2.5 */
+# if HAVE_ACL_GET_FD && !HAVE_ACL_GET_LINK_NP /* Cygwin >= 2.5 */
# include <fcntl.h>
# ifdef O_PATH
# define acl_get_fd_np(fd, type) acl_get_fd (fd)
{
/* POSIX 1003.1e (draft 17 -- abandoned) specific version. */
- /* Linux, FreeBSD, NetBSD >= 10, Mac OS X, IRIX, Cygwin >= 2.5 */
+ /* Linux, FreeBSD, NetBSD >= 10, Mac OS X, Cygwin >= 2.5 */
int ret;
# if HAVE_ACL_EXTENDED_FILE /* Linux */
}
else
ret = -1;
-# else /* FreeBSD, NetBSD >= 10, IRIX, Cygwin >= 2.5 */
+# else /* FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
acl_t acl = acl_get_fdfile (fd, name, ACL_TYPE_ACCESS, flags);
if (acl)
int saved_errno = errno;
acl_free (acl);
errno = saved_errno;
- /* On Linux, FreeBSD, NetBSD, IRIX,
+ /* On Linux, FreeBSD, NetBSD,
acl_get_file (name, ACL_TYPE_ACCESS)
and acl_get_file (name, ACL_TYPE_DEFAULT) on a directory
either both succeed or both fail; it depends on the
#if USE_ACL && HAVE_ACL_GET_FILE
/* POSIX 1003.1e (draft 17 -- abandoned) specific version. */
- /* Linux, FreeBSD, Mac OS X, IRIX, Cygwin >= 2.5 */
+ /* Linux, FreeBSD, Mac OS X, Cygwin >= 2.5 */
# if !HAVE_ACL_TYPE_EXTENDED
- /* Linux, FreeBSD, IRIX, Cygwin >= 2.5 */
+ /* Linux, FreeBSD, Cygwin >= 2.5 */
if (HAVE_ACL_GET_FD && desc != -1)
ctx->acl = acl_get_fd (desc);
#include "minmax.h"
#if USE_ACL
-# if ! defined HAVE_ACL_FROM_MODE && defined HAVE_ACL_FROM_TEXT /* FreeBSD, IRIX, Cygwin >= 2.5 */
+# if ! defined HAVE_ACL_FROM_MODE && defined HAVE_ACL_FROM_TEXT /* FreeBSD, Cygwin >= 2.5 */
# if HAVE_ACL_GET_FILE && !HAVE_ACL_TYPE_EXTENDED
static acl_t
# if HAVE_ACL_GET_FILE
/* POSIX 1003.1e (draft 17 -- abandoned) specific version. */
- /* Linux, FreeBSD, Mac OS X, IRIX, Cygwin >= 2.5 */
+ /* Linux, FreeBSD, Mac OS X, Cygwin >= 2.5 */
# if !HAVE_ACL_TYPE_EXTENDED
- /* Linux, FreeBSD, IRIX, Cygwin >= 2.5 */
+ /* Linux, FreeBSD, Cygwin >= 2.5 */
# ifndef HAVE_ACL_FROM_TEXT
# error Must have acl_from_text (see POSIX 1003.1e draft 17).
# acl.m4
-# serial 38
+# serial 39
dnl Copyright (C) 2002, 2004-2025 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
gl_saved_LIBS=$LIBS
dnl Test for POSIX-draft-like API (GNU/Linux, FreeBSD, NetBSD >= 10,
- dnl Mac OS X, IRIX, Cygwin >= 2.5).
+ dnl Mac OS X, Cygwin >= 2.5).
dnl -lacl is needed on GNU/Linux.
if test $use_acl = 0; then
AC_SEARCH_LIBS([acl_get_file], [acl],