Building a snapshot of the current coreutils with current gnulib, I get a compilation error on CentOS 5 and 6:
CC src/ls.o ../src/ls.c: In function 'gobble_file': ../src/ls.c:3556: error: 'XATTR_NAME_CAPS' undeclared (first use in this function) ../src/ls.c:3556: error: (Each undeclared identifier is reported only once ../src/ls.c:3556: error: for each function it appears in.) make[2]: *** [src/ls.o] Error 1 The attached proposed patch fixes it. This is a similar problem as we encountered in gnulib: https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=3266c08a315 https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=73a13b94b94 The lesson is: Provide fallbacks for *all* XATTR_NAME_* values, since older distros don't define them.
>From 79f8060636fcd1a7b92d07a973ed07c6ff1f9a04 Mon Sep 17 00:00:00 2001 From: Bruno Haible <br...@clisp.org> Date: Thu, 16 Jan 2025 20:31:08 +0100 Subject: [PATCH] ls: Fix compilation error on CentOS 6 * src/ls.c (XATTR_NAME_CAPS): Define fallback. --- src/ls.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ls.c b/src/ls.c index a64ed57ab..321536021 100644 --- a/src/ls.c +++ b/src/ls.c @@ -122,6 +122,9 @@ #if HAVE_LINUX_XATTR_H # include <linux/xattr.h> +# ifndef XATTR_NAME_CAPS +# define XATTR_NAME_CAPS "security.capability" +# endif #endif #define PROGRAM_NAME (ls_mode == LS_LS ? "ls" \ -- 2.43.0