summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev <tetromino@gentoo.org>2012-02-02 00:34:59 +0000
committerAlexandre Rostovtsev <tetromino@gentoo.org>2012-02-02 00:34:59 +0000
commit027a7a0867dd96f60abd6627eeff733df847c76f (patch)
tree3463d529b2ba5e25cdf4561acb6eb07984ae0acb /net-misc
parentunmask postfix-2.9 version (diff)
downloadhistorical-027a7a0867dd96f60abd6627eeff733df847c76f.tar.gz
historical-027a7a0867dd96f60abd6627eeff733df847c76f.tar.bz2
historical-027a7a0867dd96f60abd6627eeff733df847c76f.zip
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.
Package-Manager: portage-2.2.0_alpha84/cvs/Linux x86_64
Diffstat (limited to 'net-misc')
-rw-r--r--net-misc/networkmanager/ChangeLog15
-rw-r--r--net-misc/networkmanager/Manifest11
-rw-r--r--net-misc/networkmanager/files/10-openrc-status27
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch61
-rw-r--r--net-misc/networkmanager/networkmanager-0.9.2.0-r3.ebuild171
5 files changed, 280 insertions, 5 deletions
diff --git a/net-misc/networkmanager/ChangeLog b/net-misc/networkmanager/ChangeLog
index ab067771d58b..2e60d603be2f 100644
--- a/net-misc/networkmanager/ChangeLog
+++ b/net-misc/networkmanager/ChangeLog
@@ -1,6 +1,19 @@
# ChangeLog for net-misc/networkmanager
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/ChangeLog,v 1.125 2012/02/01 08:00:19 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/ChangeLog,v 1.126 2012/02/02 00:34:59 tetromino Exp $
+
+*networkmanager-0.9.2.0-r3 (02 Feb 2012)
+
+ 02 Feb 2012; Alexandre Rostovtsev <tetromino@gentoo.org>
+ +files/10-openrc-status, +networkmanager-0.9.2.0-r3.ebuild,
+ +files/networkmanager-0.9.2.0-ifnet-unquote-hostname.patch,
+ +files/networkmanager-0.9.2.0-init-provide-net.patch:
+ 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.
01 Feb 2012; Alexandre Rostovtsev <tetromino@gentoo.org>
-networkmanager-0.9.1.95.ebuild,
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest
index f587781369d6..8f276630735a 100644
--- a/net-misc/networkmanager/Manifest
+++ b/net-misc/networkmanager/Manifest
@@ -2,6 +2,7 @@
Hash: SHA256
AUX 01-org.freedesktop.NetworkManager.settings.modify.system.pkla 187 RMD160 a6de26825439432c62cfaa7be847fa39181747fa SHA1 cae5a2c5d8ab0af2830f17e7fe375468c8d5b151 SHA256 909356b25e2d887a31c0f9f2a23a466957f27b163bbd5172fa852988a1db1860
+AUX 10-openrc-status 912 RMD160 621ef49695f344ca5731e0761f9f79bd99f1b2e7 SHA1 aba0cf91c2c771824fcc29e3b1884f43b3d736b6 SHA256 85621ae323f3ba09361ded68532e6c71522268e8dba699574bf5550bc900c004
AUX NetworkManagerDispatcher 1198 RMD160 4345870ab40607b9aed80c8da383b604f032b98e SHA1 1dd2250c746b25566fceaab551f4ef8335fe4f55 SHA256 f8cb5d0470619cf1f0812fffcf1bf2091e3c44a757899c07164f80ddd6a2641e
AUX networkmanager-0.8-confchanges.patch 1063 RMD160 25a0d45410fa5590098386556e9947dd15507eda SHA1 ba6eaa63188f97f93bbbb327676d8104bbf7e8c8 SHA256 9fcbe0b9ab4cc38c9057a0dde2f5153efc12515ed4d28920a455dad7fc2b1e09
AUX networkmanager-0.8-nscd-clear-cache.patch 1214 RMD160 2381f455593202a740e634601c0ba8245ecb8fac SHA1 b4a0cec446b6f8fa81c06d5992db61b296f17057 SHA256 2d981bafa96607acb06740d78b8e33afdc675c52b0cf3ce5b098c67566362c99
@@ -14,6 +15,7 @@ AUX networkmanager-0.9.2.0-ifnet-ignore-user-connections.patch 3023 RMD160 aaba0
AUX networkmanager-0.9.2.0-ifnet-openrc-style.patch 18656 RMD160 deb7be203b56ba2029763bf34508db584d35df92 SHA1 bdfb8e2c4fadc129171f48eb99330c75354d65da SHA256 9ec9bd94159979ffd17221901299055ec3329886862cca564c9931a7b65fb616
AUX networkmanager-0.9.2.0-ifnet-remove-system-prefix.patch 1939 RMD160 c06e5eeb31b537ab1ccd0ce0ee52b1fb2cf16a95 SHA1 d0a7d5bb6c69c7005f7f68b20b9421e433fe9d3d SHA256 7dda93bafcb3736ba4d037897a50116e005df47008389f3fee872c1fbd3eaf9f
AUX networkmanager-0.9.2.0-ifnet-unquote-hostname.patch 1005 RMD160 c5660af6a897a31a00803c24b6e9b84661b65012 SHA1 77052ac9d3629e81dee3d5bbf8a6dc9bb57deb98 SHA256 008a03e508fc3ccbe5c57f2b9caa9f90a74001961c212144842e46dd0d5b3f84
+AUX networkmanager-0.9.2.0-init-provide-net.patch 1957 RMD160 20dac26714191f4eb1e7ec28eab515bd060f7b25 SHA1 39b7aa225e76b22c5d9795061b6a13980dc881d7 SHA256 76a39cf52925c863da9958d3b3ced9be3ba68b7fe98bad070ba3a3b3b9999d81
AUX networkmanager-0.9_rc3-fix-tests.patch 589 RMD160 a63f0d4f908a32356baf78c7e7c9a68cd9e4d68c SHA1 9f1ed4418b124bae89f9849ce2560dd713565abc SHA256 c03a97751762864dc4dcfa6d9eeee1ea70b986bcd5830a6777cd7514ba647540
AUX nm-system-settings.conf 23 RMD160 6d66c702b345bde668a420a15716feea6005fbd1 SHA1 49ba558d20f5ca5a201e027e13b878dd5ac3569c SHA256 44b048804c7c0b8b3b0c29b8632b6ad613c397d0a1635ec918e10c0fbcdadf21
AUX nm-system-settings.conf-ifnet 70 RMD160 c0d2be147383999b62cead86ab4333169e4ef277 SHA1 679ec8052b610969c148a2d34cd4da7a41484a76 SHA256 34f53d9ac1ad65eda6942dc3059117f60f6321059ca23f4fbfcc2f2edcae151f
@@ -25,13 +27,14 @@ EBUILD networkmanager-0.8-r1.ebuild 3718 RMD160 abf962bc9f2368b13d28432994383e37
EBUILD networkmanager-0.8.4.0-r2.ebuild 4335 RMD160 7f413e48de262b71f692c0585e2e70b64c467249 SHA1 8cd00862bac4a3218cbb45d011cb394d91563d97 SHA256 654a9a55d1683afa579df435df9df4b6d439c496c80900039773e5588433280d
EBUILD networkmanager-0.9.0.ebuild 3945 RMD160 cd897dc8dc3fa92d4f4694a5acd703be6f9b5be1 SHA1 ef7eaa7e68bf01c2f4ea280742f30f856ef76ef6 SHA256 ab67f7f112c3b415c70f08b1ea9d6c029b7733203bafb512250e483b91c61bc8
EBUILD networkmanager-0.9.2.0-r2.ebuild 4861 RMD160 700e51efe25ed4fe00da6344f212a1ec58754a3e SHA1 4a0ec8619469fec3a2b4e3d6c67eb8b9bed368e3 SHA256 4a81d453993aa6c079550481235e0634dbd78865238dcabe145eca4cd742ebb7
+EBUILD networkmanager-0.9.2.0-r3.ebuild 5402 RMD160 14bea743ffb949f440a95494039b6e182e173fe3 SHA1 eda82bda2c410b60497738f4447847e8c4ed1f29 SHA256 904b1fd26fb27d458e22aa0a7a6995c6207b9d05c619675fc3e3e1a4c5fd7a92
EBUILD networkmanager-0.9.2.0.ebuild 4603 RMD160 3debbefb4e568c8f9a88afbe99c9b396c23e2c8a SHA1 ac79b40c257c8f35785de76abd642dc57d3a2a42 SHA256 dc3ed6e10b182eaf4630e819a413c07a2193da9d2d575a4dac8ab2a443ead44e
-MISC ChangeLog 28132 RMD160 08cf4cb8890abe187cdb2c0004b80d5ab6e94238 SHA1 bb145815d44814b9c6e6a438e99f15a8f783ea9a SHA256 f12a8dfcdb3d28b1182f9d208a3d961e03fb644189a2d86052f0dffc4821a2b4
+MISC ChangeLog 28836 RMD160 965ec416e11d6aba573a1035023a4cb238b1adb8 SHA1 564cfc5ee826028e0f9cb8537e4adc9d9c5a5697 SHA256 763bd81b230d9586014789050e5a2381b245999f1f4d79abaa296c51b88a07f0
MISC metadata.xml 1334 RMD160 f298cbf6adc22935891d30e834f5713d439a010d SHA1 c06b8992e77b4894a13b38890c4dfa62606d1d89 SHA256 59cb4c0eb37a25238b36f0b514ff4bc232e4df3666b5491b31a1d7265c1a0c37
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
-iF4EAREIAAYFAk8o8RgACgkQdjK8w9WeBnDJCAD/fyYGyqsEbQUS+oXJ/8k5R/S3
-C/SuzZVNSbdFkpvAPzkA/A33hwibtQp3QE/kUCVIlP1sFtwZXumdBEK8zNx/l+lF
-=yFnD
+iF4EAREIAAYFAk8p2jkACgkQdjK8w9WeBnC2vgD/a5yVWnCKLITl6OZ99z57LTLy
+E5pVhmB7REeVjwysFOoBAKxgeLCvJhUDuto4s93kbSFWypOVlGK7M6HGHJC+mgJW
+=YjbC
-----END PGP SIGNATURE-----
diff --git a/net-misc/networkmanager/files/10-openrc-status b/net-misc/networkmanager/files/10-openrc-status
new file mode 100644
index 000000000000..b3c5bc1340d8
--- /dev/null
+++ b/net-misc/networkmanager/files/10-openrc-status
@@ -0,0 +1,27 @@
+#!/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.
+
+# Exit if no valid interface name given
+if [ -z "$1" -o "x$1" = "xnone" ]; then
+ exit
+fi
+
+# Ensure rc-service is in PATH
+PATH="${PATH}:@EPREFIX@/sbin:@EPREFIX@/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
+
+# 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|vpn-up) exec rc-service NetworkManager start ;;
+ down|vpn-down) exec rc-service NetworkManager stop ;;
+esac
diff --git a/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch b/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch
new file mode 100644
index 000000000000..886fe1a74614
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch
@@ -0,0 +1,61 @@
+From dbb1ed70eca25d57da3c12534c241cd38134627b Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Wed, 1 Feb 2012 05:51:20 -0500
+Subject: [PATCH] gentoo: provide net and use inactive status when not
+ connected
+
+The status will be reset to started via a dispatcher script on up/down
+events. See https://bugs.gentoo.org/show_bug.cgi?id=252137
+---
+ initscript/Gentoo/NetworkManager.in | 24 +++++++++++++++++++++++-
+ 1 files changed, 23 insertions(+), 1 deletions(-)
+
+diff --git a/initscript/Gentoo/NetworkManager.in b/initscript/Gentoo/NetworkManager.in
+index 7db410b..d26996d 100755
+--- a/initscript/Gentoo/NetworkManager.in
++++ b/initscript/Gentoo/NetworkManager.in
+@@ -3,18 +3,40 @@
+ # Distributed under the terms of the GNU General Purpose License v2
+ # $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 $
+
++description="NetworkManager daemon. The service is marked as started only \
++when a network connection is established."
++
+ depend() {
+ need dbus
++ provide net
++}
++
++_is_connected() {
++ [ "x$(LC_ALL=C nmcli -t -f state nm 2> /dev/null)" = "xconnected" ]
++ return $?
+ }
+
+ start() {
++ if yesno "${IN_BACKGROUND}"; then
++ _is_connected && mark_service_started
++ return
++ fi
+ ebegin "Starting NetworkManager"
+ start-stop-daemon --start --quiet --pidfile /var/run/NetworkManager.pid \
+ --exec /usr/sbin/NetworkManager -- --pid-file /var/run/NetworkManager.pid
+- eend $?
++ local _retval=$?
++ eend "${_retval}"
++ if [ "x${_retval}" = 'x0' ]; then
++ _is_connected || mark_service_inactive
++ fi
++ return "${_retval}"
+ }
+
+ stop() {
++ if yesno "${IN_BACKGROUND}"; then
++ _is_connected || mark_service_inactive
++ return
++ fi
+ ebegin "Stopping NetworkManager"
+ start-stop-daemon --stop --quiet --pidfile /var/run/NetworkManager.pid
+ eend $?
+--
+1.7.8.4
+
diff --git a/net-misc/networkmanager/networkmanager-0.9.2.0-r3.ebuild b/net-misc/networkmanager/networkmanager-0.9.2.0-r3.ebuild
new file mode 100644
index 000000000000..d6f8cda1809c
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-0.9.2.0-r3.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/networkmanager-0.9.2.0-r3.ebuild,v 1.3 2012/02/02 00:34:59 tetromino Exp $
+
+EAPI="4"
+GNOME_ORG_MODULE="NetworkManager"
+
+inherit autotools eutils gnome.org linux-info systemd
+
+DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent."
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="avahi bluetooth doc +nss gnutls dhclient +dhcpcd +introspection
+ kernel_linux +ppp resolvconf connection-sharing wimax"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+
+REQUIRED_USE="
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )"
+
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# libnl:1.1 is needed for linking to net-wireless/wimax libraries
+# XXX: on bump, check that net-wireless/wimax is still using libnl:1.1 !
+# TODO: Qt support?
+COMMON_DEPEND=">=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.75
+ >=net-wireless/wireless-tools-28_pre9
+ || ( >=sys-fs/udev-171[gudev] >=sys-fs/udev-147[extras] )
+ >=dev-libs/glib-2.26
+ >=sys-auth/polkit-0.97
+ dev-libs/libnl:1.1
+ >=net-wireless/wpa_supplicant-0.7.3-r3[dbus]
+ bluetooth? ( >=net-wireless/bluez-4.82 )
+ avahi? ( net-dns/avahi[autoipd] )
+ gnutls? (
+ dev-libs/libgcrypt
+ net-libs/gnutls )
+ nss? ( >=dev-libs/nss-3.11 )
+ dhclient? ( net-misc/dhcp )
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.10.3 )
+ ppp? (
+ >=net-misc/modemmanager-0.4
+ >=net-dialup/ppp-2.4.5 )
+ resolvconf? ( net-dns/openresolv )
+ connection-sharing? (
+ net-dns/dnsmasq
+ net-firewall/iptables )
+ wimax? ( >=net-wireless/wimax-1.5.1 )"
+
+RDEPEND="${COMMON_DEPEND}
+ sys-auth/consolekit"
+
+DEPEND="${COMMON_DEPEND}
+ dev-util/pkgconfig
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
+ doc? ( >=dev-util/gtk-doc-1.8 )"
+
+sysfs_deprecated_check() {
+ ebegin "Checking for SYSFS_DEPRECATED support"
+
+ if { linux_chkconfig_present SYSFS_DEPRECATED_V2; }; then
+ eerror "Please disable SYSFS_DEPRECATED_V2 support in your kernel config and recompile your kernel"
+ eerror "or NetworkManager will not work correctly."
+ eerror "See http://bugs.gentoo.org/333639 for more info."
+ die "CONFIG_SYSFS_DEPRECATED_V2 support detected!"
+ fi
+ eend $?
+}
+
+pkg_pretend() {
+ if use kernel_linux; then
+ get_version
+ if linux_config_exists; then
+ sysfs_deprecated_check
+ else
+ ewarn "Was unable to determine your kernel .config"
+ ewarn "Please note that if CONFIG_SYSFS_DEPRECATED_V2 is set in your kernel .config, NetworkManager will not work correctly."
+ ewarn "See http://bugs.gentoo.org/333639 for more info."
+ fi
+
+ fi
+}
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ # Don't build tests
+ epatch "${FILESDIR}/${PN}-0.9_rc3-fix-tests.patch"
+ # Build against libnl:1.1 for net-wireless/wimax-1.5.2 compatibility
+ epatch "${FILESDIR}/${PN}-0.9.1.95-force-libnl1.1.patch"
+ # Migrate to openrc style
+ epatch "${FILESDIR}/${P}-ifnet-openrc-style.patch"
+ # Ignore per-user connections
+ epatch "${FILESDIR}/${P}-ifnet-ignore-user-connections.patch"
+ # Remove system prefix
+ epatch "${FILESDIR}/${P}-ifnet-remove-system-prefix.patch"
+ # Correctly deal with single quotes in /etc/conf.d/hostname
+ epatch "${FILESDIR}/${P}-ifnet-unquote-hostname.patch"
+ # Update init.d script to provide net and use inactive status if not connected
+ epatch "${FILESDIR}/${P}-init-provide-net.patch"
+
+ eautoreconf
+ default
+}
+
+src_configure() {
+ ECONF="--disable-more-warnings
+ --disable-static
+ --localstatedir=/var
+ --with-distro=gentoo
+ --with-dbus-sys-dir=/etc/dbus-1/system.d
+ --with-udev-dir=/lib/udev
+ --with-iptables=/sbin/iptables
+ $(use_enable doc gtk-doc)
+ $(use_enable introspection)
+ $(use_enable ppp)
+ $(use_enable wimax)
+ $(use_with dhclient)
+ $(use_with dhcpcd)
+ $(use_with doc docs)
+ $(use_with resolvconf)
+ $(systemd_with_unitdir)"
+
+ if use nss ; then
+ ECONF="${ECONF} $(use_with nss crypto=nss)"
+ else
+ ECONF="${ECONF} $(use_with gnutls crypto=gnutls)"
+ fi
+
+ econf ${ECONF}
+}
+
+src_install() {
+ default
+ # /var/run/NetworkManager is used by some distros, but not by Gentoo
+ rmdir -v "${ED}/var/run/NetworkManager" || die "rmdir failed"
+
+ # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
+ keepdir /etc/NetworkManager/dispatcher.d
+
+ # Provide openrc net dependency only when nm is connected
+ exeinto /etc/NetworkManager/dispatcher.d
+ doexe "${FILESDIR}/10-openrc-status"
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" \
+ -i "${ED}/etc/NetworkManager/dispatcher.d/10-openrc-status" || die
+
+ # Add keyfile plugin support
+ keepdir /etc/NetworkManager/system-connections
+ chmod 0600 "${ED}"/etc/NetworkManager/system-connections/.keep* # bug #383765
+ insinto /etc/NetworkManager
+ newins "${FILESDIR}/nm-system-settings.conf-ifnet" nm-system-settings.conf
+
+ # Allow users in plugdev group to modify system connections
+ insinto /etc/polkit-1/localauthority/10-vendor.d
+ doins "${FILESDIR}/01-org.freedesktop.NetworkManager.settings.modify.system.pkla"
+
+ # Remove useless .la files
+ find "${D}" -name '*.la' -exec rm -f {} + || die "la file removal failed"
+}
+
+pkg_postinst() {
+ elog "To modify system network connections without needing to enter the"
+ elog "root password, add your user account to the 'plugdev' group."
+}