# Maintainer: jc_gargma # Maintainer (Arch): Jan Alexander Steffens (heftig) # Contributor (Arch): Jan de Groot # Contributor (Arch): Wael Nasreddine # Contributor (Arch): Tor Krill # Contributor (Arch): Will Rea # Contributor (Arch): Valentine Sinitsyn # # I maintain this because: # Arch version is not configured for openrc # Arch version uses git # Arch version uses nftables _offline=1 _altname=NetworkManager pkgbase=networkmanager pkgname=( networkmanager libnm nm-cloud-setup networkmanager-docs ) _basever=1.48 pkgver=${_basever}.10 pkgrel=1 pkgdesc="Network connection manager and user applications" pkgdesc+=", modified for openrc" url="https://networkmanager.dev/" arch=(x86_64) license=(LGPL-2.1-or-later) makedepends=( audit bash curl dhclient dhcpcd dnsmasq gcc-libs git glib2 glib2-devel glibc gobject-introspection gtk-doc iproute2 iptables iwd jansson libmm-glib libndp libnewt libpsl libteam meson modemmanager nftables nspr nss openresolv pacrunner perl-yaml polkit ppp python-gobject readline libelogind vala wpa_supplicant ) checkdepends=( libx11 python-dbus ) source=(https://download.gnome.org/sources/${_altname}/${_basever}/${_altname}-${pkgver}.tar.xz) # https://download.gnome.org/sources/NetworkManager/1.48/NetworkManager-1.48.10.sha256sum sha256sums=('5dc188fdffcf2d23c89d34b1e6319a6b20203e12eaec24b30037b7ea8ac8c613') b2sums=('8f615b1afec72ac600fd2cbe458644c4e83312e76c5ecf0e84484dce60510867350ec1fc2fb68fdee40ae4aca3d9e935ef8e433ea60ebe431b96699c0ce01222') validpgpkeys=( 3D10AD045AB4AAFF8E8F36AF9B980AC2FB874FEB # Ana Cabral F07F7C1EABD382F81CBFBA3B998D4828CD7E1656 # Beniamino Galvani 2B5F3B2028801E15F57AAA309906C97AA15D984F # Fernando Fernandez Mancera 48FD6FAE515A77B48436821C8789567B8715CEBC # Gris Ge # Could not locate key ACFA41513D2854D0A72F55BE9A2C77A85F2D72FE # Ján Václav 4B8EF9745A973724E965939189A2DA5AF73D5E3D # Lubomir Rintel E472337703D0C46002928B5790617850A125DE59 # Stanislas FAYE 49EA7C670E0850E7419514F629C2366E4DFC5728 # Thomas Haller 07F9AEC86144386D9576210B66A44781B4EBC2D0 # Íñigo Huguet ) prepare() { cd $_altname-$pkgver } build() { local meson_options=( # build checks this option; injecting just via *FLAGS is broken -D b_lto=true # system paths -D dbus_conf_dir=/usr/share/dbus-1/system.d # platform -D dist_version="$pkgver-$pkgrel" -D session_tracking_consolekit=false -D session_tracking=elogind -D suspend_resume=elogind -D systemdsystemunitdir=no # This field requires a path or the special value no, the latter of which disables packaging systemd service files. -D systemd_journal=false -D config_logging_backend_default=syslog -D modify_system=true -D selinux=false # features -D iwd=true -D teamdctl=true # configuration plugins -D config_plugins_default=keyfile -D ifupdown=false # handlers for resolv.conf -D netconfig=no -D config_dns_rc_manager_default=auto # miscellaneous -D vapi=true -D docs=true -D more_asserts=no -D more_logging=false -D qt=false -D modem_manager=false # It uses an entire core constantly, and NM tries to invoke it every 2 minutes clogging up the logs ) arch-meson ${_altname}-${pkgver} build "${meson_options[@]}" meson compile -C build ${MAKEFLAGS} } # tests do not work in an offline build environment if [ "${_offline}" == "0" ]; then check() { NMTST_FORCE_REAL_ROOT=1 meson test -C build --print-errorlogs } fi _pick() { local p="$1" f d; shift for f; do d="$srcdir/$p/${f#$pkgdir/}" mkdir -p "$(dirname "$d")" mv "$f" "$d" rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" done } package_networkmanager() { depends=( audit curl gcc-libs glib2 glibc iproute2 jansson libmm-glib libndp libnewt libnm libpsl libteam mobile-broadband-provider-info nspr nss readline libelogind wpa_supplicant ) optdepends=( 'bluez: Bluetooth support' 'dhclient: alternative DHCP client' 'dhcpcd: alternative DHCP client' 'dnsmasq: connection sharing' 'firewalld: firewall support' 'iptables: connection sharing' 'iwd: wpa_supplicant alternative' 'modemmanager: cellular network support' 'nftables: connection sharing' 'openresolv: alternative resolv.conf manager' 'pacrunner: PAC proxy support' 'polkit: let non-root users control networking' 'ppp: dialup connection support' ) backup=(etc/NetworkManager/NetworkManager.conf) # NM wants to move to LGPL only, but there's still GPL code left license+=(GPL-2.0-or-later) meson install -C build --destdir "$pkgdir" cd "$pkgdir" # /etc/NetworkManager install -d etc/NetworkManager/{conf,dnsmasq}.d install -dm700 etc/NetworkManager/system-connections install -m644 /dev/stdin etc/NetworkManager/NetworkManager.conf <