diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-11-13 16:16:39 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-11-14 15:56:59 +0100 |
commit | 07d5c86e780ed2155da491b408718b2e01f25ec4 (patch) | |
tree | 6de81d546c7cd02f86df8f4dd5808c63b59103ef | |
parent | 79482c9a9ec2c33d79a647329d475019d7dd4f0e (diff) | |
download | NetworkManager-07d5c86e780ed2155da491b408718b2e01f25ec4.tar.gz |
build: fix wrong jansson prerequisites
Currently there are multiple features that require Jansson support,
but WITH_JANSSON=1 is set only when configuring with
--enable-json-validation. Therefore a build with
"--disable-json-validation --enable-ovs" fails.
The availability of Jansson (WITH_JANSSON) should only be used:
- to check if dependent features can be enabled
- to determine compiler and linker flags in the Makefile
- in nm-jansson.h to define compatibility functions if needed
Everything else must be controlled by a configure switch.
https://bugzilla.gnome.org/show_bug.cgi?id=790233
-rw-r--r-- | configure.ac | 13 | ||||
-rw-r--r-- | libnm-core/nm-utils.c | 4 | ||||
-rw-r--r-- | libnm-core/tests/test-general.c | 4 | ||||
-rw-r--r-- | libnm-core/tests/test-keyfile.c | 2 |
4 files changed, 15 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac index 14227e1aac..c358d48821 100644 --- a/configure.ac +++ b/configure.ac @@ -642,6 +642,14 @@ PKG_CHECK_MODULES(UUID, uuid) # Teamd control checks PKG_CHECK_MODULES(JANSSON, [jansson], [have_jansson=yes], [have_jansson=no]) +if test "$have_jansson" = "yes"; then + AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled]) +else + AC_DEFINE(WITH_JANSSON, 0, [Define if JANSSON is enabled]) +fi +AM_CONDITIONAL(WITH_JANSSON, test "${have_jansson}" = "yes") + + PKG_CHECK_MODULES(LIBTEAMDCTL, [libteamdctl >= 1.9], [have_teamdctl=yes],[have_teamdctl=no]) if test "$have_jansson" = "yes" -a "$have_teamdctl" = "yes"; then have_team_prereq=yes @@ -673,14 +681,13 @@ AC_ARG_ENABLE(json-validation, [enable_json_validation=${enableval}], [enable_json_validation=${have_jansson}]) if (test "${enable_json_validation}" == "no"); then - AC_DEFINE(WITH_JANSSON, 0, [Define if JANSSON is enabled]) + AC_DEFINE(WITH_JSON_VALIDATION, 0, [Define if JSON validation in libnm is enabled]) else if test "$have_jansson" = "no"; then AC_MSG_ERROR([jansson is needed for team configuration validation. Use --disable-json-validation to build without it.]) fi - AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled]) + AC_DEFINE(WITH_JSON_VALIDATION, 1, [Define if JSON validation in libnm is enabled]) fi -AM_CONDITIONAL(WITH_JANSSON, test "${enable_json_validation}" != "no") # we usually compile with polkit support. --enable-polkit=yes|no only sets the # default configuration for main.auth-polkit. User can always enable/disable polkit diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index 6c8436cc5d..a3c363c52a 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -4304,7 +4304,7 @@ const char **nm_utils_enum_get_values (GType type, gint from, gint to) /*****************************************************************************/ -#if WITH_JANSSON +#if WITH_JSON_VALIDATION /** * nm_utils_is_json_object: * @str: the JSON string to test @@ -4715,7 +4715,7 @@ done: return updated; } -#else /* WITH_JANSSON */ +#else /* !WITH_JSON_VALIDATION */ gboolean nm_utils_is_json_object (const char *str, GError **error) diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index 188cb28e63..9f134583b3 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -5848,7 +5848,7 @@ test_nm_utils_check_valid_json (void) { _json_config_check_valid (NULL, FALSE); _json_config_check_valid ("", FALSE); -#if WITH_JANSSON +#if WITH_JSON_VALIDATION _json_config_check_valid ("{ }", TRUE); _json_config_check_valid ("{ \"a\" : 1 }", TRUE); _json_config_check_valid ("{ \"a\" : }", FALSE); @@ -5873,7 +5873,7 @@ _team_config_equal_check (const char *conf1, static void test_nm_utils_team_config_equal (void) { -#if WITH_JANSSON +#if WITH_JSON_VALIDATION _team_config_equal_check ("", "", TRUE, TRUE); _team_config_equal_check ("{}", "{ }", diff --git a/libnm-core/tests/test-keyfile.c b/libnm-core/tests/test-keyfile.c index 2dc929afd8..6f3b0e3276 100644 --- a/libnm-core/tests/test-keyfile.c +++ b/libnm-core/tests/test-keyfile.c @@ -623,7 +623,7 @@ test_team_conf_read_valid (void) static void test_team_conf_read_invalid (void) { -#if WITH_JANSSON +#if WITH_JSON_VALIDATION GKeyFile *keyfile = NULL; gs_unref_object NMConnection *con = NULL; NMSettingTeam *s_team; |