ba3644fcee
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=217
216 lines
7.1 KiB
Diff
216 lines
7.1 KiB
Diff
Based on d2edfae0f9bdbecf6a8518e2a5bcf06f470e0d9e Mon Sep 17 00:00:00 2001
|
|
From: Kay Sievers <kay@vrfy.org>
|
|
Date: Wed, 28 May 2014 17:36:40 +0800
|
|
Subject: [PATCH] build-sys: use glibc's xattr support instead of requiring
|
|
libattr
|
|
|
|
---
|
|
configure.ac | 53 ++-----------------------------------------
|
|
src/core/mount-setup.c | 2 -
|
|
src/core/socket.c | 4 ---
|
|
src/journal/journal-file.c | 7 -----
|
|
src/journal/journal-vacuum.c | 10 --------
|
|
src/shared/label.c | 2 -
|
|
src/shared/smack-util.c | 4 ---
|
|
7 files changed, 7 insertions(+), 75 deletions(-)
|
|
|
|
--- configure.ac
|
|
+++ configure.ac 2014-06-03 00:00:00.000000000 +0000
|
|
@@ -526,44 +526,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 ;;
|
|
@@ -572,17 +534,9 @@ AC_ARG_ENABLE([smack], AS_HELP_STRING([-
|
|
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
|
|
- M4_DEFINES="$M4_DEFINES -DHAVE_SMACK"
|
|
- have_smack=yes
|
|
- fi
|
|
+if test "x${have_smack}" = xauto; then
|
|
+ M4_DEFINES="$M4_DEFINES -DHAVE_SMACK"
|
|
+ have_smack=yes
|
|
fi
|
|
|
|
AC_ARG_WITH(smack-run-label,
|
|
@@ -1131,7 +1085,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}
|
|
--- src/core/mount-setup.c
|
|
+++ src/core/mount-setup.c 2014-06-03 00:00:00.000000000 +0000
|
|
@@ -93,10 +93,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,
|
|
--- src/core/socket.c
|
|
+++ src/core/socket.c 2014-06-03 00:00:00.000000000 +0000
|
|
@@ -29,9 +29,7 @@
|
|
#include <arpa/inet.h>
|
|
#include <netinet/tcp.h>
|
|
#include <mqueue.h>
|
|
-#ifdef HAVE_XATTR
|
|
-#include <attr/xattr.h>
|
|
-#endif
|
|
+#include <sys/xattr.h>
|
|
|
|
#include "sd-event.h"
|
|
#include "log.h"
|
|
--- src/journal/journal-file.c
|
|
+++ src/journal/journal-file.c 2014-06-03 00:00:00.000000000 +0000
|
|
@@ -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"
|
|
@@ -2515,7 +2512,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,
|
|
@@ -2530,7 +2526,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
|
|
--- src/journal/journal-vacuum.c
|
|
+++ src/journal/journal-vacuum.c 2014-06-03 00:00:00.000000000 +0000
|
|
@@ -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) {
|
|
--- src/shared/label.c
|
|
+++ src/shared/label.c 2014-06-03 00:00:00.000000000 +0000
|
|
@@ -27,9 +27,7 @@
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
-#ifdef HAVE_XATTR
|
|
#include <sys/xattr.h>
|
|
-#endif
|
|
#ifdef HAVE_SELINUX
|
|
#include <selinux/selinux.h>
|
|
#include <selinux/label.h>
|
|
--- src/shared/smack-util.c
|
|
+++ src/shared/smack-util.c 2014-06-03 00:00:00.000000000 +0000
|
|
@@ -23,9 +23,7 @@
|
|
|
|
#include <unistd.h>
|
|
#include <string.h>
|
|
-#ifdef HAVE_XATTR
|
|
-#include <attr/xattr.h>
|
|
-#endif
|
|
+#include <sys/xattr.h>
|
|
|
|
#include "smack-util.h"
|
|
|