Adding wicd, written by roconnor, sent to the nix-dev list on 2010-01-07

svn path=/nixpkgs/trunk/; revision=19297
This commit is contained in:
Lluís Batlle i Rossell 2010-01-07 17:49:45 +00:00
parent 645ae45d55
commit 3a400bb64a
5 changed files with 129 additions and 0 deletions

View File

@ -0,0 +1,78 @@
{stdenv, fetchurl, python, pygobject, pycairo, pyGtkGlade, pythonDBus,
wpa_supplicant, dhcp, wirelesstools, nettools, iproute,
locale ? "\\\"C\\\"" }:
# wicd has a ncurses interface that we do not build because it depends on urwid which has not been packaged at this time (2009-12-27)
stdenv.mkDerivation rec {
name = "wicd-1.6.2.2";
src = fetchurl {
url = "mirror://sourceforge/wicd/files/wicd-stable/${name}/${name}.tar.bz2";
sha256 = "1gpjrlanz7rrzkchnpm1dgik333rz1fsg4c4046c5pwdfpp1crxr";
};
buildInputs = [ python ];
patches = [ ./no-var-install.patch ./pygtk.patch ./mkdir-networks.patch ];
# Should I be using pygtk's propogated build inputs?
postPatch = ''
sed -i "2iexport PATH=\$PATH\$\{PATH:+:\}${python}/bin:${wpa_supplicant}/sbin:${dhcp}/sbin:${wirelesstools}/sbin:${nettools}/sbin:${iproute}/sbin" in/scripts=wicd.in
sed -i "3iexport PYTHONPATH=\$PYTHONPATH\$\{PYTHONPATH:+:\}$(toPythonPath $out):$(toPythonPath ${pygobject})/gtk-2.0:$(toPythonPath ${pythonDBus})" in/scripts=wicd.in
sed -i "4iexport LC_ALL=${locale}" in/scripts=wicd.in
sed -i "2iexport PATH=\$PATH\$\{PATH:+:\}${python}/bin" in/scripts=wicd-client.in
sed -i "3iexport PYTHONPATH=\$PYTHONPATH\$\{PYTHONPATH:+:\}$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${pythonDBus})" in/scripts=wicd-client.in
'';
configurePhase = ''
python setup.py configure \
--lib=$out/lib/ \
--etc=/var/lib/wicd/ \
--share=$out/share/ \
--scripts=$out/etc/scripts/ \
--images=$out/share/pixmaps/ \
--encryption=$out/etc/encryption/templates/ \
--bin=$out/bin/ \
--sbin=$out/sbin/ \
--backends=$out/lib/backends/ \
--networks=/var/lib/wicd/configurations/ \
--resume=$out/etc/acpi/resume.d/ \
--suspend=$out/etc/acpi/suspend.d/ \
--pmutils=$out/lib/pm-utils/sleep.d/ \
--dbus=$out/etc/dbus-1/system.d/ \
--desktop=$out/share/applications/ \
--icons=$out/share/icons/hicolour/ \
--translations=$out/share/locale/ \
--autostart=$out/etc/xdg/autostart/ \
--varlib=$out/share/ \
--docdir=$out/share/doc/ \
--mandir=$out/share/man/ \
--kdedir=$out/share/autostart/ \
--python=${python}/bin/python \
--distro=nix \
--wicdgroup=users \
--no-install-init \
--no-install-kde \
--no-install-acpi \
--no-install-pmutils \
--no-install-ncurses \
'';
installPhase = ''python setup.py install --prefix=$out'';
meta = {
homepage = http://wicd.net/;
description = "A wiredless and wired network manager";
long_description=''
A complete network connection manager
Wicd supports wired and wireless networks, and capable of
creating and tracking profiles for both. It has a
template-based wireless encryption system, which allows the user
to easily add encryption methods used. It ships with some common
encryption types, such as WPA and WEP. Wicd will automatically
connect at startup to any preferred network within range.
'';
license="GPL";
};
}

View File

@ -0,0 +1,11 @@
wicd normally makes the NETWORKS directory at install time, but we cannot do that,
so we make it at runtime instead.
--- wicd-1.6.2.2/in/scripts=wicd.in 2009-09-01 11:05:31.000000000 -0400
+++ wicd-1.6.2.2/in/scripts=wicd.in 2010-01-04 18:01:57.000000000 -0500
@@ -1,3 +1,5 @@
#!/bin/bash
+mkdir -p %NETWORKS%
+
exec python -O %LIB%wicd-daemon.py $@

View File

@ -0,0 +1,20 @@
The install tries to create files in /var. This patch removes those steps.
--- wicd-1.6.2.2/setup.py 2009-09-01 11:05:31.000000000 -0400
+++ wicd-1.6.2.2/setup.py 2009-12-27 21:27:57.000000000 -0500
@@ -464,7 +464,6 @@
data = [
(wpath.dbus, ['other/wicd.conf']),
(wpath.desktop, ['other/wicd.desktop']),
- (wpath.log, []),
(wpath.etc, []),
(wpath.icons + 'scalable/apps/', ['icons/scalable/wicd-client.svg']),
(wpath.icons + '192x192/apps/', ['icons/192px/wicd-client.png']),
@@ -481,7 +480,6 @@
(wpath.images, [('images/' + b) for b in os.listdir('images') if not b.startswith('.')]),
(wpath.encryption, [('encryption/templates/' + b) for b in
os.listdir('encryption/templates') if not b.startswith('.')]),
- (wpath.networks, []),
(wpath.bin, ['scripts/wicd-client', ]),
(wpath.sbin, ['scripts/wicd', ]),
(wpath.share, ['data/wicd.glade', ]),

View File

@ -0,0 +1,15 @@
For some reason nix's pygtk doesn't have a pygtk module so we remove the version check.
If this ever changes we could remove this patch.
--- wicd-1.6.2.2/wicd/wicd-client.py 2009-09-01 11:05:31.000000000 -0400
+++ wicd-1.6.2.2/wicd/wicd-client.py 2009-12-28 00:22:57.000000000 -0500
@@ -43,9 +43,6 @@
import atexit
from dbus import DBusException
-import pygtk
-pygtk.require('2.0')
-
HAS_NOTIFY = True
try:
import pynotify

View File

@ -1632,6 +1632,11 @@ let
inherit fetchurl stdenv readline;
};
wicd = import ../tools/networking/wicd {
inherit stdenv fetchurl python pygobject pycairo pyGtkGlade pythonDBus
wpa_supplicant dhcp wirelesstools nettools iproute;
};
wv = import ../tools/misc/wv {
inherit fetchurl stdenv libpng zlib imagemagick
pkgconfig libgsf libxml2 bzip2 glib;