Submitted By: Bruce Dubbs Date: 2026-06-30 Initial Package Version: 1.35 Upstream Status: Under evaluation Origin: https://gitweb.gentoo.org/repo/gentoo.git/diff/app-arch/tar/files/tar-1.35-acl-2.4.0.patch?id=6731e63c549adf1b2f99f593880f0b4b00fcb9f4 Description: Fix build failure caused by acl-2.4.0 https://bugs.gentoo.org/978280 https://lists.gnu.org/archive/html/bug-tar/2026-06/msg00013.html From f1ecf60ea59c1503e63e887e455756b68db04806 Mon Sep 17 00:00:00 2001 From: Pavel Cahyna Date: Wed, 24 Jun 2026 18:45:30 +0200 Subject: [PATCH] Avoid acl_ prefix for functions The acl.h header from libacl uses acl_ prefix for its functions. Avoid defining functions with the same name in order to protect its namespace. --- src/xattrs.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/xattrs.c b/src/xattrs.c index 86a7e59..c872ae3 100644 --- a/src/xattrs.c +++ b/src/xattrs.c @@ -139,13 +139,13 @@ static struct #ifdef HAVE_POSIX_ACLS /* acl-at wrappers, TODO: move to gnulib in future? */ -static acl_t acl_get_file_at (int, const char *, acl_type_t); -static int acl_set_file_at (int, const char *, acl_type_t, acl_t); +static acl_t tar_acl_get_file_at (int, const char *, acl_type_t); +static int tar_acl_set_file_at (int, const char *, acl_type_t, acl_t); static int file_has_acl_at (int, char const *, struct stat const *); -static int acl_delete_def_file_at (int, char const *); +static int tar_acl_delete_def_file_at (int, char const *); -/* acl_get_file_at */ -#define AT_FUNC_NAME acl_get_file_at +/* tar_acl_get_file_at */ +#define AT_FUNC_NAME tar_acl_get_file_at #define AT_FUNC_RESULT acl_t #define AT_FUNC_FAIL (acl_t)NULL #define AT_FUNC_F1 acl_get_file @@ -159,8 +159,8 @@ static int acl_delete_def_file_at (int, char const *); #undef AT_FUNC_POST_FILE_PARAM_DECLS #undef AT_FUNC_POST_FILE_ARGS -/* acl_set_file_at */ -#define AT_FUNC_NAME acl_set_file_at +/* tar_acl_set_file_at */ +#define AT_FUNC_NAME tar_acl_set_file_at #define AT_FUNC_F1 acl_set_file #define AT_FUNC_POST_FILE_PARAM_DECLS , acl_type_t type, acl_t acl #define AT_FUNC_POST_FILE_ARGS , type, acl @@ -170,8 +170,8 @@ static int acl_delete_def_file_at (int, char const *); #undef AT_FUNC_POST_FILE_PARAM_DECLS #undef AT_FUNC_POST_FILE_ARGS -/* acl_delete_def_file_at */ -#define AT_FUNC_NAME acl_delete_def_file_at +/* tar_acl_delete_def_file_at */ +#define AT_FUNC_NAME tar_acl_delete_def_file_at #define AT_FUNC_F1 acl_delete_def_file #define AT_FUNC_POST_FILE_PARAM_DECLS #define AT_FUNC_POST_FILE_ARGS @@ -299,10 +299,10 @@ xattrs__acls_set (struct tar_stat_info const *st, /* No "default" IEEE 1003.1e ACL set for directory. At this moment, FILE_NAME may already have inherited default acls from parent directory; clean them up. */ - if (acl_delete_def_file_at (chdir_fd, file_name)) + if (tar_acl_delete_def_file_at (chdir_fd, file_name)) WARNOPT (WARN_XATTR_WRITE, (0, errno, - _("acl_delete_def_file_at: Cannot drop default POSIX ACLs " + _("tar_acl_delete_def_file_at: Cannot drop default POSIX ACLs " "for file '%s'"), file_name)); return; @@ -316,11 +316,11 @@ xattrs__acls_set (struct tar_stat_info const *st, return; } - if (acl_set_file_at (chdir_fd, file_name, type, acl) == -1) + if (tar_acl_set_file_at (chdir_fd, file_name, type, acl) == -1) /* warn even if filesystem does not support acls */ WARNOPT (WARN_XATTR_WRITE, (0, errno, - _ ("acl_set_file_at: Cannot set POSIX ACLs for file '%s'"), + _ ("tar_acl_set_file_at: Cannot set POSIX ACLs for file '%s'"), file_name)); acl_free (acl); @@ -357,10 +357,10 @@ acls_get_text (int parentfd, const char *file_name, acl_type_t type, char *val = NULL; acl_t acl; - if (!(acl = acl_get_file_at (parentfd, file_name, type))) + if (!(acl = tar_acl_get_file_at (parentfd, file_name, type))) { if (errno != ENOTSUP) - call_arg_warn ("acl_get_file_at", file_name); + call_arg_warn ("tar_acl_get_file_at", file_name); return; }