summaryrefslogtreecommitdiff
path: root/nonsystemd/networkmanager/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'nonsystemd/networkmanager/PKGBUILD')
-rw-r--r--nonsystemd/networkmanager/PKGBUILD251
1 files changed, 179 insertions, 72 deletions
diff --git a/nonsystemd/networkmanager/PKGBUILD b/nonsystemd/networkmanager/PKGBUILD
index 8f3b7c943..c34b8876d 100644
--- a/nonsystemd/networkmanager/PKGBUILD
+++ b/nonsystemd/networkmanager/PKGBUILD
@@ -1,37 +1,78 @@
# Maintainer: David P. <megver83@parabola.nu>
-# Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-# Maintainer (Arch): Jan de Groot <jgc@archlinxu.org>
+# Maintainer (Arch): Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor (Arch): Jan de Groot <jgc@archlinxu.org>
# Contributor (Arch): Wael Nasreddine <gandalf@siemens-mobiles.org>
# Contributor (Arch): Tor Krill <tor@krill.nu>
# Contributor (Arch): Will Rea <sillywilly@gmail.com>
# Contributor (Arch): Valentine Sinitsyn <e_val@inbox.ru>
+# Parabola changes and raationale:
+# • Install python-packaging on build time
+# • Ping https://www.parabola.nu/static/nm-check.txt
+
pkgbase=networkmanager
-pkgname=(networkmanager libnm)
-pkgver=1.20.6
-pkgrel=1
+pkgname=(
+ networkmanager
+ libnm
+ nm-cloud-setup
+ networkmanager-docs
+)
+pkgver=1.46.0
+pkgrel=2
pkgrel+=.nonsystemd1
pkgdesc="Network connection manager and user applications"
-url="https://wiki.gnome.org/Projects/NetworkManager"
-arch=(x86_64 i686 armv7h)
-license=(GPL2 LGPL2.1)
-_pppver=2.4.7
-makedepends=(intltool dhclient iptables gobject-introspection gtk-doc "ppp=$_pppver" modemmanager
- iproute2 nss polkit wpa_supplicant curl elogind libmm-glib
- libnewt libndp libteam vala perl-yaml python-gobject git vala jansson bluez-libs
- glib2-docs dhcpcd iwd dnsmasq openresolv libpsl audit meson)
-checkdepends=(libx11 python-dbus)
-_commit=7910cdfe5a9ffe02cd0780d56fcc66500e292d09 # tags/1.20.6^0
-source=("git+https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git#commit=$_commit"
- NetworkManager.{confd,initd} 10-openrc-status)
-sha256sums=('SKIP'
- '4594573f01fe5e04b6dde4525796acf909158591bdcefd662ec23fe0d1c3e1bd'
- '861445d46e8863dca26a91018da3dd9fee6a64467a93e7512774dfd88914539d'
- '1535237db113a76261d6f1ce0b24a55e956934b0c1c59e9fd624f621961327b6')
+url="https://networkmanager.dev/"
+arch=(x86_64)
+arch+=(i686 armv7h)
+license=(LGPL-2.1-or-later)
+makedepends=(
+ audit
+ curl
+ dhclient
+ dhcpcd
+ dnsmasq
+ elogind
+ git
+ glib2-docs
+ gobject-introspection
+ gtk-doc
+ iproute2
+ iptables
+ iwd
+ jansson
+ libmm-glib
+ libndp
+ libnewt
+ libpsl
+ libteam
+ meson
+ modemmanager
+ nftables
+ nss
+ openresolv
+ pacrunner
+ perl-yaml
+ polkit
+ ppp
+ python-gobject
+ vala
+ vala
+ wpa_supplicant
+)
+makedepends+=(python-packaging)
+checkdepends=(
+ libx11
+ python-dbus
+)
+_commit=e39f48a30a2ef7b445276a859bbd5255e4c5071d # tags/1.46.0^0
+source=(
+ "git+https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git#commit=$_commit"
+)
+b2sums=('SKIP')
pkgver() {
cd NetworkManager
- git describe | sed 's/-dev/dev/;s/-rc/rc/;s/-/+/g'
+ git describe --tags | sed 's/-dev/dev/;s/-rc/rc/;s/[^-]*-g/r&/;s/-/+/g'
}
prepare() {
@@ -39,38 +80,55 @@ prepare() {
}
build() {
- local meson_args=(
+ 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 suspend_resume=elogind
-D modify_system=true
- -D polkit_agent=true
-D selinux=false
+ -D selinux=false
+ -D systemdsystemunitdir=no
+ -D session_tracking=elogind
+ -D systemd_journal=false
+
+
+ # features
-D iwd=true
- -D pppd_plugin_dir=/usr/lib/pppd/$_pppver
-D teamdctl=true
- -D bluez5_dun=true
- -D ebpf=true
+
+ # configuration plugins
-D config_plugins_default=keyfile
+ -D ifupdown=false
+
+ # handlers for resolv.conf
+ -D netconfig=no
+ -D config_dns_rc_manager_default=symlink
+
+ # miscellaneous
-D vapi=true
-D docs=true
-D more_asserts=no
-D more_logging=false
-D qt=false
- -D systemdsystemunitdir=no
- -D session_tracking=elogind
- -D systemd_journal=false
)
- arch-meson NetworkManager build "${meson_args[@]}"
- ninja -C build
+ # NM uses malloc_usable_size in code copied from systemd
+ CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
+ CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
+
+ arch-meson NetworkManager build "${meson_options[@]}"
+ meson compile -C build
}
check() {
- # iproute2 bug
- # https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/be76d8b624fab99cbd76092ff511e6adc305279c
- meson test -C build --print-errorlogs || :
+ NMTST_FORCE_REAL_ROOT=1 meson test -C build --print-errorlogs
}
_pick() {
@@ -84,59 +142,108 @@ _pick() {
}
package_networkmanager() {
- depends=(libnm iproute2 polkit wpa_supplicant libmm-glib libnewt libndp libteam curl
- bluez-libs libpsl audit elogind)
- optdepends=('dnsmasq: connection sharing'
- 'bluez: Bluetooth support'
- 'ppp: dialup connection support'
- 'modemmanager: cellular network support'
- 'iwd: wpa_supplicant alternative')
- provides=($pkgname-{elogind,openrc})
- replaces=($pkgname-{elogind,openrc})
+ depends=(
+ audit
+ curl
+ elogind
+ iproute2
+ jansson
+ libmm-glib
+ libndp
+ libnewt
+ libnm
+ libpsl
+ libteam
+ mobile-broadband-provider-info
+ 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)
- groups=(gnome)
- DESTDIR="$pkgdir" meson install -C build
+ # 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 "$pkgdir"/etc/NetworkManager/{conf,dnsmasq}.d
- install -dm700 "$pkgdir/etc/NetworkManager/system-connections"
- install -m644 /dev/stdin "$pkgdir/etc/NetworkManager/NetworkManager.conf" <<END
+ install -d etc/NetworkManager/{conf,dnsmasq}.d
+ install -dm700 etc/NetworkManager/system-connections
+ install -m644 /dev/stdin etc/NetworkManager/NetworkManager.conf <<END
# Configuration file for NetworkManager.
# See "man 5 NetworkManager.conf" for details.
+[main]
+plugins=keyfile
+hostname-mode=none
END
# packaged configuration
- install -Dm644 /dev/stdin "$pkgdir/usr/lib/NetworkManager/conf.d/20-connectivity.conf" <<END
+ install -Dm644 /dev/stdin usr/lib/NetworkManager/conf.d/20-connectivity.conf <<END
[connectivity]
-uri=http://www.archlinux.org/check_network_status.txt
+uri=https://www.parabola.nu/static/nm-check.txt
END
-### Split libnm
- _pick libnm "$pkgdir"/usr/include/libnm
- _pick libnm "$pkgdir"/usr/lib/girepository-1.0/NM-*
- _pick libnm "$pkgdir"/usr/lib/libnm.*
- _pick libnm "$pkgdir"/usr/lib/pkgconfig/libnm.pc
- _pick libnm "$pkgdir"/usr/share/gir-1.0/NM-*
- _pick libnm "$pkgdir"/usr/share/gtk-doc/html/libnm
- _pick libnm "$pkgdir"/usr/share/vala/vapi/libnm.*
-
- # Init script
- install -Dm755 ${srcdir}/NetworkManager.confd ${pkgdir}/etc/conf.d/NetworkManager
- install -Dm755 ${srcdir}/NetworkManager.initd ${pkgdir}/etc/init.d/NetworkManager
- install -Dm755 "${srcdir}/10-openrc-status" "${pkgdir}/etc/NetworkManager/dispatcher.d/10-openrc-status"
-
- sed -e 's|#!/sbin/openrc-run|#!/usr/bin/openrc-run|g' \
- -e 's|/var/run|/run|g' \
- -e 's|/usr/sbin|/usr/bin|g' \
- -e 's|use consolekit|use consolekit elogind|' \
- -i ${pkgdir}/etc/init.d/NetworkManager
+ shopt -s globstar
+
+ _pick docs usr/share/gtk-doc
+
+ _pick libnm usr/include/libnm
+ _pick libnm usr/lib/girepository-1.0/NM-*
+ _pick libnm usr/lib/libnm.*
+ _pick libnm usr/lib/pkgconfig/libnm.pc
+ _pick libnm usr/share/gir-1.0/NM-*
+ _pick libnm usr/share/vala/vapi/libnm.*
+
+ _pick cloud usr/lib/**/*nm-cloud-setup*
+ _pick cloud usr/share/man/*/nm-cloud-setup*
+
+ # Not actually packaged (https://bugs.archlinux.org/task/69138)
+ # _pick ovs usr/lib/systemd/system/NetworkManager.service.d/NetworkManager-ovs.conf
+
+ # Restore empty dir
+ install -d usr/lib/NetworkManager/dispatcher.d/no-wait.d
}
package_libnm() {
pkgdesc="NetworkManager client library"
- depends=(glib2 nss libutil-linux jansson libelogind)
+ depends=(
+ glib2
+ nss
+ libelogind
+ util-linux-libs
+ )
+ provides=(libnm.so)
+
mv libnm/* "$pkgdir"
}
-# vim:set sw=2 et:
+package_nm-cloud-setup() {
+ pkgdesc="Automatically configure NetworkManager in cloud"
+ depends=(networkmanager)
+
+ mv cloud/* "$pkgdir"
+}
+
+package_networkmanager-docs() {
+ pkgdesc+=" (API documentation)"
+ depends=()
+
+ mv docs/* "$pkgdir"
+}
+
+# vim:set sw=2 sts=-1 et: