commit:     c13f2ea9b95e4f3aef7764637113cddea32f173a
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 17 12:00:47 2024 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Wed Jul 17 12:11:32 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c13f2ea9

net-misc/networkmanager: Port init script to elogind

Closes: https://bugs.gentoo.org/734028
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 .../networkmanager/files/init.d.NetworkManager-r3  | 62 ++++++++++++++++++++++
 .../networkmanager/networkmanager-1.48.4.ebuild    |  2 +-
 2 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/net-misc/networkmanager/files/init.d.NetworkManager-r3 
b/net-misc/networkmanager/files/init.d.NetworkManager-r3
new file mode 100644
index 000000000000..b2d240fc76ad
--- /dev/null
+++ b/net-misc/networkmanager/files/init.d.NetworkManager-r3
@@ -0,0 +1,62 @@
+#!/sbin/openrc-run
+# Copyright (c) 2008 Saleem Abdulrasool <[email protected]>
+# 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."
+
+depend() {
+       need dbus
+       use elogind
+       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}"
+}
+
+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/net-misc/networkmanager/networkmanager-1.48.4.ebuild 
b/net-misc/networkmanager/networkmanager-1.48.4.ebuild
index 870aa4de8f3b..c2f656d25ebd 100644
--- a/net-misc/networkmanager/networkmanager-1.48.4.ebuild
+++ b/net-misc/networkmanager/networkmanager-1.48.4.ebuild
@@ -311,7 +311,7 @@ multilib_src_install() {
 multilib_src_install_all() {
        ! use systemd && readme.gentoo_create_doc
 
-       newinitd "${FILESDIR}/init.d.NetworkManager-r2" NetworkManager
+       newinitd "${FILESDIR}/init.d.NetworkManager-r3" NetworkManager
        newconfd "${FILESDIR}/conf.d.NetworkManager" NetworkManager
 
        # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher 
scripts

Reply via email to