Make libejdb usage optional 34/170834/2
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 22 Feb 2018 10:43:15 +0000 (11:43 +0100)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 22 Feb 2018 14:59:28 +0000 (15:59 +0100)
Since introduction of SQLite backend (preferred), there is no need
to require libejdb anymore.

Change-Id: I6c8da5140fccd994e7fe29d1b283942e615b9959

Makefile.am
configure.ac
src/core/database.c
src/core/faultd-config.h
src/util/common.c
src/util/common.h
tests/unit/helpers.c
tests/unit/helpers.h

index 022cbd22c3df9a8d769348089d639f2d29b42cb8..3530c111bf4ea47e824de28f0a92690ffc38fa44 100644 (file)
@@ -122,7 +122,6 @@ EXTRA_faultd_SOURCES = \
     src/listeners/audit.c \
     src/listeners/systemd.c \
     src/listeners/startup.c \
-    src/database/ejdb.c \
     src/database/sqlite.c \
     src/decision_makers/vip_fault_dm.c \
     src/decision_makers/rv_dm.c \
@@ -140,7 +139,6 @@ modulesdir = $(pkglibdir)/available-modules
 modules_LTLIBRARIES = audit_listener.la \
                  systemd_listener.la \
                  startup_listener.la \
-                 ejdb_dbadapter.la \
                  sqlite_dbadapter.la \
                  vip_fault_eh.la \
                  resource_violation_eh.la \
@@ -155,8 +153,6 @@ audit_listener_la_SOURCES = src/listeners/audit.c
 audit_listener_la_LIBADD = $(AUDIT_LIBS)
 systemd_listener_la_SOURCES = src/listeners/systemd.c
 startup_listener_la_SOURCES = src/listeners/startup.c
-ejdb_dbadapter_la_SOURCES = src/database/ejdb.c
-ejdb_dbadapter_la_LIBADD = $(LIBEJDB_LIBS)
 sqlite_dbadapter_la_SOURCES = src/database/sqlite.c
 sqlite_dbadapter_la_LIBADD = $(SQLITE3_LIBS)
 vip_fault_eh_la_SOURCES = src/decision_makers/vip_fault_dm.c
@@ -172,6 +168,13 @@ system_reboot_action_la_SOURCES = src/action/system_reboot.c
 system_reboot_to_recovery_action_la_SOURCES = src/action/system_reboot_to_recovery.c
 service_recover_action_la_SOURCES = src/action/service_recover.c
 
+if USE_EJDB
+EXTRA_faultd_SOURCES += src/database/ejdb.c
+modules_LTLIBRARIES += ejdb_dbadapter.la
+ejdb_dbadapter_la_SOURCES = src/database/ejdb.c
+ejdb_dbadapter_la_LIBADD = $(LIBEJDB_LIBS)
+endif
+
 dbus_service_configdir = $(serviceconfigdir)/dbus.service.conf.d
 dbus_service_config_DATA = service.conf.d/dbus.service.conf.d/50-default.conf
 
@@ -232,8 +235,7 @@ test_LDADD = \
     $(faultd_LDADD) \
     $(CMOCKA_LIBS) \
     $(AUDIT_LIBS) \
-    $(SQLITE3_LIBS) \
-    $(LIBEJDB_LIBS)
+    $(SQLITE3_LIBS)
 
 test_CFLAGS = -I${top_srcdir}/src/util \
        -D"FAULTD_MODNAME_T=$(call name_fix,$(modname))" \
@@ -241,7 +243,6 @@ test_CFLAGS = -I${top_srcdir}/src/util \
        --coverage
 
 test_SOURCES = \
-    tests/unit/ejdb_tests.c \
     tests/unit/action_executed_event_tests.c \
     tests/unit/decision_made_event_tests.c \
     tests/unit/faultd_started_event_tests.c \
@@ -255,6 +256,11 @@ test_SOURCES = \
     $(faultdlib_SOURCES) \
     $(EXTRA_faultd_SOURCES)
 
+if USE_EJDB
+test_LDADD += $(LIBEJDB_LIBS)
+test_SOURCES += tests/unit/ejdb_tests.c
+endif
+
 TESTS = $(check_PROGRAMS) tests/generate_coverage.sh
 endif
 
index be46d52964ddfdbc5ccac35d19db48f141ff092d..791870e328922f54b5f65c65c0aa65ea12a20640 100644 (file)
@@ -54,7 +54,7 @@ AS_IF([test "x$enable_unit_tests" = xyes],
 AM_CONDITIONAL(UNIT_TESTS, [test "x$enable_unit_tests" = xyes])
 
 # Default database backend when not specified by user
-default_db_mod="src/database/ejdb"
+default_db_mod="src/database/sqlite"
 
 all_modules=`./modules.list path`
 
@@ -132,7 +132,9 @@ PKG_CHECK_MODULES(LIBEJDB,
         have_libejdb=yes,
         have_libejdb=no)
 AS_IF([test "x$have_libejdb" = "xno"],
-      AC_MSG_ERROR([EJDB version 1.2.12 or newer not found]))
+      AC_MSG_NOTICE([EJDB version 1.2.12 or newer not found - disabling]),
+      AC_DEFINE([USE_EJDB], 1, [ejdb document database]))
+AM_CONDITIONAL(USE_EJDB, [test "x$have_libejdb" = xyes])
 
 PKG_CHECK_MODULES(SQLITE3,
         [sqlite3],
index a8b7297999eba954b6e3de7f6b2557ecd03611ee..55719c476f97b8bba80d33f53cc0457e12769b9f 100644 (file)
 
 
 #include <assert.h>
-#include <ejdb/ejdb.h>
 #include <errno.h>
 #include <systemd/sd-id128.h>
 
+#ifdef USE_EJDB
+#include <ejdb/ejdb.h>
+#endif
+
 #include "database.h"
 #include "log.h"
 #include "module.h"
index 4b33bdd2d2c575cb468ba653d87572366cff8d3c..80ef5aaaf83e9c8b415968f65c95169705f9a237 100644 (file)
@@ -19,8 +19,6 @@
 #ifndef FAULTD_CONFIG_H
 #define FAULTD_CONFIG_H
 
-#include <ejdb/ejdb.h>
-
 struct faultd_config {
        struct json_object *root;
 };
index 4cda7e63dc0d8cc181dc0e0fbe5860ddb8fc0a07..b9b53bc49c008349beedd0bf23647bd1845e9c5c 100644 (file)
@@ -16,7 +16,6 @@
  * limitations under the License.
  */
 
-#include <ejdb/bson.h>
 #include <errno.h>
 #include <stdlib.h>
 #include <stdarg.h>
index fefb637b3a00fee69294050d2e0fb4d73b43a60f..2db6c366a9bbe0d4f397730480faf0bbb3135b7d 100644 (file)
 #ifndef FAULTD_COMMON_H
 #define FAULTD_COMMON_H
 
+#ifdef USE_EJDB
 #include <ejdb/bson.h>
+#endif
+
+#include <stdio.h>
 #include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
 #include <time.h>
 #include <errno.h>
 #include <systemd/sd-id128.h>
@@ -80,7 +86,9 @@ enum faultd_object_flags {
 
 #define OID_NOP_SIZE 4
 typedef union {
+#ifdef USE_EJDB
        bson_oid_t bson;
+#endif
        char nop[OID_NOP_SIZE];
        sd_id128_t uuid;
        struct {
index 17bd5ffdba8648bb3f334b2a639c1ee800b69d59..83f235cb967c20a92bb9d8e04d8dcd6756675287 100644 (file)
@@ -254,6 +254,7 @@ time_t generate_time_t()
        return generate_int();
 }
 
+#ifdef USE_EJDB
 bson_oid_t generate_bson_oid_t()
 {
        bson_oid_t oid;
@@ -262,6 +263,7 @@ bson_oid_t generate_bson_oid_t()
                oid.ints[i] = generate_int();
        return oid;
 }
+#endif
 
 sd_id128_t generate_uuid()
 {
index 96373c7800441ba6fecf4dc4bce4de98c5a48c79..5d0eaf9a6cdeb73d9e49ec5edcb482d38f6aebcb 100644 (file)
 #include <systemd/sd-id128.h>
 #include <systemd/sd-bus.h>
 
+#ifdef USE_EJDB
+#include <ejdb/bson.h>
+#endif
+
 #include "system_booted_event.h"
 
 #define STR_SIZE 20
@@ -74,11 +78,14 @@ char generate_char();
 char *generate_string(int len);
 int generate_int();
 time_t generate_time_t();
-bson_oid_t generate_bson_oid_t();
 sd_id128_t generate_uuid();
 faultd_oid_t generate_oid();
 struct timespec generate_timespec();
 
+#ifdef USE_EJDB
+bson_oid_t generate_bson_oid_t();
+#endif
+
 struct serialize_test_data;
 
 typedef void (*serialize_func_t)(struct faultd_event *, struct faultd_object *);