diff options
Diffstat (limited to 'nonsystemd/networkmanager/PKGBUILD')
-rw-r--r-- | nonsystemd/networkmanager/PKGBUILD | 251 |
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: |