From 1c2380dee3b2f3866f722e17368332a5a595ea3a Mon Sep 17 00:00:00 2001 From: Clayton Craft <clayton@craftyguy.net> Date: Mon, 4 Nov 2024 18:15:27 -0800 Subject: [PATCH] systemd/networkmanager: upgrade to 1.50 and rebase APKBUILD (MR 5761) APKBUILD was rebased onto the latest verstion in Alpine aports (1.50.0-r3) [ci:skip-build]: bug in CI prevents it from completing, but builds fine locally --- extra-repos/systemd/networkmanager/APKBUILD | 81 +++++++++---------- .../networkmanager-wifi.post-install | 14 ++++ .../networkmanager.post-install | 16 ++++ .../networkmanager.post-upgrade | 15 ++++ 4 files changed, 85 insertions(+), 41 deletions(-) create mode 100644 extra-repos/systemd/networkmanager/networkmanager-wifi.post-install create mode 100644 extra-repos/systemd/networkmanager/networkmanager.post-install create mode 100644 extra-repos/systemd/networkmanager/networkmanager.post-upgrade diff --git a/extra-repos/systemd/networkmanager/APKBUILD b/extra-repos/systemd/networkmanager/APKBUILD index 4f34d215096..c274c671bb9 100644 --- a/extra-repos/systemd/networkmanager/APKBUILD +++ b/extra-repos/systemd/networkmanager/APKBUILD @@ -2,9 +2,9 @@ # integrates with logind for sleepmonitor and sessionmonitor. pkgname=networkmanager -pkgver=9991.48.2 -_pkgver=1.48.2 -pkgrel=2 +pkgver=9991.50.0 +_pkgver=1.50.0 +pkgrel=1 pkgdesc="Network Management daemon" url="https://wiki.gnome.org/Projects/NetworkManager" arch="all" @@ -41,6 +41,7 @@ makedepends=" systemd-dev util-linux-dev vala + wireless-regdb " checkdepends=" bash @@ -52,12 +53,15 @@ checkdepends=" install=" $pkgname.pre-install $pkgname.pre-upgrade + $pkgname.post-install + $pkgname.post-upgrade " subpackages=" $pkgname-dbg libnm $pkgname-dev - $pkgname-elogind + $pkgname-gtkdoc + $pkgname-doc $pkgname-lang $pkgname-systemd $pkgname-adsl @@ -86,16 +90,6 @@ _plugindir="usr/lib/NetworkManager/$_pkgver" build() { msg 'Building with systemd' - _build output \ - -Dsession_tracking=systemd \ - -Dsuspend_resume=systemd \ - -Dsystemd_journal=true \ - -Dtests="$(want_check && echo yes || echo no)" -} - -_build() { - local outdir=$1; shift - abuild-meson \ -Db_lto=true \ -Dconfig_dhcp_default=internal \ @@ -104,7 +98,7 @@ _build() { -Ddbus_conf_dir=/usr/share/dbus-1/system.d \ -Ddhcpcd=true \ -Ddnsmasq=/usr/sbin/dnsmasq \ - -Ddocs=false \ + -Ddocs=true \ -Difupdown=true \ -Diptables=/sbin/iptables \ -Diwd=true \ @@ -114,23 +108,24 @@ _build() { -Dofono=true \ -Dpolkit=true \ -Dpppd=/usr/sbin/pppd \ - -Dpppd_plugin_dir=/usr/lib/pppd/2.5.0 \ + -Dpppd_plugin_dir=/usr/lib/pppd/2.5.1 \ -Dqt=false \ -Dselinux=false \ -Dsystemdsystemunitdir=/usr/lib/systemd/system \ - -Dtests=no \ -Dudev_dir=/usr/lib/udev \ -Dvapi=true \ - "$@" \ - . "$outdir" - - meson compile -C "$outdir" + -Dsession_tracking=systemd \ + -Dsuspend_resume=systemd \ + -Dsystemd_journal=true \ + -Dtests="$(want_check && echo yes || echo no)" \ + . output + meson compile -C output } check() { XDG_RUNTIME_DIR="$(mktemp -d -p "$builddir")" \ dbus-run-session -- \ - meson test -t 4 --no-rebuild --print-errorlogs -C output-elogind + meson test -t 4 --no-rebuild --print-errorlogs -C output } package() { @@ -138,8 +133,7 @@ package() { libnm=$pkgver-r$pkgrel dbus " - provides="networkmanager-common" - provider_priority=500 + replaces="$pkgname-common" DESTDIR="$pkgdir" meson install --no-rebuild -C output @@ -150,6 +144,16 @@ package() { "$pkgdir/usr/share/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules" mv "$pkgdir/usr/share/doc/NetworkManager" "$pkgdir/usr/share/doc/$pkgname" + + # post-install message + cat > "$pkgdir"/usr/share/doc/$pkgname/README.alpine <<-EOF + To modify system network connections without the root password: add your user account to the 'plugdev' group, or use Polkit. + + To use iwd instead of the default wpa_supplicant install iwd, start its service and add the following to your /etc/NetworkManager/NetworkManager.conf: + + [device] + wifi.backend=iwd + EOF } dev() { @@ -160,38 +164,33 @@ dev() { libnm() { pkgdesc="GObject-based client library for NetworkManager" - replaces_priority=200 + depends="" + replaces="$pkgname<1.34.0-r3 $pkgname-elogind<1.34.0-r3" amove usr/lib/libnm.so* } -elogind() { - pkgdesc="NetworkManager with logind support" - depends="$pkgname" - - mkdir -p "$subpkgdir" -} - adsl() { _default_plugin pkgdesc="ADSL device plugin for NetworkManager" + install_if="$pkgname=$pkgver-r$pkgrel ppp-pppoe" } bluetooth() { _default_plugin pkgdesc="BlueTooth device plugin for NetworkManager" - depends="$depends bluez" + install_if="$pkgname=$pkgver-r$pkgrel bluez" } ovs() { _default_plugin pkgdesc="Open vSwitch device plugin for NetworkManager" - depends="$depends openvswitch" + install_if="$pkgname=$pkgver-r$pkgrel openvswitch" } ppp() { pkgdesc="PPP plugin for NetworkManager" - depends="$pkgname=$pkgver-r$pkgrel" + install_if="$pkgname=$pkgver-r$pkgrel ppp" amove $_plugindir/libnm-ppp-plugin.so amove usr/lib/pppd/*/nm-pppd-plugin.so @@ -200,13 +199,14 @@ ppp() { wifi() { _default_plugin pkgdesc="WiFi device plugin for NetworkManager" - depends="$depends wireless-regdb" + install_if="$pkgname=$pkgver-r$pkgrel wireless-regdb" + install="$subpkgname.post-install" } wwan() { _default_plugin pkgdesc="Mobile broadband device plugin for NetworkManager" - depends="$depends mobile-broadband-provider-info" + install_if="$pkgname=$pkgver-r$pkgrel mobile-broadband-provider-info" } cli() { @@ -239,14 +239,13 @@ gtkdoc() { dnsmasq() { pkgdesc="Support for NetworkManager dnsmasq features" - depends="$pkgname=$pkgver-r$pkgrel dnsmasq-dnssec-dbus" + install_if="$pkgname=$pkgver-r$pkgrel dnsmasq" + depends="dnsmasq-dnssec-dbus" mkdir -p "$subpkgdir" } _default_plugin() { - depends="$pkgname=$pkgver-r$pkgrel" - amove $_plugindir/libnm*-${subpkgname#"$pkgname"-}.so } @@ -256,7 +255,7 @@ systemd() { } sha512sums=" -81ed641365183a03fe06346569939b164a0f7446694eb6c2790fef0118897987e494e3d75214df3e35f77f9c0f65375d4f867e942503f5a9ef11b46e9ba6b57d NetworkManager-1.48.2.tar.xz +4b4cc15a13525112f0328f2b3f566f1584caa6dae6a650535dd3ea8b2df100f0d76b4d9e8ee3989afb9f7ed3fd21b175d9c3c19789318f2d1db409480fa755df NetworkManager-1.50.0.tar.xz 0f79016bf717dea43830962f524deae8d1cedc274376e40bd912ebe63208c5b1c3b7a5aa14379da19020c587dbd5588df2f0066ca1540070a226983a43e4159b networkmanager.conf 9820ed2ead0af689644842de57657bb10330a1eaff0e85b21ae9913f55e399e47d8b41b0a12956f30de80272b4424c6e55f33acbc88e156879003a260bf576f6 networkmanager.rules " diff --git a/extra-repos/systemd/networkmanager/networkmanager-wifi.post-install b/extra-repos/systemd/networkmanager/networkmanager-wifi.post-install new file mode 100644 index 00000000000..dad1236c9bd --- /dev/null +++ b/extra-repos/systemd/networkmanager/networkmanager-wifi.post-install @@ -0,0 +1,14 @@ +#!/bin/sh + +cat >&2 <<EOF +* +* To control WiFi devices, install either 'wpa_supplicant' or 'iwd' package, +* enable and start the corresponding service (rc-update add <name>; +* rc-service <name> start), and restart networkmanager. +* +* If you chose iwd, you have to also add 'wifi.backend=iwd' into section +* '[device]' in /etc/NetworkManager/NetworkManager.conf. +* +EOF + +exit 0 diff --git a/extra-repos/systemd/networkmanager/networkmanager.post-install b/extra-repos/systemd/networkmanager/networkmanager.post-install new file mode 100644 index 00000000000..9921a6a822e --- /dev/null +++ b/extra-repos/systemd/networkmanager/networkmanager.post-install @@ -0,0 +1,16 @@ +#!/bin/sh + +cat >&2 <<EOF +* +* To modify system network connections without the root password, add your user +* account to the 'plugdev' group. +* +* If you use wifi, bluetooth, ppp, wwan (mobile broadband), adsl or ovs (Open +* vSwitch), install the corresponding plugin: apk add networkmanager-<name>. +* +* If you use NetworkManager features which require dnsmasq, you need to install +* dnsmasq support: apk add networkmanager-dnsmasq +* +EOF + +exit 0 diff --git a/extra-repos/systemd/networkmanager/networkmanager.post-upgrade b/extra-repos/systemd/networkmanager/networkmanager.post-upgrade new file mode 100644 index 00000000000..376382acc5d --- /dev/null +++ b/extra-repos/systemd/networkmanager/networkmanager.post-upgrade @@ -0,0 +1,15 @@ +#!/bin/sh + +ver_old=$2 + +if [ "$(apk version -t "$ver_old" '1.34.0-r3')" = '<' ]; then + cat >&2 <<-EOF + * + * NetworkManager plugins adsl, bluetooth, ovs, ppp, wwan (mobile broadband), + * and wifi have been split into subpackages. If you use some of them, install + * the corresponding packages (e.g. 'apk add networkmanager-wifi'). + * + EOF +fi + +exit 0 -- GitLab