summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/audio/transcode/default.nix25
-rw-r--r--pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix11
-rw-r--r--pkgs/applications/editors/vim/configurable.nix2
-rw-r--r--pkgs/applications/editors/vim/default.nix2
-rw-r--r--pkgs/applications/graphics/photivo/default.nix2
-rw-r--r--pkgs/applications/misc/camlistore/default.nix31
-rw-r--r--pkgs/applications/misc/kdeconnect/default.nix10
-rw-r--r--pkgs/applications/misc/makeself/default.nix20
-rw-r--r--pkgs/applications/misc/nc-indicators/default.nix6
-rw-r--r--pkgs/applications/misc/ocropus/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/dwb/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix337
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb217
-rw-r--r--pkgs/applications/networking/instant-messengers/baresip/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/skype/default.nix19
-rw-r--r--pkgs/applications/networking/irc/bip/bip-0.8.8-yyparse.patch11
-rw-r--r--pkgs/applications/networking/irc/bip/default.nix13
-rw-r--r--pkgs/applications/office/libreoffice/default.nix95
-rwxr-xr-xpkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh38
-rw-r--r--pkgs/applications/office/libreoffice/libreoffice-srcs.nix445
-rw-r--r--pkgs/applications/office/libreoffice/ooxmlexport.diff31
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix4
-rw-r--r--pkgs/applications/science/logic/abc/default.nix2
-rw-r--r--pkgs/applications/science/logic/twelf/default.nix46
-rw-r--r--pkgs/applications/science/math/glsurf/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix3
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix35
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix4
-rw-r--r--pkgs/applications/version-management/gitolite/default.nix37
-rw-r--r--pkgs/applications/window-managers/tabbed/default.nix2
30 files changed, 1282 insertions, 182 deletions
diff --git a/pkgs/applications/audio/transcode/default.nix b/pkgs/applications/audio/transcode/default.nix
new file mode 100644
index 000000000000..c414992a12dd
--- /dev/null
+++ b/pkgs/applications/audio/transcode/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, flac, lame, zlib, libjpeg, libvorbis, libtheora, libxml2
+, lzo, libdvdread, pkgconfig, x264, libmpeg2, xvidcore }:
+
+stdenv.mkDerivation rec {
+  name = "transcode-1.1.7";
+  src = fetchurl {
+    url = "https://bitbucket.org/france/transcode-tcforge/downloads/${name}.tar.bz2";
+    sha256 = "1e4e72d8e0dd62a80b8dd90699f5ca64c9b0cb37a5c9325c184166a9654f0a92";
+  };
+
+  buildInputs = [ flac lame zlib libjpeg libvorbis libtheora libxml2 lzo
+                  libdvdread pkgconfig x264 libmpeg2 xvidcore ];
+  configureFlags = "--disable-ffmpeg --disable-libavcodec --disable-libavformat
+    --enable-lzo --enable-ogg --enable-vorbis --enable-theora --enable-libxml2
+    --enable-x264 --enable-libmpeg2 --enable-xvid";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Suite of command line utilities for transcoding video and audio codecs, and for converting beween different container formats";
+    homepage = http://www.transcoding.org/;
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
index a832c7d5942c..a9c2478d451c 100644
--- a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
+++ b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
@@ -1,15 +1,16 @@
-{ cabal, emacs, haskellSrcExts }:
+{ cabal, emacs, haskellMode, haskellSrcExts }:
 
 cabal.mkDerivation (self: {
   pname = "structured-haskell-mode";
-  version = "1.0.2";
-  sha256 = "1lwdhlr38y5hdr78nplplr3q0hrjhryw378f1857qh0lvp03gwl2";
+  version = "1.0.3";
+  sha256 = "0axmw8bj51q8v0wd4jp6giw9dnv0mp7kp8yd16s4nm4hcqgrh5h2";
   isLibrary = false;
   isExecutable = true;
-  buildDepends = [ haskellSrcExts ];
+  buildDepends = [ haskellSrcExts haskellMode ];
   buildTools = [ emacs ];
   postInstall = ''
-    emacs -L elisp --batch -f batch-byte-compile "elisp/"*.el
+    emacs -L elisp -L ${haskellMode}/share/emacs/site-lisp \
+      --batch -f batch-byte-compile "elisp/"*.el
     install -d $out/share/emacs/site-lisp
     install "elisp/"*.el "elisp/"*.elc  $out/share/emacs/site-lisp
   '';
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 9e2abffc451e..e0d8de157b09 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -21,7 +21,7 @@ composableDerivation {
         # latest release
       args.fetchhg {
             url = "https://vim.googlecode.com/hg/";
-            tag = "v7-4-316";
+            rev = "v7-4-316";
             sha256 = "0scxx33p1ky0wihk04xqpd6rygp1crm0hx446zbjwbsjj6xxn7sx";
       };
 
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index 357de6249fa4..bf9472801731 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 
   src = fetchhg {
     url = "https://vim.googlecode.com/hg/";
-    tag = "v7-4-316";
+    rev = "v7-4-316";
     sha256 = "0scxx33p1ky0wihk04xqpd6rygp1crm0hx446zbjwbsjj6xxn7sx";
   };
 
diff --git a/pkgs/applications/graphics/photivo/default.nix b/pkgs/applications/graphics/photivo/default.nix
index 61e3f666dca7..156966ac46c1 100644
--- a/pkgs/applications/graphics/photivo/default.nix
+++ b/pkgs/applications/graphics/photivo/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchhg {
     url = "http://code.google.com/p/photivo/";
-    tag = "d687864489da";
+    rev = "d687864489da";
     sha256 = "0f6y18k7db2ci6xn664zcwm1g1k04sdv7gg1yd5jk41bndjb7z8h";
   };
 
diff --git a/pkgs/applications/misc/camlistore/default.nix b/pkgs/applications/misc/camlistore/default.nix
new file mode 100644
index 000000000000..80d8dd801a9b
--- /dev/null
+++ b/pkgs/applications/misc/camlistore/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, go, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "0.7";
+  name = "camlistore-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/bradfitz/camlistore/archive/0.7.tar.gz";
+    sha256 = "0lc35x2b9llrnma0m5czivly0c3l4lh3ldw9hwn83lkh8n0bzn11";
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    go run make.go
+    rm bin/README
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp bin/* $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Camlistore is a way of storing, syncing, sharing, modelling and backing up content";
+    homepage = https://camlistore.org;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/kdeconnect/default.nix b/pkgs/applications/misc/kdeconnect/default.nix
index 70f3855c3d66..f0a66d421011 100644
--- a/pkgs/applications/misc/kdeconnect/default.nix
+++ b/pkgs/applications/misc/kdeconnect/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, gettext, kdelibs, makeWrapper, qca2, qca2_ossl, qjson }:
+{ stdenv, fetchurl, gettext, kdelibs, libXtst, makeWrapper, qca2, qca2_ossl, qjson }:
 
 stdenv.mkDerivation rec {
   name = "kdeconnect-${version}";
-  version = "0.5.2.1";
+  version = "0.7";
 
   src = fetchurl {
-    url = "http://download.kde.org/unstable/kdeconnect/0.5.2/src/kdeconnect-kde-${version}.tar.xz";
-    sha256 = "0g632ha7xcqf839c4h0dz5637bz6gnn2gz76dc0qq09zbrq49i08";
+    url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz";
+    sha256 = "0a8g3avg9x5j07cf3c16i4w65q3fn1cbs8zxgq0vl14rzdy09q2j";
   };
 
-  buildInputs = [ gettext kdelibs makeWrapper qca2 qca2_ossl qjson ];
+  buildInputs = [ gettext kdelibs libXtst makeWrapper qca2 qca2_ossl qjson ];
 
   postInstall = ''
     wrapProgram $out/lib/kde4/libexec/kdeconnectd --prefix QT_PLUGIN_PATH : ${qca2_ossl}/lib/qt4/plugins
diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix
index 9ea5f18ee629..e433b83cdeb5 100644
--- a/pkgs/applications/misc/makeself/default.nix
+++ b/pkgs/applications/misc/makeself/default.nix
@@ -1,23 +1,25 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  name = "makeself-2.1.5";
-  src = fetchurl {
-    url = "http://megastep.org/makeself/makeself.run";
-    sha256 = "0khs19xpid4ng0igrjyz3vsi6a5xyixrrrhgdxpdhd2wnf5nc9w2";
+  name = "makeself-2.2.0";
+  src = fetchgit {
+    url = "https://github.com/megastep/makeself.git";
+    rev = "b836b9281ae99abe1865608b065551da56c80719";
+    sha256 = "f7c97f0f8ad8128f2f1b54383319f2cc44cbb05b60ced222784debdf326f23ad";
   };
-  unpackPhase = "sh ${src}";
   installPhase = ''
-    cd ${name}
     mkdir -p $out/{bin,share/{${name},man/man1}}
-    mv makeself.lsm README $out/share/${name}
+    mv makeself.lsm README.md $out/share/${name}
     mv makeself.sh $out/bin/makeself
     mv makeself.1  $out/share/man/man1/
     mv makeself-header.sh $out/share/${name}
     sed -e 's|HEADER=`dirname $0`/makeself-header.sh|HEADER=`dirname $0`/../share/${name}/makeself-header.sh|' -i $out/bin/makeself
   '';
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://megastep.org/makeself;
     description = "Utility to create self-extracting packages";
+    license = licenses.gpl2;
+    maintainer = maintainers.wmertens;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/nc-indicators/default.nix b/pkgs/applications/misc/nc-indicators/default.nix
index a33cfbdf159a..e3a1708326cd 100644
--- a/pkgs/applications/misc/nc-indicators/default.nix
+++ b/pkgs/applications/misc/nc-indicators/default.nix
@@ -2,13 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "nc-indicators";
-  version = "0.1";
-  sha256 = "19amwfcbwfxcj0gr7w0vgxl427l43q3l2s3n3zsxhqwkfblxmfy5";
+  version = "0.2";
+  sha256 = "0z3h0d3cl0xapysq5sh1rnbp8fg8adlq0x3i4ql9xin9in29q27q";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ attoparsec gtk hflags lens pipes stm ];
   meta = {
-    homepage = "https://github.com/nilcons/nc-indicators/issues";
+    homepage = "https://github.com/nilcons/nc-indicators";
     description = "CPU load and memory usage indicators for i3bar";
     license = self.stdenv.lib.licenses.asl20;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/applications/misc/ocropus/default.nix b/pkgs/applications/misc/ocropus/default.nix
index fef3209d11a6..240a975e611e 100644
--- a/pkgs/applications/misc/ocropus/default.nix
+++ b/pkgs/applications/misc/ocropus/default.nix
@@ -40,7 +40,7 @@ pythonPackages.buildPythonPackage rec {
 
   src = fetchhg {
     url = "https://code.google.com/p/ocropus.ocropy";
-    tag = "a6e0fbd820ce";
+    rev = "a6e0fbd820ce";
     sha256 = "1s0v0gd6psfjp6lghwl2dj49h18mgf2n2z8hqzw8430nzhglnlvr";
   };
 
diff --git a/pkgs/applications/networking/browsers/dwb/default.nix b/pkgs/applications/networking/browsers/dwb/default.nix
index 87a548cbb3b7..3f490315515b 100644
--- a/pkgs/applications/networking/browsers/dwb/default.nix
+++ b/pkgs/applications/networking/browsers/dwb/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, pkgconfig, makeWrapper, libsoup, webkit, gtk3, gnutls, json_c,
-  m4, glib_networking, gsettings_desktop_schemas }:
+  m4, glib_networking, gsettings_desktop_schemas, dconf }:
 
 stdenv.mkDerivation {
   name = "dwb-2014-06-17";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   preFixup=''
     wrapProgram "$out/bin/dwb" \
-     --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+     --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules:${dconf}/lib/gio/modules" \
      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
     wrapProgram "$out/bin/dwbem" \
      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules"
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
new file mode 100644
index 000000000000..b8e3124f1858
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -0,0 +1,337 @@
+# This file is generated from generate_nix.rb
+# Execute the following command in a temporary directory to update the file.
+#
+# ruby generate_nix.rb > default.nix
+
+{ stdenv, fetchurl, config
+, alsaLib
+, atk
+, cairo
+, cups
+, dbus_glib
+, dbus_libs
+, fontconfig
+, freetype
+, gconf
+, gdk_pixbuf
+, glib
+, glibc
+, gst_plugins_base
+, gstreamer
+, gtk
+, libX11
+, libXScrnSaver
+, libXext
+, libXinerama
+, libXrender
+, libXt
+, libcanberra
+, libgnome
+, libgnomeui
+, mesa
+, nspr
+, nss
+, pango
+, heimdal
+, pulseaudio
+, systemd
+}:
+
+let
+  version = "30.0";
+  sources = [
+    { locale = "ach"; arch = "linux-i686"; sha256 = "44d2fc9d491b6c001e35cff6e5f1c38c8561d24f8fe2dfb4d79365bcabe965ea"; }
+    { locale = "ach"; arch = "linux-x86_64"; sha256 = "e9fb52a3b82a1434b7fa3bae606749819672c96ce8678c51f1fdbc68520e26bf"; }
+    { locale = "af"; arch = "linux-i686"; sha256 = "bfce74c891ea370ce4e0fe43d578c3c0050d2655fff7372806ed6be338b2c438"; }
+    { locale = "af"; arch = "linux-x86_64"; sha256 = "18408a9c3f3b8c4d9f8cfe067ac23ddcdd3d3a7a22892ba8d74de5679a064db6"; }
+    { locale = "an"; arch = "linux-i686"; sha256 = "601efbf7944408ba1ac35831eaa92c4910cd904bfadc32895ff8d756c70ae934"; }
+    { locale = "an"; arch = "linux-x86_64"; sha256 = "0ba4c272ebac9ecafe5dbfb7fbba1cd2790d126f5b1756ab9a323c94b644df0b"; }
+    { locale = "ar"; arch = "linux-i686"; sha256 = "23ea3168aea75b044fa217b78b01a2dc8c9dd92171d726c4a78c23cffc474469"; }
+    { locale = "ar"; arch = "linux-x86_64"; sha256 = "dae2c1634e17b8c3e276e4c758c4d4c3b1b0d6006adac8e420c13b6f09a6cf53"; }
+    { locale = "as"; arch = "linux-i686"; sha256 = "7d36bd4589556374822f2ab5dd102d557257b5e0b529d1c963f96e9ab6a08850"; }
+    { locale = "as"; arch = "linux-x86_64"; sha256 = "c13ccf3546bafcfeb41c33762e41af249306d4bcfd3ad7fc957db481372be0dc"; }
+    { locale = "ast"; arch = "linux-i686"; sha256 = "853310674d7011956d760883af15b8e343250f8fc3acb3067e0f5a3d978c06ff"; }
+    { locale = "ast"; arch = "linux-x86_64"; sha256 = "2b938081e8672ed5ae16c40c6300e585a26f54da278726f48b98f3ca3e065662"; }
+    { locale = "be"; arch = "linux-i686"; sha256 = "b9acce210f2adf188ba9a3d92774a846a263baa5e076bb9452b89ca5609d6ac8"; }
+    { locale = "be"; arch = "linux-x86_64"; sha256 = "dd2a33ee1ed8c848454b6e64a0c1527f193d070e4d867c4f13fa84f39c9bfecd"; }
+    { locale = "bg"; arch = "linux-i686"; sha256 = "ee060cd395ef28bbad4be74aa42e2a51e7ad866183d139bffbcc7634dc94d738"; }
+    { locale = "bg"; arch = "linux-x86_64"; sha256 = "11a5dd807083da8c3132d9d6518dc674642418eff1fccf68e451ac67b90f141a"; }
+    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "339d286f7f8f469bb6f9f85a8b21a745ecc42717dc91c21c7db88822e9be661a"; }
+    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "fc3f06743a84a7684e43cd4efedb02a126dd119f6141da49c6120f1bbcdf9392"; }
+    { locale = "bn-IN"; arch = "linux-i686"; sha256 = "c585982368f258a8a728f782c37428311f0b6a6512231c077a439dd93645c3a2"; }
+    { locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "00b9af4425050ec42b4a45a3c4a16700edcc66297331b601950fb81421ef8eb4"; }
+    { locale = "br"; arch = "linux-i686"; sha256 = "b86d944592f16f5f0e558106e3464248e3d686f45527a40fb64aaa79d9f73422"; }
+    { locale = "br"; arch = "linux-x86_64"; sha256 = "b894c12508f0b0a892154ea61fb2bb01947929041a63518f7c405ed976cc4d3f"; }
+    { locale = "bs"; arch = "linux-i686"; sha256 = "f7da0fead608f63c4a5be92fed9e0109fbe7288948d15dde05e10bba80b47743"; }
+    { locale = "bs"; arch = "linux-x86_64"; sha256 = "1cb090f9b16bcae95055377bc14a531697c480ad50e3a098dbd572770924d558"; }
+    { locale = "ca"; arch = "linux-i686"; sha256 = "0b36330715f8909e1515c535a06f4e3fdd7660de11b3424b4ce88f336561935f"; }
+    { locale = "ca"; arch = "linux-x86_64"; sha256 = "c6e9e545d09e589fd5fbfd2c6482a5ef366c470e294823b3ba05c5e728bca2c2"; }
+    { locale = "cs"; arch = "linux-i686"; sha256 = "ff1ca239be0e99b923c63c5bbc425dd2989bc40dbdc82dd731d7173fd539406a"; }
+    { locale = "cs"; arch = "linux-x86_64"; sha256 = "fe8472d6a4bf9fcda3caef51449fc3e20e1fbadbb772b330a012ffa7219afae3"; }
+    { locale = "csb"; arch = "linux-i686"; sha256 = "db1b7dbc7b0cd564a04b3a37827e8d77277cd7ba6a59403c45115d34e637f463"; }
+    { locale = "csb"; arch = "linux-x86_64"; sha256 = "023dd75e02f41a2ce9991fb40a8a46767f1a10da876a390035a084c5b97bd9d2"; }
+    { locale = "cy"; arch = "linux-i686"; sha256 = "9a6ac60099b03bdeb71c1a7739dafeff4b1682ffc43997191196e1f590421afa"; }
+    { locale = "cy"; arch = "linux-x86_64"; sha256 = "a5f2030fb08c0dd6dff95310209ed7c6ee613680dd500f00e30e26c547f9c249"; }
+    { locale = "da"; arch = "linux-i686"; sha256 = "99a893ac19b0ca28177c8957d7296e6deef9ddb36a6b5b17823cb1e6fc9ec683"; }
+    { locale = "da"; arch = "linux-x86_64"; sha256 = "69f29e795f203fe47e22daf1259c2ecfb39c362babefbbccb31405f4632f236b"; }
+    { locale = "de"; arch = "linux-i686"; sha256 = "925aac0800ce63a88fadc945da40b00ed6dde327637821518a372d7affb6e450"; }
+    { locale = "de"; arch = "linux-x86_64"; sha256 = "d86c5d2102a95ff5a6e580a1ca7af25c2f470211182ef70e988b29b195be6dd4"; }
+    { locale = "el"; arch = "linux-i686"; sha256 = "af07fac82dea32d33bd6bc440e2a645eb160d196cf0d4883b878d3d2c584f81a"; }
+    { locale = "el"; arch = "linux-x86_64"; sha256 = "fcc96c25422837f19f9ff6cde02c81c4a5a3b7c8e6809b90c8761519571db1f6"; }
+    { locale = "en-GB"; arch = "linux-i686"; sha256 = "758f7bb669743d6067e416c26f43806b16ddd16511a6818373e70960cbbd7151"; }
+    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "d46ba3d642bf43fca46dfb29efb5d08a15f114eb9facc868e86c31f7c9c98014"; }
+    { locale = "en-US"; arch = "linux-i686"; sha256 = "4bca44a1ba94bf5616f7ea650e37cd3e5a719546def9e4a08ee88aedbc3a4db6"; }
+    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "3303cc600153d0198dace9826b6883aa510d4e380aa985b092b1da67ad865625"; }
+    { locale = "en-ZA"; arch = "linux-i686"; sha256 = "13736870573863aab644bf2be2219fe4b5c6bde4bd79b84f22e12d39e7cda6e0"; }
+    { locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "7e88fa9f355f6787d38e75d86d5b592a1a2cec208255f276887f53a12beb9e97"; }
+    { locale = "eo"; arch = "linux-i686"; sha256 = "ae4446e223c0169dd0b56db58760fdb323a2bec8135e45c79d385d895b64cee8"; }
+    { locale = "eo"; arch = "linux-x86_64"; sha256 = "202f61dd8e5506594ae70bbee9150d86c8037887f8345871dc5c1c9e498b1d66"; }
+    { locale = "es-AR"; arch = "linux-i686"; sha256 = "8fb276ed26fd46fceb029fbade706cb6e55d2958f03400ec1290784c533888c4"; }
+    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "78130525d30d7c592bb63d7cedf3ab5db804d457c4d127d90b93d94501ad7b3c"; }
+    { locale = "es-CL"; arch = "linux-i686"; sha256 = "ef6bf393a681f4a08031eeda61bba3614ebfab222fed43f9f8b21cfa8eb3862e"; }
+    { locale = "es-CL"; arch = "linux-x86_64"; sha256 = "e56224bca0ebfab9eedecafafd792e48cb67e3f8741c4d5a94c8f74f634cecf6"; }
+    { locale = "es-ES"; arch = "linux-i686"; sha256 = "9e007e6aa0f8aa3d1fac5dc13e98f81c23e6ff1e574545c021f8f7feeff86ce2"; }
+    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "d4ff94f46fd086300992a30a1c4a8aa97ad7164d6cd26e82b20b5d0680b38169"; }
+    { locale = "es-MX"; arch = "linux-i686"; sha256 = "9db42a0557838b23ac4937adfec407804e624e679e9ffd6da739d17cdfbaab78"; }
+    { locale = "es-MX"; arch = "linux-x86_64"; sha256 = "d42d619d6da78d0bbcb32b0a93a2eaa623eadb3a5af43e5b8b14400e6e969779"; }
+    { locale = "et"; arch = "linux-i686"; sha256 = "5947822f3f02bd4ba530ad978de1a9d237981e3abdf1598e44095c650794d1ff"; }
+    { locale = "et"; arch = "linux-x86_64"; sha256 = "7521a4db287bb928f50b64817f3631e96ea4cead81b1a84ab7c3b930b3450e86"; }
+    { locale = "eu"; arch = "linux-i686"; sha256 = "44095e98e74205fa012a2c0c636de3fe9cfb79d5729abf15214c1e7734946014"; }
+    { locale = "eu"; arch = "linux-x86_64"; sha256 = "2032dfbc82a9aca1a2f4cf67e6089400bf305d13906f048c5c9b906a7201a9fb"; }
+    { locale = "fa"; arch = "linux-i686"; sha256 = "469b8008287c93e152e762e82fb61644384c1e2631a6c45033503652daed09b1"; }
+    { locale = "fa"; arch = "linux-x86_64"; sha256 = "61ea0d8941d22083f918d014d56a613788d1f4f549e5a62d50a1f9071439a36f"; }
+    { locale = "ff"; arch = "linux-i686"; sha256 = "81a0083e5e4136e3ab3e6db0e2adcedfae7572722655a9cb8b9ca388c6057342"; }
+    { locale = "ff"; arch = "linux-x86_64"; sha256 = "0efe16da918288754a3af816d72448a73690eb71b110cf3ff0586ee7505b9735"; }
+    { locale = "fi"; arch = "linux-i686"; sha256 = "a0ee069e7c3100b921aab7c54c5d32741df4e058f52cb7f42acb2643bd534b30"; }
+    { locale = "fi"; arch = "linux-x86_64"; sha256 = "55c84d504603d648e7d72a2fb8badb0bc9148cb376bb0cc6054f091867cb2613"; }
+    { locale = "fr"; arch = "linux-i686"; sha256 = "9c9abea13db23ef5ef8c9a3ccb5a0702b44a8db2402f43f01a478eb61e7ddf34"; }
+    { locale = "fr"; arch = "linux-x86_64"; sha256 = "ce26fc67cbc2031880ffa3529a59ca4122016258ab1c023e23247c26308b6a3e"; }
+    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "4a734880ed65a207d98630647a341644df4f68149c50ce5e683bb21b5c27f2c6"; }
+    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "bace955c686456d7894ca7bc1cf854eb158d6183050318efc73768e232c9a413"; }
+    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "4801f40ebd820b8f229cfcd04a04351fcee9f78268af1c9863089ef6c64d736a"; }
+    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "c417c0182e6f706473bc4b7cf8c14aec96f96e21c17b8593b71ff38c97f7e9d2"; }
+    { locale = "gd"; arch = "linux-i686"; sha256 = "15a9d316d472d2918eff0c6f02600e40a8f62d7ef53ab14c57537fdda0b5257a"; }
+    { locale = "gd"; arch = "linux-x86_64"; sha256 = "8fcdcf093148222865a905586774dae5d805ef22c01afadeaabe3f0c7b315dba"; }
+    { locale = "gl"; arch = "linux-i686"; sha256 = "83b0ccfe7cf7166899d17b2c9b1ea8effda9cf02024698f8db8f943a388bb3dc"; }
+    { locale = "gl"; arch = "linux-x86_64"; sha256 = "550026595e6e59405b5869183af056ba5a60a303270f1a176ef25e3db1c70289"; }
+    { locale = "gu-IN"; arch = "linux-i686"; sha256 = "7e7dc86fa805808931ba57455b99c9273a4b0aa60998affce3c4b06f0ae7fc70"; }
+    { locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "e0f35d7fe7875785e3749131cf86c5cbea5cbd7b3abd2c2c69f5f8376d3e53d7"; }
+    { locale = "he"; arch = "linux-i686"; sha256 = "5c200c8da3209c2120a8576c30ab609331b52807d0640daaa1a70f665c776969"; }
+    { locale = "he"; arch = "linux-x86_64"; sha256 = "6923a64d1ac5453453f148d38f116faca41be5b1d0a13d4f128bb73db67cb8e2"; }
+    { locale = "hi-IN"; arch = "linux-i686"; sha256 = "6a7e5d06169d6dd87e505012604c93a28440156a3f81e6fe24d567f9c2b2a919"; }
+    { locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "56801593b9dd5ecefed8d7eaf438879dd23006ffff9a31c543861259dedf8263"; }
+    { locale = "hr"; arch = "linux-i686"; sha256 = "4573cd0269639d122496bcaf842d8c741f4d54e8f57d0690b97d8e7e86ee7e74"; }
+    { locale = "hr"; arch = "linux-x86_64"; sha256 = "753984384829229601fbe55d0b6615f3432fdf9babe908fb642f6ac79c749727"; }
+    { locale = "hu"; arch = "linux-i686"; sha256 = "c330478e6e77eff117bce58e17661b83a30308f0a680f648fbf06d1c00f3883c"; }
+    { locale = "hu"; arch = "linux-x86_64"; sha256 = "9d118ba236aa7a9b517278c375aa4e4fa65f85c71b8bea9c41702f6ae7b815cb"; }
+    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "48c1691073b6ede77f5c5d5ae07af7372f17b9f52fd92950c2cca0a01b3b340e"; }
+    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "beda26cefeeeeee59ea52fdd28e1e3025ca4cc3124541fc6825100a61eb398d8"; }
+    { locale = "id"; arch = "linux-i686"; sha256 = "8cf6d0bc2d4bcc68a5ddc935c3bd6ed19a63284dc3227e849be729645a6171d4"; }
+    { locale = "id"; arch = "linux-x86_64"; sha256 = "8be5900b83840871ffb6faba08fea9b35f9f396cae08b228c68e333719fb819f"; }
+    { locale = "is"; arch = "linux-i686"; sha256 = "7c167389105063b84d507b09c689fa18bf854fd695010c8273b9711b21a24034"; }
+    { locale = "is"; arch = "linux-x86_64"; sha256 = "c79321c83c9e654f6eaf96ddf5d24f279d517fbf35dfdf923acf026124919598"; }
+    { locale = "it"; arch = "linux-i686"; sha256 = "a3eb17e0eda3cbf8ffbbd1ecd1716929ac87a801f060dd8ed5291298667775a9"; }
+    { locale = "it"; arch = "linux-x86_64"; sha256 = "3742453f0748911b393fed804e5827f014cc595a9df4516438dfa163d5050411"; }
+    { locale = "ja"; arch = "linux-i686"; sha256 = "fa030c64e04766ae5200370586c08b2f25627343586cd8a0486e583f345c466e"; }
+    { locale = "ja"; arch = "linux-x86_64"; sha256 = "fddeae03ffdfef0f6cc999807e001ea931c15b1833da48655bcb5845f1e017a3"; }
+    { locale = "kk"; arch = "linux-i686"; sha256 = "39d94b10fa751faf7423e5d43cd07ef4485ff26e21e47d106d2268058e2f33d9"; }
+    { locale = "kk"; arch = "linux-x86_64"; sha256 = "1dc7138dd5c08088479c5e7e8054d7ed640504860a0043ecea2c8b0c9c1892f9"; }
+    { locale = "km"; arch = "linux-i686"; sha256 = "0d12a305de4a63fc6c6394bd4044f44ca3626cbc41ca9ef1adad6d5041f6f1fd"; }
+    { locale = "km"; arch = "linux-x86_64"; sha256 = "7710091695dd100b7f33585fce58c54fec462a96540a7d791f1935088f21fadf"; }
+    { locale = "kn"; arch = "linux-i686"; sha256 = "b039e6a1114522ccae10b89ab794a222966fbf0914513b3c14f05c082a78b922"; }
+    { locale = "kn"; arch = "linux-x86_64"; sha256 = "cf82965b25d3990a57d861d688f1bd69e5b069fe281937274060ebe36ddbb8a6"; }
+    { locale = "ko"; arch = "linux-i686"; sha256 = "8b9378d39d7b42852c2bb537b0e85312760c343e6485826ed949ab4617293025"; }
+    { locale = "ko"; arch = "linux-x86_64"; sha256 = "4b946a0cbedad2b8d0c3598c04eeb058cea05d6d7e6388e4cfa3146a40f7c449"; }
+    { locale = "ku"; arch = "linux-i686"; sha256 = "11950c4a54c6a165e924fb6e68bcc46d63b5fddfcd2561c58a0ce401c0146d36"; }
+    { locale = "ku"; arch = "linux-x86_64"; sha256 = "37a07a4e059580c31433b419bcd61d928ad1db7e607cf8443378472d54b61b78"; }
+    { locale = "lij"; arch = "linux-i686"; sha256 = "c0efca49f31800a3773b0d05add56b195d1cbea287108803bb1ef5249a0dc94f"; }
+    { locale = "lij"; arch = "linux-x86_64"; sha256 = "6e4b2d8c5e9942bc469f722110ba310b2ccdc4dda6e3baee93ae54012ae658a2"; }
+    { locale = "lt"; arch = "linux-i686"; sha256 = "acde9010aa815f6645868b03f3d68d9a24c450ed830f063e2846ac1219ee628b"; }
+    { locale = "lt"; arch = "linux-x86_64"; sha256 = "c2491cd3e5d11c302d7ec3191d646e2073c46f69966fc382901a93d16fb0c902"; }
+    { locale = "lv"; arch = "linux-i686"; sha256 = "7411de62c4d8c01c8bb15b3f2dfc2e2ed17755e2f9856ead8e5e0fd05971ffd5"; }
+    { locale = "lv"; arch = "linux-x86_64"; sha256 = "e8e57e629396eb180e0041a50ae98ecb2292f514d423423748e4d4cebc54fb59"; }
+    { locale = "mai"; arch = "linux-i686"; sha256 = "26a053e48f4e6f04e4856a0dcb26e577a6ddb99afc883786d9c260d57e5e4a6d"; }
+    { locale = "mai"; arch = "linux-x86_64"; sha256 = "86be2c736aa5ccf926d44f24afdb2d40c28444b5bd6cf090f9a847199b38b492"; }
+    { locale = "mk"; arch = "linux-i686"; sha256 = "dcf7759bcde70158298ad9e2434e37d4e8240e00589a83dd8dbba53c35466a58"; }
+    { locale = "mk"; arch = "linux-x86_64"; sha256 = "056297d6404794a8da78aeceb620b0ebbcb38a693ee1079cc02e4d0411e40ec3"; }
+    { locale = "ml"; arch = "linux-i686"; sha256 = "2d632b3a5b60f18955906adca80b7ac7af3bfa39d03afd308efd1136cfc8971d"; }
+    { locale = "ml"; arch = "linux-x86_64"; sha256 = "b54a9d47cadeae4f92d22a362ca887a18a16ef64500149ac8eb9355dbbe5971b"; }
+    { locale = "mr"; arch = "linux-i686"; sha256 = "e66b22488bf2c772fa6d29cf43f3e9c1aa2a1a867620a1144af8cb92c2647651"; }
+    { locale = "mr"; arch = "linux-x86_64"; sha256 = "da982205e9b659dd66ab05ca815324642bed2117e668e67ad620bb2d87c5d1c8"; }
+    { locale = "ms"; arch = "linux-i686"; sha256 = "ad39ffa6d6d765c1e983d885f5d139a28e481d536068d517b4807137fa8d3036"; }
+    { locale = "ms"; arch = "linux-x86_64"; sha256 = "fb1b6ed5e2e7247beb69f3d0ad937f76ce7c1107ccdad742ff5085d4b3a8da98"; }
+    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "5220da4627863f9fa1c11886e9c19c315547afafa96c98b22a1a4359c75f1056"; }
+    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "5f9d60faadc7b76b010cd9cf35922b1881377b535e8afc5d9b974651156df866"; }
+    { locale = "nl"; arch = "linux-i686"; sha256 = "357b28841ea861b8297a4986460d1d265b27202c37bb296dcc69224f9b07fc51"; }
+    { locale = "nl"; arch = "linux-x86_64"; sha256 = "9a8505da2fe045ab6c2a2277d2d043374a26f106a5966b00f42e22fb26cf929a"; }
+    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "f115bb50d1e052584caf7363db875ae222ee37449fa151e2f313c157a6274d76"; }
+    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "2e7829a8a20c946bddce13b7b3d1b3600f90d90d2438f3eb69188d47203b264d"; }
+    { locale = "or"; arch = "linux-i686"; sha256 = "9ad48bdf2b7f1deedb05bdcc49740d5075ebf6ec228d82a7ed455c6bb36d7cb0"; }
+    { locale = "or"; arch = "linux-x86_64"; sha256 = "a007bc73fb1ea7765016e9faebac2c4f5e0111a45b3d75d1e55f4de8931796a2"; }
+    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "8a38d2b1516ed4b58e36d266cd25a5bd10548f9e412076c9b4f1f27256c98c2a"; }
+    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "664fa562261532d0f6bad10b84e15d47b69073768c2d12986c8d776eb1af8ddd"; }
+    { locale = "pl"; arch = "linux-i686"; sha256 = "3bb8963f1e3dcdb22cc55feebb2583fefd6f3760f4e6f2cc754174079d4ca07f"; }
+    { locale = "pl"; arch = "linux-x86_64"; sha256 = "710f1d86d2974d6ad3c63ebc0873518fd59f218ba07b27d06fb75c83af2c632e"; }
+    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "cd2fafbd2291bad8481c4086db3c2973a7869b28a5e68a5ff199079814c6b3fc"; }
+    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "f0ba5dc2366757841afb9c9f7799c40667304c36efe7da284202e8e7a45aa1fc"; }
+    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "051af14810ad0cee4487757833f1f5b4a6f6f903f3cecf00d00410c1324d9ce4"; }
+    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "82102b33dc1989bc3aa49da3915baf7e4012afe6e4bd7f80a301dfe847f3dbbe"; }
+    { locale = "rm"; arch = "linux-i686"; sha256 = "02051668e46d98f4e2e5becc3192f6173dfdf3a48cc82264c5821be06c5e12a0"; }
+    { locale = "rm"; arch = "linux-x86_64"; sha256 = "9600c1d272785b946058ffac9e57a8b1701d065f24fa940ad22e4b5aec2efad9"; }
+    { locale = "ro"; arch = "linux-i686"; sha256 = "7f17cbd3041396135eee08eac597c8c6a936e5a33d67d2b5de8ae157a56719ad"; }
+    { locale = "ro"; arch = "linux-x86_64"; sha256 = "ba1de85abe53a7d66f6311d6a202d91f86e871bace168cf60a759ab0e17eccdb"; }
+    { locale = "ru"; arch = "linux-i686"; sha256 = "9dcd0c2b5671fc5849b01f2932504a7217fca9a4b4eca8e9b6ff8f5a146517e2"; }
+    { locale = "ru"; arch = "linux-x86_64"; sha256 = "725214900968e4e648d3d13635bf72d34910eb31a30b83a3e7ba9c5c4085c2d7"; }
+    { locale = "si"; arch = "linux-i686"; sha256 = "d22ed75aa727351efcdba1cffe8e24ff305943c9a3072cac08b004677cf6a028"; }
+    { locale = "si"; arch = "linux-x86_64"; sha256 = "89d60c682413949a6dad4b7fd49cc4508c4e067fe5847c5f21d5e25a953f195f"; }
+    { locale = "sk"; arch = "linux-i686"; sha256 = "4ecbc58df00eaf4fafb1c33a93493bdd3e544562a67c60e2d4d93da90d369261"; }
+    { locale = "sk"; arch = "linux-x86_64"; sha256 = "75baa2c5153e282e2671d6222b7fc8c3b9cfc2b9ee0a595a4451fd314a928fb4"; }
+    { locale = "sl"; arch = "linux-i686"; sha256 = "53e2ae3525d0bd2005a86bf7ed3f27ca66906ddfceb85a738bd60e46ba2df773"; }
+    { locale = "sl"; arch = "linux-x86_64"; sha256 = "2dcc5592a49767dc3f2a7d40387bb550fd36724419ff567f9d107e32b2cf2d6d"; }
+    { locale = "son"; arch = "linux-i686"; sha256 = "d3b7372c59b21d0393768197517b3666ab78705b04a6e84a3345da031bad3776"; }
+    { locale = "son"; arch = "linux-x86_64"; sha256 = "fc017e7a18701880c7a54c23a0f77a6521aae17880dbc562e2b37167ba918fa0"; }
+    { locale = "sq"; arch = "linux-i686"; sha256 = "7f9c9100c559ebfbfff35adc694199079930f4bf9f1f6a820c0e17d80ea0e12b"; }
+    { locale = "sq"; arch = "linux-x86_64"; sha256 = "0f3fcddabab8263eb4c238942c45c0b5efc20c169948da24c56ed401a85209dc"; }
+    { locale = "sr"; arch = "linux-i686"; sha256 = "6281e2f849b3c530ff383cfd4cdc4ab06115362c3d57ba8133a9f799af08e815"; }
+    { locale = "sr"; arch = "linux-x86_64"; sha256 = "368ca83faa5ef3640f71d977916614369ebac1622681e828b75e9abf6ebeb425"; }
+    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "9f77f497fc3e8c585bd546c0bb95c92f9f37d683e092c0762b3fe0022b6d39b5"; }
+    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "0aa21764f0ca58591e3cfebba75196edd51a8fdbadb738f036994178c9612a67"; }
+    { locale = "ta"; arch = "linux-i686"; sha256 = "463ce70405d84945c201cca56c84171e097e6a0420d38cd453a0836fad82f09c"; }
+    { locale = "ta"; arch = "linux-x86_64"; sha256 = "db7e78bc1f4bcb573474806d19324eca58f42008fb0b0fa856f701f1430aeefd"; }
+    { locale = "te"; arch = "linux-i686"; sha256 = "18643daf675f8ef9785a0039d012c3a8ce96f4d228426651c5f09c292cbfb335"; }
+    { locale = "te"; arch = "linux-x86_64"; sha256 = "d9f8a260fc47b608fd523c61e9c6981776997f4b7fc247e794be32d177abfbc0"; }
+    { locale = "th"; arch = "linux-i686"; sha256 = "e03b80d55d2a545ab3219c5e88ed6b7d6974945e32321a2fc96039a6996638f6"; }
+    { locale = "th"; arch = "linux-x86_64"; sha256 = "0416fd2b7e7ddde59a101fcba8258622a83b739effb327984fa8405e634c2121"; }
+    { locale = "tr"; arch = "linux-i686"; sha256 = "75a49ce141c9a04254185b62af72c7e8c214e19e5257ff308b294aee6ac49a28"; }
+    { locale = "tr"; arch = "linux-x86_64"; sha256 = "0845a554b299b848d35894144d3ba5c7e0b808bcc9b2732e904463258ca73cb7"; }
+    { locale = "uk"; arch = "linux-i686"; sha256 = "a89f58c0f20a3ff7e609f572a4786f06b48886b7e2d303824417f42af49c8df2"; }
+    { locale = "uk"; arch = "linux-x86_64"; sha256 = "b45768588aaf80917c8ad40d62835cc96c3dadf97715234e66542b96eeb8db8e"; }
+    { locale = "vi"; arch = "linux-i686"; sha256 = "3fc35e59ecbbdf1b76b5b66e962a60eb724d9514d622879108725bcf7881fd1e"; }
+    { locale = "vi"; arch = "linux-x86_64"; sha256 = "88116edeeecbfe1ac03af0da26aff84bc3aa5ba00574e899ec08e0d68243f509"; }
+    { locale = "xh"; arch = "linux-i686"; sha256 = "a3afd3ac14049c72a9be28fb9a0849e4d3c5c2f13cb160c480988c4231679329"; }
+    { locale = "xh"; arch = "linux-x86_64"; sha256 = "569587e9cc4cd99899d2939367d56f2e4e9ae333b583064a648f05a8b0b58e2c"; }
+    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "358e44998142e56356b839a51dff97fe85e6293424bd0c148decf61f01b6125b"; }
+    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "7b5a84dbbe361a775aaadad8fd328e24f6cf2e336297f1d5906f51ff5d3dfae7"; }
+    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "cf2cb9bed37dffe178a524ef5fe983e0e8b18f17c999e98474ae13e012da54da"; }
+    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "aa0f1c5fb96dc4585e70fbcc291c6842be25e5d59be8bf39e8dc0232e9f1a76c"; }
+    { locale = "zu"; arch = "linux-i686"; sha256 = "775f6507ae8d6c2ef6e29e6b4d00453dcf9a0c9651eb9da482c78b5ebe64f2cd"; }
+    { locale = "zu"; arch = "linux-x86_64"; sha256 = "603510372a52497a8e41468dbc193afa25b0615f504f4548201deb89f27bd354"; }
+  ];
+
+  arch = if stdenv.system == "i686-linux"
+    then "linux-i686"
+    else "linux-x86_64";
+
+  isPrefixOf = prefix: string:
+    builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+  sourceMatches = locale: source:
+      (isPrefixOf source.locale locale) && source.arch == arch;
+
+  systemLocale = config.i18n.defaultLocale or "en-US";
+
+  defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+  source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+in
+
+stdenv.mkDerivation {
+  name = "firefox-bin-${version}";
+
+  src = fetchurl {
+    url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/${version}/${source.arch}/${source.locale}/firefox-${version}.tar.bz2";
+    inherit (source) sha256;
+  };
+
+  phases = "unpackPhase installPhase";
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.gcc.gcc
+      alsaLib
+      atk
+      cairo
+      cups
+      dbus_glib
+      dbus_libs
+      fontconfig
+      freetype
+      gconf
+      gdk_pixbuf
+      glib
+      glibc
+      gst_plugins_base
+      gstreamer
+      gtk
+      libX11
+      libXScrnSaver
+      libXext
+      libXinerama
+      libXrender
+      libXt
+      libcanberra
+      libgnome
+      libgnomeui
+      mesa
+      nspr
+      nss
+      pango
+      heimdal
+      pulseaudio
+      systemd
+    ] + ":" + stdenv.lib.makeSearchPath "lib64" [
+      stdenv.gcc.gcc
+    ];
+
+  # "strip" after "patchelf" may break binaries.
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = 1;
+
+  installPhase =
+    ''
+      mkdir -p "$prefix/usr/lib/firefox-bin-${version}"
+      cp -r * "$prefix/usr/lib/firefox-bin-${version}"
+
+      mkdir -p "$out/bin"
+      ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/"
+
+      for executable in \
+        firefox mozilla-xremote-client firefox-bin plugin-container \
+        updater crashreporter webapprt-stub
+      do
+        patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/firefox-bin-${version}/$executable"
+      done
+
+      for executable in \
+        firefox mozilla-xremote-client firefox-bin plugin-container \
+        updater crashreporter webapprt-stub libxul.so
+      do
+        patchelf --set-rpath "$libPath" \
+          "$out/usr/lib/firefox-bin-${version}/$executable"
+      done
+
+      # Create a desktop item.
+      mkdir -p $out/share/applications
+      cat > $out/share/applications/firefox.desktop <<EOF
+      [Desktop Entry]
+      Type=Application
+      Exec=$out/bin/firefox
+      Icon=$out/lib/firefox-bin-${version}/chrome/icons/default/default256.png
+      Name=Firefox
+      GenericName=Web Browser
+      Categories=Application;Network;
+      EOF
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Mozilla Firefox, free web browser";
+    homepage = http://www.mozilla.org/firefox/;
+    license = {
+      shortName = "unfree"; # not sure
+      fullName = "unfree";
+      url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
+    };
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb b/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb
new file mode 100644
index 000000000000..a768b1f8dffc
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb
@@ -0,0 +1,217 @@
+# TODO share code with thunderbird-bin/generate_nix.rb
+
+version = if ARGV.empty?
+            "latest"
+          else
+            ARGV[0]
+          end
+
+base_path = "download-installer.cdn.mozilla.net/pub/firefox/releases"
+
+arches = ["linux-i686", "linux-x86_64"]
+
+arches.each do |arch|
+  system("wget", "--recursive", "--continue", "--no-parent", "--reject-regex", ".*\\?.*", "--reject", "xpi", "http://#{base_path}/#{version}/#{arch}/")
+end
+
+locales = Dir.glob("#{base_path}/#{version}/#{arches[0]}/*").map do |path|
+  File.basename(path)
+end.sort
+
+locales.delete("index.html")
+locales.delete("xpi")
+
+# real version number, e.g. "30.0" instead of "latest".
+real_version = Dir.glob("#{base_path}/#{version}/#{arches[0]}/#{locales[0]}/firefox-*")[0].match(/firefox-([0-9.]*)/)[1][0..-2]
+
+locale_arch_path_tuples = locales.flat_map do |locale|
+  arches.map do |arch|
+    path = Dir.glob("#{base_path}/#{version}/#{arch}/#{locale}/firefox-*")[0]
+
+    [locale, arch, path]
+  end
+end
+
+paths = locale_arch_path_tuples.map do |tuple| tuple[2] end
+
+hashes = IO.popen(["sha256sum", "--binary", *paths]) do |input|
+  input.each_line.map do |line|
+    $stderr.puts(line)
+
+    line.match(/^[0-9a-f]*/)[0]
+  end
+end
+
+
+puts(<<"EOH")
+# This file is generated from generate_nix.rb
+# Execute the following command in a temporary directory to update the file.
+#
+# ruby generate_nix.rb > default.nix
+
+{ stdenv, fetchurl, config
+, alsaLib
+, atk
+, cairo
+, cups
+, dbus_glib
+, dbus_libs
+, fontconfig
+, freetype
+, gconf
+, gdk_pixbuf
+, glib
+, glibc
+, gst_plugins_base
+, gstreamer
+, gtk
+, libX11
+, libXScrnSaver
+, libXext
+, libXinerama
+, libXrender
+, libXt
+, libcanberra
+, libgnome
+, libgnomeui
+, mesa
+, nspr
+, nss
+, pango
+, heimdal
+, pulseaudio
+, systemd
+}:
+
+let
+  version = "#{real_version}";
+  sources = [
+EOH
+
+locale_arch_path_tuples.zip(hashes) do |tuple, hash|
+  locale, arch, path = tuple
+
+  puts(%Q|    { locale = "#{locale}"; arch = "#{arch}"; sha256 = "#{hash}"; }|)
+end
+
+puts(<<'EOF')
+  ];
+
+  arch = if stdenv.system == "i686-linux"
+    then "linux-i686"
+    else "linux-x86_64";
+
+  isPrefixOf = prefix: string:
+    builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+  sourceMatches = locale: source:
+      (isPrefixOf source.locale locale) && source.arch == arch;
+
+  systemLocale = config.i18n.defaultLocale or "en-US";
+
+  defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+  source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+in
+
+stdenv.mkDerivation {
+  name = "firefox-bin-${version}";
+
+  src = fetchurl {
+    url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/${version}/${source.arch}/${source.locale}/firefox-${version}.tar.bz2";
+    inherit (source) sha256;
+  };
+
+  phases = "unpackPhase installPhase";
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.gcc.gcc
+      alsaLib
+      atk
+      cairo
+      cups
+      dbus_glib
+      dbus_libs
+      fontconfig
+      freetype
+      gconf
+      gdk_pixbuf
+      glib
+      glibc
+      gst_plugins_base
+      gstreamer
+      gtk
+      libX11
+      libXScrnSaver
+      libXext
+      libXinerama
+      libXrender
+      libXt
+      libcanberra
+      libgnome
+      libgnomeui
+      mesa
+      nspr
+      nss
+      pango
+      heimdal
+      pulseaudio
+      systemd
+    ] + ":" + stdenv.lib.makeSearchPath "lib64" [
+      stdenv.gcc.gcc
+    ];
+
+  # "strip" after "patchelf" may break binaries.
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = 1;
+
+  installPhase =
+    ''
+      mkdir -p "$prefix/usr/lib/firefox-bin-${version}"
+      cp -r * "$prefix/usr/lib/firefox-bin-${version}"
+
+      mkdir -p "$out/bin"
+      ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/"
+
+      for executable in \
+        firefox mozilla-xremote-client firefox-bin plugin-container \
+        updater crashreporter webapprt-stub
+      do
+        patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/firefox-bin-${version}/$executable"
+      done
+
+      for executable in \
+        firefox mozilla-xremote-client firefox-bin plugin-container \
+        updater crashreporter webapprt-stub libxul.so
+      do
+        patchelf --set-rpath "$libPath" \
+          "$out/usr/lib/firefox-bin-${version}/$executable"
+      done
+
+      # Create a desktop item.
+      mkdir -p $out/share/applications
+      cat > $out/share/applications/firefox.desktop <<EOF
+      [Desktop Entry]
+      Type=Application
+      Exec=$out/bin/firefox
+      Icon=$out/lib/firefox-bin-${version}/chrome/icons/default/default256.png
+      Name=Firefox
+      GenericName=Web Browser
+      Categories=Application;Network;
+      EOF
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Mozilla Firefox, free web browser";
+    homepage = http://www.mozilla.org/firefox/;
+    license = {
+      shortName = "unfree"; # not sure
+      fullName = "unfree";
+      url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
+    };
+    platforms = platforms.linux;
+  };
+}
+EOF
diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix
index 61cd62fefd46..b878427e876a 100644
--- a/pkgs/applications/networking/instant-messengers/baresip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -4,11 +4,11 @@
 , gsm, speex, portaudio, spandsp, libuuid
 }:
 stdenv.mkDerivation rec {
-  version = "0.4.3";
+  version = "0.4.11";
   name = "baresip-${version}";
   src=fetchurl {
     url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
-    sha256 = "03vpzn0c3mybnwn84ha3yci780qsjm669dwja1srj0hbrq81rbil";
+    sha256 = "1ql5h9ily9jncp9w302v3b2ldx613kc60zlqv0v0ln8hsm8q6bc5";
   };
   buildInputs = [zlib openssl libre librem pkgconfig
     cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good
@@ -41,5 +41,9 @@ stdenv.mkDerivation rec {
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
     license = with stdenv.lib.licenses; bsd3;
+    inherit version;
+    downloadPage = "http://www.creytiv.com/pub/";
+    updateWalker = true;
+    downloadURLRegexp = "/baresip-.*[.]tar[.].*";
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/skype/default.nix b/pkgs/applications/networking/instant-messengers/skype/default.nix
index 20a304952a7a..f1ac10639344 100644
--- a/pkgs/applications/networking/instant-messengers/skype/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skype/default.nix
@@ -1,20 +1,18 @@
-{ stdenv, fetchurl, alsaLib, libXv, libXi, libXrender, libXrandr, zlib, glib
+{ stdenv, fetchurl, libXv, libXi, libXrender, libXrandr, zlib, glib
 , libXext, libX11, libXScrnSaver, libSM, qt4, libICE, freetype, fontconfig
-, pulseaudio, usePulseAudio, lib }:
+, pulseaudio, lib, ... }:
 
 assert stdenv.system == "i686-linux";
 
 stdenv.mkDerivation rec {
-  name = "skype-4.2.0.13";
+  name = "skype-4.3.0.37";
 
   src = fetchurl {
     url = "http://download.skype.com/linux/${name}.tar.bz2";
-    sha256 = "137kp6c0v4z7n7pp4hwrx4gjgk4knwj815dc6swh44lb5cj1c5m5";
+    sha256 = "0bc9kck99rcsqzxzw3j6vnw5byvr8c9wixrx609zp255g0wxr6cc";
   };
 
-  buildInputs =
-    lib.optional usePulseAudio pulseaudio ++ [
-    alsaLib
+  buildInputs = [
     stdenv.glibc
     stdenv.gcc.gcc
     libXv
@@ -27,6 +25,7 @@ stdenv.mkDerivation rec {
     libXi
     libXrender
     libXrandr
+    pulseaudio
     freetype
     fontconfig
     zlib
@@ -44,13 +43,13 @@ stdenv.mkDerivation rec {
       fullPath=$fullPath''${fullPath:+:}$i/lib
     done
 
-    dynlinker="$(cat $NIX_GCC/nix-support/dynamic-linker)"
+    patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+        --set-rpath "$fullPath" $out/libexec/skype/skype
 
     cat > $out/bin/skype << EOF
     #!${stdenv.shell}
     export PULSE_LATENCY_MSEC=60  # workaround for pulseaudio glitches
-    export LD_LIBRARY_PATH=$fullPath:$LD_LIBRARY_PATH
-    $dynlinker $out/libexec/skype/skype --resources=$out/libexec/skype "\$@"
+    $out/libexec/skype/skype --resources=$out/libexec/skype "\$@"
     EOF
 
     chmod +x $out/bin/skype
diff --git a/pkgs/applications/networking/irc/bip/bip-0.8.8-yyparse.patch b/pkgs/applications/networking/irc/bip/bip-0.8.8-yyparse.patch
deleted file mode 100644
index 5d48fc99a0da..000000000000
--- a/pkgs/applications/networking/irc/bip/bip-0.8.8-yyparse.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- bip-0.8.8/src/lex.l.orig
-+++ bip-0.8.8/src/lex.l
-@@ -16,7 +16,7 @@
- int linec;
- #include "util.h"
- extern list_t *root_list;
--void yyparse(void);
-+int yyparse(void);
- void free_conf(list_t*);
- int conf_error;
- typedef struct bip bip_t;
diff --git a/pkgs/applications/networking/irc/bip/default.nix b/pkgs/applications/networking/irc/bip/default.nix
index 89fdf0d8df85..6f816e1db170 100644
--- a/pkgs/applications/networking/irc/bip/default.nix
+++ b/pkgs/applications/networking/irc/bip/default.nix
@@ -2,8 +2,8 @@
 
 let
 
-  version = "0.8.8";
-  sha256 = "7ca3fb96f5ee6b76eb398d7ea45344ea24855344ced11632241a33353bba05d7";
+  version = "0.8.9";
+  sha256 = "0q942g9lyd8pjvqimv547n6vik5759r9npw3ws3bdj4ixxqhz59w";
 
   # fetches patches from a gentoo mirror
   fetchPatch =
@@ -25,19 +25,12 @@ in stdenv.mkDerivation {
 
   # includes an important security patch
   patches = map fetchPatch [
-    { file = "bip-0.8.8-configure.patch";
-      sha256 = "286e169745e6cd768f0cb95bbc9589ca2bda497eb06461174549b80a459d901c";
-    }
-    { file = "bip-CVE-2012-0806.patch";
-      sha256 = "e47523095ee1d717c762ca0195520026c6ea2c30d8adcf434d276d42f052d506";
-    }
     { file = "bip-freenode.patch";
       sha256 = "a67e582f89cc6a32d5bb48c7e8ceb647b889808c2c8798ae3eb27d88869b892f";
     }
   ];
 
   postPatch = ''
-    patch -p1 < ${./bip-0.8.8-yyparse.patch}
   '';
 
   configureFlags = [ "--disable-pie" ];
@@ -48,5 +41,7 @@ in stdenv.mkDerivation {
     description = "An IRC proxy (bouncer)";
     homepage = http://bip.milkypond.org/;
     license = stdenv.lib.licenses.gpl2;
+    downloadPage= "https://projects.duckcorp.org/projects/bip/files";
+    inherit version;
   };
 }
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index f4da232c7475..b1cbc6fd54f5 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -14,62 +14,20 @@
 , autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
 , libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
 , unixODBC, mdds, saneBackends, mythes, libexttextcat, libvisio
-, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
+, fontsConf, pkgconfig, libzip, bluez5, libtool, maven, libe-book_00
+, libmwaw_02, libatomic_ops, graphite2, harfbuzz
 , langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" ]
 }:
 
 let
   langsSpaces = stdenv.lib.concatStringsSep " " langs;
   major = "4";
-  minor = "0";
+  minor = "2";
   patch = "5";
   tweak = "2";
   subdir = "${major}.${minor}.${patch}";
   version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
 
-  # configure phase dependency
-  liborcus = stdenv.mkDerivation rec {
-     version = "0.3.0";
-     name = "liborcus-${version}";
-
-     src = fetchurl {
-       url = "http://dev-www.libreoffice.org/src/8755aac23317494a9028569374dc87b2-liborcus_0.3.0.tar.bz2";
-       sha256 = "0xrw13s390mcpm50apclydl38sw2sdq27csrr1k0d39jna2990ih";
-     };
-
-     configureFlags = "--disable-werror";
-
-     buildInputs = [ zlib boost mdds pkgconfig libixion libzip ];
-  };
-
-  # configure phase dependency
-  liblangtag = stdenv.mkDerivation rec {
-     version = "0.4.0";
-     name = "liblangtag-${version}";
-
-     src = fetchurl {
-       url = "http://dev-www.libreoffice.org/src/54e578c91b1b68e69c72be22adcb2195-${name}.tar.bz2";
-       sha256 = "1bjb0fxjmvzxlhr5by9wgisf6w5yvy6wgfzfkjyw6igk39fivdyb";
-     };
-
-     buildInputs = [ libtool pkgconfig libxml2 ];
-  };
-
-  # doesn't work with srcs versioning
-  libmspub = stdenv.mkDerivation rec {
-     version = "0.0.6";
-     name = "libmspub-${version}";
-
-     src = fetchurl {
-       url = "http://dev-www.libreoffice.org/src/${name}.tar.gz";
-       sha256 = "1zdcvnm0dpac5yqdv34hq9j38cnhyqzyjgb19iyp54ajnwfjhmcq";
-     };
-
-     configureFlags = "--disable-werror";
-
-     buildInputs = [ zlib libwpd libwpg pkgconfig boost icu ];
-  };
-
   # doesn't exist in srcs
   libixion = stdenv.mkDerivation rec {
      version = "0.5.0";
@@ -85,9 +43,12 @@ let
      buildInputs = [ boost mdds pkgconfig ];
   };
 
-  fetchThirdParty = {name, md5}: fetchurl {
+  fetchThirdParty = {name, md5, brief}: fetchurl {
     inherit name md5;
-    url = "http://dev-www.libreoffice.org/src/${md5}-${name}";
+    url = if brief then
+            "http://dev-www.libreoffice.org/src/${name}"
+          else
+            "http://dev-www.libreoffice.org/src/${md5}-${name}";
   };
 
   fetchSrc = {name, sha256}: fetchurl {
@@ -104,14 +65,14 @@ let
 
     translations = fetchSrc {
       name = "translations";
-      sha256 = "0x96wlwr5m7w4k3ygydzak3ycq35hjq60vfi6nfxczlr8pfjyjxv";
+      sha256 = "0nv47r043w151687ks06w786h8azi8gylxma9c7qyjbdj6cdb2ly";
     };
 
     # TODO: dictionaries
 
     help = fetchSrc {
       name = "help";
-      sha256 = "0nab5jcgrrgn0v1yrm18nl9avp4vifbas48l1absz3jmzf9wka7b";
+      sha256 = "1kbkdngq39gfq2804v6vnllax4gqs25zlfk6y561iiipld1ncc5v";
     };
 
   };
@@ -121,7 +82,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "195g1iab7j2x7sl326xbq7vya412ns57xrwpv9hqdrb7iiz2n8la";
+    sha256 = "4bf7898d7d0ba918a8f6668eff0904a549e5a2de837854716e6d996f121817d5";
   };
 
   # Openoffice will open libcups dynamically, so we link it directly
@@ -135,7 +96,7 @@ stdenv.mkDerivation rec {
 
   postUnpack = ''
     mkdir -v $sourceRoot/src
-  '' + (stdenv.lib.concatMapStrings (f: "ln -sv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\n") srcs.third_party)
+  '' + (stdenv.lib.concatMapStrings (f: "ln -sv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\nln -sv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
   + ''
     ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
     tar xf $sourceRoot/src/${srcs.help.name} -C $sourceRoot/../
@@ -149,6 +110,8 @@ stdenv.mkDerivation rec {
       -e 's,! */usr/bin/perl,!${perl}/bin/perl,' -e 's,! */usr/bin/env perl,!${perl}/bin/perl,' \
       -e 's,! */usr/bin/python,!${python3}/bin/${python3.executable},' -e 's,! */usr/bin/env python,!${python3}/bin/${python3.executable},'
     #sed -i 's,ANT_OPTS+="\(.*\)",ANT_OPTS+=\1,' apache-commons/java/*/makefile.mk
+
+    patch -Np1 -i ${./ooxmlexport.diff};
   '';
 
   QT4DIR = qt4;
@@ -162,6 +125,10 @@ stdenv.mkDerivation rec {
       "--with-parallelism=$NIX_BUILD_CORES"
       "--with-lang=${langsSpaces}"
     );
+
+    chmod a+x ./bin/unpack-sources
+    # It is used only as an indicator of the proper current directory
+    touch solenv/inc/target.mk
   '';
 
   makeFlags = "SHELL=${bash}/bin/bash";
@@ -172,9 +139,6 @@ stdenv.mkDerivation rec {
     # This is required as some cppunittests require fontconfig configured
     export FONTCONFIG_FILE=${fontsConf}
 
-    # Fix sysui: wants to create a tar for root
-    sed -i -e 's,--own.*root,,' sysui/desktop/slackware/makefile.mk
-
     # This to aovid using /lib:/usr/lib at linking
     sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
 
@@ -199,7 +163,7 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [
-    "--with-vender=NixOS"
+    "--with-vendor=NixOS"
 
     # Without these, configure does not finish
     "--without-junit"
@@ -219,11 +183,11 @@ stdenv.mkDerivation rec {
     "--without-doxygen"
 
     # I imagine this helps. Copied from go-oo.
-    "--disable-epm"
-    "--disable-mathmldtd"
+    # Modified on every upgrade, though
     "--disable-kde"
     "--disable-postgresql-sdbc"
     "--with-package-format=native"
+    "--enable-epm"
     "--with-jdk-home=${jdk}/lib/openjdk"
     "--with-ant-home=${ant}/lib/ant"
     "--without-afms"
@@ -235,10 +199,17 @@ stdenv.mkDerivation rec {
     "--without-system-jars"
     "--without-system-altlinuxhyph"
     "--without-system-lpsolve"
-    "--without-system-graphite"
     "--without-system-npapi-headers"
     "--without-system-libcmis"
-    "--without-system-mozilla"
+
+    "--without-system-libetonyek"
+    "--without-system-libfreehand"
+    "--without-system-libodfgen"
+    "--without-system-libabw"
+    "--without-system-firebird"
+    "--without-system-orcus"
+    "--without-system-liblangtag"
+    "--without-system-libmspub"
   ];
 
   checkPhase = ''
@@ -253,11 +224,11 @@ stdenv.mkDerivation rec {
       hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat unixODBC libjpeg
       libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
       libXaw libXext libXi libXinerama libxml2 libxslt libXtst
-      libXdmcp libpthreadstubs mdds mesa mythes
+      libXdmcp libpthreadstubs mesa mythes
       neon nspr nss openldap openssl ORBit2 pam perl pkgconfigUpstream poppler
       python3 sablotron saneBackends tcsh unzip vigra which zip zlib
-      mdds bluez5 glibc libmspub libixion liborcus liblangtag
-      libxshmfence
+      mdds bluez5 glibc libixion
+      libxshmfence libe-book_00 libmwaw_02 libatomic_ops graphite2 harfbuzz
     ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh
index ab6c4e3fb079..e5a867463bfc 100755
--- a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh
+++ b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh
@@ -6,15 +6,39 @@ cat <<EOF
 [
 EOF
 
-read file
-while read file; do
-  if [[ "$file" == @* ]]; then
-    break
-  fi
+write_entry(){
   echo '{'
-  echo "  name = \"${file:33}\";"
-  echo "  md5 = \"${file:0:32}\";"
+  echo "  name = \"${name}\";"
+  echo "  md5 = \"${md5}\";"
+  echo "  brief = ${brief};"
   echo '}'
+}
+
+while read line; do
+  case "$line" in
+    \#*)
+      echo Skipping comment: "$line" >&2;
+      ;;
+    *_MD5SUM\ :=*)
+      read tbline;
+      line=${line##* };
+      tbline=${tbline##* };
+      md5=$line
+      name=$tbline;
+      brief=true;
+      write_entry;
+      ;;
+    *_TARBALL\ :=*)
+      line=${line##* };
+      md5=${line:0:32};
+      name=${line:33};
+      brief=false;
+      write_entry;
+      ;;
+    *)
+      echo Skipping: "$line" >&2;
+      ;;
+  esac
 done
 
 echo ']'
diff --git a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
index 6ed1a5e2c639..cceb1a49e429 100644
--- a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
+++ b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
@@ -1,114 +1,467 @@
 [
 {
-  name = "glibc-2.1.3-stub.tar.gz";
-  md5 = "4a660ce8466c9df01f19036435425c3a";
+  name = "libabw-0.0.2.tar.bz2";
+  md5 = "40fa48e03b1e28ae0325cc34b35bc46d";
+  brief = true;
 }
 {
-  name = "ucpp-1.3.2.tar.gz";
-  md5 = "0168229624cfac409e766913506961a8";
+  name = "libcdr-0.0.15.tar.bz2";
+  md5 = "fbcd8619fc6646f41d527c1329102998";
+  brief = true;
+}
+{
+  name = "libe-book-0.0.3.tar.bz2";
+  md5 = "2f1ceaf2ac8752ed278e175447d9b978";
+  brief = true;
+}
+{
+  name = "libetonyek-0.0.4.tar.bz2";
+  md5 = "3c50bc60394d1f2675fbf9bd22581363";
+  brief = true;
+}
+{
+  name = "libfreehand-0.0.0.tar.bz2";
+  md5 = "496dd00028afcc19f896b01394769043";
+  brief = true;
+}
+{
+  name = "libmspub-0.0.6.tar.bz2";
+  md5 = "1120705cd0f0d9bd5506360bf57b6c2e";
+  brief = true;
+}
+{
+  name = "libmwaw-0.2.0.tar.bz2";
+  md5 = "d794625f156a9fb1c53b3f8a8aa13b5e";
+  brief = true;
+}
+{
+  name = "libodfgen-0.0.4.tar.bz2";
+  md5 = "e5483d1f0b71e64c367c1194b54b0f53";
+  brief = true;
+}
+{
+  name = "libvisio-0.0.31.tar.bz2";
+  md5 = "82628333418f101a20cd21f980cf9f40";
+  brief = true;
+}
+{
+  name = "Firebird-2.5.2.26540-0.tar.bz2";
+  md5 = "21154d2004e025c8a3666625b0357bb5";
+  brief = true;
+}
+{
+  name = "harfbuzz-0.9.23.tar.bz2";
+  md5 = "a4a9b548577e2ee22f0887937da5fd6c";
+  brief = true;
+}
+{
+  name = "libatomic_ops-7_2d.zip";
+  md5 = "c0b86562d5aa40761a87134f83e6adcf";
+  brief = true;
+}
+{
+  name = "libeot-0.01.tar.bz2";
+  md5 = "aa24f5dd2a2992f4a116aa72af817548";
+  brief = true;
+}
+{
+  name = "language-subtag-registry-2014-03-27.tar.bz2";
+  md5 = "504af523f5d1a5590bbeb6a4b55e8a97";
+  brief = true;
+}
+{
+  name = "Adobe-Core35_AFMs-314.tar.gz";
+  md5 = "1756c4fa6c616ae15973c104cd8cb256";
+  brief = false;
+}
+{
+  name = "commons-codec-1.6-src.tar.gz";
+  md5 = "2e482c7567908d334785ce7d69ddfff7";
+  brief = false;
+}
+{
+  name = "commons-httpclient-3.1-src.tar.gz";
+  md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
+  brief = false;
+}
+{
+  name = "commons-lang-2.4-src.tar.gz";
+  md5 = "625ff5f2f968dd908bca43c9469d6e6b";
+  brief = false;
 }
 {
   name = "commons-logging-1.1.1-src.tar.gz";
   md5 = "3c219630e4302863a9a83d0efde889db";
+  brief = false;
 }
 {
-  name = "liblayout-0.2.10.zip";
-  md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+  name = "boost_1_54_0.tar.bz2";
+  md5 = "15cb8c0803064faef0c4ddf5bc5ca279";
+  brief = false;
+}
+{
+  name = "bsh-2.0b1-src.tar.gz";
+  md5 = "ea570af93c284aa9e5621cd563f54f4d";
+  brief = false;
+}
+{
+  name = "cairo-1.10.2.tar.gz";
+  md5 = "f101a9e88b783337b20b2e26dfd26d5f";
+  brief = false;
+}
+{
+  name = "clucene-core-2.3.3.4.tar.gz";
+  md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+  brief = false;
+}
+{
+  name = "libcmis-0.4.1.tar.gz";
+  md5 = "22f8a85daf4a012180322e1f52a7563b";
+  brief = false;
+}
+{
+  name = "cppunit-1.13.1.tar.gz";
+  md5 = "ac4781e01619be13461bb2d562b94a7b";
+  brief = false;
+}
+{
+  name = "ConvertTextToNumber-1.3.2.oxt";
+  md5 = "451ccf439a36a568653b024534669971";
+  brief = false;
+}
+{
+  name = "curl-7.33.0.tar.bz2";
+  md5 = "57409d6bf0bd97053b8378dbe0cadcef";
+  brief = false;
+}
+{
+  name = "epm-3.7.tar.gz";
+  md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
+  brief = false;
+}
+{
+  name = "expat-2.1.0.tar.gz";
+  md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
+  brief = false;
+}
+{
+  name = "fontconfig-2.8.0.tar.gz";
+  md5 = "77e15a92006ddc2adbb06f840d591c0e";
+  brief = false;
+}
+{
+  name = "crosextrafonts-20130214.tar.gz";
+  md5 = "368f114c078f94214a308a74c7e991bc";
+  brief = false;
+}
+{
+  name = "crosextrafonts-carlito-20130920.tar.gz";
+  md5 = "c74b7223abe75949b4af367942d96c7a";
+  brief = false;
+}
+{
+  name = "dejavu-fonts-ttf-2.33.zip";
+  md5 = "f872f4ac066433d8ff92f5e316b36ff9";
+  brief = false;
+}
+{
+  name = "gentiumbasic-fonts-1.10.zip";
+  md5 = "35efabc239af896dfb79be7ebdd6e6b9";
+  brief = false;
+}
+{
+  name = "liberation-fonts-ttf-1.07.3.tar.gz";
+  md5 = "b3174b11c2b6a341f5c99b31088bd67b";
+  brief = false;
+}
+{
+  name = "liberation-fonts-ttf-2.00.1.tar.gz";
+  md5 = "5c781723a0d9ed6188960defba8e91cf";
+  brief = false;
+}
+{
+  name = "LinLibertineG-20120116.zip";
+  md5 = "e7a384790b13c29113e22e596ade9687";
+  brief = false;
+}
+{
+  name = "open-sans-font-ttf-1.10.tar.gz";
+  md5 = "7a15edea7d415ac5150ea403e27401fd";
+  brief = false;
+}
+{
+  name = "pt-serif-font-1.0000W.tar.gz";
+  md5 = "c3c1a8ba7452950636e871d25020ce0d";
+  brief = false;
+}
+{
+  name = "source-code-font-1.009.tar.gz";
+  md5 = "0279a21fab6f245e85a6f85fea54f511";
+  brief = false;
+}
+{
+  name = "source-sans-font-1.036.tar.gz";
+  md5 = "1e9ddfe25ac9577da709d7b2ea36f939";
+  brief = false;
+}
+{
+  name = "freetype-2.4.8.tar.bz2";
+  md5 = "dbf2caca1d3afd410a29217a9809d397";
+  brief = false;
+}
+{
+  name = "graphite2-1.2.3.tgz";
+  md5 = "7042305e4208af4c2d5249d814ccce58";
+  brief = false;
 }
 {
   name = "hsqldb_1_8_0.zip";
   md5 = "17410483b5b5f267aa18b7e00b65e6e0";
+  brief = false;
 }
 {
-  name = "rhino1_5R5.zip";
-  md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+  name = "hunspell-1.3.2.tar.gz";
+  md5 = "3121aaf3e13e5d88dfff13fb4a5f1ab8";
+  brief = false;
 }
 {
-  name = "bsh-2.0b1-src.tar.gz";
-  md5 = "ea570af93c284aa9e5621cd563f54f4d";
+  name = "hyphen-2.8.4.tar.gz";
+  md5 = "a2f6010987e1c601274ab5d63b72c944";
+  brief = false;
 }
 {
-  name = "xmlsec1-1.2.14.tar.gz";
-  md5 = "1f24ab1d39f4a51faf22244c94a6203f";
+  name = "icu4c-52_1-src.tgz";
+  md5 = "9e96ed4c1d99c0d14ac03c140f9f346c";
+  brief = false;
 }
 {
-  name = "librepository-1.1.6.zip";
-  md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+  name = "flow-engine-0.9.4.zip";
+  md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+  brief = false;
+}
+{
+  name = "flute-1.1.6.zip";
+  md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+  brief = false;
 }
 {
   name = "libbase-1.1.6.zip";
   md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
+  brief = false;
 }
 {
-  name = "lp_solve_5.5.tar.gz";
-  md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+  name = "libfonts-1.1.6.zip";
+  md5 = "3bdf40c0d199af31923e900d082ca2dd";
+  brief = false;
 }
 {
-  name = "libloader-1.1.6.zip";
-  md5 = "97b2d4dba862397f446b217e2b623e71";
+  name = "libformula-1.1.7.zip";
+  md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+  brief = false;
 }
 {
-  name = "graphite2-1.2.0.tgz";
-  md5 = "f5ef3f7f10fa8c3542c6a085a233080b";
+  name = "liblayout-0.2.10.zip";
+  md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+  brief = false;
 }
 {
-  name = "jakarta-tomcat-5.0.30-src.tar.gz";
-  md5 = "2a177023f9ea8ec8bd00837605c5df1b";
+  name = "libloader-1.1.6.zip";
+  md5 = "97b2d4dba862397f446b217e2b623e71";
+  brief = false;
 }
 {
-  name = "hyphen-2.8.4.tar.gz";
-  md5 = "a2f6010987e1c601274ab5d63b72c944";
+  name = "librepository-1.1.6.zip";
+  md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+  brief = false;
 }
 {
   name = "libserializer-1.1.6.zip";
   md5 = "f94d9870737518e3b597f9265f4e9803";
-}
-{
-  name = "commons-lang-2.3-src.tar.gz";
-  md5 = "2ae988b339daec234019a7066f96733e";
+  brief = false;
 }
 {
   name = "libxml-1.1.7.zip";
   md5 = "ace6ab49184e329db254e454a010f56d";
+  brief = false;
 }
 {
-  name = "commons-httpclient-3.1-src.tar.gz";
-  md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
+  name = "sacjava-1.3.zip";
+  md5 = "39bb3fcea1514f1369fcfc87542390fd";
+  brief = false;
 }
 {
-  name = "commons-codec-1.3-src.tar.gz";
-  md5 = "af3c3acf618de6108d65fcdc92b492e1";
+  name = "jpegsrc.v8d.tar.gz";
+  md5 = "52654eb3b2e60c35731ea8fc87f1bd29";
+  brief = false;
 }
 {
-  name = "libformula-1.1.7.zip";
-  md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+  name = "JLanguageTool-1.7.0.tar.bz2";
+  md5 = "b63e6340a02ff1cacfeadb2c42286161";
+  brief = false;
+}
+{
+  name = "lcms2-2.4.tar.gz";
+  md5 = "861ef15fa0bc018f9ddc932c4ad8b6dd";
+  brief = false;
+}
+{
+  name = "libexttextcat-3.4.3.tar.bz2";
+  md5 = "ae330b9493bd4503ac390106ff6060d7";
+  brief = false;
+}
+{
+  name = "liblangtag-0.5.1.tar.bz2";
+  md5 = "36271d3fa0d9dec1632029b6d7aac925";
+  brief = false;
+}
+{
+  name = "xmlsec1-1.2.14.tar.gz";
+  md5 = "1f24ab1d39f4a51faf22244c94a6203f";
+  brief = false;
+}
+{
+  name = "libxml2-2.9.1.tar.gz";
+  md5 = "9c0cfef285d5c4a5c80d00904ddab380";
+  brief = false;
+}
+{
+  name = "libxslt-1.1.28.tar.gz";
+  md5 = "9667bf6f9310b957254fdcf6596600b7";
+  brief = false;
+}
+{
+  name = "lp_solve_5.5.tar.gz";
+  md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+  brief = false;
+}
+{
+  name = "mariadb-native-client-1.0.0.tar.bz2";
+  md5 = "05f84c95b610c21c5fd510d10debcabf";
+  brief = false;
 }
 {
-  name = "libcmis-0.3.0.tar.gz";
-  md5 = "b2371dc7cf4811c9d32146eec913d296";
+  name = "mdds_0.10.3.tar.bz2";
+  md5 = "aa5ca9d1ed1082890835afab26400a39";
+  brief = false;
+}
+{
+  name = "mysql-connector-c++-1.1.0.tar.gz";
+  md5 = "0981bda6548a8c8233ffce2b6e4b2a23";
+  brief = false;
+}
+{
+  name = "mythes-1.2.3.tar.gz";
+  md5 = "46e92b68e31e858512b680b3b61dc4c1";
+  brief = false;
+}
+{
+  name = "neon-0.29.5.tar.gz";
+  md5 = "ff369e69ef0f0143beb5626164e87ae2";
+  brief = false;
+}
+{
+  name = "nss-3.15.3-with-nspr-4.10.2.tar.gz";
+  md5 = "06beb053e257d9e22641339c905c6eba";
+  brief = false;
+}
+{
+  name = "openldap-2.4.31.tgz";
+  md5 = "804c6cb5698db30b75ad0ff1c25baefd";
+  brief = false;
+}
+{
+  name = "openssl-1.0.1e.tar.gz";
+  md5 = "66bf6f10f060d561929de96f9dfe5b8c";
+  brief = false;
+}
+{
+  name = "liborcus-0.5.1.tar.bz2";
+  md5 = "ea2acaf140ae40a87a952caa75184f4d";
+  brief = false;
+}
+{
+  name = "pixman-0.24.4.tar.bz2";
+  md5 = "c63f411b3ad147db2bcce1bf262a0e02";
+  brief = false;
+}
+{
+  name = "libpng-1.5.10.tar.gz";
+  md5 = "9e5d864bce8f06751bbd99962ecf4aad";
+  brief = false;
+}
+{
+  name = "poppler-0.22.5.tar.gz";
+  md5 = "1cd27460f7e3379d1eb109cfd7bcdb39";
+  brief = false;
+}
+{
+  name = "postgresql-9.2.1.tar.bz2";
+  md5 = "c0b4799ea9850eae3ead14f0a60e9418";
+  brief = false;
+}
+{
+  name = "Python-3.3.3.tar.bz2";
+  md5 = "f3ebe34d4d8695bf889279b54673e10c";
+  brief = false;
+}
+{
+  name = "raptor2-2.0.9.tar.gz";
+  md5 = "4ceb9316488b0ea01acf011023cf7fff";
+  brief = false;
+}
+{
+  name = "rasqal-0.9.30.tar.gz";
+  md5 = "b12c5f9cfdb6b04efce5a4a186b8416b";
+  brief = false;
+}
+{
+  name = "redland-1.0.16.tar.gz";
+  md5 = "32f8e1417a64d3c6f2c727f9053f55ea";
+  brief = false;
+}
+{
+  name = "rhino1_5R5.zip";
+  md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+  brief = false;
 }
 {
   name = "swingExSrc.zip";
   md5 = "35c94d2df8893241173de1d16b6034c0";
+  brief = false;
 }
 {
-  name = "flow-engine-0.9.4.zip";
-  md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+  name = "ucpp-1.3.2.tar.gz";
+  md5 = "0168229624cfac409e766913506961a8";
+  brief = false;
 }
 {
-  name = "sacjava-1.3.zip";
-  md5 = "39bb3fcea1514f1369fcfc87542390fd";
+  name = "vigra1.6.0.tar.gz";
+  md5 = "d62650a6f908e85643e557a236ea989c";
+  brief = false;
 }
 {
-  name = "libwps-0.2.7.tar.bz2";
-  md5 = "d197bd6211669a2fa4ca648faf04bcb1";
+  name = "libwpd-0.9.9.tar.bz2";
+  md5 = "a3dcac551fae5ebbec16e844810828c4";
+  brief = false;
 }
 {
-  name = "libfonts-1.1.6.zip";
-  md5 = "3bdf40c0d199af31923e900d082ca2dd";
+  name = "libwpg-0.2.2.tar.bz2";
+  md5 = "b85436266b2ac91d351ab5684b181151";
+  brief = false;
 }
 {
-  name = "flute-1.1.6.zip";
-  md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+  name = "libwps-0.2.9.tar.bz2";
+  md5 = "46eb0e7f213ad61bd5dee0c494132cb0";
+  brief = false;
+}
+{
+  name = "xsltml_2.1.2.zip";
+  md5 = "a7983f859eafb2677d7ff386a023bc40";
+  brief = false;
+}
+{
+  name = "zlib-1.2.7.tar.bz2";
+  md5 = "2ab442d169156f34c379c968f3f482dd";
+  brief = false;
 }
 ]
diff --git a/pkgs/applications/office/libreoffice/ooxmlexport.diff b/pkgs/applications/office/libreoffice/ooxmlexport.diff
new file mode 100644
index 000000000000..9c1d44612e26
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/ooxmlexport.diff
@@ -0,0 +1,31 @@
+--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx	2014-06-12 12:25:19.000000000 +0400
++++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx	2014-06-12 12:25:20.000000000 +0400
+@@ -547,17 +547,17 @@
+     getRun(xParagraph, 5, " After.");
+ }
+ 
+-DECLARE_OOXMLEXPORT_TEST(test1Table1Page, "1-table-1-page.docx")
+-{
+-    // 2 problem for this document after export:
+-    //   - invalid sectPr inserted at the beginning of the page
+-    //   - font of empty cell is not preserved, leading to change in rows height
+-    uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+-    uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+-    uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+-    xCursor->jumpToLastPage();
+-    CPPUNIT_ASSERT_EQUAL(sal_Int16(1), xCursor->getPage());
+-}
++///   DECLARE_OOXMLEXPORT_TEST(test1Table1Page, "1-table-1-page.docx")
++///   {
++///       // 2 problem for this document after export:
++///       //   - invalid sectPr inserted at the beginning of the page
++///       //   - font of empty cell is not preserved, leading to change in rows height
++///       uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
++///       uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
++///       uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
++///       xCursor->jumpToLastPage();
++///       CPPUNIT_ASSERT_EQUAL(sal_Int16(1), xCursor->getPage());
++///   }
+ 
+ DECLARE_OOXMLEXPORT_TEST(testTextFrames, "textframes.odt")
+ {
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 8adab57656ea..0e81616a0069 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -5,13 +5,13 @@ stdenv.mkDerivation rec {
 
   src = fetchbzr {
     url = "https://code.launchpad.net/~kicad-stable-committers/kicad/stable";
-    revision = 4024;
+    rev = 4024;
     sha256 = "1sv1l2zpbn6439ccz50p05hvqg6j551aqra551wck9h3929ghly5";
   };
 
   srcLibrary = fetchbzr {
     url = "http://bazaar.launchpad.net/~kicad-lib-committers/kicad/library";
-    revision = 293;
+    rev = 293;
     sha256 = "1wn9a4nhqyjzzfkq6xm7ag8n5n10xy7gkq6i7yry7wxini7pzv1i";
   };
 
diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix
index a8076b9e29ea..30c36ae29dc8 100644
--- a/pkgs/applications/science/logic/abc/default.nix
+++ b/pkgs/applications/science/logic/abc/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchhg {
     url    = "https://bitbucket.org/alanmi/abc";
-    tag    = "03e221443d71e49e56cbc37f1907ee3b0ff3e7c9";
+    rev    = "03e221443d71e49e56cbc37f1907ee3b0ff3e7c9";
     sha256 = "0ahrqg718y7xpv939f6x8w1kqh7wsja4pw8hca7j67j0qjdgb4lm";
   };
 
diff --git a/pkgs/applications/science/logic/twelf/default.nix b/pkgs/applications/science/logic/twelf/default.nix
new file mode 100644
index 000000000000..1079c3783218
--- /dev/null
+++ b/pkgs/applications/science/logic/twelf/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, smlnj, rsync }:
+
+stdenv.mkDerivation rec {
+  name = "twelf-${version}";
+  version = "1.7.1";
+
+  src = fetchurl {
+    url = "http://twelf.plparty.org/releases/twelf-src-${version}.tar.gz";
+    sha256 = "0fi1kbs9hrdrm1x4k13angpjasxlyd1gc3ys8ah54i75qbcd9c4i";
+  };
+
+  buildInputs = [ pkgconfig smlnj rsync ];
+
+  buildPhase = ''
+    export SMLNJ_HOME=${smlnj}
+    make smlnj
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    rsync -av bin/* $out/bin/
+
+    ensureDir $out/share/emacs/site-lisp/twelf/
+    rsync -av emacs/ $out/share/emacs/site-lisp/twelf/
+
+    ensureDir $out/share/twelf/examples
+    rsync -av examples/ $out/share/twelf/examples/
+    ensureDir $out/share/twelf/vim
+    rsync -av vim/ $out/share/twelf/vim/
+  '';
+
+  meta = {
+    description = "Twelf logic proof assistant";
+    longDescription = ''
+      Twelf is a language used to specify, implement, and prove properties of
+      deductive systems such as programming languages and logics. Large
+      research projects using Twelf include the TALT typed assembly language,
+      a foundational proof-carrying-code system, and a type safety proof for
+      Standard ML.
+    '';
+    homepage = http://twelf.org/wiki/Main_Page;
+    license = "MIT";
+    maintainers = with stdenv.lib.maintainers; [ jwiegley ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
index a056a32c64c2..c4352c46f92e 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchdarcs {
     url = "http://lama.univ-savoie.fr/~raffalli/GlSurf";
-    tag = "3.3";
+    rev = "3.3";
     sha256 = ""; md5="";
   };
 
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 482866969a11..fd548296220e 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -95,4 +95,7 @@ rec {
   darcsToGit = callPackage ./darcs-to-git { };
 
   gitflow = callPackage ./gitflow { };
+
+  git-remote-hg = callPackage ./git-remote-hg { };
+
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
new file mode 100644
index 000000000000..ffeb299f49b5
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, mercurial, makeWrapper,
+  asciidoc, xmlto, dbus, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
+}:
+
+stdenv.mkDerivation rec {
+  rev = "185852eac44c25ae2e8d3b3fb6c9630e754e6363";
+  version = "v0.2-185852eac44c25ae2e8d3b3fb6c9630e754e6363";
+  name = "git-remote-hg-${version}";
+
+  src = fetchgit {
+    inherit rev;
+    url = "git://github.com/felipec/git-remote-hg.git";
+    sha256 = "1hc65nvxq7if1imwffyxia0i6vnkbax09gfcl9vq9yffzi8xzzfy";
+  };
+
+  buildInputs = [ mercurial.python mercurial makeWrapper
+    asciidoc xmlto dbus docbook_xsl docbook_xml_dtd_45 libxslt libxml2
+  ];
+
+  doCheck = false;
+
+  installFlags = "HOME=\${out}";
+
+  postInstall = ''
+    wrapProgram $out/bin/git-remote-hg \
+      --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages}"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/felipec/git-remote-hg";
+    description = "semi-official Mercurial bridge from Git project, once installed, it allows you to clone, fetch and push to and from Mercurial repositories as if they were Git ones";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.garbas ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index f95b5a493a65..054b1c1b0f3c 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -10,7 +10,7 @@
 
 let
 
-  version = "1.9.4";
+  version = "2.0.1";
 
   svn = subversionClient.override { perlBindings = true; };
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "1shxa49lsxn81qpfi60wh7rn5ci4zjgljvr0qczdmnqzd8w1zyvb";
+    sha256 = "1pylqr2qzndy92x3pq8hkwsb3garww2jxb167s6hshrva81s24mb";
   };
 
   patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ./cert-path.patch ];
diff --git a/pkgs/applications/version-management/gitolite/default.nix b/pkgs/applications/version-management/gitolite/default.nix
new file mode 100644
index 000000000000..2dcb13e5db5e
--- /dev/null
+++ b/pkgs/applications/version-management/gitolite/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, perl, git, fetchgit }:
+
+stdenv.mkDerivation rec {
+  name = "gitolite-${version}";
+  version = "3.6.1";
+
+  src = fetchgit {
+    url    = "git://github.com/sitaramc/gitolite";
+    rev    = "refs/tags/v${version}";
+    sha256 = "47e0e9c3137b05af96c091494ba918d61d1d3396749a04d63e7949ebcc6c6dca";
+    leaveDotGit = true;
+  };
+
+  buildInputs = [ perl git ];
+  buildPhase = "true";
+
+  patchPhase = ''
+    substituteInPlace ./install --replace " 2>/dev/null" ""
+    substituteInPlace src/lib/Gitolite/Hooks/PostUpdate.pm \
+      --replace /usr/bin/perl "/usr/bin/env perl"
+    substituteInPlace src/lib/Gitolite/Hooks/Update.pm \
+      --replace /usr/bin/perl "/usr/bin/env perl"
+  '';
+  installPhase = ''
+    mkdir -p $out/bin
+    git tag v${version} # Gitolite requires a tag for the version information :/
+    perl ./install -to $out/bin
+  '';
+
+  meta = {
+    description = "Finely-grained git repository hosting";
+    homepage    = "http://gitolite.com/gitolite/index.html";
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/applications/window-managers/tabbed/default.nix b/pkgs/applications/window-managers/tabbed/default.nix
index 3ab950bf4d05..2dec3b2241f2 100644
--- a/pkgs/applications/window-managers/tabbed/default.nix
+++ b/pkgs/applications/window-managers/tabbed/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
  
   src = fetchhg {
     url = http://hg.suckless.org/tabbed;
-    tag = "d7542a6f6dc5";
+    rev = "d7542a6f6dc5";
     sha256 = "1963jsazfmh5k7923c1mfwppz1xbh48z16j0sa64fiscq22as2gj";
   };