aboutsummaryrefslogtreecommitdiffstats
path: root/community/networkmanager/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/networkmanager/APKBUILD')
-rw-r--r--community/networkmanager/APKBUILD296
1 files changed, 241 insertions, 55 deletions
diff --git a/community/networkmanager/APKBUILD b/community/networkmanager/APKBUILD
index 26f6f8761d4..7acfb1523cc 100644
--- a/community/networkmanager/APKBUILD
+++ b/community/networkmanager/APKBUILD
@@ -1,124 +1,310 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=networkmanager
-pkgver=1.32.4
+pkgver=1.46.0
pkgrel=0
pkgdesc="Network Management daemon"
url="https://wiki.gnome.org/Projects/NetworkManager"
-# mips64, s390x and riscv64 blocked by polkit
-arch="all !mips64 !s390x !riscv64"
+arch="all"
license="GPL-2.0-or-later"
-depends="iptables dbus mobile-broadband-provider-info"
-install="$pkgname.pre-install $pkgname.pre-upgrade"
-makedepends="$depends_dev
+depends="
+ $pkgname-common=$pkgver-r$pkgrel
+ libnm=$pkgver-r$pkgrel
+ dbus
+ "
+depends_dev="$pkgname=$pkgver-r$pkgrel libnm=$pkgver-r$pkgrel"
+makedepends="
+ bash
curl-dev
dbus-glib-dev
+ elogind-dev
eudev-dev
- libgudev-dev
+ gettext-dev
+ gnutls-dev
gobject-introspection-dev
- intltool
+ gtk-doc
+ jansson-dev
+ libgudev-dev
libndp-dev
libnl3-dev
- libsoup-dev
- libteam-dev
+ libpsl-dev
+ libxslt
linux-headers
+ meson
+ mobile-broadband-provider-info
modemmanager-dev
newt-dev
nss-dev
- gnutls-dev
+ openresolv
+ perl
polkit-dev
ppp-dev
+ py3-gobject3
+ python3
readline-dev
util-linux-dev
- jansson-dev
vala
- meson
- py3-gobject3
- libpsl-dev
- python3
+ "
+checkdepends="
+ bash
+ dbus
+ iproute2-minimal
+ iproute2-tc
+ py3-dbus
+ "
+install="
+ $pkgname.pre-install
+ $pkgname.pre-upgrade
+ $pkgname.post-install
+ $pkgname.post-upgrade
"
subpackages="
+ $pkgname-dbg
+ libnm
$pkgname-dev
+ $pkgname-gtkdoc
$pkgname-doc
$pkgname-lang
$pkgname-openrc
- $pkgname-bash-completion:bashcomp:noarch
+ $pkgname-elogind
+ $pkgname-adsl
+ $pkgname-bluetooth
+ $pkgname-ovs
+ $pkgname-ppp
+ $pkgname-wwan
+ $pkgname-wifi
+ $pkgname-cli
+ $pkgname-tui
+ $pkgname-initrd-generator:initrd_generator
+ $pkgname-bash-completion
+ $pkgname-common
+ $pkgname-dnsmasq
"
source="https://download.gnome.org/sources/NetworkManager/${pkgver:0:4}/NetworkManager-$pkgver.tar.xz
+ wwan-no-libsystemd.patch
$pkgname.conf
$pkgname.initd
$pkgname.rules
+ $pkgname-dispatcher.initd
"
-options="!check" # fail to compile on musl
+builddir="$srcdir/NetworkManager-$pkgver"
+
+# on the builders:
+# mount("/sys") failed with Operation not permitted (1)
+options="!check"
-builddir="$srcdir"/NetworkManager-$pkgver
+_plugindir="usr/lib/NetworkManager/$pkgver"
build() {
+ msg 'Building without elogind'
+ _build output \
+ -Dsession_tracking=no \
+ -Dsuspend_resume=consolekit
+
+ msg 'Building with elogind'
+ _build output-elogind \
+ -Dsession_tracking=elogind \
+ -Dtests="$(want_check && echo yes || echo no)" \
+ -Dsuspend_resume=elogind
+}
+
+_build() {
+ local outdir=$1; shift
+
abuild-meson \
- -Dsystemdsystemunitdir=no \
- -Dudev_dir=/lib/udev \
- -Diptables=/sbin/iptables \
+ -Db_lto=true \
+ -Dconfig_dhcp_default=internal \
+ -Dconfig_plugins_default=ifupdown \
+ -Dcrypto=nss \
+ -Ddbus_conf_dir=/usr/share/dbus-1/system.d \
+ -Ddhcpcd=true \
-Ddnsmasq=/usr/sbin/dnsmasq \
+ -Ddocs=true \
+ -Difupdown=true \
+ -Diptables=/sbin/iptables \
+ -Diwd=true \
+ -Dlibaudit=no \
-Dmodify_system=true \
+ -Dnft=/usr/sbin/nft \
+ -Dofono=true \
+ -Dpolkit=true \
+ -Dpppd=/usr/sbin/pppd \
+ -Dpppd_plugin_dir=/usr/lib/pppd/2.5.0 \
+ -Dqt=false \
-Dselinux=false \
-Dsystemd_journal=false \
- -Dlibaudit=no \
- -Diwd=true \
- -Dpppd=/usr/sbin/pppd \
- -Dconfig_plugins_default=ifupdown \
- -Difupdown=true \
- -Ddhcpcd=true \
- -Dconfig_dhcp_default=internal \
- -Dvapi=true \
+ -Dsystemdsystemunitdir=no \
-Dtests=no \
- -Dpolkit=true \
- -Dsession_tracking=no \
- -Dqt=false \
- -Dofono=true \
- -Dcrypto=nss \
- -Ddbus_conf_dir=/usr/share/dbus-1/system.d \
- . output
- # fix build with many buildjobs
- ninja -C output introspection/libnmdbus.a
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ -Dudev_dir=/lib/udev \
+ -Dvapi=true \
+ "$@" \
+ . "$outdir"
+
+ meson compile -C "$outdir"
}
check() {
- meson test --no-rebuild -v -C output
+ XDG_RUNTIME_DIR="$(mktemp -d -p "$builddir")" \
+ dbus-run-session -- \
+ meson test -t 4 --no-rebuild --print-errorlogs -C output-elogind
}
package() {
+ provider_priority=100 # highest (other provider is $pkgname-elogind)
+
DESTDIR="$pkgdir" meson install --no-rebuild -C output
install -m755 -D "$srcdir"/networkmanager.initd "$pkgdir"/etc/init.d/networkmanager
+ install -m755 -D "$srcdir"/networkmanager-dispatcher.initd "$pkgdir"/etc/init.d/networkmanager-dispatcher
install -m644 -D "$srcdir/$pkgname.conf" "$pkgdir"/etc/NetworkManager/NetworkManager.conf
+
# allow plugdev users to modify connections
install -m644 -D "$srcdir/$pkgname.rules" \
"$pkgdir/usr/share/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
- mkdir -p "$pkgdir/usr/share/apk-tools/$pkgname"
- # post-install message
+
mv "$pkgdir/usr/share/doc/NetworkManager" "$pkgdir/usr/share/doc/$pkgname"
- 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:
+ # 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() {
+ default_dev
+
+ amove usr/share/dbus-1/interfaces/*.xml
+}
+
+openrc() {
+ default_openrc
+ install_if="openrc $pkgname-common=$pkgver-r$pkgrel"
+}
+
+libnm() {
+ pkgdesc="GObject-based client library for NetworkManager"
+ depends=""
+ replaces="$pkgname<1.34.0-r3 $pkgname-elogind<1.34.0-r3"
+
+ amove usr/lib/libnm.so*
+}
+
+elogind() {
+ pkgdesc="$pkgname (with elogind hibernation support)"
+ provides="$pkgname=$pkgver-r$pkgrel"
+ provider_priority=10 # lowest (other provider is $pkgname)
+ replaces="$pkgname<1.34.0-r3"
+
+ cd "$builddir"/output-elogind
+ install -D -m755 src/core/NetworkManager -t "$subpkgdir"/usr/sbin/
+}
+
+adsl() {
+ _default_plugin
+ pkgdesc="ADSL device plugin for NetworkManager"
+}
+
+bluetooth() {
+ _default_plugin
+ pkgdesc="BlueTooth device plugin for NetworkManager"
+ depends="$depends bluez"
+}
+
+ovs() {
+ _default_plugin
+ pkgdesc="Open vSwitch device plugin for NetworkManager"
+ depends="$depends openvswitch"
+}
+
+ppp() {
+ pkgdesc="PPP plugin for NetworkManager"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove $_plugindir/libnm-ppp-plugin.so
+ amove usr/lib/pppd/*/nm-pppd-plugin.so
+}
+
+# TODO: Add dependency on wpa_supplicant or iwd via some virtual (?).
+wifi() {
+ _default_plugin
+ pkgdesc="WiFi device plugin for NetworkManager"
+ depends="$depends wireless-regdb"
+ install="$subpkgname.post-install"
+}
+
+wwan() {
+ _default_plugin
+ pkgdesc="Mobile broadband device plugin for NetworkManager"
+ depends="$depends mobile-broadband-provider-info"
+}
+
+cli() {
+ pkgdesc="$pkgdesc (command line interface)"
+ depends="$pkgname=$pkgver-r$pkgrel"
-[device]
-wifi.backend=iwd
-EOF
+ amove usr/bin/nmcli
}
-bashcomp() {
+tui() {
+ pkgdesc="$pkgdesc (textbased user interface)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/nmtui*
+}
+
+initrd_generator() {
+ pkgdesc="Early boot NetworkManager configuration generator"
+ depends="" # Q: should it depend on $pkgname?
+ replaces="$pkgname<1.34.0-r3"
+
+ amove usr/libexec/nm-initrd-generator
+}
+
+common() {
+ pkgdesc="Common files for networkmanager and networkmanager-elogind"
depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
+ replaces="$pkgname<1.34.0-r3 $pkgname-elogind<1.34.0-r3"
- amove usr/share/bash-completion
+ # Move all that left to subpackage.
+ amove etc/* lib/* usr/* var/*
+
+ # Move NetworkManager back to the base package (that's the only file
+ # from the networkmanager package that differs between default and
+ # elogind variant).
+ mkdir -p "$pkgdir"/usr/sbin
+ mv "$subpkgdir"/usr/sbin/NetworkManager "$pkgdir"/usr/sbin/
}
+
+gtkdoc() {
+ pkgdesc="$pkgdesc (gtk docs)"
+
+ amove usr/share/gtk-doc
+}
+
+dnsmasq() {
+ pkgdesc="Support for NetworkManager dnsmasq features"
+ depends="$pkgname=$pkgver-r$pkgrel dnsmasq-dnssec-dbus"
+
+ mkdir -p "$subpkgdir"
+}
+
+_default_plugin() {
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove $_plugindir/libnm*-${subpkgname#"$pkgname"-}.so
+}
+
sha512sums="
-95be90d4c8f8f9f58a3c7ad8d8c9b592d2b77f283df58b495fe1b673c4fadd4409f4fc00fc9766343e3ac240dd805583db4f05e6d1f0b367fe22b306227fc684 NetworkManager-1.32.4.tar.xz
+27f234ad5b715ad0ae9d6adcdc91a4499b76fe78d3a5644aced8976588f0e82f2d03daec47589f1313b9802207c784ade67e921d4d2fa3c813cbf727558ad407 NetworkManager-1.46.0.tar.xz
+7056d53372bc15f7a87dbc864dc8c3e0be5e283aeb94e957b2056d9f8298b6426965cbda04b3eaafde633411bcf1dbc862e6837d6fac42c3ed4bd5cc3cef908a wwan-no-libsystemd.patch
0f79016bf717dea43830962f524deae8d1cedc274376e40bd912ebe63208c5b1c3b7a5aa14379da19020c587dbd5588df2f0066ca1540070a226983a43e4159b networkmanager.conf
5ac6d11b588c479de9c7e1fef79ed0a2c04dc159a2173636a6a77a2867c839cc1609860756109e9e794f23a02238a6d94834d8fb6fcb81a6be3ef1dbf4a34e6f networkmanager.initd
9820ed2ead0af689644842de57657bb10330a1eaff0e85b21ae9913f55e399e47d8b41b0a12956f30de80272b4424c6e55f33acbc88e156879003a260bf576f6 networkmanager.rules
+0b82a5d3d60797fc7106e9e896c3349b64d50cefa43fb54e0cafbf21d418448cf56daaf78f4fac1525e35b4e496e9acec90f0120be5a33995cdf464cb2098013 networkmanager-dispatcher.initd
"