diff --git a/0001-docs-fix-a-copy-paste-error-in-description-of-VLAN-f.patch b/0001-docs-fix-a-copy-paste-error-in-description-of-VLAN-f.patch new file mode 100644 index 0000000..d32a224 --- /dev/null +++ b/0001-docs-fix-a-copy-paste-error-in-description-of-VLAN-f.patch @@ -0,0 +1,26 @@ +From 3af6be7aa6f591a5d9889bd76a589ad3cd58a009 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= +Date: Fri, 17 Jul 2015 09:20:29 +0200 +Subject: [PATCH 1/2] docs: fix a copy/paste error in description of VLAN flags + +(cherry picked from commit 2af10ef4442311f08f30afc358b203a11c4c12b0) +--- + libnm-core/nm-setting-vlan.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libnm-core/nm-setting-vlan.c b/libnm-core/nm-setting-vlan.c +index f622ddc..d904ad5 100644 +--- a/libnm-core/nm-setting-vlan.c ++++ b/libnm-core/nm-setting-vlan.c +@@ -742,7 +742,7 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class) + * property: flags + * variable: VLAN_FLAGS, REORDER_HDR + * values: "GVRP", "LOOSE_BINDING" for VLAN_FLAGS; 0 or 1 for REORDER_HDR +- * description: Parent interface of the VLAN. ++ * description: VLAN flags. + * ---end--- + */ + g_object_class_install_property +-- +2.4.3 + diff --git a/0002-cli-fix-verifying-flag-based-properties-rh-1244048.patch b/0002-cli-fix-verifying-flag-based-properties-rh-1244048.patch new file mode 100644 index 0000000..18d1852 --- /dev/null +++ b/0002-cli-fix-verifying-flag-based-properties-rh-1244048.patch @@ -0,0 +1,123 @@ +From 439ff3841d7b0aa845d7638b2bc732ecc89d2894 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= +Date: Fri, 17 Jul 2015 11:24:31 +0200 +Subject: [PATCH 2/2] cli: fix verifying flag-based properties (rh #1244048) + +Some of the properties changed from GParamSpecUInt to GParamSpecFlags, namely +NM_SETTING_VLAN_FLAGS +NM_SETTING_DCB_APP_FCOE_FLAGS +NM_SETTING_DCB_APP_ISCSI_FLAGS +NM_SETTING_DCB_APP_FIP_FLAGS +NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS +NM_SETTING_DCB_PRIORITY_GROUP_FLAGS + +(commit fcfb4b40badbb5cd944cee0c9819cb2649d0bb58) + +https://bugzilla.redhat.com/show_bug.cgi?id=1244048 + +(cherry picked from commit 94b1b53a913650b5dd027181fecc08ce5ad8654d) +--- + clients/cli/settings.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 63 insertions(+), 3 deletions(-) + +diff --git a/clients/cli/settings.c b/clients/cli/settings.c +index 66e6f62..66759df 100644 +--- a/clients/cli/settings.c ++++ b/clients/cli/settings.c +@@ -2034,6 +2034,46 @@ validate_uint (NMSetting *setting, const char* prop, guint val, GError **error) + return success; + } + ++static char * ++flag_values_to_string (GFlagsValue *array, guint n) ++{ ++ GString *str; ++ guint i; ++ ++ str = g_string_new (NULL); ++ for (i = 0; i < n; i++) ++ g_string_append_printf (str, "%u, ", array[i].value); ++ if (str->len) ++ g_string_truncate (str, str->len-2); /* chop off trailing ', ' */ ++ return g_string_free (str, FALSE); ++} ++ ++static gboolean ++validate_flags (NMSetting *setting, const char* prop, guint val, GError **error) ++{ ++ GParamSpec *pspec; ++ GValue value = G_VALUE_INIT; ++ gboolean success = TRUE; ++ ++ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (setting)), prop); ++ g_assert (G_IS_PARAM_SPEC (pspec)); ++ ++ g_value_init (&value, pspec->value_type); ++ g_value_set_flags (&value, val); ++ ++ if (g_param_value_validate (pspec, &value)) { ++ GParamSpecFlags *pspec_flags = (GParamSpecFlags *) pspec; ++ char *flag_values = flag_values_to_string (pspec_flags->flags_class->values, ++ pspec_flags->flags_class->n_values); ++ g_set_error (error, 1, 0, _("'%u' flags are not valid; use combination of %s"), ++ val, flag_values); ++ g_free (flag_values); ++ success = FALSE; ++ } ++ g_value_unset (&value); ++ return success; ++} ++ + static gboolean + check_and_set_string (NMSetting *setting, + const char *prop, +@@ -2257,6 +2297,26 @@ nmc_property_set_int64 (NMSetting *setting, const char *prop, const char *val, G + } + + static gboolean ++nmc_property_set_flags (NMSetting *setting, const char *prop, const char *val, GError **error) ++{ ++ unsigned long val_int; ++ ++ g_return_val_if_fail (error == NULL || *error == NULL, FALSE); ++ ++ if (!nmc_string_to_uint (val, TRUE, 0, G_MAXUINT, &val_int)) { ++ g_set_error (error, 1, 0, _("'%s' is not a valid number (or out of range)"), val); ++ return FALSE; ++ } ++ ++ /* Validate the flags according to the property spec */ ++ if (!validate_flags (setting, prop, (guint) val_int, error)) ++ return FALSE; ++ ++ g_object_set (setting, prop, (guint) val_int, NULL); ++ return TRUE; ++} ++ ++static gboolean + nmc_property_set_bool (NMSetting *setting, const char *prop, const char *val, GError **error) + { + gboolean val_bool; +@@ -4495,8 +4555,8 @@ nmc_property_dcb_set_flags (NMSetting *setting, const char *prop, const char *va + g_strfreev (strv); + } + +- /* Validate the number according to the property spec */ +- if (!validate_uint (setting, prop, (guint) flags, error)) ++ /* Validate the flags according to the property spec */ ++ if (!validate_flags (setting, prop, (guint) flags, error)) + return FALSE; + + g_object_set (setting, prop, (guint) flags, NULL); +@@ -5927,7 +5987,7 @@ nmc_properties_init (void) + NULL); + nmc_add_prop_funcs (GLUE (VLAN, FLAGS), + nmc_property_vlan_get_flags, +- nmc_property_set_uint, ++ nmc_property_set_flags, + NULL, + NULL, + NULL, +-- +2.4.3 + diff --git a/NetworkManager.spec b/NetworkManager.spec index 6ad2d4e..a7fe1e7 100644 --- a/NetworkManager.spec +++ b/NetworkManager.spec @@ -89,6 +89,10 @@ Source4: 20-connectivity-fedora.conf # Not upstream. Patch0: 0000-explain-dns1-dns2.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1244048 +Patch1: 0001-docs-fix-a-copy-paste-error-in-description-of-VLAN-f.patch +Patch2: 0002-cli-fix-verifying-flag-based-properties-rh-1244048.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if 0%{?fedora} && 0%{?fedora} < 20 @@ -367,6 +371,10 @@ by nm-connection-editor and nm-applet in a non-graphical environment. %patch0 -p1 -b .0000-explain-dns1-dns2.orig +# https://bugzilla.redhat.com/show_bug.cgi?id=1244048 +%patch1 -p1 -b .docs-fix-a-copy-paste-error-in-description-of-VLAN-f.patch +%patch2 -p1 -b .cli-fix-verifying-flag-based-properties-rh-1244048.patch + %build %if %{regen_docs} @@ -684,6 +692,9 @@ fi %endif %changelog +* Tue Jul 14 2015 Lubomir Rintel - 1:1.0.4-2 +- Fix an assertion failure in nmcli (rh #1244048) + * Tue Jul 14 2015 Lubomir Rintel - 1:1.0.4-1 - Update to 1.0.4 release