chiark / gitweb /
logind: Fix compilation without ACL
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 11 Jul 2011 20:29:45 +0000 (22:29 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 11 Jul 2011 20:29:45 +0000 (22:29 +0200)
Compilation fails if sys/acl.h is not available. The configure script
already tests for sys/acl.h presence, but the result was so far unused.
To compile without acl, stub implementations of the acl functions are
used.

Makefile.am
src/logind-acl.h

index 4acdb2e..ca2c437 100644 (file)
@@ -885,7 +885,6 @@ systemd_logind_SOURCES = \
         src/logind-session-dbus.c \
         src/logind-user.c \
         src/logind-user-dbus.c \
-        src/logind-acl.c \
         src/dbus-common.c \
         src/dbus-loop.c \
         src/cgroup-util.c \
@@ -905,8 +904,15 @@ systemd_logind_LDADD = \
         $(ACL_LIBS)
 
 systemd_uaccess_SOURCES = \
-       src/uaccess.c \
-        src/logind-acl.c
+       src/uaccess.c
+
+if HAVE_ACL
+systemd_logind_SOURCES += \
+       src/logind-acl.c
+
+systemd_uaccess_SOURCES += \
+       src/logind-acl.c
+endif
 
 systemd_uaccess_CFLAGS = \
        $(AM_CFLAGS) \
index 9c88a80..72740f5 100644 (file)
@@ -26,6 +26,8 @@
 #include <stdbool.h>
 #include <libudev.h>
 
+#ifdef HAVE_ACL
+
 int devnode_acl(const char *path,
                 bool flush,
                 bool del, uid_t old_uid,
@@ -36,5 +38,23 @@ int devnode_acl_all(struct udev *udev,
                     bool flush,
                     bool del, uid_t old_uid,
                     bool add, uid_t new_uid);
+#else
+
+static inline int devnode_acl(const char *path,
+                bool flush,
+                bool del, uid_t old_uid,
+                bool add, uid_t new_uid) {
+        return 0;
+}
+
+static inline int devnode_acl_all(struct udev *udev,
+                                  const char *seat,
+                                  bool flush,
+                                  bool del, uid_t old_uid,
+                                  bool add, uid_t new_uid) {
+        return 0;
+}
+
+#endif
 
 #endif