about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/gajim
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2013-05-25 05:18:08 +0200
committeraszlig <aszlig@redmoonstudios.org>2013-05-27 10:17:58 +0200
commit4535c0bbfe187023979cb38c3bf9647139bbf5b3 (patch)
treecb6dc9908aea6f2117bebebec55ea7ae0394af90 /pkgs/applications/networking/instant-messengers/gajim
parentafe180f74c01107832090bc00242939d2ffdf427 (diff)
downloadnixlib-4535c0bbfe187023979cb38c3bf9647139bbf5b3.tar
nixlib-4535c0bbfe187023979cb38c3bf9647139bbf5b3.tar.gz
nixlib-4535c0bbfe187023979cb38c3bf9647139bbf5b3.tar.bz2
nixlib-4535c0bbfe187023979cb38c3bf9647139bbf5b3.tar.lz
nixlib-4535c0bbfe187023979cb38c3bf9647139bbf5b3.tar.xz
nixlib-4535c0bbfe187023979cb38c3bf9647139bbf5b3.tar.zst
nixlib-4535c0bbfe187023979cb38c3bf9647139bbf5b3.zip
gajim: Clean up and rewrite package expression.
This should clean up the package expression significantly by actually using
explicit input attributes and setting PYTHONPATH and GST_PLUGIN_PATH from
environment variables in the builder.

In addition, this adds a small patch from the upstream Mercurial repository to
add an index.theme to the icons, so Gajim is able to load them correctly from
the store.

With this change, I'm adding myself to the maintainers list as well, because I'm
switching over from TKabber to Gajim.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/gajim')
-rw-r--r--pkgs/applications/networking/instant-messengers/gajim/default.nix111
1 files changed, 65 insertions, 46 deletions
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index bf7b050cd0d9..ecd3181134ff 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -1,54 +1,73 @@
-a :  
-let 
-  fetchurl = a.fetchurl;
-
-  version = a.lib.attrByPath ["version"] "0.15.3" a; 
-  buildInputs = with a; [
-    python pyGtkGlade gtk perl intltool dbus gettext
-    pkgconfig makeWrapper libglade pyopenssl libXScrnSaver
-    libXt xproto libXext xextproto libX11 gtkspell aspell
-    scrnsaverproto pycrypto pythonDBus pythonSexy 
-    docutils pyasn1 farstream gst_plugins_bad gstreamer
-    gst_ffmpeg gst_python
-  ];
-in
-rec {
+{ stdenv, fetchurl, python, intltool, pkgconfig, libX11, gtk
+, pyopenssl, pythonDBus, pythonPackages
+
+, enableJingle ? true, farstream ? null, gst_plugins_bad ? null
+,                      libnice ? null
+, enableE2E ? true
+, enableRST ? true
+, enableSpelling ? true, gtkspell ? null
+}:
+
+assert enableJingle -> farstream != null && gst_plugins_bad != null
+                    && libnice != null;
+assert enableE2E -> pythonPackages.pycrypto != null;
+assert enableRST -> pythonPackages.docutils != null;
+assert enableSpelling -> gtkspell != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "gajim-${version}";
+  version = "0.15.3";
+
   src = fetchurl {
     url = "http://www.gajim.org/downloads/0.15/gajim-${version}.tar.gz";
     sha256 = "139yl7v1i6g9q66fdmzw0x7hhp7c4x44n4l8hl9g6m9zig5v3s28";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
-
-  preConfigure = a.fullDepEntry (''
-    export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath ${a.pyGtkGlade})/gtk-2.0"
-    export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath ${a.pygobject})/gtk-2.0"
-    sed -e '/-L[$]x_libraries/d' -i configure
-    sed -e 's@tmpfd.close()@os.close(tmpfd)@' -i src/common/latex.py
-  '') ["addInputs" "doUnpack"];
-
-  fixScriptNames = a.fullDepEntry (''
-    mkdir "$out"/bin-wrapped
-    for i in "$out"/bin/.*-wrapped; do
-      name="$i"
-      name="''${name%-wrapped}"
-      name="''${name##*/.}"
-      mv "$i" "$out/bin-wrapped/$name"
-      sed -e 's^'"$i"'^'"$out/bin-wrapped/$name"'^' -i "$out/bin/$name"
-      sed -e "2aexport LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${a.gtkspell}/lib:${a.gtkspell}/lib64\"" -i "$out/bin/gajim"
-      sed -e "2aexport NIX_LDFLAGS=\"\$NIX_LDFLAGS -L${a.gtkspell}/lib -L${a.gtkspell}/lib64\"" -i "$out/bin/gajim"
-      sed -e "2aexport GST_PLUGIN_PATH=\"\$GST_PLUGIN_PATH''${GST_PLUGIN_PATH:+:}$(echo ${a.gst_plugins_bad}/lib/gstreamer-*):$(echo ${a.gst_ffmpeg}/lib/gstreamer-*):$(echo ${a.farstream}/lib/gstreamer-*)\"" -i "$out/bin/gajim"
-    done
-  '') ["wrapBinContentsPython"];
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["preConfigure" (a.doDump "1") "doConfigure" "doMakeInstall" 
-    "wrapBinContentsPython" "fixScriptNames"];
-
-  name = "gajim-" + version;
+  patches = singleton (fetchurl {
+    name = "gajim-icon-index.patch";
+    url = "http://hg.gajim.org/gajim/raw-rev/b9ec78663dfb";
+    sha256 = "0w54hr5dq9y36val55kmh8d6cid7h4fs2nghx09714jylz2nyxxv";
+  });
+
+  postPatch = ''
+    sed -i -e '0,/^[^#]/ {
+      /^[^#]/i export \\\
+        PYTHONPATH="'"$PYTHONPATH\''${PYTHONPATH:+:}\$PYTHONPATH"'" \\\
+        GST_PLUGIN_PATH="'"\$GST_PLUGIN_PATH''${GST_PLUGIN_PATH:+:}${""
+        }$GST_PLUGIN_PATH"'"
+    }' scripts/gajim.in
+
+    sed -i -e 's/return helpers.is_in_path('"'"'drill.*/return True/' \
+      src/features_window.py
+    sed -i -e "s|'drill'|'${ldns}/bin/drill'|" src/common/resolver.py
+  '' + optionalString enableSpelling ''
+    sed -i -e 's|=.*find_lib.*|= "${gtkspell}/lib/libgtkspell.so"|'   \
+      src/gtkspell.py
+  '';
+
+  buildInputs = [
+    python intltool pkgconfig libX11
+    pythonPackages.pygobject pythonPackages.pyGtkGlade
+    pythonPackages.sqlite3 pythonPackages.pyasn1
+    pythonPackages.pyxdg
+    pyopenssl pythonDBus
+  ] ++ optionals enableJingle [ farstream gst_plugins_bad libnice ]
+    ++ optional enableE2E pythonPackages.pycrypto
+    ++ optional enableRST pythonPackages.docutils;
+
+  postInstall = ''
+    install -m 644 -t "$out/share/gajim/icons/hicolor" \
+                      "icons/hicolor/index.theme"
+  '';
+
+  enableParallelBuilding = true;
+
   meta = {
-    description = "Jabber client with meta-contacts";
-    maintainers = [a.lib.maintainers.raskin];
+    homepage = "http://gajim.org/";
+    description = "Jabber client written in PyGTK";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.raskin maintainers.aszlig ];
   };
 }