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 <schnitzelt...@gmail.com>
> ---
>  ...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 <raj.k...@gmail.com>
> -Date: Fri, 31 Mar 2017 15:57:05 -0700
> -Subject: [PATCH 1/7] adjust net/ headers for musl compatibility
> -
> -Signed-off-by: Khem Raj <raj.k...@gmail.com>
> ----
> - 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 <raj.k...@gmail.com>
> -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 <raj.k...@gmail.com>
> ----
> - 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 <raj.k...@gmail.com>
> -Date: Fri, 31 Mar 2017 16:08:45 -0700
> -Subject: [PATCH 3/7] Define ETH_ALEN
> -
> -Signed-off-by: Khem Raj <raj.k...@gmail.com>
> ----
> - 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?= <schnitzelt...@gmail.com>
> +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 <schnitzelt...@gmail.com>
> +---
> + 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 <raj.k...@gmail.com>
> -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 <raj.k...@gmail.com>
> ----
> - 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 <raj.k...@gmail.com>
> -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 <raj.k...@gmail.com>
> ----
> - 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?= <schnitzelt...@gmail.com>
> +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 <schnitzelt...@gmail.com>
> +---
> + 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?= <schnitzelt...@gmail.com>
> +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 <schnitzelt...@gmail.com>
> +---
> + 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?= <schnitzelt...@gmail.com>
> +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 <schnitzelt...@gmail.com>
> +---
> + 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?= <schnitzelt...@gmail.com>
> +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 <schnitzelt...@gmail.com>
> +---
> + 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
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to