mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-08-25 17:32:06 +00:00
networkmanager: upgrade 1.56.0 -> 1.58.0
Bump to the nm-1-58 stable branch. CVE-2026-10805 and the DHCPv4
out-of-bounds read fix are both already included in the 1.58.0 tag
(verified via git merge-base --is-ancestor against upstream), so no
backport patch is required.
- 0002-meson-fix-cross-compilation-issues.patch dropped: merged
upstream verbatim as commit e5d2c7c by the same author, and is an
ancestor of the 1.58.0 tag.
- 0001-linker-scripts-Do-not-export-_IO_stdin_used.patch kept, still
needed, applies with offset only.
- dhclient support was removed upstream (all: drop dhclient code and
build configuration); drop PACKAGECONFIG[dhclient] and update the
NETWORKMANAGER_DHCP_DEFAULT comment accordingly.
- Wireless Extensions (wext) meson option is deprecated and now
errors on -Dwext=true; drop it from PACKAGECONFIG[wifi], keeping
only -Dwifi.
- New CLAT feature defaults to enabled in meson_options.txt and pulls
in libbpf >= 1.3.0; add PACKAGECONFIG[clat] but leave it out of the
default PACKAGECONFIG set so it stays disabled and avoids a new
hard dependency.
- Package the new nm-initrd-generator.sh systemd generator directory
under ${PN}-daemon and make bash an unconditional RDEPENDS since
the generator script requires it regardless of the ifupdown
PACKAGECONFIG setting.
Build-verified: networkmanager and its openvpn/openconnect/
fortisslvpn plugin recipes all build successfully.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
-69
@@ -1,69 +0,0 @@
|
||||
From 49cc7ebaf3ed86b693ac80c76a28ba0db7406374 Mon Sep 17 00:00:00 2001
|
||||
From: Andrej Kozemcak <andrej.kozemcak@siemens.com>
|
||||
Date: Mon, 9 Mar 2026 15:50:26 +0100
|
||||
Subject: [PATCH] meson: fix cross-compilation issues
|
||||
|
||||
Strip newline from GI_TYPELIB_PATH and LD_LIBRARY_PATH
|
||||
run_command().stdout() returns the raw shell output including a trailing
|
||||
newline. When the value is used to build a colon-separated path, the newline
|
||||
gets embedded at the end of the last path component, making the directory
|
||||
invalid and causing GObject Introspection to fail with:
|
||||
|
||||
ImportError: Typelib file for namespace 'Gio', version '2.0' not found
|
||||
|
||||
Use .strip() to remove leading/trailing whitespace from both env variable
|
||||
reads.
|
||||
|
||||
Fix jansson SONAME detection for cross-compilation
|
||||
When cross-compiling, jansson's pkg-config 'libdir' variable returns a
|
||||
path relative to the sysroot (e.g., /usr/lib) without the actual sysroot
|
||||
prefix. The host readelf binary cannot find the library at that path.
|
||||
|
||||
Fix this by using meson.get_external_property('sys_root', '') to obtain
|
||||
the sysroot path set by the cross-compilation environment and prepend it
|
||||
to the library path before calling readelf.
|
||||
|
||||
Upstream-Status: Submitted [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2380]
|
||||
Signed-off-by: Andrej Kozemcak <andrej.kozemcak@siemens.com>
|
||||
---
|
||||
meson.build | 3 ++-
|
||||
src/libnm-client-impl/meson.build | 4 ++--
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 8b0334240d..75f6871dd2 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -296,7 +296,8 @@ config_h.set10('WITH_JANSSON', jansson_dep.found())
|
||||
jansson_msg = 'no'
|
||||
if jansson_dep.found()
|
||||
jansson_libdir = jansson_dep.get_variable(pkgconfig: 'libdir')
|
||||
- res = run_command(find_program('eu-readelf', 'readelf'), '-d', join_paths(jansson_libdir, 'libjansson.so'), check: false)
|
||||
+ jansson_sysroot = meson.is_cross_build() ? meson.get_external_property('sys_root', '') : ''
|
||||
+ res = run_command(find_program('eu-readelf', 'readelf'), '-d', jansson_sysroot + join_paths(jansson_libdir, 'libjansson.so'), check: false)
|
||||
jansson_soname = ''
|
||||
foreach line: res.stdout().split('\n')
|
||||
if line.strip().contains('SONAME')
|
||||
diff --git a/src/libnm-client-impl/meson.build b/src/libnm-client-impl/meson.build
|
||||
index 3352ebfee0..329078ab46 100644
|
||||
--- a/src/libnm-client-impl/meson.build
|
||||
+++ b/src/libnm-client-impl/meson.build
|
||||
@@ -167,13 +167,13 @@ if enable_introspection
|
||||
install: true,
|
||||
)
|
||||
|
||||
- gi_typelib_path = run_command('printenv', 'GI_TYPELIB_PATH', check: false).stdout()
|
||||
+ gi_typelib_path = run_command('printenv', 'GI_TYPELIB_PATH', check: false).stdout().strip()
|
||||
if gi_typelib_path != ''
|
||||
gi_typelib_path = ':' + gi_typelib_path
|
||||
endif
|
||||
gi_typelib_path = meson.current_build_dir() + gi_typelib_path
|
||||
|
||||
- ld_library_path = run_command('printenv', 'LD_LIBRARY_PATH', check: false).stdout()
|
||||
+ ld_library_path = run_command('printenv', 'LD_LIBRARY_PATH', check: false).stdout().strip()
|
||||
if ld_library_path != ''
|
||||
ld_library_path = ':' + ld_library_path
|
||||
endif
|
||||
--
|
||||
2.47.3
|
||||
|
||||
+7
-7
@@ -38,20 +38,19 @@ DEPENDS:append:class-target = " bash-completion"
|
||||
inherit meson gettext update-rc.d systemd gobject-introspection update-alternatives upstream-version-is-even pkgconfig
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/NetworkManager/NetworkManager.git;protocol=https;branch=nm-1-56;tag=${PV} \
|
||||
git://github.com/NetworkManager/NetworkManager.git;protocol=https;branch=nm-1-58;tag=${PV} \
|
||||
file://${BPN}.initd \
|
||||
file://enable-dhcpcd.conf \
|
||||
file://enable-iwd.conf \
|
||||
file://0002-meson-fix-cross-compilation-issues.patch \
|
||||
"
|
||||
SRC_URI:append:libc-musl = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' file://0001-linker-scripts-Do-not-export-_IO_stdin_used.patch', '', d)}"
|
||||
|
||||
SRCREV = "56b51b98fbb8627c4c09a483702e18fd8aee7ce1"
|
||||
SRCREV = "61302aac7f2e7411f3b42159544926484eacd37e"
|
||||
|
||||
# ['auto', 'symlink', 'file', 'netconfig', 'resolvconf']
|
||||
NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT ??= "auto"
|
||||
|
||||
# ['dhclient', 'dhcpcd', 'internal', 'nettools']
|
||||
# ['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.
|
||||
@@ -96,7 +95,7 @@ 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[wifi] = "-Dwifi=true,-Dwifi=false"
|
||||
PACKAGECONFIG[iwd] = "-Diwd=true,-Diwd=false"
|
||||
PACKAGECONFIG[ifupdown] = "-Difupdown=true,-Difupdown=false"
|
||||
PACKAGECONFIG[cloud-setup] = "-Dnm_cloud_setup=true,-Dnm_cloud_setup=false,jansson"
|
||||
@@ -109,13 +108,13 @@ PACKAGECONFIG[audit] = "-Dlibaudit=yes,-Dlibaudit=no,audit"
|
||||
PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux"
|
||||
PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false"
|
||||
PACKAGECONFIG[dhcpcd] = "-Ddhcpcd=${base_sbindir}/dhcpcd,-Ddhcpcd=no,,dhcpcd"
|
||||
PACKAGECONFIG[dhclient] = "-Ddhclient=yes,-Ddhclient=no,,dhcp"
|
||||
PACKAGECONFIG[concheck] = "-Dconcheck=true,-Dconcheck=false"
|
||||
PACKAGECONFIG[adsl] = ",,"
|
||||
PACKAGECONFIG[wwan] = ",,"
|
||||
# The following PACKAGECONFIG is used to determine whether NM is managing /etc/resolv.conf itself or not
|
||||
PACKAGECONFIG[man-resolv-conf] = ",,"
|
||||
PACKAGECONFIG[nbft] = "-Dnbft=true,-Dnbft=false"
|
||||
PACKAGECONFIG[clat] = "-Dclat=true,-Dclat=false,libbpf"
|
||||
|
||||
|
||||
PACKAGES =+ " \
|
||||
@@ -252,9 +251,10 @@ FILES:${PN}-daemon += " \
|
||||
${sysconfdir}/resolv-conf.NetworkManager \
|
||||
${sysconfdir}/sysconfig/network-scripts \
|
||||
${systemd_system_unitdir} \
|
||||
${systemd_unitdir}/system-generators \
|
||||
"
|
||||
RDEPENDS:${PN}-daemon += "\
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'ifupdown', 'bash', '', d)} \
|
||||
bash \
|
||||
"
|
||||
RRECOMMENDS:${PN}-daemon += "\
|
||||
${NETWORKMANAGER_FIREWALL_DEFAULT} \
|
||||
Reference in New Issue
Block a user