about summary refs log tree commit diff
path: root/pkgs/tools/networking/wicd
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-01-07 17:49:45 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-01-07 17:49:45 +0000
commit3a400bb64aae8c594163933f874bdcdc092842bb (patch)
tree29dec280f32e5cc403ebde40ecc0e45dceafce7f /pkgs/tools/networking/wicd
parent645ae45d55dfbaac882cc5b3eebf8b7e466ef33b (diff)
downloadnixlib-3a400bb64aae8c594163933f874bdcdc092842bb.tar
nixlib-3a400bb64aae8c594163933f874bdcdc092842bb.tar.gz
nixlib-3a400bb64aae8c594163933f874bdcdc092842bb.tar.bz2
nixlib-3a400bb64aae8c594163933f874bdcdc092842bb.tar.lz
nixlib-3a400bb64aae8c594163933f874bdcdc092842bb.tar.xz
nixlib-3a400bb64aae8c594163933f874bdcdc092842bb.tar.zst
nixlib-3a400bb64aae8c594163933f874bdcdc092842bb.zip
Adding wicd, written by roconnor, sent to the nix-dev list on 2010-01-07
svn path=/nixpkgs/trunk/; revision=19297
Diffstat (limited to 'pkgs/tools/networking/wicd')
-rw-r--r--pkgs/tools/networking/wicd/default.nix78
-rw-r--r--pkgs/tools/networking/wicd/mkdir-networks.patch11
-rw-r--r--pkgs/tools/networking/wicd/no-var-install.patch20
-rw-r--r--pkgs/tools/networking/wicd/pygtk.patch15
4 files changed, 124 insertions, 0 deletions
diff --git a/pkgs/tools/networking/wicd/default.nix b/pkgs/tools/networking/wicd/default.nix
new file mode 100644
index 000000000000..95c01431c32a
--- /dev/null
+++ b/pkgs/tools/networking/wicd/default.nix
@@ -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";
+  };
+}
diff --git a/pkgs/tools/networking/wicd/mkdir-networks.patch b/pkgs/tools/networking/wicd/mkdir-networks.patch
new file mode 100644
index 000000000000..df3f0487d1da
--- /dev/null
+++ b/pkgs/tools/networking/wicd/mkdir-networks.patch
@@ -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 $@
diff --git a/pkgs/tools/networking/wicd/no-var-install.patch b/pkgs/tools/networking/wicd/no-var-install.patch
new file mode 100644
index 000000000000..6f25ba0172c9
--- /dev/null
+++ b/pkgs/tools/networking/wicd/no-var-install.patch
@@ -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', ]),
diff --git a/pkgs/tools/networking/wicd/pygtk.patch b/pkgs/tools/networking/wicd/pygtk.patch
new file mode 100644
index 000000000000..e72228f75a5c
--- /dev/null
+++ b/pkgs/tools/networking/wicd/pygtk.patch
@@ -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