diff options
-rw-r--r-- | meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch | 54 | ||||
-rw-r--r-- | meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch | 29 | ||||
-rw-r--r-- | meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-device-update-ip_iface-only-if-IP-interface-exists.patch | 45 | ||||
-rw-r--r-- | meta-oe/recipes-connectivity/networkmanager/networkmanager/0006-Fix-nm-version-macro-includes.patch | 58 | ||||
-rw-r--r-- | meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb (renamed from meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.6.bb) | 10 |
5 files changed, 193 insertions, 3 deletions
diff --git a/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch new file mode 100644 index 000000000..5da536e68 --- /dev/null +++ b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch | |||
@@ -0,0 +1,54 @@ | |||
1 | From 11aa07ed939193e85516c287a57dee1837242972 Mon Sep 17 00:00:00 2001 | ||
2 | From: Thomas Haller <thaller@redhat.com> | ||
3 | Date: Mon, 4 Jan 2016 18:54:26 +0100 | ||
4 | Subject: [PATCH 1/7] core: fix failure to configure routes due to wrong | ||
5 | device-route for IPv4 peer-addresses | ||
6 | |||
7 | As in the case of a OpenVPN connection, we might add an address like: | ||
8 | 10.8.0.58/32 ptp 10.8.0.57 | ||
9 | |||
10 | In this case, kernel would automatically add a device-route like: | ||
11 | 10.8.0.57/32 via 0.0.0.0 dev 32 metric 0 mss 0 src rtprot-kernel scope link pref-src 10.8.0.58 | ||
12 | |||
13 | nm_ip4_config_commit() checks all IP addresses to figure out | ||
14 | the present device-routes. Then the routes are synced by NMRouteManager. | ||
15 | Due to a bug, we would not consider the peer-address, but the local-address | ||
16 | and configure a route 10.8.0.58/32, instead of 10.8.0.57/32. | ||
17 | |||
18 | That stays mostly unnoticed, because usually the peer and the local-address are | ||
19 | in the same subnet, so that there is no difference (/32 is an example of the | ||
20 | peer-address being in a different subnet). | ||
21 | |||
22 | It also seems that due to a bug fixed by df4e5357521 this issue didn't surface. | ||
23 | Probably because we would not notice the 10.8.0.57/32 right away and thus | ||
24 | nm_route_manager_ip4_route_sync() would not wrongly delete it. | ||
25 | |||
26 | https://bugzilla.gnome.org/show_bug.cgi?id=759892 | ||
27 | |||
28 | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809195 | ||
29 | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809494 | ||
30 | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809526 | ||
31 | https://bugs.archlinux.org/task/47535 | ||
32 | https://bugzilla.redhat.com/show_bug.cgi?id=1294309 | ||
33 | https://mail.gnome.org/archives/networkmanager-list/2015-December/msg00059.html | ||
34 | --- | ||
35 | src/nm-ip4-config.c | 3 ++- | ||
36 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
37 | |||
38 | diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c | ||
39 | index f625d35..61e29af 100644 | ||
40 | --- a/src/nm-ip4-config.c | ||
41 | +++ b/src/nm-ip4-config.c | ||
42 | @@ -298,7 +298,8 @@ nm_ip4_config_commit (const NMIP4Config *config, int ifindex, gboolean routes_fu | ||
43 | |||
44 | route.ifindex = ifindex; | ||
45 | route.source = NM_IP_CONFIG_SOURCE_KERNEL; | ||
46 | - route.network = nm_utils_ip4_address_clear_host_address (addr->address, addr->plen); | ||
47 | + route.network = nm_utils_ip4_address_clear_host_address (addr->peer_address ? : addr->address, | ||
48 | + addr->plen); | ||
49 | route.plen = addr->plen; | ||
50 | route.pref_src = addr->address; | ||
51 | route.metric = default_route_metric; | ||
52 | -- | ||
53 | 2.5.0 | ||
54 | |||
diff --git a/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch new file mode 100644 index 000000000..41f288281 --- /dev/null +++ b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From 8204c2a1968f757599c5ebec9a85efaacb0e522a Mon Sep 17 00:00:00 2001 | ||
2 | From: Beniamino Galvani <bgalvani@redhat.com> | ||
3 | Date: Mon, 4 Jan 2016 14:18:02 +0100 | ||
4 | Subject: [PATCH 2/7] ppp-manager: clear @ppp_watch_id upon pppd termination | ||
5 | |||
6 | Set @ppp_watch_id to zero upon pppd termination, otherwise the call to | ||
7 | g_source_remove(priv->ppp_watch_id) in dispose() could trigger a failed | ||
8 | assertion. | ||
9 | |||
10 | (cherry picked from commit 5f93f0101538db39efe0f9ea2316e63bff953bf0) | ||
11 | --- | ||
12 | src/ppp-manager/nm-ppp-manager.c | 1 + | ||
13 | 1 file changed, 1 insertion(+) | ||
14 | |||
15 | diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c | ||
16 | index d27b262..85ca9c5 100644 | ||
17 | --- a/src/ppp-manager/nm-ppp-manager.c | ||
18 | +++ b/src/ppp-manager/nm-ppp-manager.c | ||
19 | @@ -828,6 +828,7 @@ ppp_watch_cb (GPid pid, gint status, gpointer user_data) | ||
20 | |||
21 | nm_log_dbg (LOGD_PPP, "pppd pid %d cleaned up", priv->pid); | ||
22 | priv->pid = 0; | ||
23 | + priv->ppp_watch_id = 0; | ||
24 | g_signal_emit (manager, signals[STATE_CHANGED], 0, NM_PPP_STATUS_DEAD); | ||
25 | } | ||
26 | |||
27 | -- | ||
28 | 2.5.0 | ||
29 | |||
diff --git a/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-device-update-ip_iface-only-if-IP-interface-exists.patch b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-device-update-ip_iface-only-if-IP-interface-exists.patch new file mode 100644 index 000000000..05c2dca00 --- /dev/null +++ b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-device-update-ip_iface-only-if-IP-interface-exists.patch | |||
@@ -0,0 +1,45 @@ | |||
1 | From cbcb848e6d4f4e8c4aa11c80f1f3dbb7fb2d397e Mon Sep 17 00:00:00 2001 | ||
2 | From: Beniamino Galvani <bgalvani@redhat.com> | ||
3 | Date: Mon, 4 Jan 2016 14:22:01 +0100 | ||
4 | Subject: [PATCH 3/7] device: update @ip_iface only if IP interface exists | ||
5 | |||
6 | If @ip_ifindex is zero, the IP interface has disappeared and | ||
7 | there's no point in updating @ip_iface. | ||
8 | |||
9 | Actually, unconditionally updating @ip_iface is dangerous because it | ||
10 | breaks the assumption used by other functions (as | ||
11 | nm_device_get_ip_ifindex()) that a non-NULL @ip_iface implies a valid | ||
12 | @ip_ifindex. This was causing the scary failure: | ||
13 | |||
14 | devices/nm-device.c:666:get_ip_iface_identifier: assertion failed: (ifindex) | ||
15 | |||
16 | https://bugzilla.redhat.com/show_bug.cgi?id=1268617 | ||
17 | (cherry picked from commit ed536998f9530698ff3082fc5587dbeb7d3a594f) | ||
18 | --- | ||
19 | src/devices/nm-device.c | 7 ++++--- | ||
20 | 1 file changed, 4 insertions(+), 3 deletions(-) | ||
21 | |||
22 | diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c | ||
23 | index bb39ca5..4413e92 100644 | ||
24 | --- a/src/devices/nm-device.c | ||
25 | +++ b/src/devices/nm-device.c | ||
26 | @@ -1526,12 +1526,13 @@ device_ip_link_changed (NMDevice *self) | ||
27 | { | ||
28 | NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); | ||
29 | const NMPlatformLink *pllink; | ||
30 | - int ip_ifindex; | ||
31 | |||
32 | priv->device_ip_link_changed_id = 0; | ||
33 | |||
34 | - ip_ifindex = nm_device_get_ip_ifindex (self); | ||
35 | - pllink = nm_platform_link_get (NM_PLATFORM_GET, ip_ifindex); | ||
36 | + if (!priv->ip_ifindex) | ||
37 | + return G_SOURCE_REMOVE; | ||
38 | + | ||
39 | + pllink = nm_platform_link_get (NM_PLATFORM_GET, priv->ip_ifindex); | ||
40 | if (!pllink) | ||
41 | return G_SOURCE_REMOVE; | ||
42 | |||
43 | -- | ||
44 | 2.5.0 | ||
45 | |||
diff --git a/meta-oe/recipes-connectivity/networkmanager/networkmanager/0006-Fix-nm-version-macro-includes.patch b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0006-Fix-nm-version-macro-includes.patch new file mode 100644 index 000000000..aa57c832c --- /dev/null +++ b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0006-Fix-nm-version-macro-includes.patch | |||
@@ -0,0 +1,58 @@ | |||
1 | From 7274bbadd398a69b8babf47431f80d35e0228c42 Mon Sep 17 00:00:00 2001 | ||
2 | From: Adrian Freihofer <adrian.freihofer@gmail.com> | ||
3 | Date: Mon, 18 Jan 2016 08:53:26 +0100 | ||
4 | Subject: [PATCH] Fix nm-version-macro includes | ||
5 | |||
6 | nm-version-macros.h cannot be found since include directive has | ||
7 | been changed from " to <. This breaks for example gnome-panel | ||
8 | build: | ||
9 | /usr/include/NetworkManager/NetworkManager.h:31:31: | ||
10 | fatal error: nm-version-macros.h: No such file or directory. | ||
11 | --- | ||
12 | libnm-core/nm-version.h | 2 +- | ||
13 | libnm-util/NetworkManager.h | 2 +- | ||
14 | libnm-util/nm-version.h | 2 +- | ||
15 | 3 files changed, 3 insertions(+), 3 deletions(-) | ||
16 | |||
17 | diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h | ||
18 | index 730330a..d751bc1 100644 | ||
19 | --- a/libnm-core/nm-version.h | ||
20 | +++ b/libnm-core/nm-version.h | ||
21 | @@ -23,7 +23,7 @@ | ||
22 | |||
23 | #include <glib.h> | ||
24 | |||
25 | -#include <nm-version-macros.h> | ||
26 | +#include "nm-version-macros.h" | ||
27 | |||
28 | /* Deprecation / Availability macros */ | ||
29 | |||
30 | diff --git a/libnm-util/NetworkManager.h b/libnm-util/NetworkManager.h | ||
31 | index d83e4ab..3a964fc 100644 | ||
32 | --- a/libnm-util/NetworkManager.h | ||
33 | +++ b/libnm-util/NetworkManager.h | ||
34 | @@ -28,7 +28,7 @@ | ||
35 | |||
36 | /* This header must not include glib or libnm. */ | ||
37 | |||
38 | -#include <nm-version-macros.h> | ||
39 | +#include "nm-version-macros.h" | ||
40 | |||
41 | /* | ||
42 | * dbus services details | ||
43 | diff --git a/libnm-util/nm-version.h b/libnm-util/nm-version.h | ||
44 | index 63895dd..41101a4 100644 | ||
45 | --- a/libnm-util/nm-version.h | ||
46 | +++ b/libnm-util/nm-version.h | ||
47 | @@ -23,7 +23,7 @@ | ||
48 | |||
49 | #include <glib.h> | ||
50 | |||
51 | -#include <nm-version-macros.h> | ||
52 | +#include "nm-version-macros.h" | ||
53 | |||
54 | /* Deprecation / Availability macros */ | ||
55 | |||
56 | -- | ||
57 | 2.5.0 | ||
58 | |||
diff --git a/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.6.bb b/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb index c2b00edce..b47a8c8b7 100644 --- a/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.6.bb +++ b/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb | |||
@@ -15,9 +15,13 @@ SRC_URI = " \ | |||
15 | ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \ | 15 | ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \ |
16 | file://0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch \ | 16 | file://0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch \ |
17 | file://0002-add-pkg-config-for-libgcrypt.patch \ | 17 | file://0002-add-pkg-config-for-libgcrypt.patch \ |
18 | file://0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch \ | ||
19 | file://0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch \ | ||
20 | file://0005-device-update-ip_iface-only-if-IP-interface-exists.patch \ | ||
21 | file://0006-Fix-nm-version-macro-includes.patch \ | ||
18 | " | 22 | " |
19 | SRC_URI[md5sum] = "00f5f9ec69725a9f9b99366853c6f73e" | 23 | SRC_URI[md5sum] = "a8f54460a4708efd840358f32d0968fd" |
20 | SRC_URI[sha256sum] = "38ea002403e3b884ffa9aae25aea431d2a8420f81f4919761c83fb92648254bd" | 24 | SRC_URI[sha256sum] = "1bcfce8441dfd9f432a100d06b54f3831a2275cccc3b74b1b4c09a011e179fbc" |
21 | 25 | ||
22 | S = "${WORKDIR}/NetworkManager-${PV}" | 26 | S = "${WORKDIR}/NetworkManager-${PV}" |
23 | 27 | ||
@@ -46,7 +50,7 @@ PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5" | |||
46 | PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit" | 50 | PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit" |
47 | PACKAGECONFIG[concheck] = "--with-libsoup=yes,--with-libsoup=no,libsoup-2.4" | 51 | PACKAGECONFIG[concheck] = "--with-libsoup=yes,--with-libsoup=no,libsoup-2.4" |
48 | PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager" | 52 | PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager" |
49 | PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp" | 53 | PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp" |
50 | # Use full featured dhcp client instead of internal one | 54 | # Use full featured dhcp client instead of internal one |
51 | PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client" | 55 | PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client" |
52 | PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq" | 56 | PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq" |