diff options
author | Thomas Haller <thaller@redhat.com> | 2020-07-01 18:38:22 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-07-08 12:12:42 +0200 |
commit | dcb4f17281b6f875db97c511713e1d75f4252ef9 (patch) | |
tree | d4e6d9c0864a84a7bb8fd75331c063d2cbf0af5a | |
parent | d35190ef37d673fa05f2c3a9be41b7a47dfa9adc (diff) | |
download | NetworkManager-dcb4f17281b6f875db97c511713e1d75f4252ef9.tar.gz |
libnm: always build libnm with JSON validation
We anyway load libjansson with dlopen(), and already before it could
happen that libjansson is not available. In that case, we would not
crash, but simply proceed without json validation.
Since libnm-core no longer uses libjansson directly, but only via
"nm-glib-aux/nm-json.h", we can just always compile with that, and use
it at runtime. That means, libjansson is not a build dependency for
libnm anymore, so we don't need a compile time check.
Note that if you build without libjansson, then JANSSON_SONAME is
undefined, and loading it will still fail at runtime. So, even if
we now always build with all our code enabled, it only works if you
actually build with libjansson. Still, it's simpler to drop the
conditional build, as the only benefit is a (minimally) smaller
build.
-rw-r--r-- | config.h.meson | 3 | ||||
-rw-r--r-- | configure.ac | 19 | ||||
-rw-r--r-- | libnm-core/nm-team-utils.c | 28 | ||||
-rw-r--r-- | libnm-core/nm-utils.c | 14 | ||||
-rw-r--r-- | libnm-core/tests/test-general.c | 185 | ||||
-rw-r--r-- | libnm-core/tests/test-keyfile.c | 3 | ||||
-rw-r--r-- | libnm-core/tests/test-setting.c | 16 | ||||
-rw-r--r-- | meson.build | 10 | ||||
-rw-r--r-- | meson_options.txt | 1 | ||||
-rw-r--r-- | src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 3 |
10 files changed, 126 insertions, 156 deletions
diff --git a/config.h.meson b/config.h.meson index b421ee1e71..bb5458aa64 100644 --- a/config.h.meson +++ b/config.h.meson @@ -212,9 +212,6 @@ /* Define if JANSSON is enabled */ #mesondefine WITH_JANSSON -/* Define if JSON validation in libnm is enabled */ -#mesondefine WITH_JSON_VALIDATION - /* Define if you have libpsl */ #mesondefine WITH_LIBPSL diff --git a/configure.ac b/configure.ac index 1e6823b494..4ea4dbf081 100644 --- a/configure.ac +++ b/configure.ac @@ -596,6 +596,8 @@ if test "$have_jansson" = "yes"; then fi AC_DEFINE_UNQUOTED(JANSSON_SONAME, "$JANSSON_SONAME", [Define to path to the Jansson shared library]) else + have_jansson=no + JANSSON_SONAME= AC_DEFINE(WITH_JANSSON, 0, [Define if JANSSON is enabled]) fi AM_CONDITIONAL(WITH_JANSSON, test "${have_jansson}" = "yes") @@ -622,21 +624,6 @@ if test "${enable_teamdctl}" = "yes"; then fi AM_CONDITIONAL(WITH_TEAMDCTL, test "${enable_teamdctl}" = "yes") -# Jansson for team configuration validation -AC_ARG_ENABLE(json-validation, - AS_HELP_STRING([--enable-json-validation], [Enable JSON validation in libnm]), - [enable_json_validation=${enableval}], - [enable_json_validation=${have_jansson}]) -if test "${enable_json_validation}" = "no"; then - 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_JSON_VALIDATION, 1, [Define if JSON validation in libnm is enabled]) -fi -AM_CONDITIONAL(WITH_JSON_VALIDATION, 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 # authorization via config. @@ -1366,6 +1353,7 @@ echo " nmcli: $build_nmcli" echo " nmtui: $build_nmtui" echo " nm-cloud-setup: $with_nm_cloud_setup" echo " iwd: $ac_with_iwd" +echo " jansson: $have_jansson${JANSSON_SONAME:+ (soname: $JANSSON_SONAME)}" echo echo "Configuration plugins (main.plugins=${config_plugins_default})" @@ -1398,7 +1386,6 @@ echo " valgrind: $with_valgrind $with_valgrind_suppressions" echo " code coverage: $enable_code_coverage" echo " LTO: $enable_lto" echo " linker garbage collection: $enable_ld_gc" -echo " JSON validation for libnm: $enable_json_validation" echo " crypto: $with_crypto (have-gnutls: $have_crypto_gnutls, have-nss: $have_crypto_nss)" echo " sanitizers: $sanitizers" echo " Mozilla Public Suffix List: $with_libpsl" diff --git a/libnm-core/nm-team-utils.c b/libnm-core/nm-team-utils.c index 1e0ddc79c8..ec820e99e9 100644 --- a/libnm-core/nm-team-utils.c +++ b/libnm-core/nm-team-utils.c @@ -1116,7 +1116,6 @@ _link_watcher_to_json (const NMTeamLinkWatcher *link_watcher, g_string_append (gstr, " }"); } -#if WITH_JSON_VALIDATION static NMTeamLinkWatcher * _link_watcher_from_json (const NMJsonVt *vt, const nm_json_t *root_js_obj, @@ -1219,7 +1218,6 @@ fail: *out_unrecognized_content = TRUE; return NULL; } -#endif /*****************************************************************************/ @@ -1642,7 +1640,6 @@ nm_team_setting_config_get (const NMTeamSetting *self) /*****************************************************************************/ -#if WITH_JSON_VALIDATION static gboolean _attr_data_match_keys (const TeamAttrData *attr_data, const char *const*keys, @@ -1701,6 +1698,8 @@ _js_parse_locate_keys (const NMJsonVt *vt, nm_json_t *cur_val2; nm_json_t *cur_val3; + nm_assert (vt); + #define _handle(_self, _cur_key, _cur_val, _keys, _level, _found_keys, _out_unrecognized_content) \ ({ \ const TeamAttrData *_attr_data; \ @@ -1750,6 +1749,8 @@ _js_parse_unpack (const NMJsonVt *vt, { const TeamAttrData *attr_data; + nm_assert (vt); + for (attr_data = &team_attr_datas[TEAM_ATTR_IDX_CONFIG + 1]; attr_data < &team_attr_datas[G_N_ELEMENTS (team_attr_datas)]; attr_data++) { NMValueTypUnion *p_out_val; gboolean valid = FALSE; @@ -1838,11 +1839,11 @@ _js_parse_unpack (const NMJsonVt *vt, *out_unrecognized_content = TRUE; } } -#endif guint32 nm_team_setting_config_set (NMTeamSetting *self, const char *js_str) { + const NMJsonVt *vt; guint32 changed_flags = 0; gboolean do_set_default = TRUE; gboolean new_js_str_invalid = FALSE; @@ -1872,14 +1873,10 @@ nm_team_setting_config_set (NMTeamSetting *self, const char *js_str) } else changed_flags |= nm_team_attribute_to_flags (NM_TEAM_ATTRIBUTE_CONFIG); -#if WITH_JSON_VALIDATION - { + if ((vt = nm_json_vt ())) { nm_auto_decref_json nm_json_t *root_js_obj = NULL; - const NMJsonVt *vt; - - if ((vt = nm_json_vt ())) - root_js_obj = vt->nm_json_loads (js_str, 0, NULL); + root_js_obj = vt->nm_json_loads (js_str, 0, NULL); if ( !root_js_obj || !nm_json_is_object (root_js_obj)) new_js_str_invalid = TRUE; @@ -1915,8 +1912,6 @@ nm_team_setting_config_set (NMTeamSetting *self, const char *js_str) } } -#endif - if (do_set_default) changed_flags |= _team_setting_set_default (self); @@ -2231,6 +2226,7 @@ nm_team_setting_reset_from_dbus (NMTeamSetting *self, GVariantIter iter; const char *v_key; GVariant *v_val; + const NMJsonVt *vt; *out_changed = 0; @@ -2280,10 +2276,12 @@ nm_team_setting_reset_from_dbus (NMTeamSetting *self, variants[attr_data->team_attr] = g_steal_pointer (&v_val_free); } + vt = nm_json_vt (); + if (variants[NM_TEAM_ATTRIBUTE_LINK_WATCHERS]) { if ( variants[NM_TEAM_ATTRIBUTE_CONFIG] - && WITH_JSON_VALIDATION + && vt && !NM_FLAGS_HAS (parse_flags, NM_SETTING_PARSE_FLAGS_STRICT)) { /* we don't require the content of the "link-watchers" and we also * don't perform strict validation. No need to parse it. */ @@ -2291,7 +2289,7 @@ nm_team_setting_reset_from_dbus (NMTeamSetting *self, gs_free_error GError *local = NULL; /* We might need the parsed v_link_watchers array below (because there is no JSON - * "config" present or because we don't build WITH_JSON_VALIDATION). + * "config" present or because we don't have json support). * * Or we might run with NM_SETTING_PARSE_FLAGS_STRICT. In that mode, we may not necessarily * require that the entire setting as a whole validates (if a JSON config is present and @@ -2319,7 +2317,7 @@ nm_team_setting_reset_from_dbus (NMTeamSetting *self, ? g_variant_get_string (variants[NM_TEAM_ATTRIBUTE_CONFIG], NULL) : NULL); - if ( WITH_JSON_VALIDATION + if ( vt && variants[NM_TEAM_ATTRIBUTE_CONFIG]) { /* for team settings, the JSON must be able to express all possible options. That means, * if the GVariant contains both the JSON "config" and other options, then the other options diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index d04dca5596..069c00e77c 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -5490,7 +5490,6 @@ _nm_utils_is_json_object_no_validation (const char *str, GError **error) gboolean nm_utils_is_json_object (const char *str, GError **error) { -#if WITH_JSON_VALIDATION nm_auto_decref_json nm_json_t *json = NULL; const NMJsonVt *vt; nm_json_error_t jerror; @@ -5530,19 +5529,6 @@ nm_utils_is_json_object (const char *str, GError **error) } return TRUE; -#else /* !WITH_JSON_VALIDATION */ - g_return_val_if_fail (!error || !*error, FALSE); - - if (!str || !str[0]) { - g_set_error_literal (error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_INVALID_PROPERTY, - str ? _("value is NULL") : _("value is empty")); - return FALSE; - } - - return _nm_utils_is_json_object_no_validation (str, error); -#endif } static char * diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index 040bcb9f1f..0d2629eabe 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -14,6 +14,7 @@ #include "nm-std-aux/c-list-util.h" #include "nm-glib-aux/nm-enum-utils.h" #include "nm-glib-aux/nm-str-buf.h" +#include "nm-glib-aux/nm-json.h" #include "systemd/nm-sd-utils-shared.h" #include "nm-utils.h" @@ -7125,17 +7126,19 @@ test_nm_utils_check_valid_json (void) { _json_config_check_valid (NULL, FALSE); _json_config_check_valid ("", FALSE); -#if WITH_JSON_VALIDATION - _json_config_check_valid ("{ }", TRUE); - _json_config_check_valid ("{ \"a\" : 1 }", TRUE); - _json_config_check_valid ("{ \"a\" : }", FALSE); -#else + /* Without JSON library everything except empty string is considered valid */ + nmtst_json_vt_reset (FALSE); _json_config_check_valid ("{ }", TRUE); _json_config_check_valid ("{'%!-a1} ", TRUE); _json_config_check_valid (" {'%!-a1}", TRUE); _json_config_check_valid ("{'%!-a1", FALSE); -#endif + + if (nmtst_json_vt_reset (TRUE)) { + _json_config_check_valid ("{ }", TRUE); + _json_config_check_valid ("{ \"a\" : 1 }", TRUE); + _json_config_check_valid ("{ \"a\" : }", FALSE); + } } static void @@ -7172,86 +7175,96 @@ _team_config_equal_check (const char *conf1, static void test_nm_utils_team_config_equal (void) { - _team_config_equal_check ("", - "", - TRUE, - TRUE); - _team_config_equal_check ("", - " ", - TRUE, - TRUE); - _team_config_equal_check ("{}", - "{ }", - TRUE, - TRUE); - _team_config_equal_check ("{}", - "{", - TRUE, - TRUE); - _team_config_equal_check ("{ \"a\": 1 }", - "{ \"a\": 1 }", - TRUE, - TRUE); - _team_config_equal_check ("{ \"a\": 1 }", - "{ \"a\": 1 }", - TRUE, - TRUE); - - /* team config */ - _team_config_equal_check ("{ }", - "{ \"runner\" : { \"name\" : \"random\"} }", - FALSE, - !WITH_JSON_VALIDATION); - _team_config_equal_check ("{ \"runner\" : { \"name\" : \"roundrobin\"} }", - "{ \"runner\" : { \"name\" : \"random\"} }", - FALSE, - !WITH_JSON_VALIDATION); - _team_config_equal_check ("{ \"runner\" : { \"name\" : \"random\"} }", - "{ \"runner\" : { \"name\" : \"random\"} }", - FALSE, - TRUE); - _team_config_equal_check ("{ \"runner\" : { \"name\" : \"loadbalance\"} }", - "{ \"runner\" : { \"name\" : \"loadbalance\"} }", - FALSE, - TRUE); - _team_config_equal_check ("{ \"runner\" : { \"name\" : \"random\"}, \"ports\" : { \"eth0\" : {} } }", - "{ \"runner\" : { \"name\" : \"random\"}, \"ports\" : { \"eth1\" : {} } }", - FALSE, - TRUE); - _team_config_equal_check ("{ \"runner\" : { \"name\" : \"lacp\"} }", - "{ \"runner\" : { \"name\" : \"lacp\", \"tx_hash\" : [ \"eth\", \"ipv4\", \"ipv6\" ] } }", - FALSE, - !WITH_JSON_VALIDATION); - _team_config_equal_check ("{ \"runner\" : { \"name\" : \"roundrobin\"} }", - "{ \"runner\" : { \"name\" : \"roundrobin\", \"tx_hash\" : [ \"eth\", \"ipv4\", \"ipv6\" ] } }", - FALSE, - !WITH_JSON_VALIDATION); - _team_config_equal_check ("{ \"runner\" : { \"name\" : \"lacp\"} }", - "{ \"runner\" : { \"name\" : \"lacp\", \"tx_hash\" : [ \"eth\" ] } }", - FALSE, - !WITH_JSON_VALIDATION); - - /* team port config */ - _team_config_equal_check ("{ }", - "{ \"link_watch\" : { \"name\" : \"ethtool\"} }", - TRUE, - !WITH_JSON_VALIDATION); - _team_config_equal_check ("{ }", - "{ \"link_watch\" : { \"name\" : \"arp_ping\"} }", - TRUE, - TRUE); - _team_config_equal_check ("{ \"link_watch\" : { \"name\" : \"ethtool\"} }", - "{ \"link_watch\" : { \"name\" : \"arp_ping\"} }", - TRUE, - !WITH_JSON_VALIDATION); - _team_config_equal_check ("{ \"link_watch\" : { \"name\" : \"arp_ping\"} }", - "{ \"link_watch\" : { \"name\" : \"arp_ping\"} }", - TRUE, - TRUE); - _team_config_equal_check ("{ \"link_watch\" : { \"name\" : \"arp_ping\"}, \"ports\" : { \"eth0\" : {} } }", - "{ \"link_watch\" : { \"name\" : \"arp_ping\"}, \"ports\" : { \"eth1\" : {} } }", - TRUE, - TRUE); + int with_json_vt; + + for (with_json_vt = 0; with_json_vt < 2; with_json_vt++) { + const NMJsonVt *vt; + + vt = nmtst_json_vt_reset (!!with_json_vt); + + _team_config_equal_check ("", + "", + TRUE, + TRUE); + _team_config_equal_check ("", + " ", + TRUE, + TRUE); + _team_config_equal_check ("{}", + "{ }", + TRUE, + TRUE); + _team_config_equal_check ("{}", + "{", + TRUE, + TRUE); + _team_config_equal_check ("{ \"a\": 1 }", + "{ \"a\": 1 }", + TRUE, + TRUE); + _team_config_equal_check ("{ \"a\": 1 }", + "{ \"a\": 1 }", + TRUE, + TRUE); + + /* team config */ + _team_config_equal_check ("{ }", + "{ \"runner\" : { \"name\" : \"random\"} }", + FALSE, + !vt); + _team_config_equal_check ("{ \"runner\" : { \"name\" : \"roundrobin\"} }", + "{ \"runner\" : { \"name\" : \"random\"} }", + FALSE, + !vt); + _team_config_equal_check ("{ \"runner\" : { \"name\" : \"random\"} }", + "{ \"runner\" : { \"name\" : \"random\"} }", + FALSE, + TRUE); + _team_config_equal_check ("{ \"runner\" : { \"name\" : \"loadbalance\"} }", + "{ \"runner\" : { \"name\" : \"loadbalance\"} }", + FALSE, + TRUE); + _team_config_equal_check ("{ \"runner\" : { \"name\" : \"random\"}, \"ports\" : { \"eth0\" : {} } }", + "{ \"runner\" : { \"name\" : \"random\"}, \"ports\" : { \"eth1\" : {} } }", + FALSE, + TRUE); + _team_config_equal_check ("{ \"runner\" : { \"name\" : \"lacp\"} }", + "{ \"runner\" : { \"name\" : \"lacp\", \"tx_hash\" : [ \"eth\", \"ipv4\", \"ipv6\" ] } }", + FALSE, + !vt); + _team_config_equal_check ("{ \"runner\" : { \"name\" : \"roundrobin\"} }", + "{ \"runner\" : { \"name\" : \"roundrobin\", \"tx_hash\" : [ \"eth\", \"ipv4\", \"ipv6\" ] } }", + FALSE, + !vt); + _team_config_equal_check ("{ \"runner\" : { \"name\" : \"lacp\"} }", + "{ \"runner\" : { \"name\" : \"lacp\", \"tx_hash\" : [ \"eth\" ] } }", + FALSE, + !vt); + + /* team port config */ + _team_config_equal_check ("{ }", + "{ \"link_watch\" : { \"name\" : \"ethtool\"} }", + TRUE, + !vt); + _team_config_equal_check ("{ }", + "{ \"link_watch\" : { \"name\" : \"arp_ping\"} }", + TRUE, + TRUE); + _team_config_equal_check ("{ \"link_watch\" : { \"name\" : \"ethtool\"} }", + "{ \"link_watch\" : { \"name\" : \"arp_ping\"} }", + TRUE, + !vt); + _team_config_equal_check ("{ \"link_watch\" : { \"name\" : \"arp_ping\"} }", + "{ \"link_watch\" : { \"name\" : \"arp_ping\"} }", + TRUE, + TRUE); + _team_config_equal_check ("{ \"link_watch\" : { \"name\" : \"arp_ping\"}, \"ports\" : { \"eth0\" : {} } }", + "{ \"link_watch\" : { \"name\" : \"arp_ping\"}, \"ports\" : { \"eth1\" : {} } }", + TRUE, + TRUE); + } + + nmtst_json_vt_reset (TRUE); } /*****************************************************************************/ diff --git a/libnm-core/tests/test-keyfile.c b/libnm-core/tests/test-keyfile.c index 23149b618d..c740a9068d 100644 --- a/libnm-core/tests/test-keyfile.c +++ b/libnm-core/tests/test-keyfile.c @@ -5,6 +5,7 @@ #include "nm-default.h" +#include "nm-glib-aux/nm-json.h" #include "nm-keyfile/nm-keyfile-utils.h" #include "nm-keyfile/nm-keyfile-internal.h" #include "nm-simple-connection.h" @@ -627,7 +628,7 @@ test_team_conf_read_invalid (void) gs_unref_object NMConnection *con = NULL; NMSettingTeam *s_team; - if (!WITH_JSON_VALIDATION) { + if (!nm_json_vt ()) { g_test_skip ("team test requires JSON validation"); return; } diff --git a/libnm-core/tests/test-setting.c b/libnm-core/tests/test-setting.c index 1a32d91a49..3b59d7fa57 100644 --- a/libnm-core/tests/test-setting.c +++ b/libnm-core/tests/test-setting.c @@ -8,6 +8,7 @@ #include <linux/pkt_sched.h> #include <net/if.h> +#include "nm-glib-aux/nm-json.h" #include "nm-core-internal.h" #include "nm-utils.h" #include "nm-utils-private.h" @@ -32,15 +33,6 @@ /*****************************************************************************/ -/* assert that the define is just a plain integer (boolean). */ - -G_STATIC_ASSERT ( (WITH_JSON_VALIDATION) == 1 - || (WITH_JSON_VALIDATION) == 0); - -_nm_unused static const int _with_json_validation = WITH_JSON_VALIDATION; - -/*****************************************************************************/ - /* converts @dict to a connection. In this case, @dict must be good, without warnings, so that * NM_SETTING_PARSE_FLAGS_STRICT and NM_SETTING_PARSE_FLAGS_BEST_EFFORT yield the exact same results. */ static NMConnection * @@ -1000,7 +992,7 @@ _test_team_config_sync (const char *team_config, guint i, j; gboolean found; - if (!WITH_JSON_VALIDATION) { + if (!nm_json_vt ()) { g_test_skip ("team test requires JSON validation"); return; } @@ -1265,7 +1257,7 @@ _test_team_port_config_sync (const char *team_port_config, guint i, j; gboolean found; - if (!WITH_JSON_VALIDATION) { + if (!nm_json_vt ()) { g_test_skip ("team test requires JSON validation"); return; } @@ -1397,7 +1389,7 @@ _check_team_setting (NMSetting *setting) : nm_setting_team_get_config (NM_SETTING_TEAM (setting)), NULL); - if (WITH_JSON_VALIDATION) + if (nm_json_vt ()) nmtst_assert_setting_is_equal (setting, setting2, NM_SETTING_COMPARE_FLAG_EXACT); g_clear_object (&setting2); diff --git a/meson.build b/meson.build index 8eed507f08..28cd4f3028 100644 --- a/meson.build +++ b/meson.build @@ -256,6 +256,7 @@ libndp_dep = dependency('libndp') jansson_dep = dependency('jansson', version: '>= 2.5', required: false) config_h.set10('WITH_JANSSON', jansson_dep.found()) +jansson_msg = 'no' if jansson_dep.found() jansson_libdir = jansson_dep.get_pkgconfig_variable('libdir') res = run_command(find_program('eu-readelf', 'readelf'), '-d', join_paths(jansson_libdir, 'libjansson.so')) @@ -267,6 +268,7 @@ if jansson_dep.found() endforeach assert(jansson_soname != '', 'Unable to determine Jansson SONAME') config_h.set_quoted('JANSSON_SONAME', jansson_soname) + jansson_msg = 'yes (soname: ' + jansson_soname + ')' endif libsystemd_dep = dependency('libsystemd', version: '>= 209', required: false) @@ -497,12 +499,6 @@ if enable_teamdctl assert(libteamdctl_dep.found(), 'You must have libteamdctl installed to build. Use -Dteamdctl=false to disable it') endif -enable_json_validation = get_option('json_validation') -if enable_json_validation - assert(jansson_dep.found(), 'jansson is needed for team configuration validation. Use -Djson_validation=false to disable it') -endif -config_h.set10('WITH_JSON_VALIDATION', enable_json_validation) - # polkit enable_polkit = get_option('polkit') if enable_polkit @@ -1013,6 +1009,7 @@ if enable_ppp output += ' ' + pppd_path + ' plugins:' + pppd_plugin_dir endif output += '\n' +output += ' jansson: ' + jansson_msg + '\n' output += ' modemmanager-1: ' + enable_modem_manager.to_string() + '\n' output += ' ofono: ' + enable_ofono.to_string() + '\n' output += ' concheck: ' + enable_concheck.to_string() + '\n' @@ -1047,7 +1044,6 @@ output += '\n' output += ' code coverage: ' + get_option('b_coverage').to_string() + '\n' output += ' LTO: ' + enable_lto.to_string() + '\n' output += ' Linker garbage collection: ' + enable_ld_gc.to_string() + '\n' -output += ' JSON validation for libnm: ' + enable_json_validation.to_string() + '\n' output += ' crypto: ' + crypto + '\n' output += ' sanitizers: ' + get_option('b_sanitize') + '\n' output += ' Mozilla Public Suffix List: ' + enable_libpsl.to_string() + '\n' diff --git a/meson_options.txt b/meson_options.txt index a5c6a22fb0..d6306711ec 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -69,6 +69,5 @@ option('valgrind', type: 'array', value: ['no'], description: 'Use valgrind to m option('valgrind_suppressions', type: 'string', value: '', description: 'Use specific valgrind suppression file') option('ld_gc', type: 'boolean', value: true, description: 'Enable garbage collection of unused symbols on linking') option('libpsl', type: 'boolean', value: true, description: 'Link against libpsl') -option('json_validation', type: 'boolean', value: true, description: 'Enable JSON validation in libnm') option('crypto', type: 'combo', choices: ['nss', 'gnutls'], value: 'nss', description: 'Cryptography library to use for certificate and key operations') option('qt', type: 'boolean', value: true, description: 'enable Qt examples') diff --git a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c index 934c4901f9..b8fdd922ce 100644 --- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c +++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c @@ -15,6 +15,7 @@ #include <sys/types.h> #include <sys/stat.h> +#include "nm-glib-aux/nm-json.h" #include "nm-utils.h" #include "nm-setting-connection.h" #include "nm-setting-wired.h" @@ -9129,7 +9130,7 @@ test_read_team_master_invalid (gconstpointer user_data) gs_free_error GError *error = NULL; gs_unref_object NMConnection *connection = NULL; - if (WITH_JSON_VALIDATION) { + if (nm_json_vt ()) { _connection_from_file_fail (PATH_NAME, NULL, TYPE_ETHERNET, &error); g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY); |