From 061953143db837f637d41e7902978a4afe211ed7 Mon Sep 17 00:00:00 2001 From: Andrei Gherzan Date: Tue, 28 May 2019 19:40:48 +0100 Subject: networkmanager: Update to 1.18.0 One patch was dropped (0003-dlopen-failure.patch) as a similar one was merged upstream. See: https://github.com/NetworkManager/NetworkManager/commit/bd4957fcd78a0e64d26459e94ab3b84c91cd6f5f Refreshed musl patches as well. Signed-off-by: Andrei Gherzan Signed-off-by: Khem Raj --- .../networkmanager/0003-dlopen-failure.patch | 34 ----- ...0001-Fix-build-with-musl-systemd-specific.patch | 128 ++++++++---------- .../musl/0002-Fix-build-with-musl.patch | 20 +-- .../networkmanager/networkmanager_1.16.0.bb | 148 --------------------- .../networkmanager/networkmanager_1.18.0.bb | 146 ++++++++++++++++++++ 5 files changed, 214 insertions(+), 262 deletions(-) delete mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch delete mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb create mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.0.bb (limited to 'meta-networking/recipes-connectivity/networkmanager') diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch deleted file mode 100644 index e99c22710c..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 22 Mar 2018 18:18:06 +0100 -Subject: [PATCH] musl: dlopen is included so LD_LIBS="" instead of - LD_LIBS="none required" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Pending - -Stolen from [1] and prettyfied slightly - -[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches - -Signed-off-by: Andreas Müller ---- - configure.ac | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configure.ac b/configure.ac -index 487a266..96ae4f7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -235,6 +235,7 @@ dnl - dnl Checks for libdl - on certain platforms its part of libc - dnl - AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=]) -+AS_IF([test "$ac_cv_search_dlopen" = "none required"],[ac_cv_search_dlopen=""]) - AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen") - - PKG_CHECK_MODULES(GLIB, [gio-unix-2.0 >= 2.37.6 gmodule-2.0], --- -2.14.3 diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl-systemd-specific.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl-systemd-specific.patch index accd2f2569..af6f938ced 100644 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl-systemd-specific.patch +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl-systemd-specific.patch @@ -1,7 +1,7 @@ -From 7b09945585e6ce65049fa4039f26caee8daa44b9 Mon Sep 17 00:00:00 2001 +From a89c2e6d40606f563467a83fb98933e990e71377 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 2 Apr 2019 01:34:35 +0200 -Subject: [PATCH 1/2] Fix build with musl - systemd specific +Subject: [PATCH] Fix build with musl - systemd specific MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -14,27 +14,27 @@ Upstream-Status: Pending Signed-off-by: Andreas Müller --- shared/systemd/src/basic/in-addr-util.c | 1 + - shared/systemd/src/basic/process-util.c | 9 ++++++++ - shared/systemd/src/basic/socket-util.h | 6 +++++ + shared/systemd/src/basic/process-util.c | 9 +++++++++ + shared/systemd/src/basic/socket-util.h | 6 ++++++ + shared/systemd/src/basic/sort-util.h | 27 ++++--------------------- shared/systemd/src/basic/stdio-util.h | 2 ++ shared/systemd/src/basic/string-util.h | 5 +++++ - shared/systemd/src/basic/util.h | 29 +++++-------------------- - 6 files changed, 28 insertions(+), 24 deletions(-) + 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/shared/systemd/src/basic/in-addr-util.c b/shared/systemd/src/basic/in-addr-util.c -index 5ced350..c6b52b8 100644 +index 5899f62..0adb248 100644 --- a/shared/systemd/src/basic/in-addr-util.c +++ b/shared/systemd/src/basic/in-addr-util.c -@@ -13,6 +13,7 @@ +@@ -14,6 +14,7 @@ #include "in-addr-util.h" #include "macro.h" #include "parse-util.h" +#include "string-util.h" + #include "random-util.h" + #include "strxcpyx.h" #include "util.h" - - bool in4_addr_is_null(const struct in_addr *a) { diff --git a/shared/systemd/src/basic/process-util.c b/shared/systemd/src/basic/process-util.c -index b0afb5c..7adc8bd 100644 +index 7431be3..189060a 100644 --- a/shared/systemd/src/basic/process-util.c +++ b/shared/systemd/src/basic/process-util.c @@ -21,6 +21,9 @@ @@ -47,7 +47,7 @@ index b0afb5c..7adc8bd 100644 #if 0 /* NM_IGNORED */ #if HAVE_VALGRIND_VALGRIND_H #include -@@ -1168,11 +1171,13 @@ void reset_cached_pid(void) { +@@ -1183,11 +1186,13 @@ void reset_cached_pid(void) { cached_pid = CACHED_PID_UNSET; } @@ -61,7 +61,7 @@ index b0afb5c..7adc8bd 100644 pid_t getpid_cached(void) { static bool installed = false; -@@ -1201,7 +1206,11 @@ pid_t getpid_cached(void) { +@@ -1216,7 +1221,11 @@ pid_t getpid_cached(void) { * only half-documented (glibc doesn't document it but LSB does — though only superficially) * we'll check for errors only in the most generic fashion possible. */ @@ -74,7 +74,7 @@ index b0afb5c..7adc8bd 100644 cached_pid = CACHED_PID_UNSET; return new_pid; diff --git a/shared/systemd/src/basic/socket-util.h b/shared/systemd/src/basic/socket-util.h -index d2246a8..76f257f 100644 +index 15443f1..4807198 100644 --- a/shared/systemd/src/basic/socket-util.h +++ b/shared/systemd/src/basic/socket-util.h @@ -13,6 +13,12 @@ @@ -90,55 +90,13 @@ index d2246a8..76f257f 100644 #include "macro.h" #include "missing_socket.h" #include "sparse-endian.h" -diff --git a/shared/systemd/src/basic/stdio-util.h b/shared/systemd/src/basic/stdio-util.h -index dc67b6e..6336243 100644 ---- a/shared/systemd/src/basic/stdio-util.h -+++ b/shared/systemd/src/basic/stdio-util.h -@@ -1,7 +1,9 @@ - /* SPDX-License-Identifier: LGPL-2.1+ */ - #pragma once +diff --git a/shared/systemd/src/basic/sort-util.h b/shared/systemd/src/basic/sort-util.h +index e029f86..1e8b6e1 100644 +--- a/shared/systemd/src/basic/sort-util.h ++++ b/shared/systemd/src/basic/sort-util.h +@@ -5,15 +5,10 @@ -+#if defined(__GLIBC__) - #include -+#endif - #include - #include - #include -diff --git a/shared/systemd/src/basic/string-util.h b/shared/systemd/src/basic/string-util.h -index 38070ab..6b918e0 100644 ---- a/shared/systemd/src/basic/string-util.h -+++ b/shared/systemd/src/basic/string-util.h -@@ -27,6 +27,11 @@ - #define strcaseeq(a,b) (strcasecmp((a),(b)) == 0) - #define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0) - -+/* musl does not know strndupa */ -+#if !defined(__GLIBC__) -+#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s) -+#endif -+ - int strcmp_ptr(const char *a, const char *b) _pure_; - - static inline bool streq_ptr(const char *a, const char *b) { -diff --git a/shared/systemd/src/basic/util.h b/shared/systemd/src/basic/util.h -index dc33d66..cc768e9 100644 ---- a/shared/systemd/src/basic/util.h -+++ b/shared/systemd/src/basic/util.h -@@ -27,6 +27,11 @@ #include "macro.h" - #include "time-util.h" - -+#if !defined(__GLIBC__) -+typedef int (*__compar_fn_t) (const void*, const void*); -+typedef __compar_fn_t comparison_fn_t; -+#endif -+ - size_t page_size(void) _pure_; - #define PAGE_ALIGN(l) ALIGN_TO((l), page_size()) - -@@ -66,16 +71,6 @@ int prot_from_flags(int flags) _const_; - bool in_initrd(void); - void in_initrd_force(bool value); -void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, - __compar_d_fn_t compar, void *arg); @@ -149,14 +107,18 @@ index dc33d66..cc768e9 100644 - int (*_func_)(const typeof(b[0])*, const typeof(b[0])*, typeof(userdata)) = func; \ - xbsearch_r((const void*) _k, (b), (n), sizeof((b)[0]), (__compar_d_fn_t) _func_, userdata); \ - }) -- ++#if !defined(__GLIBC__) ++typedef int (*__compar_fn_t) (const void*, const void*); ++typedef __compar_fn_t comparison_fn_t; ++#endif + /** * Normal bsearch requires base to be nonnull. Here were require - * that only if nmemb > 0. -@@ -116,20 +111,6 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn +@@ -54,17 +49,3 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn + int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \ qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \ }) - +- -static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) { - if (nmemb <= 1) - return; @@ -170,10 +132,36 @@ index dc33d66..cc768e9 100644 - int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \ - qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \ - }) -- - /* Normal memcpy requires src to be nonnull. We do nothing if n is 0. */ - static inline void memcpy_safe(void *dst, const void *src, size_t n) { - if (n == 0) +diff --git a/shared/systemd/src/basic/stdio-util.h b/shared/systemd/src/basic/stdio-util.h +index c3b9448..e80a938 100644 +--- a/shared/systemd/src/basic/stdio-util.h ++++ b/shared/systemd/src/basic/stdio-util.h +@@ -1,7 +1,9 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + #pragma once + ++#if defined(__GLIBC__) + #include ++#endif + #include + #include + #include +diff --git a/shared/systemd/src/basic/string-util.h b/shared/systemd/src/basic/string-util.h +index b23f4c8..8f2f6e0 100644 +--- a/shared/systemd/src/basic/string-util.h ++++ b/shared/systemd/src/basic/string-util.h +@@ -27,6 +27,11 @@ + #define strcaseeq(a,b) (strcasecmp((a),(b)) == 0) + #define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0) + ++/* musl does not know strndupa */ ++#if !defined(__GLIBC__) ++#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s) ++#endif ++ + int strcmp_ptr(const char *a, const char *b) _pure_; + + static inline bool streq_ptr(const char *a, const char *b) { -- -2.20.1 +2.17.1 diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-Fix-build-with-musl.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-Fix-build-with-musl.patch index 25f9a4a001..e0973af1e9 100644 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-Fix-build-with-musl.patch +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-Fix-build-with-musl.patch @@ -1,4 +1,4 @@ -From 0b0f2d5abe27b2c9587f449795f0ae3568fc3e38 Mon Sep 17 00:00:00 2001 +From 3d1307735667758f44378585482fe421db086af8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 8 Apr 2019 23:10:43 +0200 Subject: [PATCH 2/2] Fix build with musl @@ -23,7 +23,7 @@ The build issues caused by definition conflicts musl vs linux-libc headers Note: Be aware that this is still nasty business: We have to trust that musl headers define same signatures as linux would do - just because musl-makers consider -linux-libc headers 'notoriously broken for userspace' [2] (search for +linux-libc headers 'notoriously broken for userspace' [2] (search for 'error: redefinition of'). [1] http://lists.openembedded.org/pipermail/openembedded-core/2019-March/280440.html @@ -53,7 +53,7 @@ index 43fbbc1..3eae286 100644 #include "nmtui.h" diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h -index 2b5baba..8a50131 100644 +index 2b5baba..f7abab6 100644 --- a/libnm-core/nm-utils.h +++ b/libnm-core/nm-utils.h @@ -25,6 +25,10 @@ @@ -68,7 +68,7 @@ index 2b5baba..8a50131 100644 #include diff --git a/shared/nm-default.h b/shared/nm-default.h -index 26d6476..b29e8af 100644 +index 54e9916..26e9f4e 100644 --- a/shared/nm-default.h +++ b/shared/nm-default.h @@ -211,6 +211,9 @@ @@ -82,7 +82,7 @@ index 26d6476..b29e8af 100644 /*****************************************************************************/ diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c -index 7514fa7..d305fa5 100644 +index bd4fbcc..f70b309 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -24,6 +24,7 @@ @@ -102,17 +102,17 @@ index 7514fa7..d305fa5 100644 #include diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c -index 2f5c75b..d6ca6d9 100644 +index d4b0115..22a3a90 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c -@@ -27,7 +27,6 @@ - #include +@@ -28,7 +28,6 @@ #include + #include #include -#include + #include #include #include - #include -- -2.20.1 +2.17.1 diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb deleted file mode 100644 index 9f01f1bc1a..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb +++ /dev/null @@ -1,148 +0,0 @@ -SUMMARY = "NetworkManager" -HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager" -SECTION = "net/misc" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \ - file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \ - file://docs/api/html/license.html;md5=233931303ef80eded167add1f60a50c1 \ -" - -DEPENDS = " \ - intltool-native \ - libxslt-native \ - libnl \ - libgudev \ - util-linux \ - libndp \ - libnewt \ - jansson \ - curl \ -" - -inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection gtk-doc - -SRC_URI = " \ - ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \ - file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \ - file://0002-Do-not-create-settings-settings-property-documentati.patch \ - file://0003-dlopen-failure.patch \ -" -SRC_URI_append_libc-musl = " \ - file://musl/0001-Fix-build-with-musl-systemd-specific.patch \ - file://musl/0002-Fix-build-with-musl.patch \ -" - -SRC_URI[md5sum] = "10abacaafb162a67d2942adf03e7e9e4" -SRC_URI[sha256sum] = "8e962833b6ca03edda1bc57ed6614a7b8c2339531b44acef098d05f2324c5d2c" - -UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.16/" -UPSTREAM_CHECK_REGEX = "NetworkManager\-(?P1\.10(\.\d+)+).tar.xz" - -S = "${WORKDIR}/NetworkManager-${PV}" - -EXTRA_OECONF = " \ - --disable-ifcfg-rh \ - --disable-more-warnings \ - --with-iptables=${sbindir}/iptables \ - --with-tests \ - --with-nmtui=yes \ - --with-udev-dir=${nonarch_base_libdir}/udev \ -" - -# stolen from https://github.com/void-linux/void-packages/blob/master/srcpkgs/NetworkManager/template -# avoids: -# | ../NetworkManager-1.16.0/libnm-core/nm-json.c:106:50: error: 'RTLD_DEEPBIND' undeclared (first use in this function); did you mean 'RTLD_DEFAULT'? -# -# and -# -# | In file included from ../NetworkManager-1.16.0/src/systemd/nm-sd-utils-core.c:25: -# | ../NetworkManager-1.16.0/src/systemd/sd-adapt-core/nm-sd-adapt-core.h:68:6: error: #error neither secure_getenv nor __secure_getenv is available -# | # error neither secure_getenv nor __secure_getenv is available -# | ^~~~~ -CFLAGS_append_libc-musl = " \ - -DRTLD_DEEPBIND=0 \ - -DHAVE_SECURE_GETENV \ - -Dsecure_getenv=getenv \ -" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs" -} - -PACKAGECONFIG ??= "nss ifupdown dhclient dnsmasq \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit', d)} \ -" -PACKAGECONFIG[systemd] = " \ - --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd, \ - --without-systemdsystemunitdir, \ -" -PACKAGECONFIG[polkit] = "--enable-polkit --enable-polkit-agent,--disable-polkit --disable-polkit-agent,polkit" -PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5" -# consolekit is not picked by shlibs, so add it to RDEPENDS too -PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit" -PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager" -PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp" -# Use full featured dhcp client instead of internal one -PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client" -PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq" -PACKAGECONFIG[nss] = "--with-crypto=nss,,nss" -PACKAGECONFIG[glib] = "--with-libnm-glib,,dbus-glib-native dbus-glib" -PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls" -PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,,wpa-supplicant" -PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown" -PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free" - -PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \ - ${PN}-nmtui ${PN}-nmtui-doc \ - ${PN}-adsl \ -" - -FILES_libnmutil += "${libdir}/libnm-util.so.*" -FILES_libnmglib += "${libdir}/libnm-glib.so.*" -FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*" - -FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so" - -FILES_${PN} += " \ - ${libexecdir} \ - ${libdir}/NetworkManager/${PV}/*.so \ - ${nonarch_libdir}/NetworkManager/VPN \ - ${nonarch_libdir}/NetworkManager/conf.d \ - ${datadir}/polkit-1 \ - ${datadir}/dbus-1 \ - ${noarch_base_libdir}/udev/* \ - ${systemd_unitdir}/system \ - ${libdir}/pppd \ -" - -RRECOMMENDS_${PN} += "iptables \ - ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \ -" -RCONFLICTS_${PN} = "connman" - -FILES_${PN}-dev += " \ - ${datadir}/NetworkManager/gdb-cmd \ - ${libdir}/pppd/*/*.la \ - ${libdir}/NetworkManager/*.la \ - ${libdir}/NetworkManager/${PV}/*.la \ -" - -FILES_${PN}-nmtui = " \ - ${bindir}/nmtui \ - ${bindir}/nmtui-edit \ - ${bindir}/nmtui-connect \ - ${bindir}/nmtui-hostname \ -" - -FILES_${PN}-nmtui-doc = " \ - ${mandir}/man1/nmtui* \ -" - -SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'NetworkManager.service NetworkManager-dispatcher.service', '', d)}" - -do_install_append() { - rm -rf ${D}/run ${D}${localstatedir}/run -} diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.0.bb new file mode 100644 index 0000000000..9215a86765 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.18.0.bb @@ -0,0 +1,146 @@ +SUMMARY = "NetworkManager" +HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager" +SECTION = "net/misc" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \ + file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \ + file://docs/api/html/license.html;md5=233931303ef80eded167add1f60a50c1 \ +" + +DEPENDS = " \ + intltool-native \ + libxslt-native \ + libnl \ + libgudev \ + util-linux \ + libndp \ + libnewt \ + jansson \ + curl \ +" + +inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection gtk-doc + +SRC_URI = " \ + ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \ + file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \ + file://0002-Do-not-create-settings-settings-property-documentati.patch \ +" +SRC_URI_append_libc-musl = " \ + file://musl/0001-Fix-build-with-musl-systemd-specific.patch \ + file://musl/0002-Fix-build-with-musl.patch \ +" +SRC_URI[md5sum] = "c8c27116a8083bab5d5fcca0d03e988a" +SRC_URI[sha256sum] = "c6e8df25e5a3c7309bc17664be8971689314884cdd08afdd6b0847d29d2a8ba6" + +UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.16/" +UPSTREAM_CHECK_REGEX = "NetworkManager\-(?P1\.10(\.\d+)+).tar.xz" + +S = "${WORKDIR}/NetworkManager-${PV}" + +EXTRA_OECONF = " \ + --disable-ifcfg-rh \ + --disable-more-warnings \ + --with-iptables=${sbindir}/iptables \ + --with-tests \ + --with-nmtui=yes \ + --with-udev-dir=${nonarch_base_libdir}/udev \ +" + +# stolen from https://github.com/void-linux/void-packages/blob/master/srcpkgs/NetworkManager/template +# avoids: +# | ../NetworkManager-1.16.0/libnm-core/nm-json.c:106:50: error: 'RTLD_DEEPBIND' undeclared (first use in this function); did you mean 'RTLD_DEFAULT'? +# +# and +# +# | In file included from ../NetworkManager-1.16.0/src/systemd/nm-sd-utils-core.c:25: +# | ../NetworkManager-1.16.0/src/systemd/sd-adapt-core/nm-sd-adapt-core.h:68:6: error: #error neither secure_getenv nor __secure_getenv is available +# | # error neither secure_getenv nor __secure_getenv is available +# | ^~~~~ +CFLAGS_append_libc-musl = " \ + -DRTLD_DEEPBIND=0 \ + -DHAVE_SECURE_GETENV \ + -Dsecure_getenv=getenv \ +" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs" +} + +PACKAGECONFIG ??= "nss ifupdown dhclient dnsmasq \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit', d)} \ +" +PACKAGECONFIG[systemd] = " \ + --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd, \ + --without-systemdsystemunitdir, \ +" +PACKAGECONFIG[polkit] = "--enable-polkit --enable-polkit-agent,--disable-polkit --disable-polkit-agent,polkit" +PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5" +# consolekit is not picked by shlibs, so add it to RDEPENDS too +PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit" +PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager" +PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp" +# Use full featured dhcp client instead of internal one +PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client" +PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq" +PACKAGECONFIG[nss] = "--with-crypto=nss,,nss" +PACKAGECONFIG[glib] = "--with-libnm-glib,,dbus-glib-native dbus-glib" +PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls" +PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,,wpa-supplicant" +PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown" +PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free" + +PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \ + ${PN}-nmtui ${PN}-nmtui-doc \ + ${PN}-adsl \ +" + +FILES_libnmutil += "${libdir}/libnm-util.so.*" +FILES_libnmglib += "${libdir}/libnm-glib.so.*" +FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*" + +FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so" + +FILES_${PN} += " \ + ${libexecdir} \ + ${libdir}/NetworkManager/${PV}/*.so \ + ${nonarch_libdir}/NetworkManager/VPN \ + ${nonarch_libdir}/NetworkManager/conf.d \ + ${datadir}/polkit-1 \ + ${datadir}/dbus-1 \ + ${noarch_base_libdir}/udev/* \ + ${systemd_unitdir}/system \ + ${libdir}/pppd \ +" + +RRECOMMENDS_${PN} += "iptables \ + ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \ +" +RCONFLICTS_${PN} = "connman" + +FILES_${PN}-dev += " \ + ${datadir}/NetworkManager/gdb-cmd \ + ${libdir}/pppd/*/*.la \ + ${libdir}/NetworkManager/*.la \ + ${libdir}/NetworkManager/${PV}/*.la \ +" + +FILES_${PN}-nmtui = " \ + ${bindir}/nmtui \ + ${bindir}/nmtui-edit \ + ${bindir}/nmtui-connect \ + ${bindir}/nmtui-hostname \ +" + +FILES_${PN}-nmtui-doc = " \ + ${mandir}/man1/nmtui* \ +" + +SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'NetworkManager.service NetworkManager-dispatcher.service', '', d)}" + +do_install_append() { + rm -rf ${D}/run ${D}${localstatedir}/run +} -- cgit 1.2.3-korg