diff --git a/tar-1.35-Avoid-acl_-prefix-for-functions.patch b/tar-1.35-Avoid-acl_-prefix-for-functions.patch new file mode 100644 index 0000000..98f6208 --- /dev/null +++ b/tar-1.35-Avoid-acl_-prefix-for-functions.patch @@ -0,0 +1,99 @@ +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 4f5872c1..f98e8e0f 100644 +--- a/src/xattrs.c ++++ b/src/xattrs.c +@@ -133,13 +133,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 +@@ -153,8 +153,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 +@@ -164,8 +164,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 +@@ -294,10 +294,10 @@ xattrs__acls_set (struct tar_stat_info const *st, + FILE_NAME may already have inherited default acls from parent + directory; clean them up. */ + struct fdbase f1 = fdbase (file_name); +- if (f1.fd == BADFD || acl_delete_def_file_at (f1.fd, f1.base)) ++ if (f1.fd == BADFD || tar_acl_delete_def_file_at (f1.fd, f1.base)) + 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; +@@ -311,11 +311,11 @@ xattrs__acls_set (struct tar_stat_info const *st, + } + + struct fdbase f = fdbase (file_name); +- if (f.fd == BADFD || acl_set_file_at (f.fd, f.base, type, acl) == -1) ++ if (f.fd == BADFD || tar_acl_set_file_at (f.fd, f.base, 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); +@@ -351,10 +351,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; + } + +-- +2.47.3 + diff --git a/tar.spec b/tar.spec index 8bb2870..85dca01 100644 --- a/tar.spec +++ b/tar.spec @@ -59,6 +59,8 @@ Patch22: tar-1.35-no-overwrite-dir-no-overwrite-even-temporarily.patch # 45b6e6898d1f931bfca41d961289bd6ac33238e5 Patch23: tar-1.35-CVE-2025-45582.patch Patch24: tar-1.35-tar-one-top-level-DIR-must-be-relative.patch +# Source: https://cgit.git.savannah.gnu.org/cgit/tar.git/diff/?id=08c3fc2e9337094aff01a511170fd35fdb8f1ee3 +Patch25: tar-1.35-Avoid-acl_-prefix-for-functions.patch BuildRequires: autoconf BuildRequires: automake