Network Manager Magic Without GNOME
Do you know its possible to install network manager without the bloat of gnome?.
I managed to do this in Gentoo by editing the dependencies in the ebuild.
Copy & Paste this ebuild and save it to /usr/portage/net-misc/networkmanager/networkmanager-0.6.6-r1.ebuild or your local overlay path.
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/networkmanager-0.6.6.ebuild,v 1.4 2008/08/17 16:16:38 maekke Exp $
inherit gnome2 eutils
# NetworkManager likes itself with capital letters
MY_P=${P/networkmanager/NetworkManager}
DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent."
HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
# Release candidate for 0.6.6, Hosted in dcbw's redhat space.
SRC_URI="http://people.redhat.com/dcbw/NetworkManager/0.6.6/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~ppc x86"
IUSE="crypt doc gnome trayer gnome-panel"
# Yes, I know that configure will accept libnl 1.0-pre8, however we only have
# 1.1 in the tree, therefore dep on it.
RDEPEND=">=sys-apps/dbus-0.60
>=sys-apps/hal-0.5.10
sys-apps/iproute2
>=dev-libs/libnl-1.1
>=net-misc/dhcdbd-1.4
>=net-wireless/wireless-tools-28_pre9
>=net-wireless/wpa_supplicant-0.4.8
>=dev-libs/glib-2.8
gnome-panel? ( >=x11-libs/gtk+-2.8
>=gnome-base/libglade-2
>=gnome-base/gnome-keyring-0.4
>=gnome-base/gnome-panel-2
>=gnome-base/gconf-2
>=gnome-base/libgnomeui-2 )
crypt? ( dev-libs/libgcrypt )
trayer? ( x11-misc/trayer ) "
DEPEND="${RDEPEND}
dev-util/pkgconfig
dev-util/intltool"
PDEPEND="gnome? ( >gnome-extra/nm-applet-0.6.5 )"
DOCS="AUTHORS ChangeLog NEWS README"
USE_DESTDIR="1"
G2CONF="${G2CONF} \
`use_with crypt gcrypt` \
`use_with gnome` \
--disable-more-warnings \
--localstatedir=/var \
--with-distro=gentoo \
--with-dbus-sys=/etc/dbus-1/system.d"
S=${WORKDIR}/${MY_P}
pkg_setup() {
if built_with_use sys-apps/iproute2 minimal ; then
eerror "Please rebuild sys-apps/iproute2 without the minimal useflag."
die "Fix iproute2 first."
fi
}
src_unpack () {
unpack ${A}
cd "${S}"
# Use the kernel headers
epatch "${FILESDIR}/${PN}-use-kernel-headers.patch"
# Fix the resolv.conf permissions
epatch "${FILESDIR}/${PN}-resolvconf-perms.patch"
# Fix up the dbus conf file to use plugdev group
epatch "${FILESDIR}/${PN}-0.6.5-confchanges.patch"
}
src_install() {
gnome2_src_install
# Need to keep the /var/run/NetworkManager directory
keepdir /var/run/NetworkManager
}
pkg_postinst() {
gnome2_icon_cache_update
elog "You need to be in the plugdev group in order to use NetworkManager"
elog "Problems with your hostname getting changed?"
elog ""
elog "Add the following to /etc/dhcp/dhclient.conf"
elog 'send host-name "YOURHOSTNAME";'
elog 'supersede host-name "YOURHOSTNAME";'
elog "You will need to restart DBUS if this is your first time"
elog "installing NetworkManager."
}
then digest the ebuild by :
ebuild /usr/portage/net-misc/networkmanager/networkmanager-0.6.6-r1.ebuild digest
edit your use flag
echo net-misc/networkmanager -gnome-panel trayer >> /etc/portage/package.use
get your networkmanager
emerge networkmanager
now when it compiles and installed (emerged) without error, then its time to edit the configuration.
Remove all the symlink of net.??? in the /etc/init.d
Comment out all the configuration in the /etc/conf.d/net and /etc/conf.d/wireless
add your user to the plugdev group by :
gpasswd -a USERNAME plugdev
edit /etc/dhcp/dhclient.conf
send host-name "HOSTNAME";#!/sbin/runscript
supersede host-name "HOSTNAME";
Create this /etc/init.d/NetworkManagerDispatcher
# Copyright (c) 2008 Saleem Abdulrasool <compnerd@compnerd.org>
# Distributed under the terms of the GNU General Purpose License v2
# $Header: $
depend() {
need NetworkManager
}
start() {
ebegin "Starting NetworkManagerDispatcher"
start-stop-daemon --start --quiet --pidfile /var/run/NetworkManagerDispatcher.pid --exec /usr/sbin/NetworkManagerDispatcher
eend $?
}
stop()
{
local retval
ebegin "Stopping NetworkManagerDispatcher"
start-stop-daemon --stop --quiet --pidfile /var/run/NetworkManagerDispatcher.pid
retval=$?
eend ${retval}
[ -e /var/run/NetworkManagerDispatcher.pid ] && rm -f /var/run/NetworkManagerDispatcher.pid
return ${retval}
}
# vim: set ft=gentoo-init-d ts=3 sw=3 et:
make the script executable
chmod +x /etc/init.d/NetworkManagerDispatcher
create the required config file for NetworkManagerDispatcher
mkdir /etc/NetworkManager
mkdir /etc/NetworkManager/dispatcher.d
create /etc/NetworkManager/dispatcher.d/50-ntp-client
#!/bin/bash
/etc/init.d/ntp-client status | grep -q "started"
if test "$2" == "up" -a "$?" != "0" ; then
rc-config start ntp-client
else
rc-config stop ntp-client
fi
update the rc to load networkmanager at boot
rc-update add NetworkManager default
rc-update add NetworkManagerDispatcher default
Load trayer for the gnome-panel replacement. This process may vary to other windows manager. But basically its loading the trayer in the windows manager startup. In e17 this is how I managed to do it.
add this line to ~/.xinitrc
( sleep 1; \
trayer --align right --edge bottom --distance 0 \
--expand true \
--transparent true --alpha 128 --tint 0 \
--SetDockType true --SetPartialStrut true &
nm-applet --sm-disable & ) &
I think It should work for other Windows manager but never tries it.
Finally load the damn thing!
/etc/init.d/NetworkManager start


















Reader Comments