From dbbea1bd37c38fad9f80105e47bdff347e892498 Mon Sep 17 00:00:00 2001 From: Karol Lewandowski Date: Thu, 22 Feb 2018 11:43:15 +0100 Subject: [PATCH] Make libejdb usage optional Since introduction of SQLite backend (preferred), there is no need to require libejdb anymore. Change-Id: I6c8da5140fccd994e7fe29d1b283942e615b9959 --- Makefile.am | 20 +++++++++++++------- configure.ac | 6 ++++-- src/core/database.c | 5 ++++- src/core/faultd-config.h | 2 -- src/util/common.c | 1 - src/util/common.h | 8 ++++++++ tests/unit/helpers.c | 2 ++ tests/unit/helpers.h | 9 ++++++++- 8 files changed, 39 insertions(+), 14 deletions(-) diff --git a/Makefile.am b/Makefile.am index 022cbd2..3530c11 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/configure.ac b/configure.ac index be46d52..791870e 100644 --- a/configure.ac +++ b/configure.ac @@ -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], diff --git a/src/core/database.c b/src/core/database.c index a8b7297..55719c4 100644 --- a/src/core/database.c +++ b/src/core/database.c @@ -18,10 +18,13 @@ #include -#include #include #include +#ifdef USE_EJDB +#include +#endif + #include "database.h" #include "log.h" #include "module.h" diff --git a/src/core/faultd-config.h b/src/core/faultd-config.h index 4b33bdd..80ef5aa 100644 --- a/src/core/faultd-config.h +++ b/src/core/faultd-config.h @@ -19,8 +19,6 @@ #ifndef FAULTD_CONFIG_H #define FAULTD_CONFIG_H -#include - struct faultd_config { struct json_object *root; }; diff --git a/src/util/common.c b/src/util/common.c index 4cda7e6..b9b53bc 100644 --- a/src/util/common.c +++ b/src/util/common.c @@ -16,7 +16,6 @@ * limitations under the License. */ -#include #include #include #include diff --git a/src/util/common.h b/src/util/common.h index fefb637..2db6c36 100644 --- a/src/util/common.h +++ b/src/util/common.h @@ -19,8 +19,14 @@ #ifndef FAULTD_COMMON_H #define FAULTD_COMMON_H +#ifdef USE_EJDB #include +#endif + +#include #include +#include +#include #include #include #include @@ -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 { diff --git a/tests/unit/helpers.c b/tests/unit/helpers.c index 17bd5ff..83f235c 100644 --- a/tests/unit/helpers.c +++ b/tests/unit/helpers.c @@ -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() { diff --git a/tests/unit/helpers.h b/tests/unit/helpers.h index 96373c7..5d0eaf9 100644 --- a/tests/unit/helpers.h +++ b/tests/unit/helpers.h @@ -10,6 +10,10 @@ #include #include +#ifdef USE_EJDB +#include +#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 *); -- 2.34.1