Browse Source

NetworkManager package update

Signed-off-by: basebuilder_pel7x64builder0 <basebuilder@powerel.org>
master
basebuilder_pel7x64builder0 4 years ago
parent
commit
c153dfc53c
  1. 14
      SOURCES/0001-cloned-mac-address-permanent-rh1413312.patch
  2. 19
      SOURCES/0003-dhclient-no-leading-zero-client-id-rh1556983.patch
  3. 7
      SOURCES/0004-ibft-cap-sys-admin-rh1371201.patch
  4. 33
      SOURCES/0005-dhcp-internal-default-client-id-rh1695723.patch
  5. 35
      SOURCES/0006-no-keyfile-file-name-extension-rh1697858.patch
  6. 136
      SOURCES/1000-dhclient-include-conditionals-rh1758550.patch
  7. 58
      SOURCES/1001-fix-arp-announcements-rh1767681.patch
  8. 339
      SOURCES/1002-ovs-cloned-mac-rh1740557.patch
  9. 5
      SOURCES/20-connectivity-fedora.conf
  10. 5
      SOURCES/20-connectivity-redhat.conf
  11. 24
      SOURCES/9999-fix-pregen-doc.patch
  12. 73
      SPECS/NetworkManager.spec

14
SOURCES/0001-cloned-mac-address-permanent-rh1413312.patch

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
From 488696bfaabe783972f756f53ff2cce7b0aa8d4b Mon Sep 17 00:00:00 2001
From 014a4b315205203dcfee659104b0e19204156a16 Mon Sep 17 00:00:00 2001
From: Thomas Haller <thaller@redhat.com>
Date: Fri, 24 Feb 2017 20:25:56 +0100
Subject: [PATCH] Revert "device: change default value for cloned-mac-address
@ -16,7 +16,7 @@ This reverts commit fae5ecec5a4d9987a1915441602cb78275a9f490. @@ -16,7 +16,7 @@ This reverts commit fae5ecec5a4d9987a1915441602cb78275a9f490.
5 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/clients/common/settings-docs.h.in b/clients/common/settings-docs.h.in
index 59ca4cc..5fbafb7 100644
index 811f2f16d630..8f1be4d89443 100644
--- a/clients/common/settings-docs.h.in
+++ b/clients/common/settings-docs.h.in
@@ -7,7 +7,7 @@
@ -38,7 +38,7 @@ index 59ca4cc..5fbafb7 100644 @@ -38,7 +38,7 @@ index 59ca4cc..5fbafb7 100644
#define DESCRIBE_DOC_NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK N_("With \"cloned-mac-address\" setting \"random\" or \"stable\", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting \"FE:FF:FF:00:00:00\" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the \"random\" or \"stable\" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of \"FE:FF:FF:00:00:00 68:F7:28:00:00:00\" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of \"02:00:00:00:00:00 00:00:00:00:00:00\" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, \"02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00\" will create a fully scrambled MAC address, randomly locally or globally administered.")
#define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS N_("If specified, this connection will only apply to the Ethernet device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).")
diff --git a/libnm-core/nm-setting-wired.c b/libnm-core/nm-setting-wired.c
index 7f08430..b916a7c 100644
index 182e71930210..cf97ccb98a86 100644
--- a/libnm-core/nm-setting-wired.c
+++ b/libnm-core/nm-setting-wired.c
@@ -1150,8 +1150,8 @@ nm_setting_wired_class_init (NMSettingWiredClass *klass)
@ -63,7 +63,7 @@ index 7f08430..b916a7c 100644 @@ -63,7 +63,7 @@ index 7f08430..b916a7c 100644
* On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated
* "cloned-mac-address".
diff --git a/libnm-core/nm-setting-wireless.c b/libnm-core/nm-setting-wireless.c
index b4cb105..ac3f168 100644
index d8056c6c598e..188a40021862 100644
--- a/libnm-core/nm-setting-wireless.c
+++ b/libnm-core/nm-setting-wireless.c
@@ -1405,8 +1405,8 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *klass)
@ -88,7 +88,7 @@ index b4cb105..ac3f168 100644 @@ -88,7 +88,7 @@ index b4cb105..ac3f168 100644
* On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated
* "cloned-mac-address".
diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml
index 2893424..a8c4d0b 100644
index 289342473a30..a8c4d0b9b596 100644
--- a/man/NetworkManager.conf.xml
+++ b/man/NetworkManager.conf.xml
@@ -705,7 +705,7 @@ ipv6.ip6-privacy=0
@ -110,10 +110,10 @@ index 2893424..a8c4d0b 100644 @@ -110,10 +110,10 @@ index 2893424..a8c4d0b 100644
<varlistentry>
<term><varname>wifi.generate-mac-address-mask</varname></term>
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 06ad2ce82..c0867a04b 100644
index 43f03739bcf9..fafd71b38eb8 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -15453,7 +15453,8 @@ _get_cloned_mac_address_setting (NMDevice *self, NMConnection *connection, gbool
@@ -15555,7 +15555,8 @@ _get_cloned_mac_address_setting (NMDevice *self, NMConnection *connection, gbool
: NM_CON_DEFAULT ("ethernet.cloned-mac-address"),
self);

19
SOURCES/0003-dhclient-no-leading-zero-client-id-rh1556983.patch

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
From bbee3b6833ab1792e75470db5f3b7022e9a965f5 Mon Sep 17 00:00:00 2001
From 6b92df3dfca4854e35cb87024ccd17a34e731277 Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Wed, 20 Jun 2018 11:49:22 +0200
Subject: [PATCH 1/2] Revert "dhclient: write client-id with backslash and
@ -11,10 +11,10 @@ This reverts commit 0e4b33ee7552b036332f1bdbfed78f8ee75f000e. @@ -11,10 +11,10 @@ This reverts commit 0e4b33ee7552b036332f1bdbfed78f8ee75f000e.
2 files changed, 2 insertions(+), 33 deletions(-)

diff --git a/src/dhcp/nm-dhcp-dhclient-utils.c b/src/dhcp/nm-dhcp-dhclient-utils.c
index cbd706f..7324597 100644
index 85ca3704d12a..6cbc0c97c535 100644
--- a/src/dhcp/nm-dhcp-dhclient-utils.c
+++ b/src/dhcp/nm-dhcp-dhclient-utils.c
@@ -124,7 +124,7 @@ add_ip4_config (GString *str, GBytes *client_id, const char *hostname, gboolean
@@ -135,7 +135,7 @@ add_ip4_config (GString *str, GBytes *client_id, const char *hostname, gboolean
* as long as all the characters are printable.
*/
for (i = 1; (p[0] == 0) && i < l; i++) {
@ -24,7 +24,7 @@ index cbd706f..7324597 100644 @@ -24,7 +24,7 @@ index cbd706f..7324597 100644
}
diff --git a/src/dhcp/tests/test-dhcp-dhclient.c b/src/dhcp/tests/test-dhcp-dhclient.c
index 55d712b..7df0720 100644
index 1eac36434cf9..fb9251f25a2e 100644
--- a/src/dhcp/tests/test-dhcp-dhclient.c
+++ b/src/dhcp/tests/test-dhcp-dhclient.c
@@ -178,36 +178,6 @@ test_quote_client_id (void)
@ -77,7 +77,8 @@ index 55d712b..7df0720 100644 @@ -77,7 +77,8 @@ index 55d712b..7df0720 100644
--
2.21.0

From 2049c9c861f262aa6c949f45cd401ec515c2f2d0 Mon Sep 17 00:00:00 2001

From 2203e61c9cee7b3fcb6052523cdc2721e54496c7 Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Wed, 20 Jun 2018 11:50:51 +0200
Subject: [PATCH 2/2] Revert "dhcp: dhclient: set type 0 for printable client
@ -92,10 +93,10 @@ This reverts commit 8ffa22d10d3001405965826b46463663fd2dacc2. @@ -92,10 +93,10 @@ This reverts commit 8ffa22d10d3001405965826b46463663fd2dacc2.
2 files changed, 17 insertions(+), 116 deletions(-)

diff --git a/src/dhcp/nm-dhcp-dhclient-utils.c b/src/dhcp/nm-dhcp-dhclient-utils.c
index 7324597..4eb4c5d 100644
index 6cbc0c97c535..3338fbff2e93 100644
--- a/src/dhcp/nm-dhcp-dhclient-utils.c
+++ b/src/dhcp/nm-dhcp-dhclient-utils.c
@@ -137,9 +137,8 @@ add_ip4_config (GString *str, GBytes *client_id, const char *hostname, gboolean
@@ -148,9 +148,8 @@ add_ip4_config (GString *str, GBytes *client_id, const char *hostname, gboolean
g_string_append_printf (str, "%02x", (guint8) p[i]);
}
} else {
@ -106,7 +107,7 @@ index 7324597..4eb4c5d 100644 @@ -106,7 +107,7 @@ index 7324597..4eb4c5d 100644
g_string_append_len (str, p + 1, l - 1);
g_string_append_c (str, '"');
}
@@ -177,60 +176,31 @@ read_client_id (const char *str)
@@ -188,60 +187,31 @@ read_client_id (const char *str)
{
gs_free char *s = NULL;
char *p;
@ -175,7 +176,7 @@ index 7324597..4eb4c5d 100644 @@ -175,7 +176,7 @@ index 7324597..4eb4c5d 100644
static gboolean
diff --git a/src/dhcp/tests/test-dhcp-dhclient.c b/src/dhcp/tests/test-dhcp-dhclient.c
index 7df0720..acdd276 100644
index fb9251f25a2e..f6267cd2816d 100644
--- a/src/dhcp/tests/test-dhcp-dhclient.c
+++ b/src/dhcp/tests/test-dhcp-dhclient.c
@@ -151,7 +151,7 @@ test_override_client_id (void)

7
SOURCES/0004-ibft-cap-sys-admin-rh1371201.patch

@ -20,13 +20,14 @@ index ff90456ff..680b5889a 100644 @@ -20,13 +20,14 @@ index ff90456ff..680b5889a 100644
KillMode=process
-CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL CAP_SYS_CHROOT
+#CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL CAP_SYS_CHROOT

-# ibft settings plugin calls iscsiadm which needs CAP_SYS_ADMIN
-#CapabilityBoundingSet=CAP_SYS_ADMIN
+# ibft settings plugin calls iscsiadm which needs CAP_SYS_ADMIN (rh#1371201)
+CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL CAP_SYS_CHROOT CAP_SYS_ADMIN

ProtectSystem=true
ProtectHome=read-only
--
--
2.17.1


33
SOURCES/0005-dhcp-internal-default-client-id-rh1695723.patch

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
From 5ca3888861d4f05935c9f330804c1f30ab8c57e5 Mon Sep 17 00:00:00 2001
From c63d39ed73da9cd804e7ace3b11debb49ed5f6b4 Mon Sep 17 00:00:00 2001
From: Francesco Giudici <fgiudici@redhat.com>
Date: Tue, 9 Apr 2019 11:41:27 +0200
Subject: [PATCH] dhcp/internal: make default dhcp-client-id based on systemd
@ -16,31 +16,32 @@ This reverts commit cfd696cc3cf43f5f510046b757949546bcee4cdc. @@ -16,31 +16,32 @@ This reverts commit cfd696cc3cf43f5f510046b757949546bcee4cdc.
2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/dhcp/nm-dhcp-manager.c b/src/dhcp/nm-dhcp-manager.c
index 7063c82cf..4a40d2e52 100644
index fe843a2ce43c..b998bf465b25 100644
--- a/src/dhcp/nm-dhcp-manager.c
+++ b/src/dhcp/nm-dhcp-manager.c
@@ -237,7 +237,7 @@ client_start (NMDhcpManager *self,
*
* - for IPv4, the calling code may determine a client-id (from NM's connection profile).
* If present, it is taken. If not present, the DHCP plugin uses a plugin specific default.
*
* - for IPv4, the calling code may determine a client-id (from NM's connection profile).
* If present, it is taken. If not present, the DHCP plugin uses a plugin specific default.
- * - for "internal" plugin, the default is just "mac".
+ * - for "internal" plugin, the default is just "duid".
* - for "dhclient", we try to get the configuration from dhclient's /etc/dhcp or fallback
* to whatever dhclient uses by default.
* We do it this way, because for dhclient the user may configure a default
* - for "dhclient", we try to get the configuration from dhclient's /etc/dhcp or fallback
* to whatever dhclient uses by default.
* We do it this way, because for dhclient the user may configure a default
diff --git a/src/dhcp/nm-dhcp-systemd.c b/src/dhcp/nm-dhcp-systemd.c
index 70ed87150..84973aa2a 100644
index 1cd5ba278283..b6344d9bbf9c 100644
--- a/src/dhcp/nm-dhcp-systemd.c
+++ b/src/dhcp/nm-dhcp-systemd.c
@@ -750,7 +750,8 @@ ip4_start (NMDhcpClient *client,

client_id = nm_dhcp_client_get_client_id (client);
if (!client_id) {
client_id = nm_dhcp_client_get_client_id (client);
if (!client_id) {
- client_id_new = nm_utils_dhcp_client_id_mac (arp_type, hwaddr_arr, hwaddr_len);
+ client_id_new = nm_utils_dhcp_client_id_systemd_node_specific (TRUE,
+ nm_dhcp_client_get_iface (client));
client_id = client_id_new;
}
client_id = client_id_new;
}
--
2.21.0

--
2.20.1

35
SOURCES/0006-no-keyfile-file-name-extension-rh1697858.patch

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
From a67de1d4f7025f86701c1e2cc319238cbbc88f98 Mon Sep 17 00:00:00 2001
From d943f1093603176864cd029a013d4216ef5f277f Mon Sep 17 00:00:00 2001
From: Thomas Haller <thaller@redhat.com>
Date: Tue, 9 Apr 2019 18:00:21 +0200
Subject: [PATCH 1/1] Revert "keyfile: also add ".nmconnection" extension when
Subject: [PATCH] Revert "keyfile: also add ".nmconnection" extension when
writing keyfiles in /etc"

This reverts commit d37ad15f12bafd91cf724cda50aea7093e04bf7a.
@ -10,30 +10,31 @@ This reverts commit d37ad15f12bafd91cf724cda50aea7093e04bf7a. @@ -10,30 +10,31 @@ This reverts commit d37ad15f12bafd91cf724cda50aea7093e04bf7a.
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/settings/plugins/keyfile/nms-keyfile-writer.c b/src/settings/plugins/keyfile/nms-keyfile-writer.c
index 8c75d8c79..fe05df28e 100644
index 2e06aeb9da69..ee652881d60b 100644
--- a/src/settings/plugins/keyfile/nms-keyfile-writer.c
+++ b/src/settings/plugins/keyfile/nms-keyfile-writer.c
@@ -357,16 +357,19 @@ nms_keyfile_writer_connection (NMConnection *connection,
GError **error)
{
const char *keyfile_dir;
const char *keyfile_dir;
+ gboolean with_extension = FALSE;

if (save_to_disk)
keyfile_dir = nms_keyfile_utils_get_path ();
if (save_to_disk)
keyfile_dir = nms_keyfile_utils_get_path ();
- else
+ else {
keyfile_dir = NM_KEYFILE_PATH_NAME_RUN;
keyfile_dir = NM_KEYFILE_PATH_NAME_RUN;
+ with_extension = TRUE;
+ }

return _internal_write_connection (connection,
keyfile_dir,
nms_keyfile_utils_get_path (),
return _internal_write_connection (connection,
keyfile_dir,
nms_keyfile_utils_get_path (),
- TRUE,
+ with_extension,
0,
0,
existing_path,
--
2.20.1
0,
0,
existing_path,
--
2.21.0


136
SOURCES/1000-dhclient-include-conditionals-rh1758550.patch

@ -0,0 +1,136 @@ @@ -0,0 +1,136 @@
From 7a5509053a78bf92511626ca06fdb61c2977693f Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Sun, 6 Oct 2019 08:27:18 +0200
Subject: [PATCH] dhcp: include conditionals from existing dhclient
configuration

Since commit 159ff23268b1 ('dhcp/dhclient-utils: skip over
dhclient.conf blocks') we skip blocks enclosed in lines containing '{'
and '}' because NM should ignore 'lease', 'alias' and other
declarations. However, conditional statements seem useful and should
not be skipped.

https://bugzilla.redhat.com/show_bug.cgi?id=1758550
(cherry picked from commit b58e4d311da630ea8d14f60ca3667710877e455d)
(cherry picked from commit 58ffded2d0a317c3a480821272b41780aff0e64e)
(cherry picked from commit 497101fd1e44128496d14a3b8b7496de7febe2f0)
---
src/dhcp/nm-dhcp-dhclient-utils.c | 43 +++++++++++++++++++++--------
src/dhcp/tests/test-dhcp-dhclient.c | 19 ++++++++++++-
2 files changed, 50 insertions(+), 12 deletions(-)

diff --git a/src/dhcp/nm-dhcp-dhclient-utils.c b/src/dhcp/nm-dhcp-dhclient-utils.c
index 3338fbff2..01d0fc020 100644
--- a/src/dhcp/nm-dhcp-dhclient-utils.c
+++ b/src/dhcp/nm-dhcp-dhclient-utils.c
@@ -275,11 +275,13 @@ nm_dhcp_dhclient_create_config (const char *interface,
if (orig_contents) {
gs_free const char **lines = NULL;
gsize line_i;
- int nest = 0;
+ nm_auto_free_gstring GString *blocks_stack = NULL;
+ guint blocks_skip = 0;
gboolean in_alsoreq = FALSE;
gboolean in_req = FALSE;
char intf[IFNAMSIZ];
+ blocks_stack = g_string_new (NULL);
g_string_append_printf (new_contents, _("# Merged from %s\n\n"), orig_path);
intf[0] = '\0';
@@ -297,19 +299,38 @@ nm_dhcp_dhclient_create_config (const char *interface,
if (in_req) {
/* pass */
} else if (strchr (p, '{')) {
- nest++;
- if ( !intf[0]
- && NM_STR_HAS_PREFIX (p, "interface"))
- if (read_interface (p, intf, sizeof (intf)))
- continue;
+ if ( NM_STR_HAS_PREFIX (p, "lease")
+ || NM_STR_HAS_PREFIX (p, "alias")
+ || NM_STR_HAS_PREFIX (p, "interface")
+ || NM_STR_HAS_PREFIX (p, "pseudo")) {
+ /* skip over these blocks, except 'interface' when it
+ * matches the current interface */
+ blocks_skip++;
+ g_string_append_c (blocks_stack, 'b');
+ if ( !intf[0]
+ && NM_STR_HAS_PREFIX (p, "interface")) {
+ if (read_interface (p, intf, sizeof (intf)))
+ continue;
+ }
+ } else {
+ /* allow other blocks (conditionals) */
+ if (!strchr (p, '}')) /* '} else {' */
+ g_string_append_c (blocks_stack, 'c');
+ }
} else if (strchr (p, '}')) {
- if (nest)
- nest--;
- intf[0] = '\0';
- continue;
+ if (blocks_stack->len > 0) {
+ if (blocks_stack->str[blocks_stack->len - 1] == 'b') {
+ g_string_truncate (blocks_stack, blocks_stack->len - 1);
+ nm_assert(blocks_skip > 0);
+ blocks_skip--;
+ intf[0] = '\0';
+ continue;
+ }
+ g_string_truncate (blocks_stack, blocks_stack->len - 1);
+ }
}
- if (nest && !intf[0])
+ if (blocks_skip > 0 && !intf[0])
continue;
if (intf[0] && !nm_streq (intf, interface))
diff --git a/src/dhcp/tests/test-dhcp-dhclient.c b/src/dhcp/tests/test-dhcp-dhclient.c
index f6267cd28..90480955f 100644
--- a/src/dhcp/tests/test-dhcp-dhclient.c
+++ b/src/dhcp/tests/test-dhcp-dhclient.c
@@ -900,6 +900,11 @@ test_structured (void)
" request subnet-mask, broadcast-address, time-offset, routers,\n"
" domain-search, domain-name, domain-name-servers, host-name;\n"
" require subnet-mask, domain-name-servers;\n"
+ " if not option domain-name = \"example.org\" {\n"
+ " prepend domain-name-servers 127.0.0.1;\n"
+ " } else {\n"
+ " prepend domain-name-servers 127.0.0.2;\n"
+ " } \n"
" } \n"
"\n"
"pseudo \"secondary\" \"eth0\" { \n"
@@ -926,7 +931,13 @@ test_structured (void)
" interface \"eth0\";\n"
" fixed-address 192.0.2.2;\n"
" option subnet-mask 255.255.255.0;\n"
- " } \n";
+ " } \n"
+ "if not option domain-name = \"example.org\" {\n"
+ " prepend domain-name-servers 127.0.0.1;\n"
+ " if not option domain-name = \"useless.example.com\" {\n"
+ " prepend domain-name-servers 127.0.0.2;\n"
+ " }\n"
+ "}\n";
static const char *const expected = \
"# Created by NetworkManager\n"
@@ -937,6 +948,12 @@ test_structured (void)
"send dhcp-client-identifier \"sad-and-useless\";\n"
"send dhcp-lease-time 8086;\n"
"require subnet-mask;\n"
+ "if not option domain-name = \"example.org\" {\n"
+ "prepend domain-name-servers 127.0.0.1;\n"
+ "if not option domain-name = \"useless.example.com\" {\n"
+ "prepend domain-name-servers 127.0.0.2;\n"
+ "}\n"
+ "}\n"
"\n"
"option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n"
"option ms-classless-static-routes code 249 = array of unsigned integer 8;\n"
--
2.21.0

58
SOURCES/1001-fix-arp-announcements-rh1767681.patch

@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
From dae15bf2b3d7ebef817cacf22bbbc3a0e5ff1424 Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Mon, 4 Nov 2019 14:19:12 +0100
Subject: [PATCH] acd: poll the acd fd after starting the announcements

In nm_acd_manager_announce_addresses() we should not only start the
probes but also add the acd file descriptor to the main loop.
Otherwise, a timer is armed to send the announcements but it never
fires and no announcements are sent.

Fixes: d9a4b59c18e3 ('acd: adapt NM code and build options')

https://bugzilla.redhat.com/show_bug.cgi?id=1767681
(cherry picked from commit 14992ab9cdb6394d133c8ac7b88ad1e4a1e995b0)
(cherry picked from commit c36da8b990dcb4858e27abf87cc45cf7b550538c)
(cherry picked from commit 5798b1b814556e0ca224c092fa2887d603703c38)
---
src/devices/nm-acd-manager.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/src/devices/nm-acd-manager.c b/src/devices/nm-acd-manager.c
index f437ce3a8..58bf4fd97 100644
--- a/src/devices/nm-acd-manager.c
+++ b/src/devices/nm-acd-manager.c
@@ -345,6 +345,8 @@ nm_acd_manager_start_probe (NMAcdManager *self, guint timeout)
if (success)
self->state = STATE_PROBING;
+ nm_assert (!self->channel);
+ nm_assert (self->event_id == 0);
n_acd_get_fd (self->acd, &fd);
self->channel = g_io_channel_unix_new (fd);
self->event_id = g_io_add_watch (self->channel, G_IO_IN, acd_event, self);
@@ -390,6 +392,7 @@ nm_acd_manager_announce_addresses (NMAcdManager *self)
GHashTableIter iter;
AddressInfo *info;
int r;
+ int fd;
gboolean success = TRUE;
r = acd_init (self);
@@ -429,6 +432,13 @@ nm_acd_manager_announce_addresses (NMAcdManager *self)
}
}
+ if (!self->channel) {
+ nm_assert (self->event_id == 0);
+ n_acd_get_fd (self->acd, &fd);
+ self->channel = g_io_channel_unix_new (fd);
+ self->event_id = g_io_add_watch (self->channel, G_IO_IN, acd_event, self);
+ }
+
return success ? 0 : -NME_UNSPEC;
}
--
2.21.0

339
SOURCES/1002-ovs-cloned-mac-rh1740557.patch

@ -0,0 +1,339 @@ @@ -0,0 +1,339 @@
From bc2e2d8562cc856442e6f449bc422d152527b8c9 Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Fri, 25 Oct 2019 10:36:52 +0200
Subject: [PATCH 1/2] ovs: fix memory leak

(cherry picked from commit 508c7679cfb06f9d5149e637737d28a958f9131c)
(cherry picked from commit ad17cfff249e7edde0011dc80f09f496ba2fe020)
(cherry picked from commit 836b9e24a475fa9ef5b86d9ca34c751336da4b52)
---
src/devices/ovs/nm-ovsdb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/devices/ovs/nm-ovsdb.c b/src/devices/ovs/nm-ovsdb.c
index 5b50f8406..8b6dca7a5 100644
--- a/src/devices/ovs/nm-ovsdb.c
+++ b/src/devices/ovs/nm-ovsdb.c
@@ -1068,7 +1068,7 @@ ovsdb_got_msg (NMOvsdb *self, json_t *msg)
OvsdbMethodCall *call = NULL;
OvsdbMethodCallback callback;
gpointer user_data;
- GError *local = NULL;
+ gs_free_error GError *local = NULL;
if (json_unpack_ex (msg, &json_error, 0, "{s?:o, s?:s, s?:o, s?:o, s?:o}",
"id", &json_id,
--
2.21.0

From 014c1f0ea0cd1b2723d4f123eb43996a0cf37522 Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
Date: Thu, 24 Oct 2019 15:59:43 +0200
Subject: [PATCH 2/2] ovs: allow changing mac address of bridges and interfaces

Allow changing the cloned MAC address for OVS bridges and
interfaces. The MAC address set on the bridge is propagated by ovs to
the local interface (the one with the same name as the bridge), while
all other internal interfaces use the address defined in the interface
connection.

https://bugzilla.redhat.com/show_bug.cgi?id=1763734
https://bugzilla.redhat.com/show_bug.cgi?id=1740557

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/321
(cherry picked from commit 101e65d2bb1920853da4621e220b4825860ec46d)
(cherry picked from commit b366234a3a1deb4a6924744f6b7cafa9f2650e3e)
(cherry picked from commit 5a4a5f637bb65e9833836e724b3beea19158e9f8)
---
clients/common/nm-meta-setting-desc.c | 1 +
src/devices/ovs/nm-device-ovs-port.c | 5 ++
src/devices/ovs/nm-ovsdb.c | 88 ++++++++++++++++++++++-----
src/devices/ovs/nm-ovsdb.h | 1 +
4 files changed, 79 insertions(+), 16 deletions(-)

diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index afeb69a52..e14b23438 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -7871,6 +7871,7 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
.valid_parts = NM_META_SETTING_VALID_PARTS (
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
NM_META_SETTING_VALID_PART_ITEM (OVS_BRIDGE, TRUE),
+ NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
),
),
SETTING_INFO (OVS_INTERFACE,
diff --git a/src/devices/ovs/nm-device-ovs-port.c b/src/devices/ovs/nm-device-ovs-port.c
index 8a93a5a9d..39e64b3f1 100644
--- a/src/devices/ovs/nm-device-ovs-port.c
+++ b/src/devices/ovs/nm-device-ovs-port.c
@@ -102,6 +102,7 @@ enslave_slave (NMDevice *device, NMDevice *slave, NMConnection *connection, gboo
{
NMActiveConnection *ac_port = NULL;
NMActiveConnection *ac_bridge = NULL;
+ NMDevice *bridge_device;
if (!configure)
return TRUE;
@@ -111,10 +112,14 @@ enslave_slave (NMDevice *device, NMDevice *slave, NMConnection *connection, gboo
if (!ac_bridge)
ac_bridge = ac_port;
+ bridge_device = nm_active_connection_get_device (ac_bridge);
+
nm_ovsdb_add_interface (nm_ovsdb_get (),
nm_active_connection_get_applied_connection (ac_bridge),
nm_device_get_applied_connection (device),
nm_device_get_applied_connection (slave),
+ bridge_device,
+ slave,
add_iface_cb, g_object_ref (slave));
return TRUE;
diff --git a/src/devices/ovs/nm-ovsdb.c b/src/devices/ovs/nm-ovsdb.c
index 8b6dca7a5..82e25f396 100644
--- a/src/devices/ovs/nm-ovsdb.c
+++ b/src/devices/ovs/nm-ovsdb.c
@@ -28,6 +28,7 @@
#include "devices/nm-device.h"
#include "platform/nm-platform.h"
#include "nm-core-internal.h"
+#include "devices/nm-device.h"
/*****************************************************************************/
@@ -131,6 +132,8 @@ typedef struct {
NMConnection *bridge;
NMConnection *port;
NMConnection *interface;
+ NMDevice *bridge_device;
+ NMDevice *interface_device;
};
};
} OvsdbMethodCall;
@@ -183,6 +186,7 @@ static void
ovsdb_call_method (NMOvsdb *self, OvsdbCommand command,
const char *ifname,
NMConnection *bridge, NMConnection *port, NMConnection *interface,
+ NMDevice *bridge_device, NMDevice *interface_device,
OvsdbMethodCallback callback, gpointer user_data)
{
NMOvsdbPrivate *priv = NM_OVSDB_GET_PRIVATE (self);
@@ -205,6 +209,8 @@ ovsdb_call_method (NMOvsdb *self, OvsdbCommand command,
call->bridge = nm_simple_connection_new_clone (bridge);
call->port = nm_simple_connection_new_clone (port);
call->interface = nm_simple_connection_new_clone (interface);
+ call->bridge_device = g_object_ref (bridge_device);
+ call->interface_device = g_object_ref (interface_device);
break;
case OVSDB_DEL_INTERFACE:
call->ifname = g_strdup (ifname);
@@ -337,17 +343,32 @@ _set_port_interfaces (json_t *params, const char *ifname, json_t *new_interfaces
* Returns an commands that adds new interface from a given connection.
*/
static void
-_insert_interface (json_t *params, NMConnection *interface)
+_insert_interface (json_t *params, NMConnection *interface, NMDevice *interface_device)
{
const char *type = NULL;
NMSettingOvsInterface *s_ovs_iface;
NMSettingOvsPatch *s_ovs_patch;
json_t *options = json_array ();
+ gs_free char *cloned_mac = NULL;
+ gs_free_error GError *error = NULL;
+ json_t *row;
s_ovs_iface = nm_connection_get_setting_ovs_interface (interface);
if (s_ovs_iface)
type = nm_setting_ovs_interface_get_interface_type (s_ovs_iface);
+ if (!nm_device_hw_addr_get_cloned (interface_device,
+ interface,
+ FALSE,
+ &cloned_mac,
+ NULL,
+ &error)) {
+ _LOGW ("Cannot determine cloned mac for OVS %s '%s': %s",
+ "interface",
+ nm_connection_get_interface_name (interface),
+ error->message);
+ }
+
json_array_append_new (options, json_string ("map"));
s_ovs_patch = nm_connection_get_setting_ovs_patch (interface);
if (s_ovs_patch) {
@@ -358,14 +379,22 @@ _insert_interface (json_t *params, NMConnection *interface)
json_array_append_new (options, json_array ());
}
+ row = json_pack ("{s:s, s:s, s:o, s:[s, [[s, s]]]}",
+ "name", nm_connection_get_interface_name (interface),
+ "type", type ?: "",
+ "options", options,
+ "external_ids", "map",
+ "NM.connection.uuid", nm_connection_get_uuid (interface));
+
+ if (cloned_mac)
+ json_object_set_new (row, "mac", json_string (cloned_mac));
+
json_array_append_new (params,
- json_pack ("{s:s, s:s, s:{s:s, s:s, s:o, s:[s, [[s, s]]]}, s:s}",
- "op", "insert", "table", "Interface", "row",
- "name", nm_connection_get_interface_name (interface),
- "type", type ?: "",
- "options", options,
- "external_ids", "map", "NM.connection.uuid", nm_connection_get_uuid (interface),
- "uuid-name", "rowInterface"));
+ json_pack ("{s:s, s:s, s:o, s:s}",
+ "op", "insert",
+ "table", "Interface",
+ "row", row,
+ "uuid-name", "rowInterface"));
}
/**
@@ -429,7 +458,7 @@ _insert_port (json_t *params, NMConnection *port, json_t *new_interfaces)
* Returns an commands that adds new bridge from a given connection.
*/
static void
-_insert_bridge (json_t *params, NMConnection *bridge, json_t *new_ports)
+_insert_bridge (json_t *params, NMConnection *bridge, NMDevice *bridge_device, json_t *new_ports)
{
NMSettingOvsBridge *s_ovs_bridge;
const char *fail_mode = NULL;
@@ -437,9 +466,23 @@ _insert_bridge (json_t *params, NMConnection *bridge, json_t *new_ports)
gboolean rstp_enable = FALSE;
gboolean stp_enable = FALSE;
json_t *row;
+ gs_free_error GError *error = NULL;
+ gs_free char *cloned_mac = NULL;
s_ovs_bridge = nm_connection_get_setting_ovs_bridge (bridge);
+ if (!nm_device_hw_addr_get_cloned (bridge_device,
+ bridge,
+ FALSE,
+ &cloned_mac,
+ NULL,
+ &error)) {
+ _LOGW ("Cannot determine cloned mac for OVS %s '%s': %s",
+ "bridge",
+ nm_connection_get_interface_name (bridge),
+ error->message);
+ }
+
row = json_object ();
if (s_ovs_bridge) {
@@ -464,6 +507,12 @@ _insert_bridge (json_t *params, NMConnection *bridge, json_t *new_ports)
json_pack ("[s, [[s, s]]]", "map",
"NM.connection.uuid", nm_connection_get_uuid (bridge)));
+ if (cloned_mac) {
+ json_object_set_new (row, "other_config",
+ json_pack ("[s, [[s, s]]]", "map",
+ "hwaddr", cloned_mac));
+ }
+
/* Create a new one. */
json_array_append_new (params,
json_pack ("{s:s, s:s, s:o, s:s}", "op", "insert", "table", "Bridge",
@@ -493,7 +542,8 @@ _inc_next_cfg (const char *db_uuid)
*/
static void
_add_interface (NMOvsdb *self, json_t *params,
- NMConnection *bridge, NMConnection *port, NMConnection *interface)
+ NMConnection *bridge, NMConnection *port, NMConnection *interface,
+ NMDevice *bridge_device, NMDevice *interface_device)
{
NMOvsdbPrivate *priv = NM_OVSDB_GET_PRIVATE (self);
GHashTableIter iter;
@@ -566,7 +616,7 @@ _add_interface (NMOvsdb *self, json_t *params,
_expect_ovs_bridges (params, priv->db_uuid, bridges);
json_array_append_new (new_bridges, json_pack ("[s, s]", "named-uuid", "rowBridge"));
_set_ovs_bridges (params, priv->db_uuid, new_bridges);
- _insert_bridge (params, bridge, new_ports);
+ _insert_bridge (params, bridge, bridge_device, new_ports);
} else {
/* Bridge already exists. */
g_return_if_fail (ovs_bridge);
@@ -584,7 +634,7 @@ _add_interface (NMOvsdb *self, json_t *params,
}
if (!has_interface) {
- _insert_interface (params, interface);
+ _insert_interface (params, interface, interface_device);
json_array_append_new (new_interfaces, json_pack ("[s, s]", "named-uuid", "rowInterface"));
}
}
@@ -733,7 +783,8 @@ ovsdb_next_command (NMOvsdb *self)
json_array_append_new (params, json_string ("Open_vSwitch"));
json_array_append_new (params, _inc_next_cfg (priv->db_uuid));
- _add_interface (self, params, call->bridge, call->port, call->interface);
+ _add_interface (self, params, call->bridge, call->port, call->interface,
+ call->bridge_device, call->interface_device);
msg = json_pack ("{s:i, s:s, s:o}",
"id", call->id,
@@ -1385,7 +1436,7 @@ ovsdb_try_connect (NMOvsdb *self)
/* Queue a monitor call before any other command, ensuring that we have an up
* to date view of existing bridged that we need for add and remove ops. */
ovsdb_call_method (self, OVSDB_MONITOR, NULL,
- NULL, NULL, NULL, _monitor_bridges_cb, NULL);
+ NULL, NULL, NULL, NULL, NULL, _monitor_bridges_cb, NULL);
}
/*****************************************************************************/
@@ -1426,6 +1477,7 @@ out:
void
nm_ovsdb_add_interface (NMOvsdb *self,
NMConnection *bridge, NMConnection *port, NMConnection *interface,
+ NMDevice *bridge_device, NMDevice *interface_device,
NMOvsdbCallback callback, gpointer user_data)
{
OvsdbCall *call;
@@ -1435,7 +1487,9 @@ nm_ovsdb_add_interface (NMOvsdb *self,
call->user_data = user_data;
ovsdb_call_method (self, OVSDB_ADD_INTERFACE, NULL,
- bridge, port, interface, _transact_cb, call);
+ bridge, port, interface,
+ bridge_device, interface_device,
+ _transact_cb, call);
}
void
@@ -1449,7 +1503,7 @@ nm_ovsdb_del_interface (NMOvsdb *self, const char *ifname,
call->user_data = user_data;
ovsdb_call_method (self, OVSDB_DEL_INTERFACE, ifname,
- NULL, NULL, NULL, _transact_cb, call);
+ NULL, NULL, NULL, NULL, NULL, _transact_cb, call);
}
/*****************************************************************************/
@@ -1466,6 +1520,8 @@ _clear_call (gpointer data)
g_clear_object (&call->bridge);
g_clear_object (&call->port);
g_clear_object (&call->interface);
+ g_clear_object (&call->bridge_device);
+ g_clear_object (&call->interface_device);
break;
case OVSDB_DEL_INTERFACE:
g_clear_pointer (&call->ifname, g_free);
diff --git a/src/devices/ovs/nm-ovsdb.h b/src/devices/ovs/nm-ovsdb.h
index cf9fe2a21..f9dbabbb7 100644
--- a/src/devices/ovs/nm-ovsdb.h
+++ b/src/devices/ovs/nm-ovsdb.h
@@ -42,6 +42,7 @@ GType nm_ovsdb_get_type (void);
void nm_ovsdb_add_interface (NMOvsdb *self,
NMConnection *bridge, NMConnection *port, NMConnection *interface,
+ NMDevice *bridge_device, NMDevice *interface_device,
NMOvsdbCallback callback, gpointer user_data);
void nm_ovsdb_del_interface (NMOvsdb *self, const char *ifname,
--
2.21.0

5
SOURCES/20-connectivity-fedora.conf

@ -1,3 +1,8 @@ @@ -1,3 +1,8 @@
# Enable connectivity checking for NetworkManager.
# See `man NetworkManager.conf`.
#
# Note that connectivity checking works badly with rp_filter set to
# strict. Check "/proc/sys/net/ipv4/conf/*/rp_filter".
[connectivity]
uri=http://fedoraproject.org/static/hotspot.txt
response=OK

5
SOURCES/20-connectivity-redhat.conf

@ -1,3 +1,8 @@ @@ -1,3 +1,8 @@
# Enable connectivity checking for NetworkManager.
# See `man NetworkManager.conf`.
#
# Note that connectivity checking works badly with rp_filter set to
# strict. Check "/proc/sys/net/ipv4/conf/*/rp_filter".
[connectivity]
uri=http://static.redhat.com/test/rhel-networkmanager.txt
response=OK

24
SOURCES/9999-fix-pregen-doc.patch

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
From 7c94c0568e3c4a4db49f2a99ff297f7b3efe84e4 Mon Sep 17 00:00:00 2001
From ea5cb54ccbd2e165d135a01a1c0351eb6b994b82 Mon Sep 17 00:00:00 2001
From: Thomas Haller <thaller@redhat.com>
Date: Mon, 18 Jun 2018 14:01:36 +0200
Subject: [PATCH] patch documentation with the proper default values
@ -14,10 +14,10 @@ Patch the man pages with the proper values. @@ -14,10 +14,10 @@ Patch the man pages with the proper values.
2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/docs/api/html/NetworkManager.conf.html b/docs/api/html/NetworkManager.conf.html
index ae2b1081e..6e5282b2a 100644
index 0069f1e4164f..88f8b72e8597 100644
--- a/docs/api/html/NetworkManager.conf.html
+++ b/docs/api/html/NetworkManager.conf.html
@@ -180,7 +180,7 @@ plugins-=remove-me
@@ -193,7 +193,7 @@ plugins-=remove-me
clients to be installed. The <code class="literal">internal</code>
option uses a built-in DHCP client which is not currently as
featureful as the external clients.</p>
@ -26,7 +26,7 @@ index ae2b1081e..6e5282b2a 100644 @@ -26,7 +26,7 @@ index ae2b1081e..6e5282b2a 100644
It the chosen plugin is not available, clients are looked for
in this order: <code class="literal">dhclient</code>, <code class="literal">dhcpcd</code>,
<code class="literal">internal</code>.</p>
@@ -339,7 +339,7 @@ no-auto-default=*
@@ -359,7 +359,7 @@ no-auto-default=*
<p>Set the <code class="filename">resolv.conf</code>
management mode. The default value depends on NetworkManager build
options, and this version of NetworkManager was build with a default of
@ -35,7 +35,7 @@ index ae2b1081e..6e5282b2a 100644 @@ -35,7 +35,7 @@ index ae2b1081e..6e5282b2a 100644
Regardless of this setting, NetworkManager will
always write resolv.conf to its runtime state directory
<code class="filename">/var/run/NetworkManager/resolv.conf</code>.</p>
@@ -625,7 +625,7 @@ ipv6.ip6-privacy=0
@@ -675,7 +675,7 @@ ipv6.ip6-privacy=0
</tr>
<tr>
<td><p><span class="term"><code class="varname">ethernet.cloned-mac-address</code></span></p></td>
@ -44,7 +44,7 @@ index ae2b1081e..6e5282b2a 100644 @@ -44,7 +44,7 @@ index ae2b1081e..6e5282b2a 100644
</tr>
<tr>
<td><p><span class="term"><code class="varname">ethernet.generate-mac-address-mask</code></span></p></td>
@@ -703,7 +703,7 @@ ipv6.ip6-privacy=0
@@ -771,7 +771,7 @@ ipv6.ip6-privacy=0
</tr>
<tr>
<td><p><span class="term"><code class="varname">wifi.cloned-mac-address</code></span></p></td>
@ -54,10 +54,10 @@ index ae2b1081e..6e5282b2a 100644 @@ -54,10 +54,10 @@ index ae2b1081e..6e5282b2a 100644
<tr>
<td><p><span class="term"><code class="varname">wifi.generate-mac-address-mask</code></span></p></td>
diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5
index 26b31e1bd..058177719 100644
index 63959c9fb14b..73ccd7073e27 100644
--- a/man/NetworkManager.conf.5
+++ b/man/NetworkManager.conf.5
@@ -145,7 +145,7 @@ internal
@@ -155,7 +155,7 @@ internal
option uses a built\-in DHCP client which is not currently as featureful as the external clients\&.
.sp
If this key is missing, it defaults to
@ -66,7 +66,7 @@ index 26b31e1bd..058177719 100644 @@ -66,7 +66,7 @@ index 26b31e1bd..058177719 100644
dhclient,
dhcpcd,
internal\&.
@@ -254,7 +254,7 @@ rc\-manager\ \&unmanaged
@@ -281,7 +281,7 @@ that contains the original name servers pushed to the DNS plugin\&.
.RS 4
Set the
resolv\&.conf
@ -75,7 +75,7 @@ index 26b31e1bd..058177719 100644 @@ -75,7 +75,7 @@ index 26b31e1bd..058177719 100644
/var/run/NetworkManager/resolv\&.conf\&.
.sp
symlink: If
@@ -607,7 +607,7 @@ If left unspecified, the default value is 3 tries before failing the connection\
@@ -668,7 +668,7 @@ If left unspecified, the default value is 3 tries before failing the connection\
.PP
\fIethernet\&.cloned\-mac\-address\fR
.RS 4
@ -84,7 +84,7 @@ index 26b31e1bd..058177719 100644 @@ -84,7 +84,7 @@ index 26b31e1bd..058177719 100644
.RE
.PP
\fIethernet\&.generate\-mac\-address\-mask\fR
@@ -688,7 +688,7 @@ If left unspecified, default value of 60 seconds is used\&.
@@ -768,7 +768,7 @@ If left unspecified, default value of 60 seconds is used\&.
.PP
\fIwifi\&.cloned\-mac\-address\fR
.RS 4
@ -94,5 +94,5 @@ index 26b31e1bd..058177719 100644 @@ -94,5 +94,5 @@ index 26b31e1bd..058177719 100644
.PP
\fIwifi\&.generate\-mac\-address\-mask\fR
--
2.17.0
2.21.0


73
SPECS/NetworkManager.spec

@ -8,9 +8,9 @@ @@ -8,9 +8,9 @@
%global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad)

%global epoch_version 1
%global rpm_version 1.18.0
%global real_version 1.18.0
%global release_version 5
%global rpm_version 1.18.4
%global real_version 1.18.4
%global release_version 3
%global snapshot %{nil}
%global git_sha %{nil}

@ -32,8 +32,7 @@ @@ -32,8 +32,7 @@

%global snap %{?snapshot_dot}%{?git_sha_dot}

### ### ### %global real_version_major %(printf '%s' '%{real_version}' | sed -n 's/^\\([1-9][0-9]*\\.[1-9][0-9]*\\)\\.[1-9][0-9]*$/\\1/p')
%global real_version_major 1.18
%global real_version_major %(printf '%s' '%{real_version}' | sed -n 's/^\\([1-9][0-9]*\\.[1-9][0-9]*\\)\\.[1-9][0-9]*$/\\1/p')

%global systemd_units NetworkManager.service NetworkManager-wait-online.service NetworkManager-dispatcher.service

@ -67,7 +66,7 @@ @@ -67,7 +66,7 @@
%else
%bcond_with connectivity_fedora
%endif
%if 0%{?rhel} && 0%{?rhel} > 7
%if 0%{?rhel} && 0%{?rhel} >= 7
%bcond_without connectivity_redhat
%else
%bcond_with connectivity_redhat
@ -117,7 +116,7 @@ @@ -117,7 +116,7 @@
%endif

%if 0%{?fedora}
# Altough eBPF would be available on Fedora's kernel, it seems
# Although eBPF would be available on Fedora's kernel, it seems
# we often get SELinux denials (rh#1651654). But even aside them,
# bpf(BPF_MAP_CREATE, ...) randomly fails with EPERM. That might
# be related to `ulimit -l`. Anyway, this is not usable at the
@ -133,7 +132,7 @@ Name: NetworkManager @@ -133,7 +132,7 @@ Name: NetworkManager
Summary: Network connection manager and user applications
Epoch: %{epoch_version}
Version: %{rpm_version}
Release: %{release_version}%{?snap}%{?dist}.1
Release: %{release_version}%{?snap}%{?dist}
Group: System Environment/Base
License: GPLv2+
URL: http://www.gnome.org/projects/NetworkManager/
@ -143,7 +142,7 @@ Source1: NetworkManager.conf @@ -143,7 +142,7 @@ Source1: NetworkManager.conf
Source2: 00-server.conf
Source3: 10-slaves-order.conf
Source4: 20-connectivity-fedora.conf
Source5: 20-connectivity-redhat.conf
Source5: 20-connectivity-powerel.conf

# Patches numbering convention:
# 0001 - 0999 : RHEL downstream patches that change behavior from upstream.
@ -161,20 +160,9 @@ Patch5: 0005-dhcp-internal-default-client-id-rh1695723.patch @@ -161,20 +160,9 @@ Patch5: 0005-dhcp-internal-default-client-id-rh1695723.patch
Patch6: 0006-no-keyfile-file-name-extension-rh1697858.patch

# Bugfixes
Patch1000: 1000-cli-hide-certificate-blobs-rh1702199.patch
Patch1001: 1001-device-fix-reapply-of-MTU-rh1702657.patch
Patch1002: 1002-settings-fix-failed-assertion-rh1707261.patch
Patch1003: 1003-sw-devices-managed-after-wake-rh1701585.patch
Patch1004: 1004-device-restore-ipv6-config-on-link-up-rh1548237.patch
Patch1005: 1005-load-connection-dbus-fixes-rh1708660.patch
Patch1006: 1006-fix-file-permissions-secret-key-rh1709849.patch
Patch1007: 1007-tc-update-rh1546802.patch
Patch1008: 1008-don-t-kill-teamd-for-external-devices-rh1711952.patch
Patch1009: 1009-ifcfg-rh-use-PKCS12-private-as-client-cert-rh1714610.patch
Patch1010: 1010-translations-rh1689962.patch
Patch1011: 1011-cli-editor-no-wait-on-failure-rh1702203.patch
Patch1012: 1012-team-fix-validate-send-always-flags-rh1720153.patch
Patch1013: 1013-ovs-slaves-restart-fixes-rh1733709.patch
Patch1000: 1000-dhclient-include-conditionals-rh1758550.patch
Patch1001: 1001-fix-arp-announcements-rh1767681.patch
Patch1002: 1002-ovs-cloned-mac-rh1740557.patch

# The pregenerated docs contain default values and paths that depend
# on the configure options when creating the source tarball.
@ -361,6 +349,7 @@ Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} @@ -361,6 +349,7 @@ Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}

%if %{with iwd} && (0%{?fedora} > 24 || 0%{?rhel} > 7)
Requires: (wpa_supplicant >= %{wpa_supplicant_version} or iwd)
Suggests: wpa_supplicant
%else
# Just require wpa_supplicant on platforms that don't support boolean
# dependencies even though the plugin supports both supplicant and
@ -491,15 +480,15 @@ via Fedora infrastructure. @@ -491,15 +480,15 @@ via Fedora infrastructure.


%if %{with connectivity_redhat}
%package config-connectivity-redhat
Summary: NetworkManager config file for connectivity checking via Red Hat servers
%package config-connectivity-powerel
Summary: NetworkManager config file for connectivity checking via PowerEL servers
Group: System Environment/Base
BuildArch: noarch
Provides: NetworkManager-config-connectivity = %{epoch}:%{version}-%{release}

%description config-connectivity-redhat
%description config-connectivity-powerel
This adds a NetworkManager configuration file to enable connectivity checking
via Red Hat infrastructure.
via PowerEL infrastructure.
%endif


@ -549,10 +538,6 @@ by nm-connection-editor and nm-applet in a non-graphical environment. @@ -549,10 +538,6 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
%prep
%autosetup -p1 -n NetworkManager-%{real_version}

# On RHEL 7 patch creates backup files if the match is not clean.
# Fixed in later RPM versions.
find -name '*.orig' -delete


%build
%if %{with meson}
@ -1078,10 +1063,10 @@ fi @@ -1078,10 +1063,10 @@ fi


%if %{with connectivity_redhat}
%files config-connectivity-redhat
%files config-connectivity-powerel
%dir %{nmlibdir}
%dir %{nmlibdir}/conf.d
%{nmlibdir}/conf.d/20-connectivity-redhat.conf
%{nmlibdir}/conf.d/20-connectivity-powerel.conf
%endif


@ -1108,8 +1093,26 @@ fi @@ -1108,8 +1093,26 @@ fi


%changelog
* Thu Aug 1 2019 Beniamino Galvani <bgalvani@redhat.com> - 1:1.18.0-5.1
* core: fix activation of ovs slaves after a service restart (rh #1733709)
* Mon Jan 13 2020 Beniamino Galvani <bgalvani@redhat.com> - 1:1.18.4-3
- ovs: allow changing mac address of bridges and interfaces (rh #1740557)

* Thu Nov 7 2019 Beniamino Galvani <bgalvani@redhat.com> - 1:1.18.4-2
- dhcp: include conditionals from existing dhclient configuration (rh #1758550)
- core: fix sending ARP announcements (rh #1767681)

* Wed Oct 9 2019 Thomas Haller <thaller@redhat.com> - 1:1.18.4-1
- Update to 1.18.4 release
- cli: fix bash completion for slave-types (rh #1654062)
- core: improve handling of policy routing rules when restarting daemon (rh #1696881)
- ifcfg-rh: preserve existance of ethernet setting in profile (rh #1703960)
- tui: only add bond options to profile that are supported by tui (rh #1715720)
- cli: fix resetting default value for properties (rh #1715887)
- core: fix detecting parent device by connection's UUID (rh #1716438)
- core: fix setting IPv6 route options and destination (rh #1727193)
- core: support more "arp_validate" bond options (rh #1730793)

* Thu Aug 1 2019 Beniamino Galvani <bgalvani@redhat.com> - 1:1.18.0-6
- core: fix activation of ovs slaves after a service restart (rh #1733709)

* Wed Jun 26 2019 Lubomir Rintel <lrintel@redhat.com> - 1:1.18.0-5
- po: update translations (rh #1689962)

Loading…
Cancel
Save