Am 26.07.2014 10:08, schrieb Elimar Riesebieter: > Package: systemd > Version: 208-6 > Severity: serious > Justification: fails to build from source (but built successfully in the past) > > Using pbuilder updated today. Build stops at: > In file included from ../src/core/socket.c:32:0: > /usr/include/x86_64-linux-gnu/sys/xattr.h:32:3: error: expected identifier > before numeric constant > XATTR_CREATE = 1, /* set value, fail if attr already exists. */ > ^
Hm, that seems to be a recent change in the linux kernel headers afaics. Can you try with the attached patch? -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth?
From bc3d33edd2b227c17ae338bf147067bdfafe299c Mon Sep 17 00:00:00 2001 From: Kay Sievers <k...@vrfy.org> Date: Wed, 28 May 2014 17:36:40 +0800 Subject: [PATCH] build-sys: use glibc's xattr support instead of requiring libattr (cherry picked from commit d2edfae0f9bdbecf6a8518e2a5bcf06f470e0d9e) --- configure.ac | 51 -------------------------------------------- src/core/mount-setup.c | 2 -- src/core/socket.c | 4 +--- src/journal/journal-file.c | 7 +----- src/journal/journal-vacuum.c | 10 +-------- 5 files changed, 3 insertions(+), 71 deletions(-) diff --git a/configure.ac b/configure.ac index 9605b38..4b0b45b 100644 --- a/configure.ac +++ b/configure.ac @@ -468,44 +468,6 @@ AC_SUBST(ACL_LIBS) AM_CONDITIONAL([HAVE_ACL], [test "x$have_acl" != xno]) # ------------------------------------------------------------------------------ -AC_ARG_ENABLE([xattr], - AS_HELP_STRING([--disable-xattr],[Disable optional XATTR support]), - [case "${enableval}" in - yes) have_xattr=yes ;; - no) have_xattr=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-xattr) ;; - esac], - [have_xattr=auto]) - -if test "x${have_xattr}" != xno ; then - AC_CHECK_HEADERS( - [attr/xattr.h], - [have_xattr=yes], - [if test "x$have_xattr" = xyes ; then - AC_MSG_ERROR([*** XATTR headers not found.]) - fi]) - - AC_CHECK_LIB( - [attr], - [fsetxattr], - [have_xattr=yes], - [if test "x$have_xattr" = xyes ; then - AC_MSG_ERROR([*** libattr not found.]) - fi]) - - if test "x$have_xattr" = xyes ; then - XATTR_LIBS="-lattr" - AC_DEFINE(HAVE_XATTR, 1, [XATTR available]) - else - have_xattr=no - fi -else - XATTR_LIBS= -fi -AC_SUBST(XATTR_LIBS) -AM_CONDITIONAL([HAVE_XATTR], [test "x$have_xattr" != xno]) - -# ------------------------------------------------------------------------------ AC_ARG_ENABLE([smack], AS_HELP_STRING([--disable-smack],[Disable optional SMACK support]), [case "${enableval}" in yes) have_smack=yes ;; @@ -514,18 +476,6 @@ AC_ARG_ENABLE([smack], AS_HELP_STRING([--disable-smack],[Disable optional SMACK esac], [have_smack=auto]) -if test "x${have_xattr}" = xno; then - if test "x${have_smack}" = xyes; then - AC_MSG_ERROR(SMACK requires xattr support) - else - have_smack=no - fi -else - if test "x${have_smack}" = xauto; then - have_smack=yes - fi -fi - if test "x${have_smack}" = xyes ; then AC_DEFINE(HAVE_SMACK, 1, [Define if SMACK is available]) fi @@ -1025,7 +975,6 @@ AC_MSG_RESULT([ SMACK: ${have_smack} XZ: ${have_xz} ACL: ${have_acl} - XATTR: ${have_xattr} GCRYPT: ${have_gcrypt} QRENCODE: ${have_qrencode} MICROHTTPD: ${have_microhttpd} diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c index cff83d3..12b7ed3 100644 --- a/src/core/mount-setup.c +++ b/src/core/mount-setup.c @@ -87,10 +87,8 @@ static const MountPoint mount_table[] = { NULL, MNT_FATAL|MNT_IN_CONTAINER }, { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, NULL, MNT_IN_CONTAINER }, -#ifdef HAVE_XATTR { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd,xattr", MS_NOSUID|MS_NOEXEC|MS_NODEV, NULL, MNT_IN_CONTAINER }, -#endif { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, NULL, MNT_IN_CONTAINER }, { "pstore", "/sys/fs/pstore", "pstore", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, diff --git a/src/core/socket.c b/src/core/socket.c index 8e02c03..3bd4532 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -28,9 +28,7 @@ #include <signal.h> #include <arpa/inet.h> #include <mqueue.h> -#ifdef HAVE_XATTR -#include <attr/xattr.h> -#endif +#include <sys/xattr.h> #include "unit.h" #include "socket.h" diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 2d2d289..010dda1 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -26,10 +26,7 @@ #include <sys/statvfs.h> #include <fcntl.h> #include <stddef.h> - -#ifdef HAVE_XATTR -#include <attr/xattr.h> -#endif +#include <sys/xattr.h> #include "journal-def.h" #include "journal-file.h" @@ -2513,7 +2510,6 @@ int journal_file_open( } if (f->last_stat.st_size == 0 && f->writable) { -#ifdef HAVE_XATTR uint64_t crtime; /* Let's attach the creation time to the journal file, @@ -2528,7 +2524,6 @@ int journal_file_open( crtime = htole64((uint64_t) now(CLOCK_REALTIME)); fsetxattr(f->fd, "user.crtime_usec", &crtime, sizeof(crtime), XATTR_CREATE); -#endif #ifdef HAVE_GCRYPT /* Try to load the FSPRG state, and if we can't, then diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c index 695e518..442120a 100644 --- a/src/journal/journal-vacuum.c +++ b/src/journal/journal-vacuum.c @@ -24,10 +24,7 @@ #include <sys/stat.h> #include <sys/statvfs.h> #include <unistd.h> - -#ifdef HAVE_XATTR -#include <attr/xattr.h> -#endif +#include <sys/xattr.h> #include "journal-def.h" #include "journal-file.h" @@ -79,11 +76,8 @@ static void patch_realtime( unsigned long long *realtime) { usec_t x; - -#ifdef HAVE_XATTR uint64_t crtime; _cleanup_free_ const char *path = NULL; -#endif /* The timestamp was determined by the file name, but let's * see if the file might actually be older than the file name @@ -106,7 +100,6 @@ static void patch_realtime( if (x > 0 && x != (usec_t) -1 && x < *realtime) *realtime = x; -#ifdef HAVE_XATTR /* Let's read the original creation time, if possible. Ideally * we'd just query the creation time the FS might provide, but * unfortunately there's currently no sane API to query @@ -125,7 +118,6 @@ static void patch_realtime( if (crtime > 0 && crtime != (uint64_t) -1 && crtime < *realtime) *realtime = crtime; } -#endif } static int journal_file_empty(int dir_fd, const char *name) { -- 2.0.1
signature.asc
Description: OpenPGP digital signature