Gentoo Archives: gentoo-commits

From: "Alexandre Rostovtsev (tetromino)" <tetromino@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in net-misc/networkmanager/files: networkmanager-0.9.2.0-init-provide-net.patch 10-openrc-status
Date: Thu, 02 Feb 2012 00:35:16
Message-Id: 20120202003459.AE6E92004B@flycatcher.gentoo.org
1 tetromino 12/02/02 00:34:59
2
3 Added: networkmanager-0.9.2.0-init-provide-net.patch
4 10-openrc-status
5 Log:
6 Change the NetworkManager OpenRC service to provide net; the service's status is set to 'inactive' when NetworkManager is running but has no connections up, and to 'started' when NetworkManager is connected (bug #252137, thanks to Xake). Do not keepdir /var/run/NetworkManager, it's not needed in Gentoo (bug #401019, thanks to Maxim Kammerer). Correctly parse single-quoted hostnames in /etc/conf.d/hostname.
7
8 (Portage version: 2.2.0_alpha84/cvs/Linux x86_64)
9
10 Revision Changes Path
11 1.1 net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch?rev=1.1&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch?rev=1.1&content-type=text/plain
15
16 Index: networkmanager-0.9.2.0-init-provide-net.patch
17 ===================================================================
18 From dbb1ed70eca25d57da3c12534c241cd38134627b Mon Sep 17 00:00:00 2001
19 From: Alexandre Rostovtsev <tetromino@g.o>
20 Date: Wed, 1 Feb 2012 05:51:20 -0500
21 Subject: [PATCH] gentoo: provide net and use inactive status when not
22 connected
23
24 The status will be reset to started via a dispatcher script on up/down
25 events. See https://bugs.gentoo.org/show_bug.cgi?id=252137
26 ---
27 initscript/Gentoo/NetworkManager.in | 24 +++++++++++++++++++++++-
28 1 files changed, 23 insertions(+), 1 deletions(-)
29
30 diff --git a/initscript/Gentoo/NetworkManager.in b/initscript/Gentoo/NetworkManager.in
31 index 7db410b..d26996d 100755
32 --- a/initscript/Gentoo/NetworkManager.in
33 +++ b/initscript/Gentoo/NetworkManager.in
34 @@ -3,18 +3,40 @@
35 # Distributed under the terms of the GNU General Purpose License v2
36 # $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch,v 1.1 2012/02/02 00:34:59 tetromino Exp $
37
38 +description="NetworkManager daemon. The service is marked as started only \
39 +when a network connection is established."
40 +
41 depend() {
42 need dbus
43 + provide net
44 +}
45 +
46 +_is_connected() {
47 + [ "x$(LC_ALL=C nmcli -t -f state nm 2> /dev/null)" = "xconnected" ]
48 + return $?
49 }
50
51 start() {
52 + if yesno "${IN_BACKGROUND}"; then
53 + _is_connected && mark_service_started
54 + return
55 + fi
56 ebegin "Starting NetworkManager"
57 start-stop-daemon --start --quiet --pidfile /var/run/NetworkManager.pid \
58 --exec /usr/sbin/NetworkManager -- --pid-file /var/run/NetworkManager.pid
59 - eend $?
60 + local _retval=$?
61 + eend "${_retval}"
62 + if [ "x${_retval}" = 'x0' ]; then
63 + _is_connected || mark_service_inactive
64 + fi
65 + return "${_retval}"
66 }
67
68 stop() {
69 + if yesno "${IN_BACKGROUND}"; then
70 + _is_connected || mark_service_inactive
71 + return
72 + fi
73 ebegin "Stopping NetworkManager"
74 start-stop-daemon --stop --quiet --pidfile /var/run/NetworkManager.pid
75 eend $?
76 --
77 1.7.8.4
78
79
80
81
82 1.1 net-misc/networkmanager/files/10-openrc-status
83
84 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/networkmanager/files/10-openrc-status?rev=1.1&view=markup
85 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/networkmanager/files/10-openrc-status?rev=1.1&content-type=text/plain
86
87 Index: 10-openrc-status
88 ===================================================================
89 #!/bin/sh
90 # Copyright (c) 2012 Alexandre Rostovtsev
91 # Released under the 2-clause BSD license.
92
93 # Ensures that the NetworkManager OpenRC service is marked as started and
94 # providing net only when it has a successful connection.
95
96 # Exit if no valid interface name given
97 if [ -z "$1" -o "x$1" = "xnone" ]; then
98 exit
99 fi
100
101 # Ensure rc-service is in PATH
102 PATH="${PATH}:@EPREFIX@/sbin:@EPREFIX@/usr/sbin"
103
104 # Exit if the NetworkManager OpenRC service is not running
105 rc-service NetworkManager status 2>&1 | grep -Eq "status: (starting|started|inactive|stopping)" || exit 0
106
107 # Call rc-service in background mode so that the start/stop functions update
108 # NetworkManager service status to started or inactive instead of actually
109 # starting or stopping the daemon
110 export IN_BACKGROUND=YES
111
112 case "$2" in
113 up|vpn-up) exec rc-service NetworkManager start ;;
114 down|vpn-down) exec rc-service NetworkManager stop ;;
115 esac