diff --git a/repos/spack_repo/builtin/packages/babeltrace2/package.py b/repos/spack_repo/builtin/packages/babeltrace2/package.py index 19762bba861..b19b1232590 100644 --- a/repos/spack_repo/builtin/packages/babeltrace2/package.py +++ b/repos/spack_repo/builtin/packages/babeltrace2/package.py @@ -36,6 +36,7 @@ class Babeltrace2(AutotoolsPackage): variant("manpages", default=True, description="Build man pages") depends_on("c", type="build") + depends_on("cxx", type="build", when="@2.1:") depends_on("pkgconfig", type="build") depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/tar/package.py b/repos/spack_repo/builtin/packages/tar/package.py index eb97034f55b..2775646df97 100644 --- a/repos/spack_repo/builtin/packages/tar/package.py +++ b/repos/spack_repo/builtin/packages/tar/package.py @@ -44,6 +44,9 @@ class Tar(AutotoolsPackage, GNUMirrorPackage): depends_on("xz", type="run") # for xz/lzma depends_on("bzip2", type="run") + patch("tar-1.35-avoid-acl-prefix.patch", when="@1.35") + patch("tar-1.34-avoid-acl-prefix.patch", when="@1.34") + # The NVIDIA compilers do not currently support some GNU builtins. # Detect this case and use the fallback path. with when("%nvhpc"): diff --git a/repos/spack_repo/builtin/packages/tar/tar-1.34-avoid-acl-prefix.patch b/repos/spack_repo/builtin/packages/tar/tar-1.34-avoid-acl-prefix.patch new file mode 100644 index 00000000000..08a675ff5c0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/tar/tar-1.34-avoid-acl-prefix.patch @@ -0,0 +1,98 @@ +diff --git a/src/xattrs.c b/src/xattrs.c +index bbf6881..b8b3e30 100644 +--- a/src/xattrs.c ++++ b/src/xattrs.c +@@ -58,13 +58,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 +@@ -78,8 +78,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 +@@ -89,8 +89,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 +@@ -219,10 +219,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; +@@ -236,11 +236,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); +@@ -278,10 +278,10 @@ xattrs__acls_get_a (int parentfd, const char *file_name, + char *val = NULL; + acl_t acl; + +- if (!(acl = acl_get_file_at (parentfd, file_name, ACL_TYPE_ACCESS))) ++ if (!(acl = tar_acl_get_file_at (parentfd, file_name, ACL_TYPE_ACCESS))) + { + if (errno != ENOTSUP) +- call_arg_warn ("acl_get_file_at", file_name); ++ call_arg_warn ("tar_acl_get_file_at", file_name); + return; + } + +@@ -308,10 +308,10 @@ xattrs__acls_get_d (int parentfd, char const *file_name, + char *val = NULL; + acl_t acl; + +- if (!(acl = acl_get_file_at (parentfd, file_name, ACL_TYPE_DEFAULT))) ++ if (!(acl = tar_acl_get_file_at (parentfd, file_name, ACL_TYPE_DEFAULT))) + { + if (errno != ENOTSUP) +- call_arg_warn ("acl_get_file_at", file_name); ++ call_arg_warn ("tar_acl_get_file_at", file_name); + return; + } + diff --git a/repos/spack_repo/builtin/packages/tar/tar-1.35-avoid-acl-prefix.patch b/repos/spack_repo/builtin/packages/tar/tar-1.35-avoid-acl-prefix.patch new file mode 100644 index 00000000000..b896d6c0c09 --- /dev/null +++ b/repos/spack_repo/builtin/packages/tar/tar-1.35-avoid-acl-prefix.patch @@ -0,0 +1,99 @@ +From: Andreas Gruenbacher +Subject: [BACKPORT] Avoid acl_ prefix for functions +Date: Mon, 17 Aug 2026 20:11:06 +0200 + +Commit 08c3fc2e backported to tar-1.35: + +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 86a7e59c..c872ae30 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; + } + +-- +2.55.0