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/altcoins/memorycoin.nix6
-rw-r--r--pkgs/applications/altcoins/namecoin.nix12
-rw-r--r--pkgs/applications/altcoins/primecoin.nix6
-rw-r--r--pkgs/applications/audio/dfasma/default.nix10
-rw-r--r--pkgs/applications/audio/fmit/default.nix15
-rw-r--r--pkgs/applications/audio/iannix/default.nix10
-rw-r--r--pkgs/applications/audio/keyfinder/default.nix11
-rw-r--r--pkgs/applications/audio/non/default.nix6
-rw-r--r--pkgs/applications/audio/qtscrobbler/default.nix8
-rw-r--r--pkgs/applications/audio/sonic-visualiser/default.nix11
-rw-r--r--pkgs/applications/audio/svox/default.nix43
-rw-r--r--pkgs/applications/editors/atom/default.nix36
-rw-r--r--pkgs/applications/editors/atom/env.nix19
-rw-r--r--pkgs/applications/editors/focuswriter/default.nix8
-rw-r--r--pkgs/applications/editors/texmaker/default.nix6
-rw-r--r--pkgs/applications/editors/texstudio/default.nix8
-rw-r--r--pkgs/applications/editors/tiled/default.nix35
-rw-r--r--pkgs/applications/editors/vscode/default.nix51
-rw-r--r--pkgs/applications/graphics/antimony/default.nix10
-rw-r--r--pkgs/applications/graphics/awesomebump/default.nix6
-rw-r--r--pkgs/applications/graphics/leocad/default.nix7
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix6
-rw-r--r--pkgs/applications/graphics/openscad/default.nix8
-rw-r--r--pkgs/applications/graphics/phototonic/default.nix12
-rw-r--r--pkgs/applications/graphics/qtpfsgui/default.nix16
-rw-r--r--pkgs/applications/graphics/rapcad/default.nix11
-rw-r--r--pkgs/applications/graphics/sane/backends/git.nix6
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/cool-retro-term/default.nix12
-rw-r--r--pkgs/applications/misc/diffpdf/default.nix9
-rw-r--r--pkgs/applications/misc/evopedia/default.nix7
-rw-r--r--pkgs/applications/misc/freicoin/default.nix6
-rw-r--r--pkgs/applications/misc/golden-cheetah/default.nix9
-rw-r--r--pkgs/applications/misc/goldendict/default.nix13
-rw-r--r--pkgs/applications/misc/gqrx/default.nix6
-rw-r--r--pkgs/applications/misc/keepassx/default.nix8
-rw-r--r--pkgs/applications/misc/librecad/default.nix8
-rw-r--r--pkgs/applications/misc/merkaartor/default.nix8
-rw-r--r--pkgs/applications/misc/multimon-ng/default.nix4
-rw-r--r--pkgs/applications/misc/navipowm/default.nix6
-rw-r--r--pkgs/applications/misc/openbrf/default.nix10
-rw-r--r--pkgs/applications/misc/qtbitcointrader/default.nix22
-rw-r--r--pkgs/applications/misc/qtpass/default.nix10
-rw-r--r--pkgs/applications/misc/tpmmanager/default.nix8
-rw-r--r--pkgs/applications/misc/twmn/default.nix9
-rw-r--r--pkgs/applications/misc/vym/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/arora/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/qtox/default.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/ricochet/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/vacuum/default.nix8
-rw-r--r--pkgs/applications/networking/irc/communi/default.nix13
-rw-r--r--pkgs/applications/networking/linssid/default.nix10
-rw-r--r--pkgs/applications/networking/mumble/default.nix45
-rw-r--r--pkgs/applications/networking/ostinato/default.nix7
-rw-r--r--pkgs/applications/networking/p2p/retroshare/0.6.nix10
-rw-r--r--pkgs/applications/networking/p2p/retroshare/default.nix10
-rw-r--r--pkgs/applications/networking/remote/x2goclient/default.nix8
-rw-r--r--pkgs/applications/office/beancount/default.nix43
-rw-r--r--pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix523
-rw-r--r--pkgs/applications/office/libreoffice/still.nix255
-rw-r--r--pkgs/applications/science/electronics/fritzing/default.nix17
-rw-r--r--pkgs/applications/science/robotics/qgroundcontrol/default.nix14
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix41
-rw-r--r--pkgs/applications/version-management/git-and-tools/qgit/default.nix13
-rw-r--r--pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix13
-rw-r--r--pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix10
-rw-r--r--pkgs/applications/version-management/guitone/default.nix7
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix1
-rw-r--r--pkgs/applications/version-management/pijul/default.nix4
-rw-r--r--pkgs/applications/version-management/tortoisehg/default.nix18
-rw-r--r--pkgs/applications/video/bomi/default.nix6
-rw-r--r--pkgs/applications/video/clipgrab/default.nix7
-rw-r--r--pkgs/applications/video/linuxstopmotion/default.nix8
-rw-r--r--pkgs/applications/video/minitube/default.nix8
-rw-r--r--pkgs/applications/video/qgifer/default.nix4
-rw-r--r--pkgs/applications/video/shotcut/default.nix10
80 files changed, 1213 insertions, 516 deletions
diff --git a/pkgs/applications/altcoins/memorycoin.nix b/pkgs/applications/altcoins/memorycoin.nix
index 4e5e24e3062..0470fd21eae 100644
--- a/pkgs/applications/altcoins/memorycoin.nix
+++ b/pkgs/applications/altcoins/memorycoin.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, openssl, db48, boost
-, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode
+, zlib, miniupnpc, qt4, qmake4Hook, utillinux, protobuf, qrencode
 , withGui }:
 
 with stdenv.lib;
@@ -15,13 +15,11 @@ stdenv.mkDerivation rec{
 
   buildInputs = [ pkgconfig openssl db48 boost zlib
                   miniupnpc utillinux protobuf ]
-                  ++ optionals withGui [ qt4 qrencode ];
+                  ++ optionals withGui [ qt4 qmake4Hook qrencode ];
 
   configureFlags = [ "--with-boost-libdir=${boost.lib}/lib" ]
                      ++ optionals withGui [ "--with-gui=qt4" ];
 
-  configurePhase = optional withGui "qmake";
-
   preBuild = optional (!withGui) "cd src; cp makefile.unix Makefile";
 
   installPhase =
diff --git a/pkgs/applications/altcoins/namecoin.nix b/pkgs/applications/altcoins/namecoin.nix
index f2e2aae698e..563363b8baf 100644
--- a/pkgs/applications/altcoins/namecoin.nix
+++ b/pkgs/applications/altcoins/namecoin.nix
@@ -1,4 +1,4 @@
-{ stdenv, db4, boost, openssl, qt4, miniupnpc, unzip, namecoind }:
+{ stdenv, db4, boost, openssl, qt4, qmake4Hook, miniupnpc, unzip, namecoind }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -7,15 +7,9 @@ stdenv.mkDerivation rec {
   version = namecoind.version;
   src = namecoind.src;
 
-  buildInputs = [ db4 boost openssl unzip qt4 miniupnpc ];
+  buildInputs = [ db4 boost openssl unzip qt4 qmake4Hook miniupnpc ];
 
-  configurePhase = ''
-    qmake USE_UPNP=-
-  '';
-
-  buildPhase = ''
-    make
-  '';
+  qmakeFlags = [ "USE_UPNP=-" ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/altcoins/primecoin.nix b/pkgs/applications/altcoins/primecoin.nix
index 61bba04cb6a..360a39a4fd8 100644
--- a/pkgs/applications/altcoins/primecoin.nix
+++ b/pkgs/applications/altcoins/primecoin.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, openssl, db48, boost
-, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode
+, zlib, miniupnpc, qt4, qmake4Hook, utillinux, protobuf, qrencode
 , withGui }:
 
 with stdenv.lib;
@@ -15,13 +15,11 @@ stdenv.mkDerivation rec{
 
   buildInputs = [ pkgconfig openssl db48 boost zlib
                   miniupnpc utillinux protobuf ]
-                  ++ optionals withGui [ qt4 qrencode ];
+                  ++ optionals withGui [ qt4 qmake4Hook qrencode ];
 
   configureFlags = [ "--with-boost-libdir=${boost.lib}/lib" ]
                      ++ optionals withGui [ "--with-gui=qt4" ];
 
-  configurePhase = optional withGui "qmake";
-
   preBuild = optional (!withGui) "cd src; cp makefile.unix Makefile";
 
   installPhase =
diff --git a/pkgs/applications/audio/dfasma/default.nix b/pkgs/applications/audio/dfasma/default.nix
index 94f20bc543e..d006f2c0178 100644
--- a/pkgs/applications/audio/dfasma/default.nix
+++ b/pkgs/applications/audio/dfasma/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, makeQtWrapper }:
+{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmakeHook, makeQtWrapper }:
 
 let
 
@@ -37,7 +37,7 @@ in stdenv.mkDerivation rec {
     owner = "gillesdegottex";
   };
 
-  buildInputs = [ fftw libsndfile qtbase qtmultimedia ];
+  buildInputs = [ fftw libsndfile qtbase qtmultimedia qmakeHook ];
 
   nativeBuildInputs = [ makeQtWrapper ];
 
@@ -47,10 +47,8 @@ in stdenv.mkDerivation rec {
     cp -Rv "${libqaudioextra.src}"/* external/libqaudioextra
   '';
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake PREFIX=$out PREFIXSHORTCUT=$out dfasma.pro
-    runHook postConfigure
+  preConfigure = ''
+    qmakeFlags="$qmakeFlags PREFIXSHORTCUT=$out"
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/fmit/default.nix b/pkgs/applications/audio/fmit/default.nix
index c27e049a4ae..83367b83e48 100644
--- a/pkgs/applications/audio/fmit/default.nix
+++ b/pkgs/applications/audio/fmit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fftw, freeglut, qtbase, qtmultimedia
+{ stdenv, fetchFromGitHub, fftw, freeglut, mesa_glu, qtbase, qtmultimedia, qmakeHook
 , alsaSupport ? true, alsaLib ? null
 , jackSupport ? false, libjack2 ? null
 , portaudioSupport ? false, portaudio ? null }:
@@ -18,22 +18,17 @@ stdenv.mkDerivation rec {
     owner = "gillesdegottex";
   };
 
-  buildInputs = [ fftw freeglut qtbase qtmultimedia ]
+  buildInputs = [ fftw freeglut mesa_glu qtbase qtmultimedia qmakeHook ]
     ++ stdenv.lib.optionals alsaSupport [ alsaLib ]
     ++ stdenv.lib.optionals jackSupport [ libjack2 ]
     ++ stdenv.lib.optionals portaudioSupport [ portaudio ];
 
-  configurePhase = ''
-    runHook preConfigure
-    mkdir build
-    cd build
-    qmake \
+  preConfigure = ''
+    qmakeFlags="$qmakeFlags \
       CONFIG+=${stdenv.lib.optionalString alsaSupport "acs_alsa"} \
       CONFIG+=${stdenv.lib.optionalString jackSupport "acs_jack"} \
       CONFIG+=${stdenv.lib.optionalString portaudioSupport "acs_portaudio"} \
-      PREFIX="$out" PREFIXSHORTCUT="$out" \
-      ../fmit.pro
-    runHook postConfigure
+      PREFIXSHORTCUT=$out"
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/iannix/default.nix b/pkgs/applications/audio/iannix/default.nix
index f17abf97521..83fd2b14ed2 100644
--- a/pkgs/applications/audio/iannix/default.nix
+++ b/pkgs/applications/audio/iannix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qt5
+{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmakeHook
 }:
 
 stdenv.mkDerivation rec {
@@ -11,13 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "184ydb9f1303v332k5k3f1ki7cb6nkxhh6ij0yn72v7dp7figrgj";
   };
 
-    buildInputs = [ alsaLib pkgconfig qt5.qtbase qt5.qtscript ];
+  buildInputs = [ alsaLib pkgconfig qtbase qtscript qmakeHook ];
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake PREFIX=/
-    runHook postConfigure
-  '';
+  qmakeFlags = [ "PREFIX=/" ];
 
   installFlags = [ "INSTALL_ROOT=$(out)" ];
 
diff --git a/pkgs/applications/audio/keyfinder/default.nix b/pkgs/applications/audio/keyfinder/default.nix
index 049920d2807..0cacd772493 100644
--- a/pkgs/applications/audio/keyfinder/default.nix
+++ b/pkgs/applications/audio/keyfinder/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, taglib }:
+{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, qmakeHook, taglib }:
 
 stdenv.mkDerivation rec {
   name = "keyfinder-${version}";
@@ -11,21 +11,14 @@ stdenv.mkDerivation rec {
     owner = "ibsh";
   };
 
-  buildInputs = [ libav_0_8 libkeyfinder qtbase qtxmlpatterns taglib ];
+  buildInputs = [ libav_0_8 libkeyfinder qtbase qtxmlpatterns qmakeHook taglib ];
 
   postPatch = ''
     substituteInPlace is_KeyFinder.pro \
        --replace "keyfinder.0" "keyfinder" \
-       --replace '$$[QT_INSTALL_PREFIX]' "$out" \
        --replace "-stdlib=libc++" ""
   '';
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake
-    runHook postConfigure
-  '';
-
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/applications/audio/non/default.nix
index ead53721950..9217bc285bc 100644
--- a/pkgs/applications/audio/non/default.nix
+++ b/pkgs/applications/audio/non/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   name = "non-${version}";
-  version = "2016-03-06";
+  version = "2016-04-05";
   src = fetchFromGitHub {
     owner = "original-male";
     repo = "non";
-    rev = "3946d392216ee999b560d8b7cdee7c4347110e29";
-    sha256 = "02vnq2mfimgdrmv3lmz80yif4h9a1lympv0wqc5dr2l0f8amj2fp";
+    rev = "16885e69fe865495dc32d869d1454ab148b0dca6";
+    sha256 = "1nwzzgcdpbqh5kjvz40yy5nmzvpp8gcr9biyhhwi68s5bsg972ss";
   };
 
   buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
diff --git a/pkgs/applications/audio/qtscrobbler/default.nix b/pkgs/applications/audio/qtscrobbler/default.nix
index e7108ebe487..453da89953e 100644
--- a/pkgs/applications/audio/qtscrobbler/default.nix
+++ b/pkgs/applications/audio/qtscrobbler/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, withMtp ? true, libmtp, pkgconfig, which, qt4 }:
+{ stdenv, lib, fetchurl, withMtp ? true, libmtp, pkgconfig, which, qt4, qmake4Hook }:
 
 stdenv.mkDerivation rec {
   name = "qtscrobbler-${version}";
@@ -9,18 +9,16 @@ stdenv.mkDerivation rec {
     sha256 = "01c8e48f616ed09504833d27d92fd62f455bd645ea2d1cc2a5f4c287d641daba";
   };
 
-  nativeBuildInputs = lib.optionals withMtp [ pkgconfig which ];
+  nativeBuildInputs = [ qmake4Hook ] ++ lib.optionals withMtp [ pkgconfig which ];
   buildInputs = [ qt4 ] ++ lib.optional withMtp libmtp;
 
   enableParallelBuilding = true;
 
   postPatch = ''
     cd src
-    sed -i "s,/usr/local,$out," common.pri
+    sed -i -e "s,/usr/local,$out," -e "s,/usr,," common.pri
   '';
 
-  configurePhase = "qmake";
-
   meta = with lib; {
     description = "Qt based last.fm scrobbler";
     longDescription = ''
diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix
index ae7a39240a5..31a95c51fc5 100644
--- a/pkgs/applications/audio/sonic-visualiser/default.nix
+++ b/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -3,7 +3,7 @@
 { stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
 , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate
 , libsndfile, pkgconfig, libpulseaudio, makeQtWrapper, qtbase, redland
-, rubberband, serd, sord, vampSDK, fftwFloat
+, qmakeHook, rubberband, serd, sord, vampSDK, fftwFloat
 }:
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ libsndfile qtbase fftw fftwFloat bzip2 librdf rubberband
+    [ libsndfile qtbase qmakeHook fftw fftwFloat bzip2 librdf rubberband
       libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
       serd
       sord
@@ -32,13 +32,12 @@ stdenv.mkDerivation rec {
       libX11
     ];
 
-  nativeBuildInputs = [ makeQtWrapper ];
+  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
 
-  buildPhase = ''
+  configurePhase = ''
     for i in sonic-visualiser svapp svcore svgui;
-      do cd $i && qmake -makefile PREFIX=$out && cd ..;
+      do cd $i && qmake PREFIX=$out && cd ..;
     done
-    make
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/audio/svox/default.nix b/pkgs/applications/audio/svox/default.nix
new file mode 100644
index 00000000000..f8258dd10ab
--- /dev/null
+++ b/pkgs/applications/audio/svox/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+  name = "svox-${version}";
+  version = "2016-01-25";
+
+  src = fetchgit {
+    url = "https://android.googlesource.com/platform/external/svox";
+    rev = "dfb9937746b1828d093faf3b1494f9dc403f392d";
+    sha256 = "1gkfj5avikzmr2vv8bhf83n15jcbz4phz5j13l0qnh3gjzh4f1bk";
+  };
+
+  postPatch = ''
+    cd pico
+  '';
+
+  buildPhase = ''
+    cd lib
+    for i in *.c; do
+      $CC -O2 -fPIC -c -o ''${i%.c}.o $i
+    done
+    $CC -shared -o libttspico.so *.o
+    cd ..
+  '';
+
+  installPhase = ''
+    install -Dm755 lib/libttspico.so $out/lib/libttspico.so
+    mkdir -p $out/include
+    cp lib/*.h $out/include
+    mkdir -p $out/share/pico/lang
+    cp lang/*.bin $out/share/pico/lang
+  '';
+
+  NIX_CFLAGS_COMPILE = [ "-include stdint.h" ];
+
+  meta = with stdenv.lib; {
+    description = "Text-to-speech engine";
+    homepage = https://android.googlesource.com/platform/external/svox;
+    platforms = platforms.linux;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index 9f8f6f5fd0c..9a392b90dc1 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -1,20 +1,6 @@
-{ stdenv, fetchurl, lib, makeDesktopItem, makeWrapper, zlib, glib, alsaLib
-, dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf
-, gvfs, cairo, cups, expat, libgpgerror, nspr, gconf, nss, xorg, libcap, systemd
-}:
+{ stdenv, fetchurl, lib, makeWrapper, gvfs, atomEnv }:
 
-let
-  atomPkgs = [
-    stdenv.cc.cc zlib glib dbus gtk atk pango freetype libgnome_keyring3
-    fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
-    xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
-    xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
-    xorg.libXcursor libcap systemd
-  ];
-  atomLib = lib.makeLibraryPath atomPkgs;
-  atomLib64 = lib.makeSearchPathOutputs "lib64" ["lib"] atomPkgs;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "atom-${version}";
   version = "1.6.2";
 
@@ -26,25 +12,25 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  phases = [ "installPhase" "fixupPhase" ];
-
-  installPhase = ''
-    mkdir -p $out
+  buildCommand = ''
+    mkdir -p $out/usr/
     ar p $src data.tar.gz | tar -C $out -xz ./usr
     substituteInPlace $out/usr/share/applications/atom.desktop \
       --replace /usr/share/atom $out/bin
     mv $out/usr/* $out/
     rm -r $out/share/lintian
     rm -r $out/usr/
+    wrapProgram $out/bin/atom \
+      --prefix "PATH" : "${gvfs}/bin"
+
+    fixupPhase
+
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${atomEnv.libPath}:$out/share/atom" \
       $out/share/atom/atom
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${atomEnv.libPath}" \
       $out/share/atom/resources/app/apm/bin/node
-    wrapProgram $out/bin/atom \
-      --prefix "LD_LIBRARY_PATH" : "${atomLib}:${atomLib64}" \
-      --prefix "PATH" : "${gvfs}/bin"
-    wrapProgram $out/bin/apm \
-      --prefix "LD_LIBRARY_PATH" : "${atomLib}:${atomLib64}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/atom/env.nix b/pkgs/applications/editors/atom/env.nix
new file mode 100644
index 00000000000..d91d8a4ecbe
--- /dev/null
+++ b/pkgs/applications/editors/atom/env.nix
@@ -0,0 +1,19 @@
+{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk, atk, pango, freetype, fontconfig
+, libgnome_keyring3, gdk_pixbuf, gvfs, cairo, cups, expat, libgpgerror, nspr
+, gconf, nss, xorg, libcap, systemd, libnotify
+}:
+
+let
+  packages = [
+    stdenv.cc.cc zlib glib dbus gtk atk pango freetype libgnome_keyring3
+    fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
+    xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
+    xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
+    xorg.libXcursor libcap systemd libnotify
+  ];
+
+  libPathNative = lib.makeLibraryPath packages;
+  libPath64 = lib.makeSearchPathOutputs "lib64" ["lib"] packages;
+  libPath = "${libPathNative}:${libPath64}";
+
+in { inherit packages libPath; }
diff --git a/pkgs/applications/editors/focuswriter/default.nix b/pkgs/applications/editors/focuswriter/default.nix
index bc9163e63cb..eedb674b472 100644
--- a/pkgs/applications/editors/focuswriter/default.nix
+++ b/pkgs/applications/editors/focuswriter/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, qt4, pkgconfig, hunspell}:
+{ stdenv, fetchurl, qt4, qmake4Hook, pkgconfig, hunspell }:
 
 stdenv.mkDerivation rec {
   name = "focuswriter-${version}";
@@ -9,11 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "1i58jxbiy95ijf81g8c3gwxhcg3irzssna3wv7vhrd57g4lcfj0w";
   };
 
-  buildInputs = [ qt4 pkgconfig hunspell ];
+  buildInputs = [ qt4 qmake4Hook pkgconfig hunspell ];
   
-  configurePhase = "qmake PREFIX=/";
+  qmakeFlags = [ "PREFIX=/" ];
 
-  installPhase = "make install INSTALL_ROOT=$out";
+  installFlags = [ "INSTALL_ROOT=$(out)" ];
 
   meta = {
     description = "Simple, distraction-free writing environment";
diff --git a/pkgs/applications/editors/texmaker/default.nix b/pkgs/applications/editors/texmaker/default.nix
index 04ebf195108..83165f0a505 100644
--- a/pkgs/applications/editors/texmaker/default.nix
+++ b/pkgs/applications/editors/texmaker/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, poppler_qt4, zlib, pkgconfig, poppler}:
+{ stdenv, fetchurl, qt4, qmake4Hook, poppler_qt4, zlib, pkgconfig, poppler }:
 
 stdenv.mkDerivation rec {
   pname = "texmaker";
@@ -11,11 +11,11 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qt4 poppler_qt4 zlib ];
-  nativeBuildInputs = [ pkgconfig poppler ];
+  nativeBuildInputs = [ pkgconfig poppler qmake4Hook ];
   NIX_CFLAGS_COMPILE="-I${poppler}/include/poppler";
 
   preConfigure = ''
-    qmake PREFIX=$out DESKTOPDIR=$out/share/applications ICONDIR=$out/share/pixmaps texmaker.pro
+    qmakeFlags="$qmakeFlags DESKTOPDIR=$out/share/applications ICONDIR=$out/share/pixmaps"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 4b0cccae364..4accf1cad67 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, poppler_qt4, zlib, pkgconfig}:
+{ stdenv, fetchurl, qt4, qmake4Hook, poppler_qt4, zlib, pkgconfig}:
 
 stdenv.mkDerivation rec {
   pname = "texstudio";
@@ -11,11 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "1smmc4xqs8x8qzp6iqj2wr4xarfnxxxp6rq6chx1kb256w75jwfw";
   };
 
-  buildInputs = [ qt4 poppler_qt4 zlib pkgconfig];
+  buildInputs = [ qt4 qmake4Hook poppler_qt4 zlib pkgconfig ];
 
-  preConfigure = ''
-    qmake PREFIX=$out NO_APPDATA=True texstudio.pro
-  '';
+  qmakeFlags = [ "NO_APPDATA=True" ];
 
   meta = with stdenv.lib; {
     description = "TeX and LaTeX editor";
diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix
index 059b85cee5f..201db054743 100644
--- a/pkgs/applications/editors/tiled/default.nix
+++ b/pkgs/applications/editors/tiled/default.nix
@@ -1,28 +1,31 @@
-{ stdenv, fetchurl, qtbase, qttools, pkgconfig, python }:
+{ stdenv, fetchurl, pkgconfig, qmakeHook
+, python, qtbase, qttools, zlib }:
 
 let
-  version = "0.12.3";
-  sha256 = "001j4lvb5d9h3m6vgz2na07637x6xg4bdvxi2hg4a0j9rikb4y40";
-in
-
-stdenv.mkDerivation rec {
+#  qtEnv = with qt5; env "qt-${qtbase.version}" [ qtbase qttools ];
+in stdenv.mkDerivation rec {
   name = "tiled-${version}";
+  version = "0.16.0";
 
   src = fetchurl {
+    name = "${name}.tar.gz";
     url = "https://github.com/bjorn/tiled/archive/v${version}.tar.gz";
-    inherit sha256;
+    sha256 = "1vlhfkgl126irp53xw94jw1xnj96l1hwnbxmm1s5az60460gfbf0";
   };
 
-  buildInputs = [ qtbase qttools pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig qmakeHook ];
+  buildInputs = [ python qtbase qttools ];
 
-  preConfigure = "qmake -r PREFIX=$out";
+  enableParallelBuilding = true;
 
-  meta = {
-    description = "A free, easy to use and flexible tile map editor";
-    homepage = "http://www.mapeditor.org/";
-    # libtiled and tmxviewer is licensed under 2-calause BSD license.
-    # The rest is GPL2 or later.
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    description = "Free, easy to use and flexible tile map editor";
+    homepage = http://www.mapeditor.org/;
+    license = with licenses; [
+      bsd2	# libtiled and tmxviewer
+      gpl2Plus	# all the rest
+    ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nckx ];
   };
 }
diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix
index 0d9572ebc22..b372dda1bf8 100644
--- a/pkgs/applications/editors/vscode/default.nix
+++ b/pkgs/applications/editors/vscode/default.nix
@@ -1,22 +1,18 @@
-{ stdenv, callPackage, fetchurl, unzip
-, ...
-} @ args:
+{ stdenv, lib, callPackage, fetchurl, unzip, atomEnv, makeDesktopItem }:
 
 let
-  atomEnv = callPackage ../../../development/tools/electron/env-atom.nix (args);
+  version = "1.0.0";
+  rev = "fa6d0f03813dfb9df4589c30121e9fcffa8a8ec8";
 
-  version = "0.10.10";
-  rev = "5b5f4db87c10345b9d5c8d0bed745bcad4533135";
-  sha256 = if stdenv.system == "i686-linux"    then "1mmgq4fxi2h4hvz7yxgzzyvlznkb42qwr8i1g2b1akdlgnrvvpby"
-      else if stdenv.system == "x86_64-linux"  then "1zjb6mys5qs9mb21rpgpnbgq4gpnw6gsgfn5imf7ca7myk1bxnvk"
-      else if stdenv.system == "x86_64-darwin" then "0y1as2s6nhicyvdfszphhqp76iv9wcygglrl2f0jamm98g9qp66p"
+  sha256 = if stdenv.system == "i686-linux"    then "1nnsvr51k8cmq8rccksylam4ww40pdn9dnhnp9096z5ccrf4qa1b"
+      else if stdenv.system == "x86_64-linux"  then "0p408pp2il6kawfsql8n5dvl75kmf2n2p0r266mjnww6vprmq4gw"
+      else if stdenv.system == "x86_64-darwin" then "06k41ljfvgyxbl364jlkdjk8lkwr6bpq2r051vin93cnqfxridkq"
       else throw "Unsupported system: ${stdenv.system}";
 
   urlMod = if stdenv.system == "i686-linux" then "linux-ia32"
       else if stdenv.system == "x86_64-linux" then "linux-x64"
       else if stdenv.system == "x86_64-darwin" then "darwin"
       else throw "Unsupported system: ${stdenv.system}";
-
 in
   stdenv.mkDerivation rec {
     name = "vscode-${version}";
@@ -27,24 +23,35 @@ in
       inherit sha256;
     };
 
+    desktopItem = makeDesktopItem {
+      name = "code";
+      exec = "code";
+      icon = "code";
+      comment = "Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications";
+      desktopName = "Visual Studio Code";
+      genericName = "Text Editor";
+      categories = "GNOME;GTK;Utility;TextEditor;Development;";
+    };
+
     buildInputs = [ unzip ];
 
     installPhase = ''
-      mkdir -p $out/bin
-      cp -r ./* $out/bin
+      mkdir -p $out/lib/vscode $out/bin
+      cp -r ./* $out/lib/vscode
+      ln -s $out/lib/vscode/code $out/bin
+
+      mkdir -p $out/share/applications
+      cp $desktopItem/share/applications/* $out/share/applications
 
-      ${if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then ''
-        patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        $out/bin/code
-      '' else ""}
+      mkdir -p $out/share/pixmaps
+      cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
     '';
 
-    postFixup = ''
-      ${if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then ''
-        patchelf \
-        --set-rpath "${atomEnv}/lib:${atomEnv}/lib64:$out/bin:$(patchelf --print-rpath $out/bin/code)" \
-        $out/bin/code
-      '' else ""}
+    postFixup = lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") ''
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${atomEnv.libPath}:$out/lib/vscode" \
+        $out/lib/vscode/code
     '';
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/graphics/antimony/default.nix b/pkgs/applications/graphics/antimony/default.nix
index fa9a7e0fdd3..50b33096e3d 100644
--- a/pkgs/applications/graphics/antimony/default.nix
+++ b/pkgs/applications/graphics/antimony/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, libpng, python3, boost, mesa, qtbase, ncurses }:
+{ stdenv, fetchgit, libpng, python3, boost, mesa, qtbase, qmakeHook, ncurses }:
 
 let
   gitRev    = "745eca3a2d2657c495d5509e9083c884e021d09c";
@@ -31,16 +31,14 @@ in
       mesa qtbase ncurses
     ];
 
-    configurePhase = ''
-      runHook preConfigure
+    nativeBuildHooks = [ qmakeHook ];
+
+    preConfigure = ''
       export GITREV=${gitRev}
       export GITBRANCH=${gitBranch}
       export GITTAG=${gitTag}
 
       cd qt
-      export sourceRoot=$sourceRoot/qt
-      qmake antimony.pro PREFIX=$out
-      runHook postConfigure
     '';
 
     enableParallelBuilding = true;
diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix
index c71b1f9335b..b89e18ed148 100644
--- a/pkgs/applications/graphics/awesomebump/default.nix
+++ b/pkgs/applications/graphics/awesomebump/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, qtbase, makeWrapper }:
+{ lib, stdenv, fetchurl, qtbase, qmakeHook, makeWrapper }:
 
 stdenv.mkDerivation {
   name = "awesomebump-4.0";
@@ -10,9 +10,7 @@ stdenv.mkDerivation {
 
   setSourceRoot = "sourceRoot=$(echo */Sources)";
 
-  buildInputs = [ qtbase makeWrapper ];
-
-  preBuild = "qmake";
+  buildInputs = [ qtbase qmakeHook makeWrapper ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/graphics/leocad/default.nix b/pkgs/applications/graphics/leocad/default.nix
index 9ca9c592102..884dc115853 100644
--- a/pkgs/applications/graphics/leocad/default.nix
+++ b/pkgs/applications/graphics/leocad/default.nix
@@ -3,7 +3,7 @@ To use aditional parts libraries
 set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
 */
 
-{ stdenv, fetchsvn, qt4, zlib }:
+{ stdenv, fetchsvn, qt4, qmake4Hook, zlib }:
 
 stdenv.mkDerivation rec {
   name = "leocad-${version}";
@@ -14,12 +14,11 @@ stdenv.mkDerivation rec {
     sha256 = "1190gb437ls51hhfiwa79fq131026kywpy3j3k4fkdgfr8a9v3q8";
   };
 
-  buildInputs = [ qt4 zlib ];
+  buildInputs = [ qt4 qmake4Hook zlib ];
 
-  prefixKey = "INSTALL_PREFIX=";
-  configureScript = "qmake leocad.pro";
   postPatch = ''
     substituteInPlace common/camera.cpp --replace "isnan(" "std::isnan("
+    export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index 49bfb47c85a..d8434de5a77 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, qt4, bzip2, lib3ds, levmar, muparser, unzip}:
+{ stdenv, fetchurl, qt4, bzip2, lib3ds, levmar, muparser, unzip, vcg }:
 
 stdenv.mkDerivation rec {
   name = "meshlab-1.3.3";
@@ -16,8 +16,6 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     mkdir -p "$out/include"
-    cp -r vcglib "$out/include"
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$out/include/vcglib"
     export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS"
     cd meshlab/src
     pushd external
@@ -38,7 +36,7 @@ stdenv.mkDerivation rec {
 
   sourceRoot = ".";
 
-  buildInputs = [ qt4 unzip ];
+  buildInputs = [ qt4 unzip vcg ];
 
   meta = {
     description = "System for the processing and editing of unstructured 3D triangular meshes";
diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix
index 7557e19896f..f3b16a30460 100644
--- a/pkgs/applications/graphics/openscad/default.nix
+++ b/pkgs/applications/graphics/openscad/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, bison, flex, eigen, boost, mesa, glew, opencsg, cgal
+{ stdenv, fetchurl, qt4, qmake4Hook, bison, flex, eigen, boost, mesa, glew, opencsg, cgal
 , mpfr, gmp, glib, pkgconfig, harfbuzz, qscintilla, gettext
 }:
 
@@ -12,13 +12,11 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    qt4 bison flex eigen boost mesa glew opencsg cgal mpfr gmp glib
+    qt4 qmake4Hook bison flex eigen boost mesa glew opencsg cgal mpfr gmp glib
     pkgconfig harfbuzz qscintilla gettext
   ];
 
-  configurePhase = ''
-    qmake PREFIX="$out" VERSION=${version}
-  '';
+  qmakeFlags = [ "VERSION=${version}" ];
 
   doCheck = false;
 
diff --git a/pkgs/applications/graphics/phototonic/default.nix b/pkgs/applications/graphics/phototonic/default.nix
index 4ed3a424031..4782376d1e0 100644
--- a/pkgs/applications/graphics/phototonic/default.nix
+++ b/pkgs/applications/graphics/phototonic/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qtbase, exiv2 }:
+{ stdenv, fetchFromGitHub, qtbase, qmakeHook, exiv2 }:
 
 stdenv.mkDerivation rec {
   name = "phototonic-${version}";
@@ -14,16 +14,12 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qtbase exiv2 ];
+  nativeBuildInputs = [ qmakeHook ];
 
-  configurePhase = ''
-    runHook preConfigure
-    sed -i 's;/usr;;' phototonic.pro
-    qmake PREFIX=""
-    runHook postConfigure
+  preConfigure = ''
+    sed -i 's;/usr;$$PREFIX/;g' phototonic.pro
   '';
 
-  installFlags = [ "INSTALL_ROOT=$(out)" ];
-
   meta = with stdenv.lib; {
     description = "An image viewer and organizer";
     homepage = http://oferkv.github.io/phototonic/;
diff --git a/pkgs/applications/graphics/qtpfsgui/default.nix b/pkgs/applications/graphics/qtpfsgui/default.nix
index efa245cc7e9..5223ae14c63 100644
--- a/pkgs/applications/graphics/qtpfsgui/default.nix
+++ b/pkgs/applications/graphics/qtpfsgui/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, qt4, exiv2, openexr, fftwSinglePrec, libtiff, ilmbase }:
+{stdenv, fetchurl, qt4, qmake4Hook, exiv2, openexr, fftwSinglePrec, libtiff, ilmbase }:
 
 stdenv.mkDerivation rec {
   name = "qtpfsgui-1.9.3";
@@ -9,15 +9,19 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qt4 exiv2 openexr fftwSinglePrec libtiff ];
+  nativeBuildInputs = [ qmake4Hook ];
 
-  configurePhase = ''
+  preConfigure = ''
     export CPATH="${ilmbase}/include/OpenEXR:$CPATH"
-    qmake PREFIX=$out EXIV2PATH=${exiv2}/include/exiv2  \
-      OPENEXRDIR=${openexr}/include/OpenEXR             \
-      FFTW3DIR=${fftwSinglePrec}/include                \
-      LIBTIFFDIR=${libtiff}/include
   '';
 
+  qmakeFlags = [
+    "EXIV2PATH=${exiv2}/include/exiv2"
+    "OPENEXRDIR=${openexr}/include/OpenEXR"
+    "FFTW3DIR=${fftwSinglePrec}/include"
+    "LIBTIFFDIR=${libtiff}/include"
+  ];
+
   meta = {
     homepage = http://qtpfsgui.sourceforge.net/;
     description = "Qtpfsqui, a graphical application for high dynamic range (HDR) imaging";
diff --git a/pkgs/applications/graphics/rapcad/default.nix b/pkgs/applications/graphics/rapcad/default.nix
index 90cb360e7d5..d5d6e27219f 100644
--- a/pkgs/applications/graphics/rapcad/default.nix
+++ b/pkgs/applications/graphics/rapcad/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, cgal, boost, gmp, mpfr, flex, bison, dxflib, readline
-, qtbase
+, qtbase, qmakeHook, mesa_glu
 }:
 
 stdenv.mkDerivation rec {
@@ -12,14 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "15c18jvgbwyrfhv7r35ih0gzx35vjlsbi984h1sckgh2z17hjq8l";
   };
 
-  buildInputs = [ qtbase cgal boost gmp mpfr flex bison dxflib readline ];
-
-  configurePhase = ''
-    runHook preConfigure
-    qmake
-    sed -e "s@/usr/@$out/@g" -i $(find . -name Makefile)
-    runHook postConfigure
-  '';
+  buildInputs = [ qtbase qmakeHook cgal boost gmp mpfr flex bison dxflib readline mesa_glu ];
 
   meta = {
     license = stdenv.lib.licenses.gpl3;
diff --git a/pkgs/applications/graphics/sane/backends/git.nix b/pkgs/applications/graphics/sane/backends/git.nix
index ae1526990f2..182c99dc2d0 100644
--- a/pkgs/applications/graphics/sane/backends/git.nix
+++ b/pkgs/applications/graphics/sane/backends/git.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchgit, ... } @ args:
 
 callPackage ./generic.nix (args // {
-  version = "2016-04-14";
+  version = "2016-04-23";
   src = fetchgit {
-    sha256 = "414fa7753043f8f3775d926eede01a9dbccf6255b2b2b961a3c48b4fa76a4952";
-    rev = "19c128a23e27c1ab5a030fa6ff74da1b740629bb";
+    sha256 = "11bf60cd5a6b314e855a69a6f57a5ca0db3254527def55662bce25810a2314df";
+    rev = "c8169b1e656f7f95c67946298da5a0e1c143f8e8";
     url = "git://alioth.debian.org/git/sane/sane-backends.git";
   };
 })
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 7b789b3881d..d7ab712dae6 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.54.0";
+  version = "2.55.0";
   name = "calibre-${version}";
 
   src = fetchurl {
     url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
-    sha256 = "1r2cxnqiqnx51gbw283z8lz58i9zpvbf0a5ncrg5b2i9bphdiq79";
+    sha256 = "12412d5vjp141xp5qvif50fskd1vsmr15h956z3bh6j99n8z5953";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/cool-retro-term/default.nix b/pkgs/applications/misc/cool-retro-term/default.nix
index 67b9b601139..9ffa36adc12 100644
--- a/pkgs/applications/misc/cool-retro-term/default.nix
+++ b/pkgs/applications/misc/cool-retro-term/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, makeQtWrapper, qtbase, qtquick1, qmltermwidget,
-qtquickcontrols, qtgraphicaleffects }:
+qtquickcontrols, qtgraphicaleffects, qmakeHook }:
 
 stdenv.mkDerivation rec {
   version = "1.0.0";
@@ -17,15 +17,9 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ qtbase qtquick1 qmltermwidget qtquickcontrols qtgraphicaleffects ];
-  nativeBuildInputs = [ makeQtWrapper ];
+  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake PREFIX=$out
-    runHook postConfigure
-  '';
-
-  installPhase = "make -j $NIX_BUILD_CORES INSTALL_ROOT=$out install";
+  installFlags = [ "INSTALL_ROOT=$(out)" ];
 
   preFixup = ''
     mv $out/usr/share $out/share
diff --git a/pkgs/applications/misc/diffpdf/default.nix b/pkgs/applications/misc/diffpdf/default.nix
index aefa4f755b8..666c3a40cdc 100644
--- a/pkgs/applications/misc/diffpdf/default.nix
+++ b/pkgs/applications/misc/diffpdf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, poppler_qt4 }:
+{ stdenv, fetchurl, qt4, poppler_qt4, qmake4Hook }:
 
 stdenv.mkDerivation rec {
   version = "2.1.3";
@@ -12,13 +12,12 @@ stdenv.mkDerivation rec {
   patches = [ ./fix_path_poppler_qt4.patch ];
 
   buildInputs = [ qt4 poppler_qt4 ];
+  nativeBuildInputs = [ qmake4Hook ];
 
-  preBuild = ''
+  preConfigure = ''
     substituteInPlace diffpdf.pro --replace @@NIX_POPPLER_QT4@@ ${poppler_qt4}
-    [ -e "*.qm" ] && make clean
     lrelease diffpdf.pro
-    qmake -makefile PREFIX=\$out
-    '';
+  '';
 
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
diff --git a/pkgs/applications/misc/evopedia/default.nix b/pkgs/applications/misc/evopedia/default.nix
index b7403d4826b..b235da697d5 100644
--- a/pkgs/applications/misc/evopedia/default.nix
+++ b/pkgs/applications/misc/evopedia/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchgit, bzip2, qt4, libX11}:
+{ stdenv, fetchgit, bzip2, qt4, qmake4Hook, libX11 }:
 
 stdenv.mkDerivation rec {
   name = "evopedia-${version}";
@@ -10,11 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1biq9zaj8nhxx1pixidsn97iwp9qy1yslgl0znpa4d4p35jcg48g";
   };
 
-  configurePhase = ''
-    qmake PREFIX=$out
-  '';
-
   buildInputs = [ bzip2 qt4 libX11 ];
+  nativeBuildInputs = [ qmake4Hook ];
 
   meta = {
     description = "Offline Wikipedia Viewer";
diff --git a/pkgs/applications/misc/freicoin/default.nix b/pkgs/applications/misc/freicoin/default.nix
index 65265fc07a5..b4e71d4bbc7 100644
--- a/pkgs/applications/misc/freicoin/default.nix
+++ b/pkgs/applications/misc/freicoin/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, db, boost, gmp, mpfr, miniupnpc, qt4, unzip }:
+{ fetchurl, stdenv, db, boost, gmp, mpfr, miniupnpc, qt4, qmake4Hook, unzip }:
 
 stdenv.mkDerivation rec {
   version = "0.8.3-1";
@@ -11,9 +11,7 @@ stdenv.mkDerivation rec {
 
   # I think that openssl and zlib are required, but come through other
   # packages
-  buildInputs = [ db boost gmp mpfr miniupnpc qt4 unzip ];
-
-  configurePhase = "qmake";
+  buildInputs = [ db boost gmp mpfr miniupnpc qt4 unzip qmake4Hook ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix
index 799746ee6bd..56b1d2a0029 100644
--- a/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/pkgs/applications/misc/golden-cheetah/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, qtbase, qtsvg, qtserialport, qtwebkit, qtmultimedia
-, qttools, yacc, flex, zlib, config, makeQtWrapper }:
+, qttools, yacc, flex, zlib, config, qmakeHook, makeQtWrapper }:
 stdenv.mkDerivation rec {
   name = "golden-cheetah-${version}";
   version = "V4.0-DEV1603";
@@ -10,15 +10,14 @@ stdenv.mkDerivation rec {
   buildInputs = [
     qtbase qtsvg qtserialport qtwebkit qtmultimedia qttools yacc flex zlib
   ];
-  nativeBuildInputs = [ makeQtWrapper ];
-  configurePhase = ''
-    runHook preConfigure
+  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
+  preConfigure = ''
     cp src/gcconfig.pri.in src/gcconfig.pri
     cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
     echo 'QMAKE_LRELEASE = ${qttools}/bin/lrelease' >> src/gcconfig.pri
     sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local
-    qmake PREFIX=$out build.pro
   '';
+  #postConfigure =
     #  + (
     # with (config.golden-cheetah);
     # stdenv.lib.optionalString (dropbox-client-id != null && dropbox-client-secret != null) ''
diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix
index 9a7fad6a207..36840c656d3 100644
--- a/pkgs/applications/misc/goldendict/default.nix
+++ b/pkgs/applications/misc/goldendict/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qt4, libXtst, libvorbis, hunspell, libao, ffmpeg, libeb, lzo, xz, libtiff }:
+{ stdenv, fetchFromGitHub, pkgconfig, qt4, qmake4Hook, libXtst, libvorbis, hunspell
+, libao, ffmpeg, libeb, lzo, xz, libtiff }:
 stdenv.mkDerivation rec {
   name = "goldendict-1.5.0.ec86515";
   src = fetchFromGitHub {
@@ -8,10 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "070majwxbn15cy7sbgz7ljl8rkn7vcgkm10884v97csln7bfzwhr";
   };
 
-  buildInputs = [ pkgconfig qt4 libXtst libvorbis hunspell libao ffmpeg libeb lzo xz libtiff ];
-  configurePhase = ''
-    qmake PREFIX=$out 'CONFIG+=zim_support'
-  '';
+  buildInputs = [
+    pkgconfig qt4 libXtst libvorbis hunspell libao ffmpeg libeb
+    lzo xz libtiff qmake4Hook
+  ];
+
+  qmakeFlags = [ "CONFIG+=zim_support" ];
 
   meta = {
     homepage = http://goldendict.org/;
diff --git a/pkgs/applications/misc/gqrx/default.nix b/pkgs/applications/misc/gqrx/default.nix
index d30b6b8e8f9..3fda4d8881a 100644
--- a/pkgs/applications/misc/gqrx/default.nix
+++ b/pkgs/applications/misc/gqrx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qt4, gnuradio, boost, gnuradio-osmosdr
+{ stdenv, fetchFromGitHub, qt4, qmake4Hook, gnuradio, boost, gnuradio-osmosdr
 # drivers (optional):
 , rtl-sdr, hackrf
 , pulseaudioSupport ? true, libpulseaudio
@@ -17,12 +17,12 @@ stdenv.mkDerivation rec {
     sha256 = "02pavd1kc0gsnrl18bfa01r2f3j4j05zly4a8zwss9yrsgf8432x";
   };
 
+  nativeBuildInputs = [ qmake4Hook ];
+
   buildInputs = [
     qt4 gnuradio boost gnuradio-osmosdr rtl-sdr hackrf
   ] ++ stdenv.lib.optionals pulseaudioSupport [ libpulseaudio ];
 
-  configurePhase = ''qmake PREFIX="$out"'';
-
   enableParallelBuilding = true;
 
   postInstall = ''
diff --git a/pkgs/applications/misc/keepassx/default.nix b/pkgs/applications/misc/keepassx/default.nix
index 3d078d59be6..d0bddbc1610 100644
--- a/pkgs/applications/misc/keepassx/default.nix
+++ b/pkgs/applications/misc/keepassx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bzip2, qt4, libX11, xextproto, libXtst }:
+{ stdenv, fetchurl, bzip2, qt4, qmake4Hook, libX11, xextproto, libXtst }:
 
 stdenv.mkDerivation rec {
   name = "keepassx-${version}";
@@ -9,14 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "1i5dq10x28mg7m4c0yacm32xfj4j7imir4ph8x9p0s2ym260c9ry";
   };
 
-  configurePhase = ''
-    qmake PREFIX=$out 
-  '';
-
   patches = [ ./random.patch ];
 
   buildInputs = [ bzip2 qt4 libX11 xextproto libXtst ];
 
+  nativeBuildInputs = [ qmake4Hook ];
+
   meta = {
     description = "Qt password manager compatible with its Win32 and Pocket PC versions";
     homepage = http://www.keepassx.org/;
diff --git a/pkgs/applications/misc/librecad/default.nix b/pkgs/applications/misc/librecad/default.nix
index b41ef70394e..d5c04ba555a 100644
--- a/pkgs/applications/misc/librecad/default.nix
+++ b/pkgs/applications/misc/librecad/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, muparser, which, boost, pkgconfig }:
+{ stdenv, fetchurl, qt4, qmake4Hook, muparser, which, boost, pkgconfig }:
 
 stdenv.mkDerivation rec {
   version = "2.0.9";
@@ -15,9 +15,7 @@ stdenv.mkDerivation rec {
     sed -i -e s,/usr/share,$out/share, librecad/src/lib/engine/rs_system.cpp
   '';
 
-  configurePhase = ''
-    qmake librecad.pro PREFIX=$out MUPARSER_DIR=${muparser} BOOST_DIR=${boost.dev}
-  '';
+  qmakeFlags = [ "MUPARSER_DIR=${muparser}" "BOOST_DIR=${boost.dev}" ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share
@@ -26,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ qt4 muparser which boost ];
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig qmake4Hook ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix
index a270dca910c..5954316e50f 100644
--- a/pkgs/applications/misc/merkaartor/default.nix
+++ b/pkgs/applications/misc/merkaartor/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, qt4, boost, proj, gdal_1_11}:
+{ stdenv, fetchurl, qt4, qmake4Hook, boost, proj, gdal_1_11 }:
 
 stdenv.mkDerivation rec {
   name = "merkaartor-0.18.1";
@@ -7,12 +7,10 @@ stdenv.mkDerivation rec {
     sha256 = "17qk45pmlxqigla1915dvn9pp91y85d2bkcaap4g3m8mk1crcsix";
   };
 
-  configurePhase = ''
-    qmake -makefile PREFIX=$out
-  '';
-
   buildInputs = [ qt4 boost proj gdal_1_11 ];
 
+  nativeBuildInputs = [ qmake4Hook ];
+
   meta = {
     description = "An openstreetmap editor";
     homepage = http://merkaartor.org/;
diff --git a/pkgs/applications/misc/multimon-ng/default.nix b/pkgs/applications/misc/multimon-ng/default.nix
index f9aa567ed4b..a9f0cb2511a 100644
--- a/pkgs/applications/misc/multimon-ng/default.nix
+++ b/pkgs/applications/misc/multimon-ng/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qt4, libpulseaudio }:
+{ stdenv, fetchFromGitHub, qt4, qmake4Hook, libpulseaudio }:
 let
   version = "1.0.0";
 in
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ qt4 libpulseaudio ];
 
-  preBuild = "qmake multimon-ng.pro";
+  nativeBuildInputs = [ qmake4Hook ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/misc/navipowm/default.nix b/pkgs/applications/misc/navipowm/default.nix
index 6d990831a36..447fc4570a7 100644
--- a/pkgs/applications/misc/navipowm/default.nix
+++ b/pkgs/applications/misc/navipowm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4 }:
+{ stdenv, fetchurl, qt4, qmake4Hook }:
 stdenv.mkDerivation rec {
   name = "navipowm-0.2.4";
 
@@ -7,9 +7,8 @@ stdenv.mkDerivation rec {
     sha256 = "1kdih8kwpgcgfh6l6njkr9gq2j5hv39xvzmzgvhip553kn6bss7b";
   };
 
-  configurePhase = ''
+  preConfigure = ''
     cd Qt/KDevelop
-    qmake
   '';
 
   installPhase = ''
@@ -20,6 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ qt4 ];
+  nativeBuildInputs = [ qmake4Hook ];
 
   meta = {
     homepage = http://navipowm.sourceforge.net/;
diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix
index 478f02b970e..70be67a4d28 100644
--- a/pkgs/applications/misc/openbrf/default.nix
+++ b/pkgs/applications/misc/openbrf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qt4, vcg, glew }:
+{ stdenv, fetchFromGitHub, qt4, qmake4Hook, vcg, glew }:
 
 stdenv.mkDerivation {
   name = "openbrf-2016-01-09";
@@ -10,18 +10,16 @@ stdenv.mkDerivation {
     sha256 = "0laikpz0ljz7l5fgapwj09ygizmvj1iywnpfgfd0i14j46s134xb";
   };
 
-  buildInputs = [ qt4 vcg glew ];
+  buildInputs = [ qt4 qmake4Hook vcg glew ];
 
   enableParallelBuilding = true;
 
+  qmakeFlags = [ "openBrf.pro" ];
+
   postPatch = ''
     sed -i 's,^VCGLIB .*,VCGLIB = ${vcg}/include,' openBrf.pro
   '';
 
-  configurePhase = ''
-    qmake PREFIX=$out openBrf.pro
-  '';
-
   installPhase = ''
     install -Dm755 openBrf $out/bin/openBrf
   '';
diff --git a/pkgs/applications/misc/qtbitcointrader/default.nix b/pkgs/applications/misc/qtbitcointrader/default.nix
index 8b527463b22..a8613f917eb 100644
--- a/pkgs/applications/misc/qtbitcointrader/default.nix
+++ b/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -1,35 +1,33 @@
-{ stdenv, fetchFromGitHub, qt }:
+{ stdenv, fetchurl, qt5 }:
 
 let
-  version = "1.08.03";
+  version = "1.10.01";
 in
 stdenv.mkDerivation {
   name = "qtbitcointrader-${version}";
 
-  src = fetchFromGitHub {
-    owner = "JulyIGHOR";
-    repo = "QtBitcoinTrader";
-    rev = "ee30cf158fa8535f2155a387558d3b8994728c28";
-    sha256 = "0kxb0n11agqid0nyqdspfndm03b8l0nl8x4yx2hsrizs6m5z08h4";
+  src = fetchurl {
+    url = "https://github.com/JulyIGHOR/QtBitcoinTrader/archive/v${version}.tar.gz";
+    sha256 = "0pgj8rsk9yxvls7yjpzblzbci2vvd0mlf9c7wdbjhwf6qyi7dfi3";
   };
 
-  buildInputs = [ qt ];
+  buildInputs = [ qt5.qtbase qt5.qtmultimedia qt5.qtscript ];
 
   postUnpack = "sourceRoot=\${sourceRoot}/src";
 
   configurePhase = ''
-    qmake \
+    qmake $qmakeFlags \
       PREFIX=$out \
       DESKTOPDIR=$out/share/applications \
       ICONDIR=$out/share/pixmaps \
-        QtBitcoinTrader_Desktop.pro
+      QtBitcoinTrader_Desktop.pro
   '';
 
   meta = with stdenv.lib;
-    { description = "Secure bitcoin trading client";
+    { description = "Bitcoin trading client";
       homepage = https://centrabit.com/;
       license = licenses.lgpl3;
-      platforms = qt.meta.platforms;
+      platforms = qt5.qtbase.meta.platforms;
       maintainers = [ maintainers.ehmry ];
     };
 }
diff --git a/pkgs/applications/misc/qtpass/default.nix b/pkgs/applications/misc/qtpass/default.nix
index 69730759d08..15f249ac906 100644
--- a/pkgs/applications/misc/qtpass/default.nix
+++ b/pkgs/applications/misc/qtpass/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, git, gnupg, makeQtWrapper, pass, qtbase, qtsvg, qttools }:
+{ stdenv, fetchurl, git, gnupg, makeQtWrapper, pass, qtbase, qtsvg, qttools, qmakeHook }:
 
 stdenv.mkDerivation rec {
   name = "qtpass-${version}";
@@ -9,12 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "60b458062f54184057e55dbd9c93958a8bf845244ffd70b9cb31bf58697f0dc6";
   };
 
-  buildInputs = [ git gnupg makeQtWrapper pass qtbase qtsvg qttools ];
+  buildInputs = [ git gnupg makeQtWrapper pass qtbase qtsvg qttools qmakeHook ];
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake CONFIG+=release PREFIX=$out DESTDIR=$out
-    runHook postConfigure
+  preConfigure = ''
+    qmakeFlags="$qmakeFlags CONFIG+=release DESTDIR=$out"
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/misc/tpmmanager/default.nix b/pkgs/applications/misc/tpmmanager/default.nix
index 85a1c72b349..09322b47506 100644
--- a/pkgs/applications/misc/tpmmanager/default.nix
+++ b/pkgs/applications/misc/tpmmanager/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, qt4, trousers }:
+{ stdenv, fetchgit, qt4, qmake4Hook, trousers }:
 
 stdenv.mkDerivation rec {
   version = "0.8.1";
@@ -10,11 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "24a606f88fed67ed0d0e61dc220295e9e1ab8db3ef3d028fa34b04ff30652d8e";
   };
 
-  buildInputs = [ qt4 trousers ];
+  nativeBuildInputs = [ qmake4Hook ];
 
-  preBuild = ''
-    qmake -makefile PREFIX=\$out
-    '';
+  buildInputs = [ qt4 trousers ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/misc/twmn/default.nix b/pkgs/applications/misc/twmn/default.nix
index fbbf45877d2..665e23237d8 100644
--- a/pkgs/applications/misc/twmn/default.nix
+++ b/pkgs/applications/misc/twmn/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, fetchgit, qtbase, qtx11extras, pkgconfig, boost }:
+{ fetchurl, stdenv, fetchgit, qtbase, qtx11extras, qmakeHook, pkgconfig, boost }:
 
 stdenv.mkDerivation rec {
   name = "twmn-git-2014-09-23";
@@ -9,13 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "9c91e9d3d6d7f9d90d34da6f1a4b9f3dee65605c1e43729417d6921c54dded6b";
   };
 
-  buildInputs = [ qtbase qtx11extras pkgconfig boost ];
+  buildInputs = [ qtbase qtx11extras pkgconfig boost qmakeHook ];
 
-  configurePhase = ''
-    runHook preConfigure
+  postPatch = ''
     sed -i s/-Werror// twmnd/twmnd.pro
-    qmake
-    runHook postConfigure
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix
index 62f741f9eea..97fa47399f5 100644
--- a/pkgs/applications/misc/vym/default.nix
+++ b/pkgs/applications/misc/vym/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, qt4 }:
+{ stdenv, fetchurl, pkgconfig, qt4, qmake4Hook }:
 
 stdenv.mkDerivation rec {
   name = "vym-${version}";
@@ -9,11 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1x4qp6wpszscbbs4czkfvskm7qjglvxm813nqv281bpy4y1hhvgs";
   };
 
-  buildInputs = [ pkgconfig qt4 ];
-
-  configurePhase = ''
-    qmake PREFIX="$out"
-  '';
+  buildInputs = [ pkgconfig qt4 qmake4Hook ];
 
   meta = with stdenv.lib; {
     description = "A mind-mapping software";
diff --git a/pkgs/applications/networking/browsers/arora/default.nix b/pkgs/applications/networking/browsers/arora/default.nix
index d812078b6aa..8bcefe4fe7b 100644
--- a/pkgs/applications/networking/browsers/arora/default.nix
+++ b/pkgs/applications/networking/browsers/arora/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4 }:
+{ stdenv, fetchurl, qt4, qmake4Hook }:
 
 stdenv.mkDerivation rec {
   name = "arora-${version}";
@@ -10,8 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qt4 ];
-
-  configurePhase = "qmake PREFIX=$out";
+  nativeBuildInputs = [ qmake4Hook ];
 
   meta = with stdenv.lib; {
     platforms = qt4.meta.platforms;
diff --git a/pkgs/applications/networking/instant-messengers/qtox/default.nix b/pkgs/applications/networking/instant-messengers/qtox/default.nix
index e08a112664a..d244c4d11c4 100644
--- a/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pkgconfig, libtoxcore-dev, openal, opencv,
   libsodium, libXScrnSaver, glib, gdk_pixbuf, gtk2, cairo,
-  pango, atk, qrencode, ffmpeg, filter-audio, makeWrapper,
-  qtbase, qtsvg, qttools, qttranslations, sqlcipher }:
+  pango, atk, qrencode, ffmpeg, filter-audio, makeQtWrapper,
+  qtbase, qtsvg, qttools, qmakeHook, qttranslations, sqlcipher }:
 
 let
   version = "1.3.0";
@@ -22,11 +22,11 @@ stdenv.mkDerivation rec {
     [
       libtoxcore-dev openal opencv libsodium filter-audio
       qtbase qttools qtsvg libXScrnSaver glib gtk2 cairo
-      pango atk qrencode ffmpeg qttranslations makeWrapper
+      pango atk qrencode ffmpeg qttranslations makeQtWrapper
       sqlcipher
     ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig qmakeHook ];
 
   preConfigure = ''
     # patch .pro file for proper set of the git hash
@@ -42,16 +42,10 @@ stdenv.mkDerivation rec {
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags sqlcipher)"
   '';
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake
-  '';
-
   installPhase = ''
     mkdir -p $out/bin
     cp qtox $out/bin
-    wrapProgram $out/bin/qtox \
-      --prefix QT_PLUGIN_PATH : ${qtsvg}/lib/qt5/plugins
+    wrapQtProgram $out/bin/qtox
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/pkgs/applications/networking/instant-messengers/ricochet/default.nix
index 81e8d1b76a9..52da021000d 100644
--- a/pkgs/applications/networking/instant-messengers/ricochet/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ricochet/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, makeDesktopItem, unzip
 , qtbase, qttools, makeQtWrapper, qtmultimedia, qtquick1, qtquickcontrols
-, openssl, protobuf
+, openssl, protobuf, qmakeHook
 }:
 
 stdenv.mkDerivation rec {
@@ -27,15 +27,13 @@ stdenv.mkDerivation rec {
     openssl protobuf
   ];
 
-  nativeBuildInputs = [ pkgconfig makeQtWrapper ];
+  nativeBuildInputs = [ pkgconfig makeQtWrapper qmakeHook ];
 
   preConfigure = ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags openssl)"
   '';
 
-  configureScript = "qmake";
-  dontAddPrefix = true;
-  configureFlags = [ "PREFIX=$(out)" "DEFINES+=RICOCHET_NO_PORTABLE" ];
+  qmakeFlags = [ "DEFINES+=RICOCHET_NO_PORTABLE" ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix b/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
index 07bfcf3a03e..bc517cadf52 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
@@ -3,7 +3,7 @@
 , qtimageformats, qtgraphicaleffects
 , telegram-qml, libqtelegram-aseman-edition
 , gst_all_1
-, makeQtWrapper }:
+, makeQtWrapper, qmakeHook }:
 
 stdenv.mkDerivation rec {
   name = "cutegram-${meta.version}";
@@ -20,16 +20,10 @@ stdenv.mkDerivation rec {
     telegram-qml libqtelegram-aseman-edition 
   ] ++ (with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly ]);
 
-  nativeBuildInputs = [ makeQtWrapper ];
+  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
 
   enableParallelBuilding = true;
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake -r PREFIX=$out
-    runHook postConfigure
-  '';
-
   fixupPhase = ''
     wrapQtProgram $out/bin/cutegram \
       --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
diff --git a/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix b/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
index 470724876ed..322c40afc7d 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub
-, qtbase, qtmultimedia, qtquick1 }:
+, qtbase, qtmultimedia, qtquick1, qmakeHook }:
 
 stdenv.mkDerivation rec {
   name = "libqtelegram-aseman-edition-${meta.version}";
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ qtbase qtmultimedia qtquick1 ];
+  nativeBuildInputs = [ qmakeHook ];
   enableParallelBuilding = true;
 
   patchPhase = ''
@@ -19,12 +20,6 @@ stdenv.mkDerivation rec {
     substituteInPlace libqtelegram-ae.pro --replace "/\$\$LIB_PATH" ""
   '';
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake -r PREFIX=$out
-    runHook postConfigure
-  '';
-
   meta = with stdenv.lib; {
     version = "6.1";
     description = "A fork of libqtelegram by Aseman, using qmake";
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 77a0d9ee0aa..e734ddc5700 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, fetchgit, qtbase, qtimageformats
 , breakpad, ffmpeg, openalSoft, openssl, zlib, libexif, lzma, libopus
 , gtk2, glib, cairo, pango, gdk_pixbuf, atk, libappindicator-gtk2
-, libunity, dee, libdbusmenu-glib, libva
+, libunity, dee, libdbusmenu-glib, libva, qmakeHook
 
 , pkgconfig, libxcb, xcbutilwm, xcbutilimage, xcbutilkeysyms
 , libxkbcommon, libpng, libjpeg, freetype, harfbuzz, pcre16
@@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     breakpad ffmpeg openalSoft openssl zlib libexif lzma libopus
     gtk2 glib libappindicator-gtk2 libunity cairo pango gdk_pixbuf atk
-    dee libdbusmenu-glib libva
+    dee libdbusmenu-glib libva qmakeHook
     # Qt dependencies
     libxcb xcbutilwm xcbutilimage xcbutilkeysyms libxkbcommon
     libpng libjpeg freetype harfbuzz pcre16 xproto libX11
@@ -73,10 +73,9 @@ in stdenv.mkDerivation rec {
   qtSrcs = qtbase.srcs ++ [ qtimageformats.src ];
   qtPatches = qtbase.patches;
 
-  buildCommand = ''
-    # We don't use nativeBuildInputs to avoid adding system Qt 5 libraries to various paths.
-    export PATH="${qtbase}/bin:$PATH"
+  dontUseQmakeConfigure = true;
 
+  buildCommand = ''
     unpackPhase
     cd "$sourceRoot"
     patchPhase
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
index 5412b0db4d6..854648d9786 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub
-, qtbase, qtmultimedia, qtquick1
+, qtbase, qtmultimedia, qtquick1, qmakeHook
 , libqtelegram-aseman-edition }:
 
 stdenv.mkDerivation rec {
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ qtbase qtmultimedia qtquick1 libqtelegram-aseman-edition ];
+  nativeBuildInputs = [ qmakeHook ];
   enableParallelBuilding = true;
 
   patchPhase = ''
@@ -20,11 +21,7 @@ stdenv.mkDerivation rec {
     substituteInPlace telegramqml.pro --replace "INSTALL_HEADERS_PREFIX/telegramqml" "INSTALL_HEADERS_PREFIX"
   '';
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake -r PREFIX=$out BUILD_MODE+=lib
-    runHook postConfigure
-  '';
+  qmakeFlags = [ "BUILD_MODE+=lib" ];
 
   meta = with stdenv.lib; {
     version = "0.9.2";
diff --git a/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/pkgs/applications/networking/instant-messengers/vacuum/default.nix
index d7798273e7c..2b5ce5f4142 100644
--- a/pkgs/applications/networking/instant-messengers/vacuum/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vacuum/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl
-  , qt4, openssl
+  , qt4, qmake4Hook, openssl
   , xproto, libX11, libXScrnSaver, scrnsaverproto
   , xz, zlib
 }:
@@ -16,8 +16,10 @@ stdenv.mkDerivation rec {
     qt4 openssl xproto libX11 libXScrnSaver scrnsaverproto xz zlib
   ];
 
-  configurePhase = ''
-    qmake INSTALL_PREFIX=$out -recursive vacuum.pro
+  nativeBuildInputs = [ qmake4Hook ];
+
+  preConfigure = ''
+    qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/irc/communi/default.nix b/pkgs/applications/networking/irc/communi/default.nix
index 4d2605acdc9..4a8dc44dbf9 100644
--- a/pkgs/applications/networking/irc/communi/default.nix
+++ b/pkgs/applications/networking/irc/communi/default.nix
@@ -1,4 +1,4 @@
-{ fetchgit, libcommuni, makeQtWrapper, qt5, stdenv }:
+{ fetchgit, libcommuni, makeQtWrapper, qtbase, qmakeHook, stdenv }:
 
 stdenv.mkDerivation rec {
   name = "communi-${version}";
@@ -10,23 +10,22 @@ stdenv.mkDerivation rec {
     sha256 = "0gk6gck09zb44qfsal7bs4ln2vl9s9x3vfxh7jvfc7mmf7l3sspd";
   };
 
-  nativeBuildInputs = [ makeQtWrapper ];
+  nativeBuildInputs = [ makeQtWrapper qmakeHook ];
 
-  buildInputs = [ libcommuni qt5.qtbase ];
+  buildInputs = [ libcommuni qtbase ];
 
   enableParallelBuild = true;
 
-  configurePhase = ''
-    runHook preConfigure
+  preConfigure = ''
     export QMAKEFEATURES=${libcommuni}/features
-    qmake -r \
+    qmakeFlags="$qmakeFlags \
       COMMUNI_INSTALL_PREFIX=$out \
       COMMUNI_INSTALL_BINS=$out/bin \
       COMMUNI_INSTALL_PLUGINS=$out/lib/communi/plugins \
       COMMUNI_INSTALL_ICONS=$out/share/icons/hicolor \
       COMMUNI_INSTALL_DESKTOP=$out/share/applications \
       COMMUNI_INSTALL_THEMES=$out/share/communi/themes
-    runHook postConfigure
+    "
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/networking/linssid/default.nix b/pkgs/applications/networking/linssid/default.nix
index 4cbc5c8c796..d35c2e100e4 100644
--- a/pkgs/applications/networking/linssid/default.nix
+++ b/pkgs/applications/networking/linssid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qtbase, qtsvg, pkgconfig, boost, wirelesstools, iw, qwt6 }:
+{ stdenv, fetchurl, qtbase, qtsvg, qmakeHook, pkgconfig, boost, wirelesstools, iw, qwt6 }:
 
 stdenv.mkDerivation rec {
   name = "linssid-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "13d35rlcjncd8lx3khkgn9x8is2xjd5fp6ns5xsn3w6l4xj9b4gl";
   };
 
-  buildInputs = [ qtbase qtsvg pkgconfig boost qwt6 ];
+  buildInputs = [ qtbase qtsvg pkgconfig boost qwt6 qmakeHook ];
 
   patches = [ ./0001-unbundled-qwt.patch ];
 
@@ -27,12 +27,6 @@ stdenv.mkDerivation rec {
     rm -fr qwt-lib
   '';
 
-  configurePhase = ''
-    runHook preConfigure
-    qmake linssid.pro
-    runHook postConfigure
-  '';
-
   meta = with stdenv.lib; {
     description = "Graphical wireless scanning for Linux";
     homepage = http://sourceforge.net/projects/linssid/;
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 646e3dfdd0b..88b9ae49efd 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchgit, pkgconfig
-, qt4, qt5, avahi, boost, libopus, libsndfile, protobuf, speex, libcap
+, qt4, qmake4Hook, qt5, avahi, boost, libopus, libsndfile, protobuf, speex, libcap
 , alsaLib
 , jackSupport ? false, libjack2 ? null
 , speechdSupport ? false, speechd ? null
@@ -20,13 +20,13 @@ let
     patches = optional jackSupport ./mumble-jack-support.patch;
 
     nativeBuildInputs = [ pkgconfig ]
-      ++ { qt4 = [ qt4 ]; qt5 = [ qt5.qtbase ]; }."qt${toString source.qtVersion}"
+      ++ { qt4 = [ qmake4Hook ]; qt5 = [ qt5.qmakeHook ]; }."qt${toString source.qtVersion}"
       ++ (overrides.nativeBuildInputs or [ ]);
     buildInputs = [ boost protobuf avahi ]
       ++ { qt4 = [ qt4 ]; qt5 = [ qt5.qtbase ]; }."qt${toString source.qtVersion}"
       ++ (overrides.buildInputs or [ ]);
 
-    configureFlags = [
+    qmakeFlags = [
       "CONFIG+=shared"
       "CONFIG+=no-g15"
       "CONFIG+=packaged"
@@ -39,10 +39,8 @@ let
       ++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
       ++ (overrides.configureFlags or [ ]);
 
-    configurePhase = ''
-      runHook preConfigure
-      qmake $configureFlags DEFINES+="PLUGIN_PATH=$out/lib"
-      runHook postConfigure
+    preConfigure = ''
+       qmakeFlags="$qmakeFlags DEFINES+=PLUGIN_PATH=$out/lib"
     '';
 
     makeFlags = [ "release" ];
@@ -82,6 +80,8 @@ let
       "CONFIG+=no-server"
     ];
 
+    NIX_CFLAGS_COMPILE = optional speechdSupport "-I${speechd}/include/speech-dispatcher";
+
     installPhase = ''
       cp scripts/mumble-overlay $out/bin
       sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay
@@ -110,44 +110,25 @@ let
   };
 
   stableSource = rec {
-    version = "1.2.10";
+    version = "1.2.15";
     qtVersion = 4;
 
     src = fetchurl {
       url = "https://github.com/mumble-voip/mumble/releases/download/${version}/mumble-${version}.tar.gz";
-      sha256 = "012vm0xf84x13414jlsx964c5a1nwnbn41jnspkciajlxxipldn6";
+      sha256 = "1yjywzybgq23ry5s2yihggs13ffrphhwl6rlp6lq79rkwvafa9v5";
     };
   };
 
   gitSource = rec {
-    version = "1.3.0-git-2015-11-08";
+    version = "1.3.0-git-2016-04-10";
     qtVersion = 5;
 
+    # Needs submodules
     src = fetchgit {
       url = "https://github.com/mumble-voip/mumble";
-      rev = "72038f6aa038f5964e2bba5a09d3d391d4680e5f";
-      sha256 = "03978b85f7y0bffl8vwkmakjnxxjqapfz3pn0b8zf3b1ppwjy9g4";
-    };
-
-    # TODO: Remove fetchgit as it requires git
-    /*src = fetchFromGitHub {
-      owner = "mumble-voip";
-      repo = "mumble";
-      rev = "13e494c60beb20748eeb8be126b27e1226d168c8";
-      sha256 = "024my6wzahq16w7fjwrbksgnq98z4jjbdyy615kfyd9yk2qnpl80";
-    };
-
-    theme = fetchFromGitHub {
-      owner = "mumble-voip";
-      repo = "mumble-theme";
-      rev = "16b61d958f131ca85ab0f601d7331601b63d8f30";
-      sha256 = "0rbh825mwlh38j6nv2sran2clkiwvzj430mhvkdvzli9ysjxgsl3";
+      rev = "0502fa67b036bae9f07a586d9f05a8bf74c24291";
+      sha256 = "073v8nway17j1n1lm70x508722b1q3vb6h4fvmcbbma3d22y1h45";
     };
-
-    prePatch = ''
-      rmdir themes/Mumble
-      ln -s ${theme} themes/Mumble
-    '';*/
   };
 in {
   mumble     = client stableSource;
diff --git a/pkgs/applications/networking/ostinato/default.nix b/pkgs/applications/networking/ostinato/default.nix
index 1d5986dbfa6..02209645045 100644
--- a/pkgs/applications/networking/ostinato/default.nix
+++ b/pkgs/applications/networking/ostinato/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, fetchurl, writeText
-, qt4, protobuf, libpcap
+, qt4, qmake4Hook, protobuf, libpcap
 , wireshark, gzip, diffutils, gawk
 }:
 
@@ -18,10 +18,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 protobuf libpcap ];
 
-  patches = [ ./drone_ini.patch ];
+  nativeBuildInputs = [ qmake4Hook ];
 
-  configurePhase = "qmake PREFIX=$out"
-    + stdenv.lib.optionalString stdenv.isDarwin " -spec macx-g++";
+  patches = [ ./drone_ini.patch ];
 
   postInstall = ''
     cat > $out/bin/ostinato.ini <<EOF
diff --git a/pkgs/applications/networking/p2p/retroshare/0.6.nix b/pkgs/applications/networking/p2p/retroshare/0.6.nix
index 020d0017053..67028fb5dec 100644
--- a/pkgs/applications/networking/p2p/retroshare/0.6.nix
+++ b/pkgs/applications/networking/p2p/retroshare/0.6.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, qt, libupnp, gpgme, gnome3, glib, libssh, pkgconfig, protobuf, bzip2
+{ stdenv, fetchFromGitHub, cmake, qt4, qmake4Hook, libupnp, gpgme, gnome3, glib, libssh, pkgconfig, protobuf, bzip2
 , libXScrnSaver, speex, curl, libxml2, libxslt, sqlcipher, libmicrohttpd, opencv }:
 
 stdenv.mkDerivation {
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "189qndkfq9kgv3qi3wx8ivla4j8fxr4iv7c8y9rjrjaz8jwdkn5x";
   };
 
-  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.dev}/lib/glib-2.0/include -I${libxml2.dev}/include/libxml2 -I${sqlcipher}/include/sqlcipher";
+  NIX_CFLAGS_COMPILE = [ "-I${glib.dev}/include/glib-2.0" "-I${glib.dev}/lib/glib-2.0/include" "-I${libxml2.dev}/include/libxml2" "-I${sqlcipher}/include/sqlcipher" ];
 
   patchPhase = ''
     # Fix build error
@@ -29,11 +29,11 @@ stdenv.mkDerivation {
   #    retroshare-gui/src/retroshare-gui.pro \
   #    retroshare-nogui/src/retroshare-nogui.pro
 
-  buildInputs = [ speex qt libupnp gpgme gnome3.libgnome_keyring glib libssh pkgconfig
+  buildInputs = [ speex qt4 libupnp gpgme gnome3.libgnome_keyring glib libssh pkgconfig qmake4Hook
                   protobuf bzip2 libXScrnSaver curl libxml2 libxslt sqlcipher libmicrohttpd opencv ];
 
-  configurePhase = ''
-    qmake PREFIX=$out DESTDIR=$out RetroShare.pro
+  preConfigure = ''
+    qmakeFlags="$qmakeFlags DESTDIR=$out"
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix
index e7fe79d66a5..314d0557e9f 100644
--- a/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, qt, libupnp, gpgme, gnome3, glib, libssh, pkgconfig, protobuf, bzip2
+{ stdenv, fetchurl, cmake, qt4, qmake4Hook, libupnp, gpgme, gnome3, glib, libssh, pkgconfig, protobuf, bzip2
 , libXScrnSaver, speex, curl, libxml2, libxslt }:
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "0l2n4pr1hq66q6qa073hrdx3s3d7iw54z8ay1zy82zhk2rwhsavp";
   };
 
-  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.dev}/lib/glib-2.0/include -I${libxml2.dev}/include/libxml2";
+  NIX_CFLAGS_COMPILE = [ "-I${glib.dev}/include/glib-2.0" "-I${glib.dev}/lib/glib-2.0/include" "-I${libxml2.dev}/include/libxml2" ];
 
   patchPhase = ''
     sed -i 's/UpnpString_get_String(es_event->PublisherUrl)/es_event->PublisherUrl/' \
@@ -22,13 +22,13 @@ stdenv.mkDerivation {
       libretroshare/src/rsserver/rsinit.cc
   '';
 
-  buildInputs = [ speex qt libupnp gpgme gnome3.libgnome_keyring glib libssh pkgconfig
+  buildInputs = [ speex qt4 qmake4Hook libupnp gpgme gnome3.libgnome_keyring glib libssh pkgconfig
                   protobuf bzip2 libXScrnSaver curl libxml2 libxslt ];
 
   sourceRoot = "retroshare-0.5.5/src";
 
-  configurePhase = ''
-    qmake PREFIX=$out DESTDIR=$out RetroShare.pro
+  preConfigure = ''
+    qmakeFlags="$qmakeFlags DESTDIR=$out"
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/networking/remote/x2goclient/default.nix b/pkgs/applications/networking/remote/x2goclient/default.nix
index 02a25b9a270..09d4cf8dac5 100644
--- a/pkgs/applications/networking/remote/x2goclient/default.nix
+++ b/pkgs/applications/networking/remote/x2goclient/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cups, libssh, libXpm, nxproxy, openldap, makeWrapper, qt4 }:
+{ stdenv, fetchurl, cups, libssh, libXpm, nxproxy, openldap, makeWrapper, qt4, qmake4Hook }:
 
 stdenv.mkDerivation rec {
   name = "x2goclient-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ cups libssh libXpm nxproxy openldap qt4 ];
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper qmake4Hook ];
 
   patchPhase = ''
      substituteInPlace Makefile \
@@ -19,7 +19,9 @@ stdenv.mkDerivation rec {
        --replace "-o root -g root" ""
   '';
 
-  makeFlags = [ "PREFIX=$(out)" "ETCDIR=$(out)/etc" ];
+  preConfigure = ''
+    qmakeFlags="$qmakeFlags ETCDIR=$out/etc"
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/office/beancount/default.nix b/pkgs/applications/office/beancount/default.nix
new file mode 100644
index 00000000000..8811183dfc8
--- /dev/null
+++ b/pkgs/applications/office/beancount/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchhg, pkgs, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+  version = "2016-04-10-b5721f1c6f01bd168a5781652e5e3167f7f8ceb3";
+  name = "beancount-${version}";
+  namePrefix = "";
+
+  src = fetchhg {
+    url = "https://bitbucket.org/blais/beancount";
+    rev = "b5721f1c6f01bd168a5781652e5e3167f7f8ceb3";
+    sha256 = "10nv3p9cix7yp23a9hnq5163rpl8cfs3hv75h90ld57dc24nxzn2";
+  };
+
+  buildInputs = with pythonPackages; [ nose ];
+
+  checkPhase = ''
+    nosetests $out
+  '';
+
+  propagatedBuildInputs = with pythonPackages; [
+    beautifulsoup4
+    bottle
+    chardet
+    dateutil
+    google_api_python_client
+    lxml
+    ply
+    python_magic
+  ];
+
+  meta = {
+    homepage = http://furius.ca/beancount/;
+    description = "double-entry bookkeeping computer language";
+    longDescription = ''
+        A double-entry bookkeeping computer language that lets you define
+        financial transaction records in a text file, read them in memory,
+        generate a variety of reports from them, and provides a web interface.
+    '';
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
+  };
+}
+
diff --git a/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix b/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
new file mode 100644
index 00000000000..a70d5a7c77c
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
@@ -0,0 +1,523 @@
+[
+{
+  name = "libabw-0.1.1.tar.bz2";
+  md5 = "7a3815b506d064313ba309617b6f5a0b";
+  brief = true;
+}
+{
+  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.2-src.tar.gz";
+  md5 = "ce977548f1cbf46918e93cd38ac35163";
+  brief = true;
+}
+{
+  name = "apr-1.4.8.tar.gz";
+  md5 = "eff9d741b0999a9bbab96862dd2a2a3d";
+  brief = true;
+}
+{
+  name = "apr-util-1.5.3.tar.gz";
+  md5 = "71a11d037240b292f824ba1eb537b4e3";
+  brief = true;
+}
+{
+  name = "boost_1_55_0.tar.bz2";
+  md5 = "d6eef4b4cacb2183f2bf265a5a03a354";
+  brief = false;
+}
+{
+  name = "bsh-2.0b5-src.zip";
+  md5 = "ec1941a74d3ef513c4ce57a9092b74e1";
+  brief = false;
+}
+{
+  name = "cairo-1.10.2.tar.gz";
+  md5 = "f101a9e88b783337b20b2e26dfd26d5f";
+  brief = false;
+}
+{
+  name = "libcdr-0.1.1.tar.bz2";
+  md5 = "b33fd0be3befdd1b37777e08ce058bd9";
+  brief = true;
+}
+{
+  name = "clucene-core-2.3.3.4.tar.gz";
+  md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+  brief = false;
+}
+{
+  name = "libcmis-0.5.0.tar.gz";
+  md5 = "5821b806a98e6c38370970e682ce76e8";
+  brief = false;
+}
+{
+  name = "CoinMP-1.7.6.tgz";
+  md5 = "1cce53bf4b40ae29790d2c5c9f8b1129";
+  brief = true;
+}
+{
+  name = "collada2gltf-master-cb1d97788a.tar.bz2";
+  md5 = "4b87018f7fff1d054939d19920b751a0";
+  brief = false;
+}
+{
+  name = "cppunit-1.13.2.tar.gz";
+  md5 = "d1c6bdd5a76c66d2c38331e2d287bc01";
+  brief = true;
+}
+{
+  name = "converttexttonumber-1-5-0.oxt";
+  md5 = "1f467e5bb703f12cbbb09d5cf67ecf4a";
+  brief = false;
+}
+{
+  name = "curl-7.43.0.tar.bz2";
+  md5 = "11bddbb452a8b766b932f859aaeeed39";
+  brief = true;
+}
+{
+  name = "libe-book-0.1.2.tar.bz2";
+  md5 = "6b48eda57914e6343efebc9381027b78";
+  brief = true;
+}
+{
+  name = "epm-3.7.tar.gz";
+  md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
+  brief = false;
+}
+{
+  name = "libetonyek-0.1.3.tar.bz2";
+  md5 = "e5947373dd7834f27e93f1636faa419f";
+  brief = true;
+}
+{
+  name = "expat-2.1.0.tar.gz";
+  md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
+  brief = false;
+}
+{
+  name = "Firebird-2.5.2.26540-0.tar.bz2";
+  md5 = "21154d2004e025c8a3666625b0357bb5";
+  brief = true;
+}
+{
+  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.34.zip";
+  md5 = "a4e565e220b5de082c23995e256e3c12";
+  brief = false;
+}
+{
+  name = "gentiumbasic-fonts-1.10.zip";
+  md5 = "35efabc239af896dfb79be7ebdd6e6b9";
+  brief = false;
+}
+{
+  name = "liberation-fonts-ttf-1.07.4.tar.gz";
+  md5 = "134d8262145fc793c6af494dcace3e71";
+  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-pro-2.010R-ro-1.065R-it.tar.gz";
+  md5 = "edc4d741888bc0d38e32dbaa17149596";
+  brief = false;
+}
+{
+  name = "libfreehand-0.1.1.tar.bz2";
+  md5 = "8cf70c5dc4d24d2dc4a107f509d2d6d7";
+  brief = true;
+}
+{
+  name = "freetype-2.4.8.tar.bz2";
+  md5 = "dbf2caca1d3afd410a29217a9809d397";
+  brief = false;
+}
+{
+  name = "glew-1.10.0.zip";
+  md5 = "594eb47b4b1210e25438d51825404d5a";
+  brief = false;
+}
+{
+  name = "glm-0.9.4.6-libreoffice.zip";
+  md5 = "bae83fa5dc7f081768daace6e199adc3";
+  brief = false;
+}
+{
+  name = "graphite2-1.2.4.tgz";
+  md5 = "2ef839348fe28e3b923bf8cced440227";
+  brief = true;
+}
+{
+  name = "harfbuzz-0.9.40.tar.bz2";
+  md5 = "0e27e531f4c4acff601ebff0957755c2";
+  brief = true;
+}
+{
+  name = "hsqldb_1_8_0.zip";
+  md5 = "17410483b5b5f267aa18b7e00b65e6e0";
+  brief = false;
+}
+{
+  name = "hunspell-1.3.3.tar.gz";
+  md5 = "4967da60b23413604c9e563beacc63b4";
+  brief = false;
+}
+{
+  name = "hyphen-2.8.8.tar.gz";
+  md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
+  brief = false;
+}
+{
+  name = "icu4c-54_1-src.tgz";
+  md5 = "e844caed8f2ca24c088505b0d6271bc0";
+  brief = false;
+}
+{
+  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 = "libfonts-1.1.6.zip";
+  md5 = "3bdf40c0d199af31923e900d082ca2dd";
+  brief = false;
+}
+{
+  name = "libformula-1.1.7.zip";
+  md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+  brief = false;
+}
+{
+  name = "liblayout-0.2.10.zip";
+  md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+  brief = false;
+}
+{
+  name = "libloader-1.1.6.zip";
+  md5 = "97b2d4dba862397f446b217e2b623e71";
+  brief = false;
+}
+{
+  name = "librepository-1.1.6.zip";
+  md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+  brief = false;
+}
+{
+  name = "libserializer-1.1.6.zip";
+  md5 = "f94d9870737518e3b597f9265f4e9803";
+  brief = false;
+}
+{
+  name = "libxml-1.1.7.zip";
+  md5 = "ace6ab49184e329db254e454a010f56d";
+  brief = false;
+}
+{
+  name = "sacjava-1.3.zip";
+  md5 = "39bb3fcea1514f1369fcfc87542390fd";
+  brief = false;
+}
+{
+  name = "jpegsrc.v9a.tar.gz";
+  md5 = "3353992aecaee1805ef4109aadd433e7";
+  brief = true;
+}
+{
+  name = "libjpeg-turbo-1.3.1.tar.gz";
+  md5 = "2c3a68129dac443a72815ff5bb374b05";
+  brief = true;
+}
+{
+  name = "language-subtag-registry-2015-08-04.tar.bz2";
+  md5 = "bf5986dbfa1c9a0f26cf1b00ed369484";
+  brief = true;
+}
+{
+  name = "JLanguageTool-1.7.0.tar.bz2";
+  md5 = "b63e6340a02ff1cacfeadb2c42286161";
+  brief = false;
+}
+{
+  name = "lcms2-2.6.tar.gz";
+  md5 = "f4c08d38ceade4a664ebff7228910a33";
+  brief = true;
+}
+{
+  name = "libatomic_ops-7_2d.zip";
+  md5 = "c0b86562d5aa40761a87134f83e6adcf";
+  brief = true;
+}
+{
+  name = "libeot-0.01.tar.bz2";
+  md5 = "aa24f5dd2a2992f4a116aa72af817548";
+  brief = true;
+}
+{
+  name = "libexttextcat-3.4.4.tar.bz2";
+  md5 = "10d61fbaa6a06348823651b1bd7940fe";
+  brief = false;
+}
+{
+  name = "libgltf-0.0.2.tar.bz2";
+  md5 = "d63a9f47ab048f5009d90693d6aa6424";
+  brief = true;
+  subDir = "libgltf/";
+}
+{
+  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.3.tar.gz";
+  md5 = "daece17e045f1c107610e137ab50c179";
+  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_client-2.0.0-src.tar.gz";
+  md5 = "a233181e03d3c307668b4c722d881661";
+  brief = false;
+}
+{
+  name = "mdds_0.12.1.tar.bz2";
+  md5 = "ef2560ed5416652a7fe195305b14cebe";
+  brief = true;
+}
+{
+  name = "libmspub-0.1.2.tar.bz2";
+  md5 = "ff9d0f9dd8fbc523408ea1953d5bde41";
+  brief = true;
+}
+{
+  name = "libmwaw-0.3.5.tar.bz2";
+  md5 = "bdc58bbf89aaaf6d29b3516d96830a06";
+  brief = true;
+}
+{
+  name = "mysql-connector-c++-1.1.4.tar.gz";
+  md5 = "7239a4430efd4d0189c4f24df67f08e5";
+  brief = false;
+}
+{
+  name = "mythes-1.2.4.tar.gz";
+  md5 = "a8c2c5b8f09e7ede322d5c602ff6a4b6";
+  brief = false;
+}
+{
+  name = "neon-0.29.5.tar.gz";
+  md5 = "ff369e69ef0f0143beb5626164e87ae2";
+  brief = false;
+}
+{
+  name = "nss-3.19.4-with-nspr-4.10.10.tar.gz";
+  md5 = "478e0e90ebc4a90159549e77021021fd";
+  brief = false;
+}
+{
+  name = "libodfgen-0.1.4.tar.bz2";
+  md5 = "8716be5c22ae8353f9aaa380d74840dc";
+  brief = true;
+}
+{
+  name = "OpenCOLLADA-master-6509aa13af.tar.bz2";
+  md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
+  brief = true;
+}
+{
+  name = "openldap-2.4.31.tgz";
+  md5 = "804c6cb5698db30b75ad0ff1c25baefd";
+  brief = false;
+}
+{
+  name = "openssl-1.0.2a.tar.gz";
+  md5 = "a06c547dac9044161a477211049f60ef";
+  brief = true;
+}
+{
+  name = "liborcus-0.7.0.tar.bz2";
+  md5 = "7681383be6ce489d84c1c74f4e7f9643";
+  brief = false;
+}
+{
+  name = "libpagemaker-0.0.2.tar.bz2";
+  md5 = "795cc7a59ace4db2b12586971d668671";
+  brief = true;
+}
+{
+  name = "pixman-0.24.4.tar.bz2";
+  md5 = "c63f411b3ad147db2bcce1bf262a0e02";
+  brief = false;
+}
+{
+  name = "libpng-1.5.24.tar.gz";
+  md5 = "6652e428d1d3fc3c6cb1362159b1cf3b";
+  brief = true;
+}
+{
+  name = "poppler-0.26.4.tar.gz";
+  md5 = "35c0660065d023365e9854c13e289d12";
+  brief = true;
+}
+{
+  name = "postgresql-9.2.1.tar.bz2";
+  md5 = "c0b4799ea9850eae3ead14f0a60e9418";
+  brief = false;
+}
+{
+  name = "Python-3.3.5.tgz";
+  md5 = "803a75927f8f241ca78633890c798021";
+  brief = true;
+}
+{
+  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 = "librevenge-0.0.2.tar.bz2";
+  md5 = "2d4183bf17aea1a71842468a71a68c47";
+  brief = true;
+}
+{
+  name = "rhino1_5R5.zip";
+  md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+  brief = false;
+}
+{
+  name = "serf-1.2.1.tar.bz2";
+  md5 = "4f8e76c9c6567aee1d66aba49f76a58b";
+  brief = true;
+}
+{
+  name = "swingExSrc.zip";
+  md5 = "35c94d2df8893241173de1d16b6034c0";
+  brief = false;
+}
+{
+  name = "ucpp-1.3.2.tar.gz";
+  md5 = "0168229624cfac409e766913506961a8";
+  brief = false;
+}
+{
+  name = "vigra1.6.0.tar.gz";
+  md5 = "d62650a6f908e85643e557a236ea989c";
+  brief = false;
+}
+{
+  name = "libvisio-0.1.1.tar.bz2";
+  md5 = "726c1f5be65eb7d649e0d48b63d920e7";
+  brief = true;
+}
+{
+  name = "libwpd-0.10.0.tar.bz2";
+  md5 = "0773d79a1f240ef9f4f20242b13c5bb7";
+  brief = true;
+}
+{
+  name = "libwpg-0.3.0.tar.bz2";
+  md5 = "17da9770cb8b317b7633f9807b32b71a";
+  brief = true;
+}
+{
+  name = "libwps-0.4.0.tar.bz2";
+  md5 = "e9162d2566421d9d71b3ad2377a68fd5";
+  brief = true;
+}
+{
+  name = "xsltml_2.1.2.zip";
+  md5 = "a7983f859eafb2677d7ff386a023bc40";
+  brief = false;
+}
+{
+  name = "zlib-1.2.8.tar.gz";
+  md5 = "44d667c142d7cda120332623eab69f40";
+  brief = true;
+}
+]
diff --git a/pkgs/applications/office/libreoffice/still.nix b/pkgs/applications/office/libreoffice/still.nix
new file mode 100644
index 00000000000..0e4d2d79762
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/still.nix
@@ -0,0 +1,255 @@
+{ stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip
+, CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd
+, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
+, bison, flex, zip, unzip, gtk3, gtk, libmspack, getopt, file, cairo, which
+, icu, boost, jdk, ant, cups, xorg, libcmis
+, openssl, gperf, cppunit, GConf, ORBit2, poppler
+, librsvg, gnome_vfs, mesa, bsh, CoinMP, libwps, libabw
+, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
+, libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
+, unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
+, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
+, libatomic_ops, graphite2, harfbuzz, libodfgen
+, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
+, gdb, commonsLogging, librdf_rasqal, makeWrapper, gsettings_desktop_schemas
+, defaultIconTheme, glib, ncurses
+, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" "pl" ]
+, withHelp ? true
+, kdeIntegration ? false
+}:
+
+let
+  lib = stdenv.lib;
+  langsSpaces = lib.concatStringsSep " " langs;
+  major = "5";
+  minor = "0";
+  patch = "5";
+  tweak = "2";
+  subdir = "${major}.${minor}.${patch}";
+  version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
+
+  fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
+    inherit name md5;
+    url = if brief then
+            "http://dev-www.libreoffice.org/src/${subDir}${name}"
+          else
+            "http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
+  };
+
+  fetchSrc = {name, sha256}: fetchurl {
+    url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
+    inherit sha256;
+  };
+
+  srcs = {
+    third_party = [ (fetchurl rec {
+        url = "http://dev-www.libreoffice.org/extern/${md5}-${name}";
+        md5 = "185d60944ea767075d27247c3162b3bc";
+        name = "unowinreg.dll";
+      }) ] ++ (map fetchThirdParty (import ./libreoffice-srcs-still.nix));
+
+    translations = fetchSrc {
+      name = "translations";
+      sha256 = "13cbfiqaycy8cxji5jfwfbgar8l4fzhg3aaggavsrwsmbvrqpbb7";
+    };
+
+    # TODO: dictionaries
+
+    help = fetchSrc {
+      name = "help";
+      sha256 = "0an081aj63hfhxv0k8h92vly0rnglbcpqax2pinybryk4dnljr36";
+    };
+
+  };
+in stdenv.mkDerivation rec {
+  name = "libreoffice-${version}";
+
+  src = fetchurl {
+    url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
+    sha256 = "120vcxpxzs0za76fyfry281ysv6d1ianb37d1yq8py8chkdjkrqy";
+  };
+
+  # Openoffice will open libcups dynamically, so we link it directly
+  # to make its dlopen work.
+  # It also seems not to mention libdl explicitly in some places.
+  NIX_LDFLAGS = "-lcups -ldl";
+
+  # For some reason librdf_redland sometimes refers to rasqal.h instead 
+  # of rasqal/rasqal.h
+  NIX_CFLAGS_COMPILE="-I${librdf_rasqal}/include/rasqal";
+
+  # If we call 'configure', 'make' will then call configure again without parameters.
+  # It's their system.
+  configureScript = "./autogen.sh";
+  dontUseCmakeConfigure = true;
+
+  postUnpack = ''
+    mkdir -v $sourceRoot/src
+  '' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
+  + ''
+    ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
+    ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
+  '';
+
+  QT4DIR = qt4;
+
+  # Fix boost 1.59 compat
+  # Try removing in the next version
+  CPPFLAGS = "-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED";
+
+  preConfigure = ''
+    configureFlagsArray=(
+      "--with-parallelism=$NIX_BUILD_CORES"
+      "--with-lang=${langsSpaces}"
+    );
+
+    chmod a+x ./bin/unpack-sources
+    patchShebangs .
+    # It is used only as an indicator of the proper current directory
+    touch solenv/inc/target.mk
+
+    # BLFS patch for Glibc 2.23 renaming isnan
+    sed -ire "s@isnan@std::&@g" xmloff/source/draw/ximp3dscene.cxx
+  '';
+
+  # fetch_Download_item tries to interpret the name as a variable name
+  # Let it do so…
+  postConfigure = ''
+    sed -e '1ilibreoffice-translations-${version}.tar.xz=libreoffice-translations-${version}.tar.xz' -i Makefile
+    sed -e '1ilibreoffice-help-${version}.tar.xz=libreoffice-help-${version}.tar.xz' -i Makefile
+
+    # unit test sd_tiledrendering seems to be fragile
+    # http://nabble.documentfoundation.org/libreoffice-5-0-failure-in-CUT-libreofficekit-tiledrendering-td4150319.html
+    echo > ./sd/CppunitTest_sd_tiledrendering.mk
+    sed -e /CppunitTest_sd_tiledrendering/d -i sd/Module_sd.mk
+    # one more fragile test?
+    sed -e '/CPPUNIT_TEST(testTdf96536);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
+  '';
+
+  makeFlags = "SHELL=${bash}/bin/bash";
+
+  enableParallelBuilding = true;
+
+  buildPhase = ''
+    # This is required as some cppunittests require fontconfig configured
+    export FONTCONFIG_FILE=${fontsConf}
+
+    # This to avoid using /lib:/usr/lib at linking
+    sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
+
+    find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
+
+    make
+  '';
+
+  # It installs only things to $out/lib/libreoffice
+  postInstall = ''
+    mkdir -p $out/bin $out/share/desktop
+
+    mkdir -p "$out/share/gsettings-schemas/collected-for-libreoffice/glib-2.0/schemas/"
+
+    for a in sbase scalc sdraw smath swriter spadmin simpress soffice; do
+      ln -s $out/lib/libreoffice/program/$a $out/bin/$a
+      wrapProgram "$out/bin/$a" \
+         --prefix XDG_DATA_DIRS : \
+         "$out/share:$GSETTINGS_SCHEMAS_PATH" \
+         ;
+    done
+
+    ln -s $out/bin/soffice $out/bin/libreoffice
+    ln -s $out/lib/libreoffice/share/xdg $out/share/applications
+
+    for f in $out/share/applications/*.desktop; do
+      substituteInPlace "$f" --replace "Exec=libreofficedev${major}.${minor}" "Exec=libreoffice"
+      substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
+      substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=libreoffice"
+    done
+
+    cp -r sysui/desktop/icons  "$out/share"
+    sed -re 's@Icon=libreofficedev[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
+  '';
+
+  configureFlags = [
+    "${if withHelp then "" else "--without-help"}"
+    "--with-boost=${boost.dev}"
+    "--with-boost-libdir=${boost.lib}/lib"
+    "--with-beanshell-jar=${bsh}"
+    "--with-vendor=NixOS"
+    "--with-commons-logging-jar=${commonsLogging}/share/java/commons-logging-1.2.jar"
+    "--disable-report-builder"
+    "--enable-python=system"
+    "--enable-dbus"
+    (lib.enableFeature kdeIntegration "kde4")
+    "--with-package-format=installed"
+    "--enable-epm"
+    "--with-jdk-home=${jdk.home}"
+    "--with-ant-home=${ant}/lib/ant"
+    "--with-system-cairo"
+    "--with-system-libs"
+    "--with-system-headers"
+    "--with-system-openssl"
+    "--with-system-libabw"
+    "--with-system-libcmis"
+    "--with-system-libwps"
+    "--with-system-openldap"
+    "--with-system-coinmp"
+
+    # Without these, configure does not finish
+    "--without-junit"
+
+    # I imagine this helps. Copied from go-oo.
+    # Modified on every upgrade, though
+    "--disable-odk"
+    "--disable-postgresql-sdbc"
+    "--disable-firebird-sdbc"
+    "--without-fonts"
+    "--without-myspell-dicts"
+    "--without-doxygen"
+
+    # TODO: package these as system libraries
+    "--with-system-beanshell"
+    "--without-system-hsqldb"
+    "--without-system-altlinuxhyph"
+    "--without-system-lpsolve"
+    "--without-system-npapi-headers"
+    "--without-system-libetonyek"
+    "--without-system-libfreehand"
+    "--without-system-liblangtag"
+    "--without-system-libmspub"
+    "--without-system-libpagemaker"
+    "--without-system-libgltf"
+    # https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
+    "--without-system-orcus"
+  ];
+
+  checkPhase = ''
+    make unitcheck
+    make slowcheck
+  '';
+
+  buildInputs = with xorg;
+    [ ant ArchiveZip autoconf automake bison boost cairo clucene_core
+      CompressZlib cppunit cups curl db dbus_glib expat file flex fontconfig
+      freetype GConf getopt gnome_vfs gperf gtk3 gtk
+      hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg
+      libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
+      libXaw libXext libXi libXinerama libxml2 libxslt libXtst
+      libXdmcp libpthreadstubs mesa mythes gst_all_1.gstreamer
+      gst_all_1.gst-plugins-base gsettings_desktop_schemas glib
+      neon nspr nss openldap openssl ORBit2 pam perl pkgconfig poppler
+      python3 sablotron sane-backends tcsh unzip vigra which zip zlib
+      mdds bluez5 glibc libcmis libwps libabw
+      libxshmfence libatomic_ops graphite2 harfbuzz
+      librevenge libe-book libmwaw glm glew ncurses
+      libodfgen CoinMP librdf_rasqal defaultIconTheme makeWrapper
+    ]
+    ++ lib.optional kdeIntegration kde4.kdelibs;
+
+  meta = with lib; {
+    description = "Comprehensive, professional-quality productivity suite (Still/stable release)";
+    homepage = http://libreoffice.org/;
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ viric raskin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix
index ff0502ac0cb..110759ea292 100644
--- a/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/pkgs/applications/science/electronics/fritzing/default.nix
@@ -1,7 +1,6 @@
-{ stdenv, fetchurl, qtbase, qtsvg, boost }:
+{ stdenv, fetchurl, qtbase, qtsvg, qmakeHook, boost }:
 
 stdenv.mkDerivation rec {
-
   version = "0.9.0b";
   name = "fritzing-${version}";
 
@@ -10,19 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "181qnknq1j5x075icpw2qk0sc4wcj9f2hym533vs936is0wxp2gk";
   };
 
-  unpackPhase = ''
-    tar xjf ${src}
-  '';
-
-  buildInputs = [ qtbase qtsvg boost ];
-
-  configurePhase = ''
-    runHook preConfigure
-    cd fritzing-${version}.source
-    echo $PATH
-    qmake PREFIX=$out phoenix.pro
-    runHook postConfigure
-  '';
+  buildInputs = [ qtbase qtsvg boost qmakeHook ];
 
   meta = {
     description = "An open source prototyping tool for Arduino-based projects";
diff --git a/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index 692be0a88b1..cac9fef182c 100644
--- a/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchgit, git,  espeak, SDL, udev, doxygen, cmake, overrideCC#, gcc48
   , qtbase, qtlocation, qtserialport, qtdeclarative, qtconnectivity, qtxmlpatterns
-  , qtsvg, qtquick1, qtquickcontrols, qtgraphicaleffects
+  , qtsvg, qtquick1, qtquickcontrols, qtgraphicaleffects, qmakeHook
   , makeQtWrapper, lndir
   , gst_all_1, qt_gstreamer1, pkgconfig, glibc
   , version ? "2.9.4"
@@ -23,21 +23,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
   nativeBuildInputs = [
-    pkgconfig makeQtWrapper
+    pkgconfig makeQtWrapper qmakeHook
  ] ++ qtInputs;
 
   patches = [ ./0001-fix-gcc-cmath-namespace-issues.patch ];
 
-  configurePhase = ''
-    runHook preConfigure
-    mkdir build
-    (cd build && qmake ../qgroundcontrol.pro)
-    runHook postConfigure
-  '';
-
-  preBuild = "pushd build/";
-  postBuild = "popd";
-
   installPhase = ''
     mkdir -p $out/share/applications
     cp -v qgroundcontrol.desktop $out/share/applications
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index fa8f43a45c6..e193701ff95 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -3,12 +3,7 @@
  */
 args @ {pkgs}: with args; with pkgs;
 let
-  inherit (pkgs) stdenv fetchgit fetchurl subversion;
-
-  gitBase = lib.makeOverridable (import ./git) {
-    inherit fetchurl stdenv curl openssl zlib expat perl python gettext gnugrep
-      asciidoc xmlto docbook2x docbook_xsl docbook_xml_dtd_45 libxslt cpio tcl
-      tk makeWrapper subversionClient gzip openssh libiconv;
+  gitBase = callPackage ./git {
     texinfo = texinfo5;
     svnSupport = false;         # for git-svn support
     guiSupport = false;         # requires tcl/tk
@@ -64,44 +59,28 @@ rec {
 
   git-stree = callPackage ./git-stree { };
 
-  git2cl = import ./git2cl {
-    inherit fetchgit stdenv perl;
-  };
+  git2cl = callPackage ./git2cl { };
 
-  gitFastExport = import ./fast-export {
-    inherit fetchgit stdenv mercurial coreutils git makeWrapper subversion;
-  };
+  gitFastExport = callPackage ./fast-export { };
 
   gitRemoteGcrypt = callPackage ./git-remote-gcrypt { };
 
   gitflow = callPackage ./gitflow { };
 
-  hub = import ./hub {
-    inherit go;
-    inherit stdenv fetchgit;
+  hub = callPackage ./hub {
     inherit (darwin) Security;
   };
 
-  qgit = import ./qgit {
-    inherit fetchurl stdenv;
-    inherit (xorg) libXext libX11;
-    qt = qt4;
-  };
+  qgit = callPackage ./qgit { };
 
-  qgitGit = import ./qgit/qgit-git.nix {
-    inherit fetchurl sourceFromHead stdenv;
-    inherit (xorg) libXext libX11;
-    qt = qt4;
-  };
+  qgitGit = callPackage ./qgit/qgit-git.nix { };
 
-  stgit = import ./stgit {
-    inherit fetchurl stdenv python git;
+  stgit = callPackage ./stgit {
   };
 
   subgit = callPackage ./subgit { };
 
-  svn2git = import ./svn2git {
-    inherit stdenv fetchurl ruby makeWrapper;
+  svn2git = callPackage ./svn2git {
     git = gitSVN;
   };
 
@@ -109,9 +88,7 @@ rec {
 
   tig = callPackage ./tig { };
 
-  topGit = lib.makeOverridable (import ./topgit) {
-    inherit stdenv fetchurl;
-  };
+  topGit = callPackage ./topgit { };
 
   transcrypt = callPackage ./transcrypt { };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/qgit/default.nix b/pkgs/applications/version-management/git-and-tools/qgit/default.nix
index a7e6a62ce5f..3f5f9a2dbe1 100644
--- a/pkgs/applications/version-management/git-and-tools/qgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/qgit/default.nix
@@ -1,21 +1,26 @@
-{stdenv, fetchurl, qt, libXext, libX11}:
+{ stdenv, fetchurl, qt4, qmake4Hook, libXext, libX11 }:
 
 stdenv.mkDerivation rec {
   name = "qgit-2.5";
+
   meta =
   {
     license = stdenv.lib.licenses.gpl2;
     homepage = "http://libre.tibirna.org/projects/qgit/wiki/QGit";
     description = "Graphical front-end to Git";
-    inherit (qt.meta) platforms;
+    inherit (qt4.meta) platforms;
   };
+
   src = fetchurl
   {
     url = "http://libre.tibirna.org/attachments/download/9/${name}.tar.gz";
     sha256 = "25f1ca2860d840d87b9919d34fc3a1b05d4163671ed87d29c3e4a8a09e0b2499";
   };
-  buildInputs = [qt libXext libX11];
-  configurePhase = "qmake PREFIX=$out";
+
+  buildInputs = [ qt4 libXext libX11 ];
+
+  nativeBuildInputs = [ qmake4Hook ];
+
   installPhase = ''
     install -s -D -m 755 bin/qgit "$out/bin/qgit"
   '';
diff --git a/pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix b/pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix
index 590e090de48..c3d3c77ad33 100644
--- a/pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix
+++ b/pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix
@@ -1,20 +1,21 @@
-{stdenv, fetchurl, qt, libXext, libX11, sourceFromHead}:
+{ stdenv, fetchurl, qt4, qmake4Hook, libXext, libX11, sourceFromHead }:
 
 stdenv.mkDerivation rec {
   name = "qgit-git";
+
   meta =
   {
     license = stdenv.lib.licenses.gpl2;
     homepage = "http://digilander.libero.it/mcostalba/";
     description = "Graphical front-end to Git";
   };
+
   # REGION AUTO UPDATE:    { name="qgit"; type="git"; url="git://git.kernel.org/pub/scm/qgit/qgit4.git"; }
   src = sourceFromHead "qgit-a0252ed2a6a72b50e65d027adce8afa22e874277.tar.gz"
                (fetchurl { url = "http://mawercer.de/~nix/repos/qgit-a0252ed2a6a72b50e65d027adce8afa22e874277.tar.gz"; sha256 = "17e4727ac68b4f2e8503289d5b6a2c042547e7be133e7f8195b79e33eab61b93"; });
   # END
-  buildInputs = [qt libXext libX11];
-  buildPhase = ''
-    qmake PREFIX=$out
-    make
-  '';
+
+  buildInputs = [ qt4 libXext libX11 ];
+
+  nativeBuildInputs = [ qmake4Hook ];
 }
diff --git a/pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix b/pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix
index f282fa6635b..e8f9078a839 100644
--- a/pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, qt4, subversion, apr}:
+{ stdenv, fetchgit, qt4, qmake4Hook, subversion, apr }:
 
 stdenv.mkDerivation rec {
   name = "svn2git-kde-1.0.5";
@@ -9,10 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "818673fe751b00a42b6ed3e78a783549fb09b5245a01dee47b3dded667bfc582";
   };
 
-  buildPhase = ''
+  NIX_CFLAGS_COMPILE = [ "-I${apr}/include/apr-1" "-I${subversion.dev}/include/subversion-1" "-DVER=\"${src.rev}\"" ];
+
+  patchPhase = ''
     sed -i 's|/bin/cat|cat|' ./src/repository.cpp
-    qmake
-    make CXXFLAGS='-I${apr}/include/apr-1 -I${subversion.dev}/include/subversion-1 -DVER="\"${src.rev}\""'
   '';
 
   installPhase = ''
@@ -22,5 +22,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ subversion apr qt4 ];
 
+  nativeBuildInputs = [ qmake4Hook ];
+
   meta.broken = true;
 }
diff --git a/pkgs/applications/version-management/guitone/default.nix b/pkgs/applications/version-management/guitone/default.nix
index 135e7c7e1ef..8731cbfde19 100644
--- a/pkgs/applications/version-management/guitone/default.nix
+++ b/pkgs/applications/version-management/guitone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchmtn, qt4, pkgconfig, graphviz }:
+{ stdenv, fetchurl, fetchmtn, qt4, qmake4Hook, pkgconfig, graphviz }:
 
 let version = "1.0-mtn-head"; in
 stdenv.mkDerivation rec {
@@ -16,10 +16,7 @@ stdenv.mkDerivation rec {
     branch = "net.venge.monotone.guitone";
   };
 
-  buildInputs = [ qt4 pkgconfig graphviz ];
-
-  prefixKey="PREFIX=";
-  configureScript = "qmake guitone.pro";
+  buildInputs = [ qt4 qmake4Hook pkgconfig graphviz ];
 
   meta = {
     description = "Qt4 based GUI for monotone";
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index f44baad4715..27f0279335d 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -3,6 +3,7 @@
 , ApplicationServices, cf-private }:
 
 let
+  # if you bump version, update pkgs.tortoisehg too or ping maintainer
   version = "3.7.3";
   name = "mercurial-${version}";
 in
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index 399e4cf3024..66dd63956d6 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchdarcs, rustUnstable, openssl, libssh }:
+{ stdenv, fetchdarcs, rustPlatform, openssl, libssh }:
 
-with rustUnstable;
+with rustPlatform;
 
 buildRustPackage rec {
   name = "pijul-${version}";
diff --git a/pkgs/applications/version-management/tortoisehg/default.nix b/pkgs/applications/version-management/tortoisehg/default.nix
index 60e71351208..2ba730a04d2 100644
--- a/pkgs/applications/version-management/tortoisehg/default.nix
+++ b/pkgs/applications/version-management/tortoisehg/default.nix
@@ -2,12 +2,11 @@
 
 pythonPackages.buildPythonApplication rec {
     name = "tortoisehg-${version}";
-    version = "3.7.1";
-    namePrefix = "";
+    version = "3.7.3";
 
     src = fetchurl {
       url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz";
-      sha256 = "1ycf8knwk1rs99s5caq611sk4c4nzwyzq8g35hw5kwj15b6dl4k6";
+      sha256 = "1vahiavpkf9ib2mx8z5i6f0kh072zycazmbrc4sl94p5pvv5w1dh";
     };
 
     pythonPath = with pythonPackages; [ pyqt4 mercurial qscintilla iniparse ];
@@ -15,14 +14,11 @@ pythonPackages.buildPythonApplication rec {
     propagatedBuildInputs = with pythonPackages; [ qscintilla iniparse ];
 
     doCheck = false;
-
-    postUnpack = ''
-     substituteInPlace $sourceRoot/setup.py \
-       --replace "sharedir = os.path.join(installcmd.install_data[rootlen:], 'share')" "sharedir = '$out/share/'"
-    '';
-
-    postInstall = ''
-     ln -s $out/bin/thg $out/bin/tortoisehg     #convenient alias
+    dontStrip = true;
+    buildPhase = "";
+    installPhase = ''
+      ${pythonPackages.python.executable} setup.py install --prefix=$out
+      ln -s $out/bin/thg $out/bin/tortoisehg     #convenient alias
     '';
 
     meta = {
diff --git a/pkgs/applications/video/bomi/default.nix b/pkgs/applications/video/bomi/default.nix
index f9301781fc1..c017ed4cda3 100644
--- a/pkgs/applications/video/bomi/default.nix
+++ b/pkgs/applications/video/bomi/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchFromGitHub, pkgconfig, perl, python, which, makeQtWrapper
 , libX11, libxcb, mesa
-, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras
+, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmakeHook
 , ffmpeg
 , libchardet
 , mpg123
@@ -76,6 +76,8 @@ stdenv.mkDerivation rec {
       ${optionalString youtubeSupport "--prefix PATH ':' '${youtube-dl}/bin'"}
   '';
 
+  dontUseQmakeConfigure = true;
+
   configureFlags = with stdenv.lib;
                    [ "--qmake=qmake" ]
                    ++ optional jackSupport "--enable-jack"
@@ -84,7 +86,7 @@ stdenv.mkDerivation rec {
                    ++ optional cddaSupport "--enable-cdda"
                    ;
 
-  nativeBuildInputs = [ pkgconfig perl python which qttools makeQtWrapper ];
+  nativeBuildInputs = [ pkgconfig perl python which qttools makeQtWrapper qmakeHook ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index e634a0caa3f..b8967323c98 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeDesktopItem, ffmpeg, qt4 }:
+{ stdenv, fetchurl, makeDesktopItem, ffmpeg, qt4, qmake4Hook }:
 
 stdenv.mkDerivation rec {
   name = "clipgrab-${version}";
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ffmpeg qt4 ];
+  nativeBuildInputs = [ qmake4Hook ];
 
   postPatch = stdenv.lib.optionalString (ffmpeg != null) ''
   substituteInPlace converter_ffmpeg.cpp \
@@ -18,9 +19,7 @@ stdenv.mkDerivation rec {
     --replace '"ffmpeg ' '"${ffmpeg.bin}/bin/ffmpeg '
   '';
 
-  configurePhase = ''
-    qmake clipgrab.pro
-  '';
+  qmakeFlags = [ "clipgrab.pro" ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/video/linuxstopmotion/default.nix b/pkgs/applications/video/linuxstopmotion/default.nix
index 23a033844b3..293bdd835b5 100644
--- a/pkgs/applications/video/linuxstopmotion/default.nix
+++ b/pkgs/applications/video/linuxstopmotion/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, pkgconfig, qt4, SDL, SDL_image, libvorbis, libtar, libxml2
-, gamin
+, gamin, qmake4Hook
 }:
 
 stdenv.mkDerivation rec {
@@ -12,14 +12,10 @@ stdenv.mkDerivation rec {
     sha256 = "1xkkrhllgy2d7k0vrdj794ya7y3g3n7xh8c2qgnb26yrarz79dqj";
   };
 
-  buildInputs = [ pkgconfig qt4 SDL SDL_image libvorbis libtar libxml2 gamin ];
+  buildInputs = [ pkgconfig qt4 SDL SDL_image libvorbis libtar libxml2 gamin qmake4Hook ];
 
   patches = [ ./linuxstopmotion-fix-wrong-isProcess-logic.patch ];
 
-  configurePhase = ''
-    qmake PREFIX="$out"
-  '';
-
   # Installation breaks without this
   preInstall = ''
     mkdir -p "$out/share/stopmotion/translations/"
diff --git a/pkgs/applications/video/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index f9d887189ec..1a621032125 100644
--- a/pkgs/applications/video/minitube/default.nix
+++ b/pkgs/applications/video/minitube/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeWrapper, phonon, phonon_backend_vlc, qt4
+{ stdenv, fetchFromGitHub, makeWrapper, phonon, phonon_backend_vlc, qt4, qmake4Hook
 # "Free" API key generated by nckx <tobias.geerinckx.rice@gmail.com>
 , withAPIKey ? "AIzaSyBtFgbln3bu1swQC-naMxMtKh384D3xJZE" }:
 
@@ -14,11 +14,9 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ phonon phonon_backend_vlc qt4 ];
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper qmake4Hook ];
 
-  configurePhase = ''
-    qmake PREFIX=$out "DEFINES += APP_GOOGLE_API_KEY=${withAPIKey}"
-  '';
+  qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/video/qgifer/default.nix b/pkgs/applications/video/qgifer/default.nix
index f528ce99a8a..8185e15dcc8 100644
--- a/pkgs/applications/video/qgifer/default.nix
+++ b/pkgs/applications/video/qgifer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchsvn, cmake, opencv, qt, giflib }:
+{ stdenv, fetchsvn, cmake, opencv, qt4, giflib }:
 
 stdenv.mkDerivation rec {
   name = "qgifer-${version}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     substituteInPlace CMakeLists.txt --replace "SET(CMAKE_INSTALL_PREFIX" "#"
   '';
 
-  buildInputs = [ cmake opencv qt giflib ];
+  buildInputs = [ cmake opencv qt4 giflib ];
 
   meta = with stdenv.lib; {
     description = "Video-based animated GIF creator";
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index d2400475a0b..fdadc1d99ab 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, frei0r, gettext, makeWrapper, mlt, pkgconfig, qtbase }:
+{ stdenv, fetchurl, SDL, frei0r, gettext, makeWrapper, mlt, pkgconfig, qtbase, qmakeHook }:
 
 stdenv.mkDerivation rec {
   name = "shotcut-${version}";
@@ -9,13 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1504ds3ppqmpg84nb2gb74qndqysjwn3xw7n8xv19kd1pppnr10f";
   };
 
-  buildInputs = [ SDL frei0r gettext makeWrapper mlt pkgconfig qtbase ];
-
-  configurePhase = ''
-    runHook preConfigure
-    qmake PREFIX=$out
-    runHook postConfigure
-  '';
+  buildInputs = [ SDL frei0r gettext makeWrapper mlt pkgconfig qtbase qmakeHook ];
 
   postInstall = ''
     mkdir -p $out/share/shotcut