diff options
Diffstat (limited to 'meta-networking/recipes-connectivity/networkmanager/networkmanager')
12 files changed, 221 insertions, 364 deletions
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-libnm-systemd-core-Disable-sd_dhcp6_client_set_duid_.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-libnm-systemd-core-Disable-sd_dhcp6_client_set_duid_.patch new file mode 100644 index 0000000000..8e246efe01 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-libnm-systemd-core-Disable-sd_dhcp6_client_set_duid_.patch @@ -0,0 +1,65 @@ +From 34d7a6c9919a73c2e716835000944c17438b2ca1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 7 Jun 2024 14:03:15 -0700 +Subject: [PATCH] libnm-systemd-core: Disable sd_dhcp6_client_set_duid_uuid + function + +When building on musl systems ( with out systemd ), and using LLD linker +from LLVM project we fail to link with undefined symbols. + +This symbol is in sd_id128.c but its disabled, so let disable the functions +which need this function. + +| x86_64-yoe-linux-musl-ld.lld: error: undefined symbol: sd_id128_get_machine_app_specific +| >>> referenced by sd-dhcp-duid.c:202 (/usr/src/debug/networkmanager/1.48.0/../NetworkManager-1.48.0/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c:202) +| >>> libnm-systemd-core.a.p/src_libsystemd-network_sd-dhcp-duid.c.o:(sd_dhcp_duid_set_uuid) in archive src/libnm-systemd-core/libnm-systemd-core.a +| x86_64-yoe-linux-musl-clang: error: linker command failed with exit code 1 (use -v to see invocation) + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1966] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c | 2 ++ + .../src/libsystemd-network/sd-dhcp6-client.c | 3 ++- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c b/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c +index e664a4a..7ba5020 100644 +--- a/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c ++++ b/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c +@@ -193,6 +193,7 @@ int sd_dhcp_duid_set_en(sd_dhcp_duid *duid) { + return 0; + } + ++#if 0 + int sd_dhcp_duid_set_uuid(sd_dhcp_duid *duid) { + sd_id128_t machine_id; + int r; +@@ -209,6 +210,7 @@ int sd_dhcp_duid_set_uuid(sd_dhcp_duid *duid) { + duid->size = offsetof(struct duid, uuid.uuid) + sizeof(machine_id); + return 0; + } ++#endif + + int dhcp_duid_to_string_internal(uint16_t type, const void *data, size_t data_size, char **ret) { + _cleanup_free_ char *p = NULL, *x = NULL; +diff --git a/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c b/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c +index 7c20116..08c1e96 100644 +--- a/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c ++++ b/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c +@@ -244,6 +244,7 @@ int sd_dhcp6_client_set_duid_en(sd_dhcp6_client *client) { + return 0; + } + ++#if 0 + int sd_dhcp6_client_set_duid_uuid(sd_dhcp6_client *client) { + int r; + +@@ -256,7 +257,7 @@ int sd_dhcp6_client_set_duid_uuid(sd_dhcp6_client *client) { + + return 0; + } +- ++#endif + int sd_dhcp6_client_set_duid_raw(sd_dhcp6_client *client, uint16_t duid_type, const uint8_t *duid, size_t duid_len) { + int r; + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch new file mode 100644 index 0000000000..71ad01f51c --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch @@ -0,0 +1,41 @@ +From 3ee6967689b3da30cc4551885d8bcdd44a7a9b52 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 31 Aug 2023 21:16:55 -0700 +Subject: [PATCH] linker-scripts: Do not export _IO_stdin_used + +This is glibc specific and it is not needed with musl. +See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835550 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + linker-script-binary.ver | 1 - + tools/create-exports-NetworkManager.sh | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/linker-script-binary.ver b/linker-script-binary.ver +index a2780c0..f030d35 100644 +--- a/linker-script-binary.ver ++++ b/linker-script-binary.ver +@@ -1,6 +1,5 @@ + { + global: +- _IO_stdin_used; + local: + *; + }; +diff --git a/tools/create-exports-NetworkManager.sh b/tools/create-exports-NetworkManager.sh +index ef4b381..60865ad 100755 +--- a/tools/create-exports-NetworkManager.sh ++++ b/tools/create-exports-NetworkManager.sh +@@ -54,7 +54,6 @@ get_symbols_nm () { + + get_symbols_explicit() { + cat <<EOF | _sort +-_IO_stdin_used + EOF + } + +-- +2.42.0 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-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 deleted file mode 100644 index 7194423192..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 18f71c1b48730b8602826517f2b5b088283ae948 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 31 Mar 2017 16:48:00 -0700 -Subject: [PATCH 5/7] sd-lldp.h: Remove net/ethernet.h seems to be over - specified - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/systemd/src/libsystemd-network/sd-lldp.c | 1 + - src/systemd/src/systemd/sd-lldp.h | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/systemd/src/libsystemd-network/sd-lldp.c b/src/systemd/src/libsystemd-network/sd-lldp.c -index 31e2448..7721cc2 100644 ---- a/src/systemd/src/libsystemd-network/sd-lldp.c -+++ b/src/systemd/src/libsystemd-network/sd-lldp.c -@@ -21,6 +21,7 @@ - #include "nm-sd-adapt.h" - - #include <arpa/inet.h> -+#include <net/ethernet.h> - #include <linux/sockios.h> - - #include "sd-lldp.h" -diff --git a/src/systemd/src/systemd/sd-lldp.h b/src/systemd/src/systemd/sd-lldp.h -index 3f35eeb..61b0e45 100644 ---- a/src/systemd/src/systemd/sd-lldp.h -+++ b/src/systemd/src/systemd/sd-lldp.h -@@ -22,7 +22,7 @@ - ***/ - - #include <inttypes.h> --#include <net/ethernet.h> -+//#include <net/ethernet.h> - #include <sys/types.h> - - #include "sd-event.h" --- -2.14.1 - diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch deleted file mode 100644 index 28848d3543..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 583f0448fb7e9aba2b410c06eec6f420b41a6a0c Mon Sep 17 00:00:00 2001 -From: Pablo Saavedra <psaavedra@igalia.com> -Date: Tue, 13 Mar 2018 17:36:20 +0100 -Subject: [PATCH 7/7] Fixed configure.ac: Fix pkgconfig sysroot locations - ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 51e5eb6..c9d3e56 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -669,7 +669,7 @@ else - AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled]) - - AC_CHECK_TOOLS(READELF, [eu-readelf readelf]) -- JANSSON_LIBDIR=`$PKG_CONFIG --variable=libdir jansson` -+ JANSSON_LIBDIR=${PKG_CONFIG_SYSROOT_DIR}`$PKG_CONFIG --variable=libdir jansson` - JANSSON_SONAME=`$READELF -d $JANSSON_LIBDIR/libjansson.so |sed -n 's/.*SONAME.*\[[\([^]]*\)]]/\1/p'` - - if test "$JANSSON_SONAME" = ""; then --- -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 deleted file mode 100644 index 92485f0441..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 4f000a4a19975d6aba71427e693cd1ed080abda9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@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 <schnitzeltony@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/enable-dhcpcd.conf b/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-dhcpcd.conf new file mode 100644 index 0000000000..8da4fe0487 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-dhcpcd.conf @@ -0,0 +1,2 @@ +[main] +dhcp=dhcpcd diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-iwd.conf b/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-iwd.conf new file mode 100644 index 0000000000..abb5937341 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-iwd.conf @@ -0,0 +1,3 @@ +[device] +wifi.iwd.autoconnect=yes +wifi.backend=iwd 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 deleted file mode 100644 index 9d208e1fda..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch +++ /dev/null @@ -1,53 +0,0 @@ -From e92de7409a3e107f90d108a9c5d49bd0418296dd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@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 <schnitzeltony@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 deleted file mode 100644 index 548cccb329..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@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 <schnitzeltony@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 deleted file mode 100644 index 5dd17b63b4..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 714b4731a238653e9c7d885c0dee10677b0a4df3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@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 <schnitzeltony@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 deleted file mode 100644 index fc55ce85f6..0000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch +++ /dev/null @@ -1,62 +0,0 @@ -From d513c8bfc982dbd976617178b040c512c95710b6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@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 <schnitzeltony@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/networkmanager.initd b/meta-networking/recipes-connectivity/networkmanager/networkmanager/networkmanager.initd new file mode 100644 index 0000000000..4fdd80d410 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/networkmanager.initd @@ -0,0 +1,110 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: network-manager +# Required-Start: $remote_fs dbus udev +# Required-Stop: $remote_fs dbus udev +# Should-Start: $syslog +# Should-Stop: $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: network connection manager +# Description: Daemon for automatically switching network +# connections to the best available connection. +### END INIT INFO + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DESC="network connection manager" +NAME="NetworkManager" + +DAEMON=/usr/sbin/$NAME + +PIDFILE=/run/$NAME/$NAME.pid + +SCRIPTNAME=/etc/init.d/network-manager + +. /etc/init.d/functions || exit 1 + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +log_daemon_msg() { + echo -n $* +} + +log_end_msg() { + if [ $1 -eq 0 ]; then + success + else + failure + fi + echo +} + +log_progress_msg () { + if [ -z "${1:-}" ]; then + return 1 + fi + echo -n " $@" +} + +# +# Function that starts the daemon/service. +# +d_start() { + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --exec $DAEMON -- $DAEMON_OPTS +} + +# +# Function that stops the daemon/service. +# +d_stop() { + start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE \ + --exec $DAEMON +} + +d_reload() { + start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE \ + --exec $DAEMON +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + d_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_progress_msg "already started" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + d_stop + case "$?" in + 0) log_end_msg 0 ;; + 1) log_progress_msg "already stopped" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + ;; + reload|force-reload) + log_daemon_msg "Reloading $DESC" "$NAME" + d_reload + log_end_msg $? + ;; + restart) + $0 stop + $0 start + ;; + status) + status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 |