summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2012-02-10 13:58:50 +0100
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2012-02-10 14:01:52 +0100
commit73474c5f16d5a889bd37fd6aaa148b6e5401756b (patch)
tree019b46e6f8b8fdfeabb267b8d735d7d751b252f8
parentpjctl: update manifest (diff)
downloadbenf-73474c5f16d5a889bd37fd6aaa148b6e5401756b.tar.gz
benf-73474c5f16d5a889bd37fd6aaa148b6e5401756b.tar.bz2
benf-73474c5f16d5a889bd37fd6aaa148b6e5401756b.zip
Add networkmanager live ebuild
Will be kept only until the following features are available in portage diectly: * systemd session support * wext optional
-rw-r--r--net-misc/networkmanager/Manifest6
-rw-r--r--net-misc/networkmanager/files/01-org.freedesktop.NetworkManager.settings.modify.system.pkla6
-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/files/nm-system-settings.conf2
-rw-r--r--net-misc/networkmanager/files/nm-system-settings.conf-ifnet6
-rw-r--r--net-misc/networkmanager/networkmanager-9999.ebuild187
-rw-r--r--profiles/package.mask4
8 files changed, 299 insertions, 0 deletions
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest
new file mode 100644
index 0000000..f6b2d4b
--- /dev/null
+++ b/net-misc/networkmanager/Manifest
@@ -0,0 +1,6 @@
+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 networkmanager-0.9.2.0-init-provide-net.patch 1957 RMD160 20dac26714191f4eb1e7ec28eab515bd060f7b25 SHA1 39b7aa225e76b22c5d9795061b6a13980dc881d7 SHA256 76a39cf52925c863da9958d3b3ced9be3ba68b7fe98bad070ba3a3b3b9999d81
+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
+EBUILD networkmanager-9999.ebuild 5768 RMD160 94385bc4296598c654f48d1a83628486141df4f7 SHA1 4ce5d6dd0e0b1111475fe6d3f549e61d189e31cd SHA256 ade4c38f1df27b15ae4f488592d564838bc780b1f88ce5638df57036ae0f15d0
diff --git a/net-misc/networkmanager/files/01-org.freedesktop.NetworkManager.settings.modify.system.pkla b/net-misc/networkmanager/files/01-org.freedesktop.NetworkManager.settings.modify.system.pkla
new file mode 100644
index 0000000..d443327
--- /dev/null
+++ b/net-misc/networkmanager/files/01-org.freedesktop.NetworkManager.settings.modify.system.pkla
@@ -0,0 +1,6 @@
+[Let users in plugdev group modify NetworkManager]
+Identity=unix-group:plugdev
+Action=org.freedesktop.NetworkManager.settings.modify.system
+ResultAny=no
+ResultInactive=no
+ResultActive=yes \ No newline at end of file
diff --git a/net-misc/networkmanager/files/10-openrc-status b/net-misc/networkmanager/files/10-openrc-status
new file mode 100644
index 0000000..b3c5bc1
--- /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 0000000..886fe1a
--- /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/files/nm-system-settings.conf b/net-misc/networkmanager/files/nm-system-settings.conf
new file mode 100644
index 0000000..c37b596
--- /dev/null
+++ b/net-misc/networkmanager/files/nm-system-settings.conf
@@ -0,0 +1,2 @@
+[main]
+plugins=keyfile
diff --git a/net-misc/networkmanager/files/nm-system-settings.conf-ifnet b/net-misc/networkmanager/files/nm-system-settings.conf-ifnet
new file mode 100644
index 0000000..4d14ee7
--- /dev/null
+++ b/net-misc/networkmanager/files/nm-system-settings.conf-ifnet
@@ -0,0 +1,6 @@
+[main]
+plugins=ifnet,keyfile
+
+[ifnet]
+managed=true
+auto_refresh=false
diff --git a/net-misc/networkmanager/networkmanager-9999.ebuild b/net-misc/networkmanager/networkmanager-9999.ebuild
new file mode 100644
index 0000000..3f09d82
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-9999.ebuild
@@ -0,0 +1,187 @@
+# 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"
+
+EGIT_REPO_URI="git://anongit.freedesktop.org/NetworkManager/NetworkManager"
+
+inherit autotools eutils gnome.org linux-info systemd git-2
+SRC_URI=""
+
+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 systemd"
+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?
+
+#>=net-wireless/wireless-tools-28_pre9
+
+COMMON_DEPEND=">=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.75
+ || ( >=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 )
+ systemd? ( sys-apps/systemd )"
+
+
+RDEPEND="${COMMON_DEPEND}
+ !systemd? ( 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}/networkmanager-0.9.2.0-init-provide-net.patch"
+
+ gtkdocize
+ eautopoint
+ intltoolize --force --automake
+ 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 systemd ; then
+ ECONF="${ECONF} --with-session-tracking=systemd"
+ else
+ ECONF="${ECONF} --with-session-tracking=ck"
+ fi
+
+ 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."
+}
diff --git a/profiles/package.mask b/profiles/package.mask
index 7d92e98..7144dc5 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -17,3 +17,7 @@
# Benjamin Franzke <benjaminfranzke@googlemail.com> (11 December 2011)
# exposong live ebuild
=app-office/exposong-9999
+
+# Benjamin Franzke <benjaminfranzke@googlemail.com> (10 Februar 2012)
+# networkmanager live ebuild
+=net-misc/networkmanager-9999