summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-5/5.4
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/qt-5/5.4')
-rw-r--r--pkgs/development/libraries/qt-5/5.4/0014-mkspecs-libgl.patch17
-rw-r--r--pkgs/development/libraries/qt-5/5.4/0100-ssl.patch13
-rw-r--r--pkgs/development/libraries/qt-5/5.4/default.nix22
-rw-r--r--pkgs/development/libraries/qt-5/5.4/manifest.json301
-rw-r--r--pkgs/development/libraries/qt-5/5.4/manifest.nix274
-rwxr-xr-xpkgs/development/libraries/qt-5/5.4/manifest.sh18
-rw-r--r--pkgs/development/libraries/qt-5/5.4/qt-submodule.nix6
-rw-r--r--pkgs/development/libraries/qt-5/5.4/qtbase.nix43
-rw-r--r--pkgs/development/libraries/qt-5/5.4/setup-hook.sh40
9 files changed, 414 insertions, 320 deletions
diff --git a/pkgs/development/libraries/qt-5/5.4/0014-mkspecs-libgl.patch b/pkgs/development/libraries/qt-5/5.4/0014-mkspecs-libgl.patch
new file mode 100644
index 00000000000..1fc4bbd6076
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.4/0014-mkspecs-libgl.patch
@@ -0,0 +1,17 @@
+Ensure Qt knows where libGL is.
+
+Author: Bjørn Forsman <bjorn.forsman@gmail.com>
+diff -uNr qt-everywhere-opensource-src-5.3.2.orig/qtbase/mkspecs/common/linux.conf qt-everywhere-opensource-src-5.3.2/qtbase/mkspecs/common/linux.conf
+--- qt-everywhere-opensource-src-5.3.2.orig/qtbase/mkspecs/common/linux.conf	2014-09-11 12:48:07.000000000 +0200
++++ qt-everywhere-opensource-src-5.3.2/qtbase/mkspecs/common/linux.conf	2015-08-23 13:03:30.617473019 +0200
+@@ -12,8 +12,8 @@
+ QMAKE_LIBDIR            =
+ QMAKE_INCDIR_X11        =
+ QMAKE_LIBDIR_X11        =
+-QMAKE_INCDIR_OPENGL     =
+-QMAKE_LIBDIR_OPENGL     =
++QMAKE_INCDIR_OPENGL     = @mesa@/include
++QMAKE_LIBDIR_OPENGL     = @mesa@/lib
+ QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
+ QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
+ QMAKE_INCDIR_EGL        =
diff --git a/pkgs/development/libraries/qt-5/5.4/0100-ssl.patch b/pkgs/development/libraries/qt-5/5.4/0100-ssl.patch
new file mode 100644
index 00000000000..4607274de74
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.4/0100-ssl.patch
@@ -0,0 +1,13 @@
+diff --git a/qtbase/src/network/ssl/qsslsocket_openssl.cpp b/qtbase/src/network/ssl/qsslsocket_openssl.cpp
+index 8833e3f..c56d381 100644
+--- a/qtbase/src/network/ssl/qsslsocket_openssl.cpp
++++ b/qtbase/src/network/ssl/qsslsocket_openssl.cpp
+@@ -47,7 +47,7 @@
+ ****************************************************************************/
+ 
+ //#define QSSLSOCKET_DEBUG
+-//#define QT_DECRYPT_SSL_TRAFFIC
++#define QT_DECRYPT_SSL_TRAFFIC
+ 
+ #include "qssl_p.h"
+ #include "qsslsocket_openssl_p.h"
diff --git a/pkgs/development/libraries/qt-5/5.4/default.nix b/pkgs/development/libraries/qt-5/5.4/default.nix
index fe7e024ba4b..136c352d1aa 100644
--- a/pkgs/development/libraries/qt-5/5.4/default.nix
+++ b/pkgs/development/libraries/qt-5/5.4/default.nix
@@ -20,17 +20,23 @@
 
 # options
 , developerBuild ? false
+, decryptSslTraffic ? false
 }:
 
 with autonix;
 with stdenv.lib;
 
 let
-  manifest =
-    importManifest ./manifest.nix { mirror = "http://download.qt.io"; };
-  srcs = mapAttrs (name: manifest: manifest.src) manifest;
+  srcs =
+    let
+      manifest = builtins.fromJSON (builtins.readFile ./manifest.json);
+      mirror = "http://download.qt.io";
+      fetch = src: fetchurl (src // { url = "${mirror}/${src.url}"; });
+      mkPair = pkg: nameValuePair (builtins.parseDrvName pkg.name).name (fetch pkg.src);
+      pairs = map mkPair manifest;
+    in listToAttrs pairs;
 
-  version = "5.4.1";
+  version = "5.4.2";
 
   callPackage = newScope (self // { inherit qtSubmodule; });
 
@@ -61,7 +67,7 @@ let
         # GNOME dependencies are not used unless gtkStyle == true
         inherit (gnome) libgnomeui GConf gnome_vfs;
         bison = bison2; # error: too few arguments to function 'int yylex(...
-        inherit developerBuild srcs version;
+        inherit developerBuild srcs version decryptSslTraffic;
       };
 
       connectivity = callPackage
@@ -146,15 +152,15 @@ let
 
       multimedia = callPackage
         (
-          { qtSubmodule, base, declarative
-          , alsaLib, gstreamer, gst_plugins_base, pulseaudio
+          { qtSubmodule, base, declarative, pkgconfig
+          , alsaLib, gstreamer, gst_plugins_base, libpulseaudio
           }:
 
           qtSubmodule {
             name = "qtmultimedia";
             qtInputs = [ base declarative ];
             buildInputs = [
-              alsaLib gstreamer gst_plugins_base pulseaudio
+              pkgconfig alsaLib gstreamer gst_plugins_base libpulseaudio
             ];
           }
         )
diff --git a/pkgs/development/libraries/qt-5/5.4/manifest.json b/pkgs/development/libraries/qt-5/5.4/manifest.json
new file mode 100644
index 00000000000..83dedb41706
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.4/manifest.json
@@ -0,0 +1,301 @@
+[
+  {
+    "name": "qtbase-opensource-src-5.4.2",
+    "store": "/nix/store/60xy2xnsl5kwraqkgh8d950nj1pk3kmi-qtbase-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtbase-opensource-src-5.4.2.tar.xz",
+      "sha256": "0x2szpjjvsrpcqw0dd3gsim7b1jv9p716pnllzjbia5mp0hggi4z",
+      "name": "qtbase-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtenginio-opensource-src-5.4.2",
+    "store": "/nix/store/4iprnq6sm0b1pnxmxb5krip7kk40xqmr-qtenginio-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtenginio-opensource-src-5.4.2.tar.xz",
+      "sha256": "082i3fapjw6xs0jkz7x529dn3pb6w1pfli3cjrgvggff86gwlgwn",
+      "name": "qtenginio-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtserialport-opensource-src-5.4.2",
+    "store": "/nix/store/l9k1v23ddnhjch5b2p3l28xbqkhz63yl-qtserialport-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtserialport-opensource-src-5.4.2.tar.xz",
+      "sha256": "1h6p5rb0ldxgzd4md3n79gy0j9blhj736670xqjd9vlvh1743kck",
+      "name": "qtserialport-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtscript-opensource-src-5.4.2",
+    "store": "/nix/store/n4ixnakw3fiflyimshkp43h7ijlpiif6-qtscript-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtscript-opensource-src-5.4.2.tar.xz",
+      "sha256": "0izsmy0cr8iii78r10ndkidyljxqd2k9g03f5xb9nxacvr2f8hp0",
+      "name": "qtscript-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtwebchannel-opensource-src-5.4.2",
+    "store": "/nix/store/qbkqkn4ck0fqbndl9fzp7iaz6c475xq8-qtwebchannel-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtwebchannel-opensource-src-5.4.2.tar.xz",
+      "sha256": "0vy1zjbghfa1wirxd8fd2n2n8yryykzr09913qm2nlfbcxdsgqsn",
+      "name": "qtwebchannel-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtwinextras-opensource-src-5.4.2",
+    "store": "/nix/store/9kmig3lg8d8s5r1jl3xj5q3jrkp3p8sx-qtwinextras-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtwinextras-opensource-src-5.4.2.tar.xz",
+      "sha256": "0sgybvr1y2xsddlqc95ninxj3rfmd4gv7a8f7rqcxdynjan5gij0",
+      "name": "qtwinextras-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtwebsockets-opensource-src-5.4.2",
+    "store": "/nix/store/zk4s5pgp3mh6xdq6z3svi305vn0pli27-qtwebsockets-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtwebsockets-opensource-src-5.4.2.tar.xz",
+      "sha256": "0lv1la8333qnirxmscs42xnnra0xry1gjbhi3bxrf1hrfs2im9j4",
+      "name": "qtwebsockets-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtmultimedia-opensource-src-5.4.2",
+    "store": "/nix/store/n8wpy6b8jw1rf51z1qhxbbym7j8rr8ay-qtmultimedia-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtmultimedia-opensource-src-5.4.2.tar.xz",
+      "sha256": "0h29cs8ajnjarhjx1aczdnxqwvg6pqs9s8w28hw488s149wqqrnj",
+      "name": "qtmultimedia-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtgraphicaleffects-opensource-src-5.4.2",
+    "store": "/nix/store/2q2vk530mf32zzd1v8bpax8iixviw6q5-qtgraphicaleffects-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtgraphicaleffects-opensource-src-5.4.2.tar.xz",
+      "sha256": "02p8xm5ajicjam30ry3g1lm2p4nja2q0sls8dzimqrxhw5xlg3xs",
+      "name": "qtgraphicaleffects-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtxmlpatterns-opensource-src-5.4.2",
+    "store": "/nix/store/3fqgpa668hb1xmwjw056cw58qzb3r0g4-qtxmlpatterns-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtxmlpatterns-opensource-src-5.4.2.tar.xz",
+      "sha256": "0ar7znqp1i02ha5ngy2kzk3hlgkafjbn2xa8j2k78gzmwsmdhzxa",
+      "name": "qtxmlpatterns-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qttranslations-opensource-src-5.4.2",
+    "store": "/nix/store/mg9b5z2nznzxrz501hm06b7l27jjwaca-qttranslations-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qttranslations-opensource-src-5.4.2.tar.xz",
+      "sha256": "0b4l69c16z8gjd4mq75zz3lj2gxarr9wyk0vk60jg1mi62vxvdls",
+      "name": "qttranslations-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtdeclarative-opensource-src-5.4.2",
+    "store": "/nix/store/bjmv4fgphx9bggzcwy4lcdas9phbwjsg-qtdeclarative-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtdeclarative-opensource-src-5.4.2.tar.xz",
+      "sha256": "1bj1wwms6lpj8s70y8by3j0hjsw6g9v8m6fybx68krzzizbj2c5p",
+      "name": "qtdeclarative-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtwebkit-opensource-src-5.4.2",
+    "store": "/nix/store/pfhq8ask8jhzdh2x882d014b10ddywma-qtwebkit-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtwebkit-opensource-src-5.4.2.tar.xz",
+      "sha256": "0vffbpiczag2n2hp5gc0nii8n7vkidr8f8pp8a47px0183hl6hiy",
+      "name": "qtwebkit-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtquick1-opensource-src-5.4.2",
+    "store": "/nix/store/n807cxddkvhbzw3ciqs29zc5mw47z2qs-qtquick1-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtquick1-opensource-src-5.4.2.tar.xz",
+      "sha256": "0178z15a31fw3l6933fwxs7sk0csifpwckydp3rqnn3fg5f2fwvp",
+      "name": "qtquick1-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtquickcontrols-opensource-src-5.4.2",
+    "store": "/nix/store/gq8afk8zr2vrrsfmp4caqv02209qk9xb-qtquickcontrols-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtquickcontrols-opensource-src-5.4.2.tar.xz",
+      "sha256": "137z3c3drxlvkdfc7zgcl0xqmavw0ladzqy0i3bq51h756qdc877",
+      "name": "qtquickcontrols-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtimageformats-opensource-src-5.4.2",
+    "store": "/nix/store/cmpx0338z1j0wzk6scfpay5k10023d46-qtimageformats-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtimageformats-opensource-src-5.4.2.tar.xz",
+      "sha256": "1nny6j9pm5ri3n1vwl5lrfrdz0fl81rx127wa49rkg2rjai2aawb",
+      "name": "qtimageformats-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtdoc-opensource-src-5.4.2",
+    "store": "/nix/store/jv4wgs6pz9xqmin9m4q4mifr2vfcjn3h-qtdoc-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtdoc-opensource-src-5.4.2.tar.xz",
+      "sha256": "15lamv6jvd7v33ldpcrazcdksv6qibdcgh4ncbyh774k8avgrlh8",
+      "name": "qtdoc-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtwayland-opensource-src-5.4.2",
+    "store": "/nix/store/qa3yi9lyx2dm4wqzb3qzvzba1sgnj74z-qtwayland-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtwayland-opensource-src-5.4.2.tar.xz",
+      "sha256": "14pmpkfq70plw07igxjaiji4vnjg5kg7izlb0wwym1lisg7bwkg0",
+      "name": "qtwayland-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtmacextras-opensource-src-5.4.2",
+    "store": "/nix/store/wdq1z3bzr9n11yln8avx10sgzgyvp8cl-qtmacextras-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtmacextras-opensource-src-5.4.2.tar.xz",
+      "sha256": "0h0p3s0rvd3g9rgr4hwcggdbsav2g30vijqwmdxgxd8c00yply80",
+      "name": "qtmacextras-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtactiveqt-opensource-src-5.4.2",
+    "store": "/nix/store/0ik7vc3zwdjvrp4fpyqf1zpyqdxvvqvq-qtactiveqt-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtactiveqt-opensource-src-5.4.2.tar.xz",
+      "sha256": "014kwficqydciwdm1yw88yms81qm8pmi6xfhhfpbc9k85pc6jlla",
+      "name": "qtactiveqt-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtlocation-opensource-src-5.4.2",
+    "store": "/nix/store/sa4dawsw2wv45ld3afbz9nfc64qkyx1s-qtlocation-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtlocation-opensource-src-5.4.2.tar.xz",
+      "sha256": "1v43hl2zzi90vaw11y8dvsksrjn0r2v0br7pw6njl8lqadpg4jnw",
+      "name": "qtlocation-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtconnectivity-opensource-src-5.4.2",
+    "store": "/nix/store/v2aiscvf582azyzg696rglway56l7xl2-qtconnectivity-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtconnectivity-opensource-src-5.4.2.tar.xz",
+      "sha256": "1nj68bzgm3r1gg171kj0acnifzb3jx0m5pf4f81xb7zl4hfxasrs",
+      "name": "qtconnectivity-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtx11extras-opensource-src-5.4.2",
+    "store": "/nix/store/nz62qld9h96z5a0b7fg52fsh5d6q0kqw-qtx11extras-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtx11extras-opensource-src-5.4.2.tar.xz",
+      "sha256": "0jgyywjxavfpiz8202g3s0g9izfl185mmak4fs9h80w1i3gn5zzn",
+      "name": "qtx11extras-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qttools-opensource-src-5.4.2",
+    "store": "/nix/store/i8n6xrhalg3z4i0min4w79rq9h9hch0x-qttools-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qttools-opensource-src-5.4.2.tar.xz",
+      "sha256": "1d5nx01r7wxhdg9f1i9xhsvsbwgaz3yv516s068riy970bhdgwzd",
+      "name": "qttools-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtsensors-opensource-src-5.4.2",
+    "store": "/nix/store/0ar28gp8klqxynjnc1r4kj9x7g8cknk2-qtsensors-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtsensors-opensource-src-5.4.2.tar.xz",
+      "sha256": "1yawvjbdymgw8af7ir9zcin89xxck9dm2l6hnc43lwrky0frcvcf",
+      "name": "qtsensors-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtwebengine-opensource-src-5.4.2",
+    "store": "/nix/store/ikr8cc3bn62jlv9afpzhxvqs5qhsc2yc-qtwebengine-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtwebengine-opensource-src-5.4.2.tar.xz",
+      "sha256": "06cyl733prakniqrn8sd807lclk5im2vmysjdcijry2mcyah2ih8",
+      "name": "qtwebengine-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtsvg-opensource-src-5.4.2",
+    "store": "/nix/store/0llm31zpiaqig940a8dsp1dk2npxsnjc-qtsvg-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtsvg-opensource-src-5.4.2.tar.xz",
+      "sha256": "1dsyncp154xvb7d82nmnfjm0ngymnhqmliq58ljwxsjmpjlncakz",
+      "name": "qtsvg-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qt5-opensource-src-5.4.2",
+    "store": "/nix/store/0jrx1clg8vqid9b2n9z8f0xbwjm0yynr-qt5-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qt5-opensource-src-5.4.2.tar.xz",
+      "sha256": "17a0pybr4bpyv9pj7cr5hl4g31biv89bjr8zql723h0b12ql1w44",
+      "name": "qt5-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtwebkit-examples-opensource-src-5.4.2",
+    "store": "/nix/store/6pmmi9bjbdxkbw2xkkc1srk5ambnjcxv-qtwebkit-examples-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtwebkit-examples-opensource-src-5.4.2.tar.xz",
+      "sha256": "0pm9ik1j09jfb5xflc16449nff2xsfyfms7vxlcdjg4dhcqfmll8",
+      "name": "qtwebkit-examples-opensource-src-5.4.2.tar.xz"
+    }
+  }
+,
+  {
+    "name": "qtandroidextras-opensource-src-5.4.2",
+    "store": "/nix/store/grrsklibvplaj5pdwjp2zirxmqnq10hf-qtandroidextras-opensource-src-5.4.2.tar.xz",
+    "src": {
+      "url": "official_releases/qt/5.4/5.4.2/submodules/qtandroidextras-opensource-src-5.4.2.tar.xz",
+      "sha256": "0krfm0wg26x7575p8isswdhrkb0jxyp169grwklil7mfw8yg3xhx",
+      "name": "qtandroidextras-opensource-src-5.4.2.tar.xz"
+    }
+  }
+]
diff --git a/pkgs/development/libraries/qt-5/5.4/manifest.nix b/pkgs/development/libraries/qt-5/5.4/manifest.nix
deleted file mode 100644
index 4647c0eef88..00000000000
--- a/pkgs/development/libraries/qt-5/5.4/manifest.nix
+++ /dev/null
@@ -1,274 +0,0 @@
-# This file is generated automatically. DO NOT EDIT!
-{ stdenv, fetchurl, mirror }:
-[
-  {
-    name = stdenv.lib.nameFromURL "qtwayland-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/32jn5sn8im7andkd6m15s95n48ald7pw-qtwayland-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtwayland-opensource-src-5.4.1.tar.xz";
-      sha256 = "14npf3lclkb83s8ywla67a1129ia1mbib145s1sk5gqw1dh5wfv5";
-      name = "qtwayland-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtandroidextras-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/604ifwwrzpm96rffszyl11xjirm0w65j-qtandroidextras-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtandroidextras-opensource-src-5.4.1.tar.xz";
-      sha256 = "0s12hmn2lnlbp7y47v344lyli6wh670dwazl3kkzv9vdv52df4wp";
-      name = "qtandroidextras-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtgraphicaleffects-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/wcwaylvnlrfy6d6pc0ka7mkcam846cqb-qtgraphicaleffects-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtgraphicaleffects-opensource-src-5.4.1.tar.xz";
-      sha256 = "071mz2w25g5svknb97y6yw55sq9171qqd92n3dp4w2qg2blg1qms";
-      name = "qtgraphicaleffects-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtenginio-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/k7gayy35qqwbaf2yyr1lfydmsp6p9k3i-qtenginio-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtenginio-opensource-src-5.4.1.tar.xz";
-      sha256 = "0yjpx43qy6yc6hblcrkp6g9jv2ipg2hdd27q86y7s30q54f17nxf";
-      name = "qtenginio-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtwebengine-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/0y1p0ssxbd8wp4vyq5ad2f77inh07p1b-qtwebengine-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtwebengine-opensource-src-5.4.1.tar.xz";
-      sha256 = "1c5akxh6wxgc72md6802fbvd601n03assv6i542siwmmnp5anhij";
-      name = "qtwebengine-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtmacextras-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/0mdhndcp51g2160559kgd5a93c0c3317-qtmacextras-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtmacextras-opensource-src-5.4.1.tar.xz";
-      sha256 = "0hivjn3yfidzj4la3rlrqzjawrakxyhc886w2jcf0bjz3vzl9xp2";
-      name = "qtmacextras-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qttranslations-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/hhana1500hq2h2l8815wq8rfrp7nizpb-qttranslations-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qttranslations-opensource-src-5.4.1.tar.xz";
-      sha256 = "0hchmz7hjdjx0wn2v9sbgilvi0pigiriklw5pdvfxjabjxgh8k9w";
-      name = "qttranslations-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtwebchannel-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/qfa1hycl1lh8pm2x65frxlms3waqbsfg-qtwebchannel-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtwebchannel-opensource-src-5.4.1.tar.xz";
-      sha256 = "0ldjyyp0ym3hndd0bq5mwjry2yilf1cv9iddqb8adz46k3nbkb64";
-      name = "qtwebchannel-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtdoc-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/hif7dg37sz0yjj09844f0gyqqsf9cpxx-qtdoc-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtdoc-opensource-src-5.4.1.tar.xz";
-      sha256 = "1afg2lxyxgqhq02a58c9yshvkinlk5mw19yff1421fma6j925c8q";
-      name = "qtdoc-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtwebkit-examples-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/shz5132xvpp2hvmsyl1mhps0qanrgw43-qtwebkit-examples-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtwebkit-examples-opensource-src-5.4.1.tar.xz";
-      sha256 = "02kj4rw40s7xhdz1ixfy5fc7n5pr2ipqkpwj1kwng71l3jrpn60r";
-      name = "qtwebkit-examples-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtbase-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/nl8rm1q2sqyq5y91h6d9dbks82krykn1-qtbase-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtbase-opensource-src-5.4.1.tar.xz";
-      sha256 = "1dxigzgv6xj5lybs654y57ssfbl38dxff3s3wpvw0n89hf9sax45";
-      name = "qtbase-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qttools-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/f9cbf92nhmfkz1q2n4nidh432s5d3pls-qttools-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qttools-opensource-src-5.4.1.tar.xz";
-      sha256 = "0whzcwgzwh1m6fqb7h2gvkx9hi2ijjaz8ap36jqr8cc4ff2hzphi";
-      name = "qttools-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qt5-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/hl5gzwaq43afs2z7ga10161myzz3xrwb-qt5-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qt5-opensource-src-5.4.1.tar.xz";
-      sha256 = "01xgf3531q60vrkg1pp07q4p0ildj42zgnw63v8fnwjg7c5m59rd";
-      name = "qt5-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtquick1-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/9y9qhciiqys5sm502bbflqzrjmvxpqh6-qtquick1-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtquick1-opensource-src-5.4.1.tar.xz";
-      sha256 = "0ba3r89j75vrjgh8h3ik64x84bhgbckc4bvy1wympwgfhk3j8lzb";
-      name = "qtquick1-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtwebsockets-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/cmvv503q10qnmmbb8yxvvjlxpqqaswyb-qtwebsockets-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtwebsockets-opensource-src-5.4.1.tar.xz";
-      sha256 = "0i5bcxlwxbzq9k0kq1m90cbslby05x3j3r6js8xjarz2qnc6zxfs";
-      name = "qtwebsockets-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtsensors-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/9c4zpbngylc7cqqyai2ysglajapphxp7-qtsensors-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtsensors-opensource-src-5.4.1.tar.xz";
-      sha256 = "1y6vbvvcgph466whcc896lkyk2lx8lyyqj1qnm76f3jjywp8wjxc";
-      name = "qtsensors-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtx11extras-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/njkpa0ahd4l5307b4qmqlqiv4nw1by7z-qtx11extras-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtx11extras-opensource-src-5.4.1.tar.xz";
-      sha256 = "0blcdqccxhdqj4v5zp6m34b74nw5n6pfgldyb6wrlpljkzdir9i0";
-      name = "qtx11extras-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtmultimedia-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/q2ji7ilipdvx0p6iyrwhhfczzw1j11ws-qtmultimedia-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtmultimedia-opensource-src-5.4.1.tar.xz";
-      sha256 = "0kjk3q7y2lr8a62rdidhn783jrq1rpj11p1jmfiw8z3j255dsc1q";
-      name = "qtmultimedia-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtactiveqt-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/ikxpk38h1arms4x0qlnd7g5g3fg26fg4-qtactiveqt-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtactiveqt-opensource-src-5.4.1.tar.xz";
-      sha256 = "14984cvh9cfnrgls40i28fjdhs015izzlvwck9va4167y3ix4zbx";
-      name = "qtactiveqt-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtxmlpatterns-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/0a30a874s507fmrsd1jlggbh9j953jb9-qtxmlpatterns-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtxmlpatterns-opensource-src-5.4.1.tar.xz";
-      sha256 = "062kqs8m9js8mlld1lsm01prq57zs88g7p8fad84a5gisgs2y57m";
-      name = "qtxmlpatterns-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtscript-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/cbb46kpmk6radk9v8cyngxcxr11g06f6-qtscript-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtscript-opensource-src-5.4.1.tar.xz";
-      sha256 = "1bybzcp9smasw0syvb7vrz85jq124r7gywz2msgjg1kb6z4aqcpl";
-      name = "qtscript-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtquickcontrols-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/h5hg9z346lh2w8whf0zgq5kbwffpmnkk-qtquickcontrols-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtquickcontrols-opensource-src-5.4.1.tar.xz";
-      sha256 = "1hpvbjr76q9i2idgmblr80khhjgkn78q0s0d648r3axp232m427y";
-      name = "qtquickcontrols-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtimageformats-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/7vxgal1cag6cakigc7h3rjvvr64b7sd3-qtimageformats-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtimageformats-opensource-src-5.4.1.tar.xz";
-      sha256 = "0vw4bg68kwp48v49ds2vxvgjc82i5q5scff4013y5gpbd2smnv1z";
-      name = "qtimageformats-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtserialport-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/pgcv75a5x56s88qclqvbw04dzywcxm73-qtserialport-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtserialport-opensource-src-5.4.1.tar.xz";
-      sha256 = "1zyhlpmh7yisk9qpk8map0myam4bkm4jvp0wcnd4d7pldf19xnbr";
-      name = "qtserialport-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtwebkit-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/p8jka7s4la8f83xqnl1a4ivdw95dajb8-qtwebkit-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtwebkit-opensource-src-5.4.1.tar.xz";
-      sha256 = "1gqrf5g07q5bgr3vnfnsw5qwqd0fjyh4pgqphrvxq4x9z0g221v6";
-      name = "qtwebkit-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtconnectivity-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/ggn5pkvp89qh12vzhhk572s38vg3zn72-qtconnectivity-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtconnectivity-opensource-src-5.4.1.tar.xz";
-      sha256 = "0q13gg7fmfb7cfq403ql8s5qi6s9a4fd86i7v9r6cwgnj2szzi42";
-      name = "qtconnectivity-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtlocation-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/pnblj6ncfvz4id84asjlnrxb2papsn1v-qtlocation-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtlocation-opensource-src-5.4.1.tar.xz";
-      sha256 = "113rx43349f7yn4crhgg6ciz6lyvfvfnc0vkdaz09a2r461hr7w8";
-      name = "qtlocation-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtdeclarative-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/0bz5yxqc9yg94jyjkvsgn7h7lph99a5v-qtdeclarative-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtdeclarative-opensource-src-5.4.1.tar.xz";
-      sha256 = "05s4imk7whm2qir9byb35dn2ndqb7c5r2cnxpv2qyjla58j4w4hm";
-      name = "qtdeclarative-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtwinextras-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/xdbwakyhif8cjwyii7v32zkxlrbrksmc-qtwinextras-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtwinextras-opensource-src-5.4.1.tar.xz";
-      sha256 = "01ddgvq8wny162njlzqnbphiiw565xsqy6h3s39cipa05c6mxblv";
-      name = "qtwinextras-opensource-src-5.4.1.tar.xz";
-    };
-  }
-  {
-    name = stdenv.lib.nameFromURL "qtsvg-opensource-src-5.4.1.tar.xz" ".tar";
-    store = "/nix/store/m3wk5r1ihbrjz9zpi57nllzqzha06c8j-qtsvg-opensource-src-5.4.1.tar.xz";
-    src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.4/5.4.1/submodules/qtsvg-opensource-src-5.4.1.tar.xz";
-      sha256 = "0b71kngnq7c5ry8bkb0rjlr6xx49h1sd25m4i4s3v1rfrv6912my";
-      name = "qtsvg-opensource-src-5.4.1.tar.xz";
-    };
-  }
-]
diff --git a/pkgs/development/libraries/qt-5/5.4/manifest.sh b/pkgs/development/libraries/qt-5/5.4/manifest.sh
index 0da13f204ba..780269a6417 100755
--- a/pkgs/development/libraries/qt-5/5.4/manifest.sh
+++ b/pkgs/development/libraries/qt-5/5.4/manifest.sh
@@ -1,15 +1,9 @@
 #!/bin/sh
 
-if [ $# -eq 0 ]; then
+set -x
 
-  # The extra slash at the end of the URL is necessary to stop wget
-  # from recursing over the whole server! (No, it's not a bug.)
-  $(nix-build ../../../../.. -A autonix.manifest) \
-    http://download.qt.io/official_releases/qt/5.4/5.4.1/submodules/ \
-      -A '*.tar.xz'
-
-else
-
-  $(nix-build ../../../.. -A autonix.manifest) -A '*.tar.xz' "$@"
-
-fi
+# The extra slash at the end of the URL is necessary to stop wget
+# from recursing over the whole server! (No, it's not a bug.)
+$(nix-build ../../../../.. --no-out-link -A autonix.manifest) \
+  http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/ \
+    -A '*.tar.xz'
diff --git a/pkgs/development/libraries/qt-5/5.4/qt-submodule.nix b/pkgs/development/libraries/qt-5/5.4/qt-submodule.nix
index b242661270d..4012b637e28 100644
--- a/pkgs/development/libraries/qt-5/5.4/qt-submodule.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qt-submodule.nix
@@ -20,12 +20,6 @@ mkDerivation (args // {
   dontFixLibtool = args.dontFixLibtool or true;
   configureScript = args.configureScript or "qmake";
 
-  /*
-  preConfigure = ''
-    export PATH="$out/bin:$PATH"
-  '';
-  */
-
   postInstall = ''
     rm "$out/bin/qmake" "$out/bin/qt.conf"
 
diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase.nix b/pkgs/development/libraries/qt-5/5.4/qtbase.nix
index 746889f279d..30d53eb874b 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qtbase.nix
@@ -1,7 +1,7 @@
 { stdenv, substituteAll
 , srcs, version
 
-, xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi
+, xorg, libX11, libxcb, libXcursor, libXext, libXrender, libXi
 , xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilwm, libxkbcommon
 , fontconfig, freetype, openssl, dbus, glib, udev, libxml2, libxslt, pcre
 , zlib, libjpeg, libpng, libtiff, sqlite, icu
@@ -20,10 +20,13 @@
 , buildTests ? false
 , developerBuild ? false
 , gtkStyle ? false, libgnomeui, GConf, gnome_vfs, gtk
+, decryptSslTraffic ? false
 }:
 
 with stdenv.lib;
 
+let system-x86_64 = elem stdenv.system platforms.x86_64; in
+
 stdenv.mkDerivation {
 
   name = "qtbase-${version}";
@@ -68,7 +71,9 @@ stdenv.mkDerivation {
       (substituteAll { src = ./0011-dlopen-openssl.patch; inherit openssl; })
       (substituteAll { src = ./0012-dlopen-dbus.patch; dbus_libs = dbus; })
       ./0013-xdg_config_dirs.patch
-    ];
+    ] ++ optional mesaSupported
+      (substituteAll { src = ./0014-mkspecs-libgl.patch; inherit mesa; })
+    ++ (optional decryptSslTraffic ./0100-ssl.patch);
 
   preConfigure = ''
     export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$PWD/qttools/lib:$LD_LIBRARY_PATH"
@@ -80,6 +85,7 @@ stdenv.mkDerivation {
     sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in"
 
     export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml"
+    export configureFlags+=" -docdir $out/share/doc/qt5"
   '';
 
   prefixKey = "-prefix ";
@@ -102,6 +108,7 @@ stdenv.mkDerivation {
     -strip
     -reduce-relocations
     -system-proxies
+    -pkg-config
 
     -gui
     -widgets
@@ -115,12 +122,23 @@ stdenv.mkDerivation {
     -xcb
     -qpa xcb
     -${optionalString (cups == null) "no-"}cups
+    -${optionalString (!gtkStyle) "no-"}gtkstyle
 
     -no-eglfs
     -no-directfb
     -no-linuxfb
     -no-kms
 
+    ${optionalString (!system-x86_64) "-no-sse2"}
+    -no-sse3
+    -no-ssse3
+    -no-sse4.1
+    -no-sse4.2
+    -no-avx
+    -no-avx2
+    -no-mips_dsp
+    -no-mips_dspr2
+
     -system-zlib
     -system-libpng
     -system-libjpeg
@@ -139,8 +157,13 @@ stdenv.mkDerivation {
     -${optionalString (buildTests == false) "no"}make tests
   '';
 
+  # PostgreSQL autodetection fails sporadically because Qt omits the "-lpq" flag
+  # if dependency paths contain the string "pq", which can occur in the hash.
+  # To prevent these failures, we need to override PostgreSQL detection.
+  PSQL_LIBS = optionalString (postgresql != null) "-L${postgresql}/lib -lpq";
+
   propagatedBuildInputs = [
-    xlibs.libXcomposite libX11 libxcb libXext libXrender libXi
+    xorg.libXcomposite libX11 libxcb libXext libXrender libXi
     fontconfig freetype openssl dbus.libs glib udev libxml2 libxslt pcre
     zlib libjpeg libpng libtiff sqlite icu
     xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon
@@ -150,9 +173,12 @@ stdenv.mkDerivation {
   ++ optionals mesaSupported [ mesa mesa_glu ]
   ++ optional (cups != null) cups
   ++ optional (mysql != null) mysql.lib
-  ++ optional (postgresql != null) postgresql;
+  ++ optional (postgresql != null) postgresql
+  ++ optionals gtkStyle [gnome_vfs libgnomeui gtk GConf];
 
-  buildInputs = [ gdb bison flex gperf ruby ];
+  buildInputs =
+    [ bison flex gperf ruby ]
+    ++ optional developerBuild gdb;
 
   nativeBuildInputs = [ python perl pkgconfig ];
 
@@ -167,12 +193,11 @@ stdenv.mkDerivation {
 
       # Don't retain build-time dependencies like gdb and ruby.
       sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri
-
-      mkdir -p "$out/nix-support"
-      substitute ${./setup-hook.sh} "$out/nix-support/setup-hook" \
-        --subst-var out --subst-var-by lndir "${lndir}"
     '';
 
+  inherit lndir;
+  setupHook = ./setup-hook.sh;
+
   enableParallelBuilding = true; # often fails on Hydra, as well as qt4
 
   meta = {
diff --git a/pkgs/development/libraries/qt-5/5.4/setup-hook.sh b/pkgs/development/libraries/qt-5/5.4/setup-hook.sh
index 8ab4071becf..3bc4890f3bb 100644
--- a/pkgs/development/libraries/qt-5/5.4/setup-hook.sh
+++ b/pkgs/development/libraries/qt-5/5.4/setup-hook.sh
@@ -20,16 +20,31 @@ addQtModule() {
             fi
         fi
 
-        if [[ -n $qtSubmodule ]] && [[ -d "$1/lib" ]]; then
+        if [[ -d "$1/lib" ]]; then
             @lndir@/bin/lndir -silent "$1/lib" "$qtOut/lib"
-            find "$1/lib" -printf 'lib/%P\n' >> "$qtOut/nix-support/qt-inputs"
-        fi
+            if [[ -n $qtSubmodule ]]; then
+                find "$1/lib" -printf 'lib/%P\n' >> "$qtOut/nix-support/qt-inputs"
+            fi
 
-        propagatedBuildInputs+=" $1"
-    fi
+            if [[ -d "$1/lib/qt5/plugins" ]]; then
+                QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}$1/lib/qt5/plugins";
+            fi
+
+            if [[ -d "$1/lib/qt5/imports" ]]; then
+                QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}$1/lib/qt5/imports";
+            fi
 
-    if [[ -d "$1/lib/qt5/qml" ]] || [[ -d "$1/lib/qt5/plugins" ]] || [[ -d "$1/lib/qt5/imports" ]]; then
-        propagatedUserEnvPkgs+=" $1"
+            if [[ -d "$1/lib/qt5/qml" ]]; then
+                QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}$1/lib/qt5/qml";
+            fi
+        fi
+
+        if [[ -d "$1/share" ]]; then
+            @lndir@/bin/lndir -silent "$1/share" "$qtOut/share"
+            if [[ -n $qtSubmodule ]]; then
+                find "$1/share" -printf 'share/%P\n' >> "$qtOut/nix-support/qt-inputs"
+            fi
+        fi
     fi
 }
 
@@ -44,16 +59,19 @@ else
     qtOut=$out
 fi
 
-mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib"
+mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" \
+         "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share"
 
 cp "@out@/bin/qmake" "$qtOut/bin"
 cat >"$qtOut/bin/qt.conf" <<EOF
 [Paths]
 Prefix = $qtOut
-Plugins = $qtOut/lib/qt5/plugins
-Imports = $qtOut/lib/qt5/imports
-Qml2Imports = $qtOut/lib/qt5/qml
+Plugins = lib/qt5/plugins
+Imports = lib/qt5/imports
+Qml2Imports = lib/qt5/qml
+Documentation = share/doc/qt5
 EOF
+export QMAKE="$qtOut/bin/qmake"
 
 envHooks+=(addQtModule)
 preConfigurePhases+=" setQMakePath"