diff options
Diffstat (limited to 'nonsystemd/networkmanager')
-rw-r--r-- | nonsystemd/networkmanager/10-openrc-status | 35 | ||||
-rw-r--r-- | nonsystemd/networkmanager/NetworkManager.confd | 4 | ||||
-rw-r--r-- | nonsystemd/networkmanager/NetworkManager.initd | 58 | ||||
-rw-r--r-- | nonsystemd/networkmanager/PKGBUILD | 251 |
4 files changed, 179 insertions, 169 deletions
diff --git a/nonsystemd/networkmanager/10-openrc-status b/nonsystemd/networkmanager/10-openrc-status deleted file mode 100644 index ba4a50f17..000000000 --- a/nonsystemd/networkmanager/10-openrc-status +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# Copyright (c) 2012 Alexandre Rostovtsev -# Released under the 2-clause BSD license. - -# Ensures that the NetworkManager OpenRC service is marked as started and -# providing net only when it has a successful connection. - -if [ ! -e "/run/openrc/softlevel" ]; then - # OpenRC is not running - exit 0 -fi - -# Ensure rc-service is in PATH -PATH="${PATH}:/usr/bin:/usr/bin" - -# Exit if the NetworkManager OpenRC service is not running -rc-service NetworkManager status 2>&1 | grep -Eq "status: (starting|started|inactive|stopping)" || exit 0 - -# Call rc-service in background mode so that the start/stop functions update -# NetworkManager service status to started or inactive instead of actually -# starting or stopping the daemon -export IN_BACKGROUND=YES - -case "$2" in - up) nm-online -t 0 -x || - ! rc-service NetworkManager status 2>&1 | grep -q started && - exec rc-service NetworkManager start ;; - down) nm-online -t 0 -x || - rc-service NetworkManager status 2>&1 | grep -q stopped || - exec rc-service NetworkManager stop ;; - pre-sleep) rc-service NetworkManager status 2>&1 | grep -q stopped || - exec rc-service NetworkManager stop ;; -esac -exit 0 -# vim: set ts=4: diff --git a/nonsystemd/networkmanager/NetworkManager.confd b/nonsystemd/networkmanager/NetworkManager.confd deleted file mode 100644 index 4a9922965..000000000 --- a/nonsystemd/networkmanager/NetworkManager.confd +++ /dev/null @@ -1,4 +0,0 @@ -# If NetworkManager does not establish a connection within $INACTIVE_TIMEOUT -# seconds after starting, the service will be marked as inactive, and it will -# continue to wait for a connection in background mode. -INACTIVE_TIMEOUT=1 diff --git a/nonsystemd/networkmanager/NetworkManager.initd b/nonsystemd/networkmanager/NetworkManager.initd deleted file mode 100644 index 3209644c5..000000000 --- a/nonsystemd/networkmanager/NetworkManager.initd +++ /dev/null @@ -1,58 +0,0 @@ -#!/sbin/openrc-run -# Copyright (c) 2008 Saleem Abdulrasool <compnerd@compnerd.org> -# Copyright 2013-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -description="NetworkManager daemon. The service is marked as started only \ -when a network connection is established." - -depend() { - need dbus - use consolekit - provide net -} - -start() { - # If we are re-called by a dispatcher event, we want to mark the service - # as started without starting the daemon again - yesno "${IN_BACKGROUND}" && return 0 - - [ -z "${INACTIVE_TIMEOUT}" ] && INACTIVE_TIMEOUT="1" - - ebegin "Starting NetworkManager" - start-stop-daemon --start --quiet --pidfile /run/NetworkManager/NetworkManager.pid \ - --exec /usr/sbin/NetworkManager -- --pid-file /run/NetworkManager/NetworkManager.pid - local _retval=$? - eend "${_retval}" - if [ "x${_retval}" = 'x0' ] && ! nm-online -t "${INACTIVE_TIMEOUT}"; then - einfo "Marking NetworkManager as inactive. It will automatically be marked" - einfo "as started after a network connection has been established." - mark_service_inactive - fi - return "${_retval}" -} - -stop() { - # If we are re-called by a dispatcher event, we want to mark the service - # as inactive without stopping the daemon - if yesno "${IN_BACKGROUND}"; then - mark_service_inactive "${SVCNAME}" - return 0 - fi - - ebegin "Stopping NetworkManager" - local pidfile=/run/NetworkManager/NetworkManager.pid - if [ ! -e "${pidfile}" ] && [ -e /var/run/NetworkManager.pid ]; then - # Try stopping the pid file used by <0.9.7 - pidfile=/var/run/NetworkManager.pid - start-stop-daemon --stop --quiet --pidfile "${pidfile}" - ret=$? - [ ${ret} = 0 ] && [ -e "${pidfile}" ] && rm "${pidfile}" - eend ${ret} - else - start-stop-daemon --stop --quiet --pidfile "${pidfile}" - eend $? - fi -} - -# vim: set ft=gentoo-init-d ts=4 : 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: |