On 04/09/2018 03:02 PM, Andreas Müller wrote: > This adresses the comments for recent patch which updated nm to 1.10.6 and is > a > follow-up for [1].
There is a form of this already in my stagging/master-next. Should it be removed and replaced by this one? - armin > > * Make gobject-introspection work by skipping creation of > gobject-introspection > specific documentation. This fixes networkmanager-applet regression. > * Cleanup patches: Remove current musl patches completely and re-use those > found in void-linux because they do look much cleaner and don't touch glibc > build. One nice side effect: In the future when nm is updated we can steal > again and don't need to reenvent here. Usually they are much faster than we > are (and I know one major contibutor personally from the good old Z80 > times..) > > [1] https://patchwork.openembedded.org/patch/149244/ > > Signed-off-by: Andreas Müller <[email protected]> > --- > ...adjust-net-headers-for-musl-compatibility.patch | 86 -------------------- > ...move-net-ethernet.h-seems-to-be-over-spe.patch} | 0 > ...igure.ac-Fix-pkgconfig-sysroot-locations.patch} | 0 > ...et-util.h-Include-linux-sockios.h-on-musl.patch | 30 ------- > .../networkmanager/0003-Define-ETH_ALEN.patch | 39 --------- > ...te-settings-settings-property-documentati.patch | 77 ++++++++++++++++++ > ...Define-missing-features-to-cater-for-musl.patch | 92 > ---------------------- > .../0006-check-for-strndupa-before-using-it.patch | 67 ---------------- > .../networkmanager/musl/0001-musl-basic.patch | 53 +++++++++++++ > .../musl/0002-musl-dlopen-configure-ac.patch | 35 ++++++++ > .../musl/0003-musl-network-support.patch | 72 +++++++++++++++++ > .../musl/0004-musl-process-util.patch | 62 +++++++++++++++ > .../networkmanager/networkmanager_1.10.6.bb | 31 ++++---- > 13 files changed, 316 insertions(+), 328 deletions(-) > delete mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch > rename > meta-networking/recipes-connectivity/networkmanager/networkmanager/{0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch > => 0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch} (100%) > rename > meta-networking/recipes-connectivity/networkmanager/networkmanager/{0007-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch > => 0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch} (100%) > delete mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch > delete mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch > create mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch > delete mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch > delete mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/0006-check-for-strndupa-before-using-it.patch > create mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch > create mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch > create mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch > create mode 100644 > meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch > > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch > deleted file mode 100644 > index 194e03722..000000000 > --- > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch > +++ /dev/null > @@ -1,86 +0,0 @@ > -From f81abf62c0ae93628df36c27357358523be25fb8 Mon Sep 17 00:00:00 2001 > -From: Khem Raj <[email protected]> > -Date: Fri, 31 Mar 2017 15:57:05 -0700 > -Subject: [PATCH 1/7] adjust net/ headers for musl compatibility > - > -Signed-off-by: Khem Raj <[email protected]> > ---- > - libnm-core/nm-utils.c | 13 ++++++++----- > - libnm-core/nm-utils.h | 5 ++--- > - src/platform/wifi/wifi-utils.h | 2 +- > - 3 files changed, 11 insertions(+), 9 deletions(-) > - > -diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c > -index ebbbfd3..77273df 100644 > ---- a/libnm-core/nm-utils.c > -+++ b/libnm-core/nm-utils.c > -@@ -19,14 +19,9 @@ > - * Copyright 2005 - 2017 Red Hat, Inc. > - */ > - > --#include "nm-default.h" > -- > --#include "nm-utils.h" > -- > - #include <string.h> > - #include <errno.h> > - #include <stdlib.h> > --#include <netinet/ether.h> > - #include <arpa/inet.h> > - #include <uuid/uuid.h> > - #include <libintl.h> > -@@ -34,12 +29,20 @@ > - #include <sys/stat.h> > - #include <net/if.h> > - #include <linux/pkt_sched.h> > -+//#include <net/if_arp.h> > -+//#include <net/ethernet.h> > -+#include <netinet/ether.h> > -+ > -+#include "nm-default.h" > -+ > -+#include "nm-utils.h" > - > - #if WITH_JANSSON > - #include "nm-json.h" > - #include <jansson.h> > - #endif > - > -+ > - #include "nm-utils/nm-enum-utils.h" > - #include "nm-utils/nm-hash-utils.h" > - #include "nm-common-macros.h" > -diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h > -index df9284b..02e24ea 100644 > ---- a/libnm-core/nm-utils.h > -+++ b/libnm-core/nm-utils.h > -@@ -27,11 +27,10 @@ > - > - #include <glib.h> > - > --#include <netinet/in.h> > -- > - /* For ETH_ALEN and INFINIBAND_ALEN */ > --#include <linux/if_ether.h> > -+//#include <linux/if_ether.h> > - #include <linux/if_infiniband.h> > -+#include <netinet/in.h> > - > - #include "nm-core-enum-types.h" > - #include "nm-setting-wireless-security.h" > -diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h > -index 705717b..939080f 100644 > ---- a/src/platform/wifi/wifi-utils.h > -+++ b/src/platform/wifi/wifi-utils.h > -@@ -22,7 +22,7 @@ > - #ifndef __WIFI_UTILS_H__ > - #define __WIFI_UTILS_H__ > - > --#include <net/ethernet.h> > -+//#include <net/ethernet.h> > - > - #include "nm-dbus-interface.h" > - > --- > -2.14.1 > - > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch > similarity index 100% > rename from > meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch > rename to > meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0007-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch > similarity index 100% > rename from > meta-networking/recipes-connectivity/networkmanager/networkmanager/0007-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch > rename to > meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch > deleted file mode 100644 > index cdcd397d7..000000000 > --- > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch > +++ /dev/null > @@ -1,30 +0,0 @@ > -From 7f0e0613abe8aa1861946e2cc25397690da7128b Mon Sep 17 00:00:00 2001 > -From: Khem Raj <[email protected]> > -Date: Fri, 31 Mar 2017 16:05:05 -0700 > -Subject: [PATCH 2/7] socket-util.h: Include linux/sockios.h on musl > - > -Signed-off-by: Khem Raj <[email protected]> > ---- > - src/systemd/src/basic/socket-util.h | 6 ++++++ > - 1 file changed, 6 insertions(+) > - > -diff --git a/src/systemd/src/basic/socket-util.h > b/src/systemd/src/basic/socket-util.h > -index d7e2d85..2e7f7b6 100644 > ---- a/src/systemd/src/basic/socket-util.h > -+++ b/src/systemd/src/basic/socket-util.h > -@@ -30,6 +30,12 @@ > - #include <linux/if_infiniband.h> > - #include <linux/if_packet.h> > - > -+#if !defined(__GLIBC__) > -+/* SIOCGSTAMPNS from linux/asm-generic.h > -+ * for src/systemd/src/libsystemd-network/sd-lldp.c */ > -+#include <linux/sockios.h> > -+#endif > -+ > - #include "macro.h" > - #include "missing.h" > - #include "util.h" > --- > -2.14.1 > - > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch > deleted file mode 100644 > index 549e46e0e..000000000 > --- > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch > +++ /dev/null > @@ -1,39 +0,0 @@ > -From d0951fe7da63d8296a305781d7322ce4d3249415 Mon Sep 17 00:00:00 2001 > -From: Khem Raj <[email protected]> > -Date: Fri, 31 Mar 2017 16:08:45 -0700 > -Subject: [PATCH 3/7] Define ETH_ALEN > - > -Signed-off-by: Khem Raj <[email protected]> > ---- > - libnm-core/nm-utils.h | 1 + > - src/platform/wifi/wifi-utils.h | 2 ++ > - 2 files changed, 3 insertions(+) > - > -diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h > -index 02e24ea..5ff279c 100644 > ---- a/libnm-core/nm-utils.h > -+++ b/libnm-core/nm-utils.h > -@@ -29,6 +29,7 @@ > - > - /* For ETH_ALEN and INFINIBAND_ALEN */ > - //#include <linux/if_ether.h> > -+#define ETH_ALEN 6 /* Octets in one ethernet addr */ > - #include <linux/if_infiniband.h> > - #include <netinet/in.h> > - > -diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h > -index 939080f..2274408 100644 > ---- a/src/platform/wifi/wifi-utils.h > -+++ b/src/platform/wifi/wifi-utils.h > -@@ -24,6 +24,8 @@ > - > - //#include <net/ethernet.h> > - > -+#define ETH_ALEN 6 /* Octets in one ethernet addr */ > -+ > - #include "nm-dbus-interface.h" > - > - typedef struct WifiData WifiData; > --- > -2.14.1 > - > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch > new file mode 100644 > index 000000000..92485f044 > --- /dev/null > +++ > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch > @@ -0,0 +1,77 @@ > +From 4f000a4a19975d6aba71427e693cd1ed080abda9 Mon Sep 17 00:00:00 2001 > +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <[email protected]> > +Date: Thu, 22 Mar 2018 11:08:30 +0100 > +Subject: [PATCH] Do not create settings settings/property documentation > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +It was tried to get this work but gi / GirRepository could not be found by > +python. Anyway it is not necessary for us to have the settings/property docs. > + > +Upstream-Status: Inappropriate [OE specific] > + > +Signed-off-by: Andreas Müller <[email protected]> > +--- > + Makefile.am | 18 ++---------------- > + configure.ac | 4 ---- > + 2 files changed, 2 insertions(+), 20 deletions(-) > + > +diff --git a/Makefile.am b/Makefile.am > +index 639921d..314a61d 100644 > +--- a/Makefile.am > ++++ b/Makefile.am > +@@ -961,9 +961,7 @@ endif > + if HAVE_INTROSPECTION > + > + libnm_noinst_data = \ > +- libnm/nm-property-docs.xml \ > + libnm/nm-settings-docs-overrides.xml \ > +- libnm/nm-settings-docs.xml \ > + libnm/nm-settings-keyfile-docs.xml \ > + libnm/nm-settings-ifcfg-rh-docs.xml > + > +@@ -3317,23 +3315,11 @@ $(clients_common_libnmc_base_la_OBJECTS): > $(libnm_core_lib_h_pub_mkenums) > + $(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp > + > + clients_common_settings_doc_c = clients/common/settings-docs.c > +-if HAVE_INTROSPECTION > +-$(clients_common_settings_doc_c): clients/common/settings-docs.xsl > libnm/nm-property-docs.xml clients/common/.dirstamp > +- $(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^) > +-DISTCLEANFILES += $(clients_common_settings_doc_c) > +-check-local-settings-docs: $(clients_common_settings_doc_c) > +- @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \ > +- if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_c).in" > "$(builddir)/$(clients_common_settings_doc_c)" ; then \ > +- echo "The generated file > \"$(builddir)/$(clients_common_settings_doc_c)\" differs from the source file > \"$(srcdir)/$(clients_common_settings_doc_c).in\". You probably should copy > the generated file over to the source file. You can skip this test by setting > \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes"; \ > +- false; \ > +- fi;\ > +- fi > +-check_local += check-local-settings-docs > +-else > ++ > + $(clients_common_settings_doc_c): $(clients_common_settings_doc_c).in > clients/common/.dirstamp > + $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_c).in" > "$(builddir)/$(clients_common_settings_doc_c)" > + check-local-settings-docs: > +-endif > ++ > + EXTRA_DIST += \ > + $(clients_common_settings_doc_c) \ > + $(clients_common_settings_doc_c).in > +diff --git a/configure.ac b/configure.ac > +index c9d3e56..407222e 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -1286,10 +1286,6 @@ GTK_DOC_CHECK(1.0) > + # check if we can build setting property documentation > + build_docs=no > + if test -n "$INTROSPECTION_MAKEFILE"; then > +- # If g-i is installed we know we have python, but we might not have > pygobject > +- if ! "$PYTHON" -c 'from gi.repository import GObject' >& /dev/null; then > +- AC_MSG_ERROR(["--enable-introspection aims to build the > settings documentation. This requires GObject introspection for python > (pygobject)]) > +- fi > + > + AC_PATH_PROG(PERL, perl) > + if test -z "$PERL"; then > +-- > +2.14.3 > + > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch > deleted file mode 100644 > index b56f6a37d..000000000 > --- > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch > +++ /dev/null > @@ -1,92 +0,0 @@ > -From c9e0f112a90b6b1ade87a698608dca8d6fbe89cc Mon Sep 17 00:00:00 2001 > -From: Khem Raj <[email protected]> > -Date: Fri, 31 Mar 2017 16:09:41 -0700 > -Subject: [PATCH 4/7] Define missing features to cater for musl > - > -Signed-off-by: Khem Raj <[email protected]> > ---- > - src/systemd/sd-adapt/nm-sd-adapt.h | 2 +- > - src/systemd/src/basic/parse-util.c | 4 ++++ > - src/systemd/src/basic/stdio-util.h | 2 ++ > - src/systemd/src/basic/util.h | 5 +++++ > - src/systemd/src/systemd/sd-event.h | 4 ---- > - 5 files changed, 12 insertions(+), 5 deletions(-) > - > -diff --git a/src/systemd/sd-adapt/nm-sd-adapt.h > b/src/systemd/sd-adapt/nm-sd-adapt.h > -index 0d291e2..d88dd9b 100644 > ---- a/src/systemd/sd-adapt/nm-sd-adapt.h > -+++ b/src/systemd/sd-adapt/nm-sd-adapt.h > -@@ -134,7 +134,7 @@ G_STMT_START { \ > - # ifdef HAVE___SECURE_GETENV > - # define secure_getenv __secure_getenv > - # else > --# error neither secure_getenv nor __secure_getenv is available > -+# define secure_getenv getenv > - # endif > - #endif > - > -diff --git a/src/systemd/src/basic/parse-util.c > b/src/systemd/src/basic/parse-util.c > -index 6d978e9..e74e84b 100644 > ---- a/src/systemd/src/basic/parse-util.c > -+++ b/src/systemd/src/basic/parse-util.c > -@@ -21,7 +21,11 @@ > - > - #include <errno.h> > - #include <inttypes.h> > -+#ifdef __GLIBC__ > -+#include <xlocale.h> > -+#else > - #include <locale.h> > -+#endif > - #include <stdio.h> > - #include <stdlib.h> > - #include <string.h> > -diff --git a/src/systemd/src/basic/stdio-util.h > b/src/systemd/src/basic/stdio-util.h > -index bd1144b..c92e935 100644 > ---- a/src/systemd/src/basic/stdio-util.h > -+++ b/src/systemd/src/basic/stdio-util.h > -@@ -19,7 +19,9 @@ > - along with systemd; If not, see <http://www.gnu.org/licenses/>. > - ***/ > - > -+#ifdef __GLIBC__ > - #include <printf.h> > -+#endif > - #include <stdarg.h> > - #include <stdio.h> > - #include <sys/types.h> > -diff --git a/src/systemd/src/basic/util.h b/src/systemd/src/basic/util.h > -index b31dfd1..9b7032c 100644 > ---- a/src/systemd/src/basic/util.h > -+++ b/src/systemd/src/basic/util.h > -@@ -46,6 +46,11 @@ > - #include "missing.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()) > - > -diff --git a/src/systemd/src/systemd/sd-event.h > b/src/systemd/src/systemd/sd-event.h > -index f8cb895..c7e0004 100644 > ---- a/src/systemd/src/systemd/sd-event.h > -+++ b/src/systemd/src/systemd/sd-event.h > -@@ -69,11 +69,7 @@ typedef int (*sd_event_handler_t)(sd_event_source *s, > void *userdata); > - typedef int (*sd_event_io_handler_t)(sd_event_source *s, int fd, uint32_t > revents, void *userdata); > - typedef int (*sd_event_time_handler_t)(sd_event_source *s, uint64_t usec, > void *userdata); > - typedef int (*sd_event_signal_handler_t)(sd_event_source *s, const struct > signalfd_siginfo *si, void *userdata); > --#if defined _GNU_SOURCE || _POSIX_C_SOURCE >= 199309L > - typedef int (*sd_event_child_handler_t)(sd_event_source *s, const siginfo_t > *si, void *userdata); > --#else > --typedef void* sd_event_child_handler_t; > --#endif > - > - int sd_event_default(sd_event **e); > - > --- > -2.14.1 > - > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0006-check-for-strndupa-before-using-it.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0006-check-for-strndupa-before-using-it.patch > deleted file mode 100644 > index 6adb84baa..000000000 > --- > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0006-check-for-strndupa-before-using-it.patch > +++ /dev/null > @@ -1,67 +0,0 @@ > -From f24d958fc85f9a43ac13abc85f74c4ae233dc8a4 Mon Sep 17 00:00:00 2001 > -From: Khem Raj <[email protected]> > -Date: Fri, 31 Mar 2017 18:37:19 -0700 > -Subject: [PATCH 6/7] check for strndupa before using it > - > -musl does not have strndupa > - > -Signed-off-by: Khem Raj <[email protected]> > ---- > - config.h.in | 4 ++++ > - configure.ac | 1 + > - src/systemd/src/basic/alloc-util.h | 12 ++++++++++++ > - 3 files changed, 17 insertions(+) > - > -diff --git a/config.h.in b/config.h.in > -index edec211..0799030 100644 > ---- a/config.h.in > -+++ b/config.h.in > -@@ -34,6 +34,10 @@ > - */ > - #undef HAVE_DCGETTEXT > - > -+/* Define to 1 if you have the declaration of `strndupa', and to 0 if you > -+ don't. */ > -+#undef HAVE_DECL_STRNDUPA > -+ > - /* Define to 1 if you have the declaration of `explicit_bzero', and to 0 if > - you don't. */ > - #undef HAVE_DECL_EXPLICIT_BZERO > -diff --git a/configure.ac b/configure.ac > -index 8a066ad..51e5eb6 100644 > ---- a/configure.ac > -+++ b/configure.ac > -@@ -56,6 +56,7 @@ AC_SUBST(NM_VERSION) > - > - GIT_SHA_RECORD(NM_GIT_SHA) > - > -+AC_CHECK_DECLS([strndupa], [], [], [[#include <string.h>]]) > - dnl > - dnl Checks for typedefs, structures, and compiler characteristics. > - dnl > -diff --git a/src/systemd/src/basic/alloc-util.h > b/src/systemd/src/basic/alloc-util.h > -index 0a89691..1e95260 100644 > ---- a/src/systemd/src/basic/alloc-util.h > -+++ b/src/systemd/src/basic/alloc-util.h > -@@ -25,6 +25,18 @@ > - #include <string.h> > - > - #include "macro.h" > -+#include "config.h" > -+ > -+#if !HAVE_DECL_STRNDUPA > -+#define strndupa(s, n) \ > -+ ({ \ > -+ const char *__old = (s); \ > -+ size_t __len = strnlen(__old, (n)); \ > -+ char *__new = (char *)alloca(__len + 1); \ > -+ __new[__len] = '\0'; \ > -+ (char *)memcpy(__new, __old, __len); \ > -+ }) > -+#endif > - > - #define new(t, n) ((t*) malloc_multiply(sizeof(t), (n))) > - > --- > -2.14.1 > - > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch > new file mode 100644 > index 000000000..9d208e1fd > --- /dev/null > +++ > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch > @@ -0,0 +1,53 @@ > +From e92de7409a3e107f90d108a9c5d49bd0418296dd Mon Sep 17 00:00:00 2001 > +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <[email protected]> > +Date: Thu, 22 Mar 2018 17:54:10 +0100 > +Subject: [PATCH 1/4] Usual fix for musl libc > +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 <[email protected]> > +--- > + src/systemd/src/basic/stdio-util.h | 2 ++ > + src/systemd/src/basic/util.h | 5 +++++ > + 2 files changed, 7 insertions(+) > + > +diff --git a/src/systemd/src/basic/stdio-util.h > b/src/systemd/src/basic/stdio-util.h > +index bd1144b..9eafacb 100644 > +--- a/src/systemd/src/basic/stdio-util.h > ++++ b/src/systemd/src/basic/stdio-util.h > +@@ -19,7 +19,9 @@ > + along with systemd; If not, see <http://www.gnu.org/licenses/>. > + ***/ > + > ++#if defined(__GLIBC__) > + #include <printf.h> > ++#endif > + #include <stdarg.h> > + #include <stdio.h> > + #include <sys/types.h> > +diff --git a/src/systemd/src/basic/util.h b/src/systemd/src/basic/util.h > +index b31dfd1..9b7032c 100644 > +--- a/src/systemd/src/basic/util.h > ++++ b/src/systemd/src/basic/util.h > +@@ -46,6 +46,11 @@ > + #include "missing.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()) > + > +-- > +2.14.3 > + > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch > new file mode 100644 > index 000000000..548cccb32 > --- /dev/null > +++ > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch > @@ -0,0 +1,35 @@ > +From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001 > +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <[email protected]> > +Date: Thu, 22 Mar 2018 18:18:06 +0100 > +Subject: [PATCH 2/4] 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 <[email protected]> > +--- > + 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 > +@@ -305,6 +305,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/0003-musl-network-support.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch > new file mode 100644 > index 000000000..5dd17b63b > --- /dev/null > +++ > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch > @@ -0,0 +1,72 @@ > +From 714b4731a238653e9c7d885c0dee10677b0a4df3 Mon Sep 17 00:00:00 2001 > +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <[email protected]> > +Date: Thu, 22 Mar 2018 18:24:07 +0100 > +Subject: [PATCH 3/4] musl: network support > +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 <[email protected]> > +--- > + libnm-core/nm-utils.h | 4 ++++ > + src/platform/wifi/wifi-utils.h | 4 ++++ > + src/systemd/src/basic/socket-util.h | 5 +++++ > + 3 files changed, 13 insertions(+) > + > +diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h > +index df9284b..2bcf4b8 100644 > +--- a/libnm-core/nm-utils.h > ++++ b/libnm-core/nm-utils.h > +@@ -30,7 +30,11 @@ > + #include <netinet/in.h> > + > + /* For ETH_ALEN and INFINIBAND_ALEN */ > ++#if defined(__GLIBC__) > + #include <linux/if_ether.h> > ++#else > ++#define ETH_ALEN 6 /* Octets in one ethernet addr */ > ++#endif > + #include <linux/if_infiniband.h> > + > + #include "nm-core-enum-types.h" > +diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h > +index 705717b..da3edc4 100644 > +--- a/src/platform/wifi/wifi-utils.h > ++++ b/src/platform/wifi/wifi-utils.h > +@@ -22,7 +22,11 @@ > + #ifndef __WIFI_UTILS_H__ > + #define __WIFI_UTILS_H__ > + > ++#if defined(__GLIBC__) > + #include <net/ethernet.h> > ++#else /* musl libc */ > ++#define ETH_ALEN 6 /* Octets in one ethernet addr */ > ++#endif > + > + #include "nm-dbus-interface.h" > + > +diff --git a/src/systemd/src/basic/socket-util.h > b/src/systemd/src/basic/socket-util.h > +index d7e2d85..d109c84 100644 > +--- a/src/systemd/src/basic/socket-util.h > ++++ b/src/systemd/src/basic/socket-util.h > +@@ -29,6 +29,11 @@ > + #include <linux/netlink.h> > + #include <linux/if_infiniband.h> > + #include <linux/if_packet.h> > ++#if !defined(__GLIBC__) > ++/* SIOCGSTAMPNS from linux/asm-generic.h > ++ * for src/systemd/src/libsystemd-network/sd-lldp.c */ > ++#include <linux/sockios.h> > ++#endif > + > + #include "macro.h" > + #include "missing.h" > +-- > +2.14.3 > + > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch > new file mode 100644 > index 000000000..fc55ce85f > --- /dev/null > +++ > b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch > @@ -0,0 +1,62 @@ > +From d513c8bfc982dbd976617178b040c512c95710b6 Mon Sep 17 00:00:00 2001 > +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <[email protected]> > +Date: Thu, 22 Mar 2018 18:29:00 +0100 > +Subject: [PATCH 4/4] musl: process-util > +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 <[email protected]> > +--- > + src/systemd/src/basic/process-util.c | 9 +++++++++ > + 1 file changed, 9 insertions(+) > + > +diff --git a/src/systemd/src/basic/process-util.c > b/src/systemd/src/basic/process-util.c > +index 272030d..485f1db 100644 > +--- a/src/systemd/src/basic/process-util.c > ++++ b/src/systemd/src/basic/process-util.c > +@@ -36,6 +36,9 @@ > + #include <sys/wait.h> > + #include <syslog.h> > + #include <unistd.h> > ++#ifndef __GLIBC__ > ++#include <pthread.h> > ++#endif > + #if 0 /* NM_IGNORED */ > + #if HAVE_VALGRIND_VALGRIND_H > + #include <valgrind/valgrind.h> > +@@ -1015,11 +1018,13 @@ static void reset_cached_pid(void) { > + cached_pid = CACHED_PID_UNSET; > + } > + > ++#ifdef __GLIBC__ > + /* We use glibc __register_atfork() + __dso_handle directly here, as they > are not included in the glibc > + * headers. __register_atfork() is mostly equivalent to pthread_atfork(), > but doesn't require us to link against > + * libpthread, as it is part of glibc anyway. */ > + extern int __register_atfork(void (*prepare) (void), void (*parent) (void), > void (*child) (void), void * __dso_handle); > + extern void* __dso_handle __attribute__ ((__weak__)); > ++#endif > + > + pid_t getpid_cached(void) { > + pid_t current_value; > +@@ -1042,7 +1047,11 @@ pid_t getpid_cached(void) { > + > + new_pid = getpid(); > + > ++#ifdef __GLIBC__ > + if (__register_atfork(NULL, NULL, reset_cached_pid, > __dso_handle) != 0) { > ++#else > ++ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) { > ++#endif > + /* OOM? Let's try again later */ > + cached_pid = CACHED_PID_UNSET; > + return new_pid; > +-- > +2.14.3 > + > diff --git > a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb > > b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb > index 6538e7b82..972556176 100644 > --- > a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb > +++ > b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb > @@ -10,6 +10,7 @@ LIC_FILES_CHKSUM = > "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \ > > DEPENDS = " \ > intltool-native \ > + libxslt-native \ > libnl \ > dbus \ > dbus-glib \ > @@ -23,18 +24,18 @@ DEPENDS = " \ > curl \ > " > > -inherit gnomebase gettext systemd bluetooth bash-completion vala > gobject-introspection > - > -GI_DATA_ENABLED_libc-musl = "False" > - > -SRC_URI = > "${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz > \ > - file://0001-adjust-net-headers-for-musl-compatibility.patch \ > - file://0002-socket-util.h-Include-linux-sockios.h-on-musl.patch \ > - file://0003-Define-ETH_ALEN.patch \ > - > file://0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \ > - file://0006-check-for-strndupa-before-using-it.patch \ > - > file://0007-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \ > - " > +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-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \ > + file://0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \ > + file://0003-Do-not-create-settings-settings-property-documentati.patch \ > + file://musl/0001-musl-basic.patch \ > + file://musl/0002-musl-dlopen-configure-ac.patch \ > + file://musl/0003-musl-network-support.patch \ > + file://musl/0004-musl-process-util.patch \ > +" > SRC_URI[md5sum] = "de3c7147a693da6f80eb22f126086a14" > SRC_URI[sha256sum] = > "6af0b1e856a3725f88791f55c4fbb04105dc0b20dbf182aaec8aad16481fac76" > > @@ -44,15 +45,17 @@ EXTRA_OECONF = " \ > --disable-ifcfg-rh \ > --disable-ifnet \ > --disable-ifcfg-suse \ > - --disable-introspection \ > --disable-more-warnings \ > --with-iptables=${sbindir}/iptables \ > --with-tests \ > --with-nmtui=yes \ > " > > +# gobject-introspection related > +GI_DATA_ENABLED_libc-musl = "False" > + > do_compile_prepend() { > - export GIR_EXTRA_LIBS_PATH="${B}/libnm-util/.libs" > + export > GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs" > } > > PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \ -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
