summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nonsystemd/networkmanager/10-openrc-status23
-rw-r--r--nonsystemd/networkmanager/NetworkManager.initd94
-rw-r--r--nonsystemd/networkmanager/PKGBUILD119
3 files changed, 138 insertions, 98 deletions
diff --git a/nonsystemd/networkmanager/10-openrc-status b/nonsystemd/networkmanager/10-openrc-status
index ba4a50f17..f04658621 100644
--- a/nonsystemd/networkmanager/10-openrc-status
+++ b/nonsystemd/networkmanager/10-openrc-status
@@ -6,12 +6,12 @@
# providing net only when it has a successful connection.
if [ ! -e "/run/openrc/softlevel" ]; then
- # OpenRC is not running
- exit 0
+ # OpenRC is not running
+ exit 0
fi
# Ensure rc-service is in PATH
-PATH="${PATH}:/usr/bin:/usr/bin"
+PATH="${PATH}:/usr/bin:/usr/sbin"
# Exit if the NetworkManager OpenRC service is not running
rc-service NetworkManager status 2>&1 | grep -Eq "status: (starting|started|inactive|stopping)" || exit 0
@@ -19,17 +19,18 @@ rc-service NetworkManager status 2>&1 | grep -Eq "status: (starting|started|inac
# 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 ;;
+ 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.initd b/nonsystemd/networkmanager/NetworkManager.initd
index 3209644c5..4829618da 100644
--- a/nonsystemd/networkmanager/NetworkManager.initd
+++ b/nonsystemd/networkmanager/NetworkManager.initd
@@ -1,58 +1,64 @@
-#!/sbin/openrc-run
+#!/usr/bin/openrc-run
# Copyright (c) 2008 Saleem Abdulrasool <compnerd@compnerd.org>
-# Copyright 2013-2017 Gentoo Foundation
+# Copyright 2013-2020 Gentoo Authors
# 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."
+# supervisor="supervise-daemon"
+# command="/usr/bin/NetworkManager"
+# command_args="-n"
+# pidfile="/run/NetworkManager/NetworkManager.pid"
depend() {
- need dbus
- use consolekit
- provide net
+ need dbus
+ use logind
+ provide net
+}
+
+start_pre() {
+ checkpath -q -d -m 0755 /run/NetworkManager
}
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}"
+ # 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
-}
+ # 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
-# vim: set ft=gentoo-init-d ts=4 :
+ 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
+}
diff --git a/nonsystemd/networkmanager/PKGBUILD b/nonsystemd/networkmanager/PKGBUILD
index 8f3b7c943..dc667e65e 100644
--- a/nonsystemd/networkmanager/PKGBUILD
+++ b/nonsystemd/networkmanager/PKGBUILD
@@ -7,31 +7,33 @@
# Contributor (Arch): Valentine Sinitsyn <e_val@inbox.ru>
pkgbase=networkmanager
-pkgname=(networkmanager libnm)
-pkgver=1.20.6
+pkgname=(networkmanager libnm nm-cloud-setup)
+pkgver=1.32.2
pkgrel=1
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)
+arch=(x86_64)
+arch+=(i686 armv7h)
+license=(GPL2)
+_pppver=2.4.9
+makedepends=(intltool dhclient dhcpcd iptables-nft gobject-introspection gtk-doc
+ "ppp=$_pppver" modemmanager iproute2 nss polkit wpa_supplicant curl
+ logind libmm-glib libnewt libndp libteam nftables vala perl-yaml
+ python-gobject git vala jansson bluez-libs glib2-docs iwd dnsmasq
+ openresolv libpsl audit meson)
checkdepends=(libx11 python-dbus)
-_commit=7910cdfe5a9ffe02cd0780d56fcc66500e292d09 # tags/1.20.6^0
+_commit=bf1b09702ed442a3efe426c8ceba4ef1e6bb1902 # 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')
+ 'eaf7d210540ed9f4c6b4ba81ddbb30a2aa5ce8b528057f7d64ce3478981f88e4'
+ 'd32a21c0683cf7a09370b35b7e3d3b3f28f5d4d242ecde2c866cfb400b94bcbe')
pkgver() {
cd NetworkManager
- git describe | sed 's/-dev/dev/;s/-rc/rc/;s/-/+/g'
+ git describe --abbrev=10 | sed 's/-dev/dev/;s/-rc/rc/;s/-/+/g'
}
prepare() {
@@ -40,37 +42,49 @@ prepare() {
build() {
local meson_args=(
+ # 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 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 nm_cloud_setup=true
-D bluez5_dun=true
-D ebpf=true
+
+ # configuration plugins
-D config_plugins_default=keyfile
+
+ # 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
+ meson compile -C build
}
check() {
- # iproute2 bug
- # https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/be76d8b624fab99cbd76092ff511e6adc305279c
- meson test -C build --print-errorlogs || :
+ meson test -C build --print-errorlogs
}
_pick() {
@@ -85,58 +99,77 @@ _pick() {
package_networkmanager() {
depends=(libnm iproute2 polkit wpa_supplicant libmm-glib libnewt libndp libteam curl
- bluez-libs libpsl audit elogind)
+ bluez-libs libpsl audit mobile-broadband-provider-info elogind)
optdepends=('dnsmasq: connection sharing'
+ 'nftables: connection sharing'
+ 'iptables: connection sharing'
'bluez: Bluetooth support'
'ppp: dialup connection support'
'modemmanager: cellular network support'
- 'iwd: wpa_supplicant alternative')
+ 'iwd: wpa_supplicant alternative'
+ 'dhclient: alternative DHCP client'
+ 'dhcpcd: alternative DHCP client'
+ 'openresolv: alternative resolv.conf manager'
+ 'firewalld: firewall support')
provides=($pkgname-{elogind,openrc})
replaces=($pkgname-{elogind,openrc})
backup=(etc/NetworkManager/NetworkManager.conf)
- groups=(gnome)
- DESTDIR="$pkgdir" meson install -C build
+ 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.
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=http://ping.archlinux.org/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.*
+ shopt -s globstar
+
+ _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/gtk-doc/html/libnm
+ _pick libnm usr/share/vala/vapi/libnm.*
+
+ _pick nm-cloud-setup "$pkgdir"/usr/lib/**/*nm-cloud-setup*
+# _pick nm-cloud-setup "$pkgdir"/usr/share/man/*/nm-cloud-setup* (Parabola)
+
+ # Restore empty dir
+# mkdir "$pkgdir/usr/lib/NetworkManager/dispatcher.d/no-wait.d" (Parabola)
# 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
}
package_libnm() {
pkgdesc="NetworkManager client library"
- depends=(glib2 nss libutil-linux jansson libelogind)
+ depends=(glib2 nss util-linux-libs jansson libelogind)
+ license=(LGPL)
+ provides=(libnm.so)
+
mv libnm/* "$pkgdir"
}
+package_nm-cloud-setup() {
+ pkgdesc="Automatically configure NetworkManager in cloud"
+ depends=(networkmanager)
+
+ mv nm-cloud-setup/* "$pkgdir"
+}
+
# vim:set sw=2 et: