summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-networking/recipes-connectivity/networkmanager
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-networking/recipes-connectivity/networkmanager')
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-libnm-client-test-add-dependency-libnm_client_public.patch34
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.38.0.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.36.2.bb)136
2 files changed, 93 insertions, 77 deletions
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-libnm-client-test-add-dependency-libnm_client_public.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-libnm-client-test-add-dependency-libnm_client_public.patch
deleted file mode 100644
index 6be2d4bed1..0000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-libnm-client-test-add-dependency-libnm_client_public.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 7b5dc04e1fcc28dc653fb7bf0e9dda3700d93218 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Tue, 3 May 2022 15:30:37 +0800
-Subject: [PATCH] libnm-client-test: add dependency libnm_client_public_dep
-
-Fix parallel build error:
-| In file included from ../NetworkManager-1.36.0/src/libnm-client-test/nm-test-utils-impl.c:10:
-| ../NetworkManager-1.36.0/src/libnm-client-public/NetworkManager.h:47:10: fatal error: nm-enum-types.h: No such file or directory
-| 47 | #include "nm-enum-types.h"
-| | ^~~~~~~~~~~~~~~~~
-
-Upstream-Status: Submitted
-[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1206]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/libnm-client-test/meson.build | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/libnm-client-test/meson.build b/src/libnm-client-test/meson.build
-index 8e2fba1130..bcac437702 100644
---- a/src/libnm-client-test/meson.build
-+++ b/src/libnm-client-test/meson.build
-@@ -13,6 +13,7 @@ libnm_client_test = static_library(
- ],
- dependencies: [
- libnm_core_public_dep,
-+ libnm_client_public_dep,
- glib_dep,
- ],
- )
---
-2.25.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.36.2.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.38.0.bb
index 6c665d53bb..d52ad6e6ce 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.36.2.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.38.0.bb
@@ -19,6 +19,7 @@ DEPENDS = " \
curl \
dbus \
"
+DEPENDS:append:class-target = " bash-completion"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gettext update-rc.d systemd gobject-introspection gtk-doc update-alternatives upstream-version-is-even
@@ -29,9 +30,8 @@ SRC_URI = " \
file://enable-dhcpcd.conf \
file://enable-iwd.conf \
file://0001-do-not-ask-host-for-ifcfg-defaults.patch \
- file://0001-libnm-client-test-add-dependency-libnm_client_public.patch \
"
-SRC_URI[sha256sum] = "ab855cbe3b41832e9a3b003810e7c7313dfe19e630d29806d14d87fdd1470cab"
+SRC_URI[sha256sum] = "82a4cf07ddfeb0816787b67c0f5058ae6c50d6259c0b0541a24e35156062b2ef"
S = "${WORKDIR}/NetworkManager-${PV}"
@@ -41,6 +41,10 @@ NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT ??= "auto"
# ['dhcpcanon', 'dhclient', 'dhcpcd', 'internal', 'nettools']
NETWORKMANAGER_DHCP_DEFAULT ??= "internal"
+# The default gets detected based on whether /usr/sbin/nft or /usr/sbin/iptables is installed, with nftables preferred.
+# ['', 'iptables', 'nftables']
+NETWORKMANAGER_FIREWALL_DEFAULT ??= "nftables"
+
EXTRA_OEMESON = "\
-Difcfg_rh=false \
-Dtests=yes \
@@ -71,7 +75,6 @@ PACKAGECONFIG ??= "readline nss ifupdown dnsmasq nmcli vala \
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', '', d)} \
"
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'nmcli', 'bash-completion', '', d)}
inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)}
PACKAGECONFIG[systemd] = "\
@@ -83,11 +86,12 @@ PACKAGECONFIG[bluez5] = "-Dbluez5_dun=true,-Dbluez5_dun=false,bluez5"
# consolekit is not picked by shlibs, so add it to RDEPENDS too
PACKAGECONFIG[consolekit] = "-Dsession_tracking_consolekit=true,-Dsession_tracking_consolekit=false,consolekit,consolekit"
PACKAGECONFIG[modemmanager] = "-Dmodem_manager=true,-Dmodem_manager=false,modemmanager mobile-broadband-provider-info"
-PACKAGECONFIG[ppp] = "-Dppp=true,-Dppp=false,ppp,ppp"
+PACKAGECONFIG[ppp] = "-Dppp=true,-Dppp=false,ppp"
PACKAGECONFIG[dnsmasq] = "-Ddnsmasq=${bindir}/dnsmasq"
PACKAGECONFIG[nss] = "-Dcrypto=nss,,nss"
PACKAGECONFIG[resolvconf] = "-Dresolvconf=${base_sbindir}/resolvconf,-Dresolvconf=no,,resolvconf"
PACKAGECONFIG[gnutls] = "-Dcrypto=gnutls,,gnutls"
+PACKAGECONFIG[crypto-null] = "-Dcrypto=null"
PACKAGECONFIG[wifi] = "-Dwext=true -Dwifi=true,-Dwext=false -Dwifi=false"
PACKAGECONFIG[iwd] = "-Diwd=true,-Diwd=false"
PACKAGECONFIG[ifupdown] = "-Difupdown=true,-Difupdown=false"
@@ -105,25 +109,42 @@ PACKAGECONFIG[concheck] = "-Dconcheck=true,-Dconcheck=false"
PACKAGES =+ " \
+ libnm \
${PN}-adsl \
${PN}-bluetooth \
${PN}-cloud-setup \
- ${PN}-nmcli ${PN}-nmcli-doc \
- ${PN}-nmtui ${PN}-nmtui-doc \
+ ${PN}-nmcli \
+ ${PN}-nmcli-bash-completion \
+ ${PN}-nmtui \
${PN}-wifi \
${PN}-wwan \
- ${PN}-ovs ${PN}-ovs-doc \
+ ${PN}-ovs \
${PN}-ppp \
+ ${PN}-daemon \
"
-SYSTEMD_PACKAGES = "${PN} ${PN}-cloud-setup"
+SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-cloud-setup"
+INITSCRIPT_PACKAGES = "${PN}-daemon"
NETWORKMANAGER_PLUGINDIR = "${libdir}/NetworkManager/${PV}"
+NETWORKMANAGER_DISPATCHERDIR = "${nonarch_libdir}/NetworkManager/dispatcher.d"
+
+SUMMARY:libnm = "Libraries for adding NetworkManager support to applications"
+FILES:libnm = "\
+ ${libdir}/libnm.so.* \
+ ${libdir}/girepository-1.0/NM-1.0.typelib \
+"
+
+SUMMARY:${PN}-adsl = "ADSL device plugin for NetworkManager"
FILES:${PN}-adsl = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-adsl.so"
+RDEPENDS:${PN}-adsl += "${PN}-daemon"
+SUMMARY:${PN}-bluetooth = "Bluetooth device plugin for NetworkManager"
FILES:${PN}-bluetooth = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-bluetooth.so"
+RDEPENDS:${PN}-bluetooth += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG', 'bluez5', '${PN}-wwan bluez5', '', d)}"
+SUMMARY:${PN}-cloud-setup = "Automatically configure NetworkManager in cloud"
FILES:${PN}-cloud-setup = " \
${libexecdir}/nm-cloud-setup \
${systemd_system_unitdir}/nm-cloud-setup.service \
@@ -131,75 +152,117 @@ FILES:${PN}-cloud-setup = " \
${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \
${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh \
"
+RDEPENDS:${PN}-cloud-setup += "${PN}-daemon"
ALLOW_EMPTY:${PN}-cloud-setup = "1"
SYSTEMD_SERVICE:${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONFIG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}"
+SUMMARY:${PN}-nmcli = "NetworkManager command line client"
FILES:${PN}-nmcli = " \
${bindir}/nmcli \
"
+RDEPENDS:${PN}-nmcli += "${PN}-daemon"
-FILES:${PN}-nmcli-doc = " \
- ${mandir}/man1/nmcli* \
-"
+SUMMARY:${PN}-nmcli-bash-completion = "NetworkManager command line client bash completion"
+FILES:${PN}-nmcli-bash-completion = "${datadir}/bash-completion/completions/nmcli"
+RDEPENDS:${PN}-nmcli-bash-completion = "bash-completion"
+SUMMARY:${PN}-nmtui = "NetworkManager curses-based UI"
FILES:${PN}-nmtui = " \
${bindir}/nmtui \
${bindir}/nmtui-edit \
${bindir}/nmtui-connect \
${bindir}/nmtui-hostname \
"
+RDEPENDS:${PN}-nmtui += "${PN}-daemon"
-FILES:${PN}-nmtui-doc = " \
- ${mandir}/man1/nmtui* \
+SUMMARY:${PN}-wifi = "Wifi plugin for NetworkManager"
+FILES:${PN}-wifi = "\
+ ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wifi.so \
+ ${libdir}/NetworkManager/conf.d/enable-iwd.conf \
"
-
-FILES:${PN}-wifi = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wifi.so"
-
+def get_wifi_deps(d):
+ packageconfig = (d.getVar('PACKAGECONFIG') or "").split()
+ if 'wifi' in packageconfig:
+ if 'iwd' in packageconfig:
+ return 'iwd'
+ else:
+ return 'wpa-supplicant'
+ else:
+ return ''
+RDEPENDS:${PN}-wifi += "${PN}-daemon ${@get_wifi_deps(d)}"
+
+SUMMARY:${PN}-wwan = "Mobile broadband device plugin for NetworkManager"
FILES:${PN}-wwan = "\
${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wwan.so \
${NETWORKMANAGER_PLUGINDIR}/libnm-wwan.so \
"
+RDEPENDS:${PN}-wwan += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','modemmanager','modemmanager','',d)}"
+SUMMARY:${PN}-ovs = "Open vSwitch device plugin for NetworkManager"
FILES:${PN}-ovs = "\
${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-ovs.so \
${systemd_system_unitdir}/NetworkManager.service.d/NetworkManager-ovs.conf \
"
+RDEPENDS:${PN}-ovs += "${PN}-daemon"
-FILES:${PN}-ovs-doc = "\
- ${mandir}/man7/nm-openvswitch.7* \
-"
-
+SUMMARY:${PN}-ppp = "PPP plugin for NetworkManager"
FILES:${PN}-ppp = "\
${NETWORKMANAGER_PLUGINDIR}/libnm-ppp-plugin.so \
${libdir}/pppd/*/nm-pppd-plugin.so \
"
+RDEPENDS:${PN}-ppp += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','ppp','ppp','',d)}"
FILES:${PN}-dev += " \
${libdir}/pppd/*/*.la \
${libdir}/NetworkManager/*.la \
${NETWORKMANAGER_PLUGINDIR}/*.la \
+ ${datadir}/dbus-1/interfaces/*.xml \
"
-FILES:${PN} += " \
- ${libexecdir} \
+SUMMARY:${PN}-daemon += "The NetworkManager daemon"
+FILES:${PN}-daemon += " \
+ ${bindir}/nm-online \
+ ${datadir}/dbus-1 \
+ ${datadir}/polkit-1 \
${libdir}/NetworkManager \
- ${nonarch_libdir}/firewalld/zones \
+ ${libexecdir} \
+ ${localstatedir}/lib/NetworkManager \
+ ${NETWORKMANAGER_DISPATCHERDIR} \
+ ${nonarch_base_libdir}/udev/* \
+ ${nonarch_libdir}/firewalld \
${nonarch_libdir}/NetworkManager/conf.d \
- ${nonarch_libdir}/NetworkManager/dispatcher.d \
${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \
${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \
${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \
- ${nonarch_libdir}/NetworkManager/VPN \
${nonarch_libdir}/NetworkManager/system-connections \
- ${datadir}/polkit-1 \
- ${datadir}/dbus-1 \
- ${nonarch_base_libdir}/udev/* \
+ ${nonarch_libdir}/NetworkManager/VPN \
+ ${sbindir}/NetworkManager \
+ ${sysconfdir}/init.d/network-manager \
+ ${sysconfdir}/NetworkManager \
${systemd_system_unitdir} \
"
+RRECOMMENDS:${PN}-daemon += "\
+ ${NETWORKMANAGER_FIREWALL_DEFAULT} \
+ ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
+"
+INITSCRIPT_NAME:${PN}-daemon = "network-manager"
+SYSTEMD_SERVICE:${PN}-daemon = "\
+ NetworkManager.service \
+ NetworkManager-dispatcher.service \
+"
+RCONFLICTS:${PN}-daemon += "connman"
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE:${PN}-daemon = "${@bb.utils.contains('DISTRO_FEATURES','systemd','resolv-conf','',d)}"
+ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv-conf.NetworkManager','',d)}"
+ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv.conf','',d)}"
+
+# The networkmanager package is an empty meta package which weakly depends on all the compiled features.
+# Install this package to get all plugins and related dependencies installed. Alternatively just install
+# plugins and related dependencies e.g. by installing networkmanager-wifi or networkmanager-wwan
+# packages to the firmware.
+ALLOW_EMPTY:${PN} = "1"
RRECOMMENDS:${PN} += "\
- iptables \
- ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
${@bb.utils.contains('PACKAGECONFIG','adsl','${PN}-adsl','',d)} \
${@bb.utils.contains('PACKAGECONFIG','bluez5','${PN}-bluetooth','',d)} \
${@bb.utils.contains('PACKAGECONFIG','cloud-setup','${PN}-cloud-setup','',d)} \
@@ -210,19 +273,6 @@ RRECOMMENDS:${PN} += "\
${@bb.utils.contains('PACKAGECONFIG','ovs','${PN}-ovs','',d)} \
${@bb.utils.contains('PACKAGECONFIG','ppp','${PN}-ppp','',d)} \
"
-RCONFLICTS:${PN} = "connman"
-
-
-INITSCRIPT_NAME = "network-manager"
-SYSTEMD_SERVICE:${PN} = "\
- NetworkManager.service \
- NetworkManager-dispatcher.service \
-"
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','resolv-conf','',d)}"
-ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv-conf.NetworkManager','',d)}"
-ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv.conf','',d)}"
do_install:append() {
install -Dm 0755 ${WORKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/network-manager