From 1402c20bfd59d0584884b74d53e8cb1214c259e1 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 19 Dec 2015 16:20:27 -0600 Subject: [PATCH] qt54: backport Qt infrastructure changes from Qt 5.5 --- .../libraries/qt-5/5.4/0003-glib-2.32.patch | 25 -- .../qt-5/5.4/0004-dlopen-resolv.patch | 39 -- .../libraries/qt-5/5.4/0005-dlopen-gl.patch | 25 -- .../qt-5/5.4/0010-dlopen-libXcursor.patch | 29 -- .../libraries/qt-5/5.4/0012-dlopen-dbus.patch | 13 - .../qt-5/5.4/0014-mkspecs-libgl.patch | 17 - .../libraries/qt-5/5.4/0100-ssl.patch | 13 - .../libraries/qt-5/5.4/default.nix | 400 ++++-------------- .../libraries/qt-5/5.4/fetchsrcs.sh | 47 ++ .../libraries/qt-5/5.4/make-qt-wrapper.sh | 42 ++ .../libraries/qt-5/5.4/manifest.json | 301 ------------- .../libraries/qt-5/5.4/manifest.sh | 9 - .../libraries/qt-5/5.4/qt-submodule.nix | 54 --- .../development/libraries/qt-5/5.4/qtbase.nix | 211 --------- .../qt-5/5.4/qtbase/compose-search-path.patch | 16 + .../qt-5/5.4/qtbase/decrypt-ssl-traffic.patch | 13 + .../libraries/qt-5/5.4/qtbase/default.nix | 224 ++++++++++ .../qt-5/5.4/qtbase/dlopen-dbus.patch | 13 + .../libraries/qt-5/5.4/qtbase/dlopen-gl.patch | 17 + .../dlopen-gtkstyle.patch} | 37 +- .../qt-5/5.4/qtbase/dlopen-libXcursor.patch | 17 + .../dlopen-openssl.patch} | 12 +- .../qt-5/5.4/qtbase/dlopen-resolv.patch | 26 ++ .../qt-5/5.4/qtbase/mkspecs-libgl.patch | 15 + .../qtbase/nix-profiles-library-paths.patch | 26 ++ .../libraries/qt-5/5.4/qtbase/series | 8 + .../libraries/qt-5/5.4/qtbase/setup-hook.sh | 100 +++++ .../{0006-tzdir.patch => qtbase/tzdir.patch} | 24 +- .../xdg-config-dirs.patch} | 20 +- .../libraries/qt-5/5.4/qtconnectivity.nix | 6 + .../0001-nix-profiles-import-paths.patch | 37 ++ .../qt-5/5.4/qtdeclarative/default.nix | 8 + pkgs/development/libraries/qt-5/5.4/qtdoc.nix | 6 + .../libraries/qt-5/5.4/qtenginio.nix | 6 + .../libraries/qt-5/5.4/qtgraphicaleffects.nix | 6 + .../libraries/qt-5/5.4/qtimageformats.nix | 6 + .../libraries/qt-5/5.4/qtlocation.nix | 6 + .../libraries/qt-5/5.4/qtmultimedia.nix | 12 + .../0001-nix-profiles-import-paths.patch | 37 ++ .../libraries/qt-5/5.4/qtquick1/default.nix | 7 + .../libraries/qt-5/5.4/qtquickcontrols.nix | 6 + .../qt-5/5.4/qtscript/0001-glib-2.32.patch | 25 ++ .../libraries/qt-5/5.4/qtscript/default.nix | 7 + .../libraries/qt-5/5.4/qtsensors.nix | 6 + .../0001-dlopen-serialport-udev.patch} | 20 +- .../qt-5/5.4/qtserialport/default.nix | 7 + pkgs/development/libraries/qt-5/5.4/qtsvg.nix | 6 + .../libraries/qt-5/5.4/qttools.nix | 6 + .../libraries/qt-5/5.4/qttranslations.nix | 6 + .../libraries/qt-5/5.4/qtwebkit-examples.nix | 6 + .../0001-dlopen-webkit-nsplugin.patch} | 36 +- .../0002-dlopen-webkit-gtk.patch} | 16 +- .../0003-dlopen-webkit-udev.patch} | 16 +- .../libraries/qt-5/5.4/qtwebkit/default.nix | 33 ++ .../libraries/qt-5/5.4/qtwebsockets.nix | 6 + .../libraries/qt-5/5.4/qtx11extras.nix | 6 + .../libraries/qt-5/5.4/qtxmlpatterns.nix | 6 + .../libraries/qt-5/5.4/setup-hook.sh | 77 ---- pkgs/development/libraries/qt-5/5.4/srcs.nix | 245 +++++++++++ pkgs/top-level/all-packages.nix | 2 +- 60 files changed, 1225 insertions(+), 1243 deletions(-) delete mode 100644 pkgs/development/libraries/qt-5/5.4/0003-glib-2.32.patch delete mode 100644 pkgs/development/libraries/qt-5/5.4/0004-dlopen-resolv.patch delete mode 100644 pkgs/development/libraries/qt-5/5.4/0005-dlopen-gl.patch delete mode 100644 pkgs/development/libraries/qt-5/5.4/0010-dlopen-libXcursor.patch delete mode 100644 pkgs/development/libraries/qt-5/5.4/0012-dlopen-dbus.patch delete mode 100644 pkgs/development/libraries/qt-5/5.4/0014-mkspecs-libgl.patch delete mode 100644 pkgs/development/libraries/qt-5/5.4/0100-ssl.patch create mode 100755 pkgs/development/libraries/qt-5/5.4/fetchsrcs.sh create mode 100644 pkgs/development/libraries/qt-5/5.4/make-qt-wrapper.sh delete mode 100644 pkgs/development/libraries/qt-5/5.4/manifest.json delete mode 100755 pkgs/development/libraries/qt-5/5.4/manifest.sh delete mode 100644 pkgs/development/libraries/qt-5/5.4/qt-submodule.nix delete mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/compose-search-path.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/decrypt-ssl-traffic.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/default.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-dbus.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch rename pkgs/development/libraries/qt-5/5.4/{0001-dlopen-gtkstyle.patch => qtbase/dlopen-gtkstyle.patch} (72%) create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-libXcursor.patch rename pkgs/development/libraries/qt-5/5.4/{0011-dlopen-openssl.patch => qtbase/dlopen-openssl.patch} (75%) create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-resolv.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/nix-profiles-library-paths.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/series create mode 100644 pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh rename pkgs/development/libraries/qt-5/5.4/{0006-tzdir.patch => qtbase/tzdir.patch} (68%) rename pkgs/development/libraries/qt-5/5.4/{0013-xdg_config_dirs.patch => qtbase/xdg-config-dirs.patch} (68%) create mode 100644 pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtdeclarative/0001-nix-profiles-import-paths.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtdoc.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtenginio.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtgraphicaleffects.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtimageformats.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtlocation.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtquick1/0001-nix-profiles-import-paths.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtquickcontrols.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtscript/0001-glib-2.32.patch create mode 100644 pkgs/development/libraries/qt-5/5.4/qtscript/default.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtsensors.nix rename pkgs/development/libraries/qt-5/5.4/{0009-dlopen-serialport-udev.patch => qtserialport/0001-dlopen-serialport-udev.patch} (60%) create mode 100644 pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtsvg.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qttools.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qttranslations.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtwebkit-examples.nix rename pkgs/development/libraries/qt-5/5.4/{0002-dlopen-webkit-nsplugin.patch => qtwebkit/0001-dlopen-webkit-nsplugin.patch} (50%) rename pkgs/development/libraries/qt-5/5.4/{0007-dlopen-webkit-gtk.patch => qtwebkit/0002-dlopen-webkit-gtk.patch} (50%) rename pkgs/development/libraries/qt-5/5.4/{0008-dlopen-webkit-udev.patch => qtwebkit/0003-dlopen-webkit-udev.patch} (62%) create mode 100644 pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtx11extras.nix create mode 100644 pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix delete mode 100644 pkgs/development/libraries/qt-5/5.4/setup-hook.sh create mode 100644 pkgs/development/libraries/qt-5/5.4/srcs.nix diff --git a/pkgs/development/libraries/qt-5/5.4/0003-glib-2.32.patch b/pkgs/development/libraries/qt-5/5.4/0003-glib-2.32.patch deleted file mode 100644 index 4abb69da4d8..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/0003-glib-2.32.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a41c3e3a3a1ce4b373b1bbb98f3a835e9e8a0718 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:22:39 -0600 -Subject: [PATCH] glib-2.32 - ---- - qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h -index 1f6d25e..087c3fb 100644 ---- a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h -+++ b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h -@@ -81,7 +81,7 @@ - #include - #elif PLATFORM(GTK) - #include --typedef struct _GMutex GMutex; -+typedef union _GMutex GMutex; - typedef struct _GCond GCond; - #endif - --- -2.1.3 - diff --git a/pkgs/development/libraries/qt-5/5.4/0004-dlopen-resolv.patch b/pkgs/development/libraries/qt-5/5.4/0004-dlopen-resolv.patch deleted file mode 100644 index e6b921b771d..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/0004-dlopen-resolv.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 63af41c6eeca28c911c13b1a77afeaf860863c2d Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:22:55 -0600 -Subject: [PATCH] dlopen-resolv - ---- - qtbase/src/network/kernel/qdnslookup_unix.cpp | 2 +- - qtbase/src/network/kernel/qhostinfo_unix.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/qtbase/src/network/kernel/qdnslookup_unix.cpp b/qtbase/src/network/kernel/qdnslookup_unix.cpp -index 8c5a0eb..27ebf16 100644 ---- a/qtbase/src/network/kernel/qdnslookup_unix.cpp -+++ b/qtbase/src/network/kernel/qdnslookup_unix.cpp -@@ -87,7 +87,7 @@ static void resolveLibrary() - if (!lib.load()) - #endif - { -- lib.setFileName(QLatin1String("resolv")); -+ lib.setFileName(QLatin1String("@glibc/lib/resolv")); - if (!lib.load()) - return; - } -diff --git a/qtbase/src/network/kernel/qhostinfo_unix.cpp b/qtbase/src/network/kernel/qhostinfo_unix.cpp -index df8c8b1..613d0e0 100644 ---- a/qtbase/src/network/kernel/qhostinfo_unix.cpp -+++ b/qtbase/src/network/kernel/qhostinfo_unix.cpp -@@ -103,7 +103,7 @@ static void resolveLibrary() - if (!lib.load()) - #endif - { -- lib.setFileName(QLatin1String("resolv")); -+ lib.setFileName(QLatin1String("@glibc@/lib/libresolv")); - if (!lib.load()) - return; - } --- -2.1.3 - diff --git a/pkgs/development/libraries/qt-5/5.4/0005-dlopen-gl.patch b/pkgs/development/libraries/qt-5/5.4/0005-dlopen-gl.patch deleted file mode 100644 index d112427bdd6..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/0005-dlopen-gl.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 6aaf6858bf817172a4c503158e1701c4837ee790 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:23:08 -0600 -Subject: [PATCH] dlopen-gl - ---- - qtbase/src/plugins/platforms/xcb/qglxintegration.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp b/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp -index 67235e0..2220a2e 100644 ---- a/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp -+++ b/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp -@@ -434,7 +434,7 @@ void (*QGLXContext::getProcAddress(const QByteArray &procName)) () - { - extern const QString qt_gl_library_name(); - // QLibrary lib(qt_gl_library_name()); -- QLibrary lib(QLatin1String("GL")); -+ QLibrary lib(QLatin1String("@openglDriver@/lib/libGL")); - glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB"); - } - } --- -2.1.3 - diff --git a/pkgs/development/libraries/qt-5/5.4/0010-dlopen-libXcursor.patch b/pkgs/development/libraries/qt-5/5.4/0010-dlopen-libXcursor.patch deleted file mode 100644 index 49ade86fae3..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/0010-dlopen-libXcursor.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b56e3737ca97e3de664603976989da4419297eb3 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:33:51 -0600 -Subject: [PATCH] dlopen-libXcursor - ---- - qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp b/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp -index 6dbac90..4b23fc2 100644 ---- a/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp -+++ b/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp -@@ -305,10 +305,10 @@ QXcbCursor::QXcbCursor(QXcbConnection *conn, QXcbScreen *screen) - #ifdef XCB_USE_XLIB - static bool function_ptrs_not_initialized = true; - if (function_ptrs_not_initialized) { -- QLibrary xcursorLib(QLatin1String("Xcursor"), 1); -+ QLibrary xcursorLib(QLatin1String("@libXcursor@/lib/libXcursor"), 1); - bool xcursorFound = xcursorLib.load(); - if (!xcursorFound) { // try without the version number -- xcursorLib.setFileName(QLatin1String("Xcursor")); -+ xcursorLib.setFileName(QLatin1String("@libXcursor@/lib/Xcursor")); - xcursorFound = xcursorLib.load(); - } - if (xcursorFound) { --- -2.1.3 - diff --git a/pkgs/development/libraries/qt-5/5.4/0012-dlopen-dbus.patch b/pkgs/development/libraries/qt-5/5.4/0012-dlopen-dbus.patch deleted file mode 100644 index 77eb7bc85af..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/0012-dlopen-dbus.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/qtbase/src/dbus/qdbus_symbols.cpp b/qtbase/src/dbus/qdbus_symbols.cpp -index 6764309..33f25f9 100644 ---- a/qtbase/src/dbus/qdbus_symbols.cpp -+++ b/qtbase/src/dbus/qdbus_symbols.cpp -@@ -88,7 +88,7 @@ bool qdbus_loadLibDBus() - #ifdef Q_OS_WIN - QLatin1String("dbus-1"), - #endif -- QLatin1String("libdbus-1") -+ QLatin1String("@dbus_libs@/lib/libdbus-1") - }; - - lib->unload(); 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 deleted file mode 100644 index 1fc4bbd6076..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/0014-mkspecs-libgl.patch +++ /dev/null @@ -1,17 +0,0 @@ -Ensure Qt knows where libGL is. - -Author: Bjørn Forsman -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 deleted file mode 100644 index 4607274de74..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/0100-ssl.patch +++ /dev/null @@ -1,13 +0,0 @@ -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 136c352d1aa..4bb24427b9f 100644 --- a/pkgs/development/libraries/qt-5/5.4/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/default.nix @@ -1,8 +1,8 @@ # Maintainer's Notes: # # Minor updates: -# 1. Edit ./manifest.sh to point to the updated URL. -# 2. Run ./manifest.sh. +# 1. Edit ./fetchsrcs.sh to point to the updated URL. +# 2. Run ./fetchsrcs.sh. # 3. Build and enjoy. # # Major updates: @@ -11,350 +11,98 @@ # if it exists. Then follow the minor update instructions. Be sure to check if # any new components have been added and package them as necessary. -{ autonix, fetchurl, newScope, stdenv - -, bison2 -, mesa_noglu -, cups -, gnome +{ pkgs # options , developerBuild ? false , decryptSslTraffic ? false }: -with autonix; +let inherit (pkgs) makeSetupHook makeWrapper stdenv; in + with stdenv.lib; let - srcs = + + mirror = "http://download.qt.io"; + srcs = import ./srcs.nix { inherit mirror; inherit (pkgs) fetchurl; }; + + qtSubmodule = args: 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; + inherit (args) name; + inherit (srcs."${args.name}") version src; + inherit (pkgs.stdenv) mkDerivation; + in mkDerivation (args // { + name = "${name}-${version}"; + inherit src; - version = "5.4.2"; + propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []); - callPackage = newScope (self // { inherit qtSubmodule; }); + NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true; + dontAddPrefix = args.dontAddPrefix or true; + dontFixLibtool = args.dontFixLibtool or true; + configureScript = args.configureScript or "qmake"; - qtSubmodule = callPackage ./qt-submodule.nix { - inherit srcs version; - inherit (stdenv) mkDerivation; - }; + enableParallelBuilding = args.enableParallelBuilding or true; - self = - { + meta = { + homepage = http://qt-project.org; + description = "A cross-platform application framework for C++"; + license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; + maintainers = with maintainers; [ bbenoist qknight ttuegel ]; + platforms = platforms.linux; + } // (args.meta or {}); + }); - activeqt = callPackage - ( - { qtSubmodule, base }: + addPackages = self: with self; + let + callPackage = self.newScope { inherit qtSubmodule srcs; }; + in { - qtSubmodule { - name = "qtactiveqt"; - qtInputs = [ base ]; - } - ) - {}; - - /* androidextras = not packaged */ - - base = callPackage ./qtbase.nix { - mesa = mesa_noglu; - cups = if stdenv.isLinux then cups else null; + qtbase = callPackage ./qtbase { + mesa = pkgs.mesa_noglu; + cups = if stdenv.isLinux then pkgs.cups else null; # 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 decryptSslTraffic; + inherit (pkgs.gnome) libgnomeui GConf gnome_vfs; + bison = pkgs.bison2; # error: too few arguments to function 'int yylex(... + inherit developerBuild decryptSslTraffic; }; - connectivity = callPackage - ( - { qtSubmodule, base, declarative }: + /* qt3d = not packaged */ + /* qtactiveqt = not packaged */ + /* qtandroidextras = not packaged */ + /* qtcanvas3d = not packaged */ + qtconnectivity = callPackage ./qtconnectivity.nix {}; + qtdeclarative = callPackage ./qtdeclarative {}; + qtdoc = callPackage ./qtdoc.nix {}; + qtenginio = callPackage ./qtenginio.nix {}; + qtgraphicaleffects = callPackage ./qtgraphicaleffects.nix {}; + qtimageformats = callPackage ./qtimageformats.nix {}; + qtlocation = callPackage ./qtlocation.nix {}; + /* qtmacextras = not packaged */ + qtmultimedia = callPackage ./qtmultimedia.nix { + inherit (pkgs.gst_all_1) gstreamer gst-plugins-base; + }; + qtquick1 = callPackage ./qtquick1 {}; + qtquickcontrols = callPackage ./qtquickcontrols.nix {}; + qtscript = callPackage ./qtscript {}; + qtsensors = callPackage ./qtsensors.nix {}; + qtserialport = callPackage ./qtserialport {}; + qtsvg = callPackage ./qtsvg.nix {}; + qttools = callPackage ./qttools.nix {}; + qttranslations = callPackage ./qttranslations.nix {}; + /* qtwayland = not packaged */ + /* qtwebchannel = not packaged */ + /* qtwebengine = not packaged */ + qtwebkit = callPackage ./qtwebkit {}; + qtwebkit-examples = callPackage ./qtwebkit-examples.nix {}; + qtwebsockets = callPackage ./qtwebsockets.nix {}; + /* qtwinextras = not packaged */ + qtx11extras = callPackage ./qtx11extras.nix {}; + qtxmlpatterns = callPackage ./qtxmlpatterns.nix {}; - qtSubmodule { - name = "qtconnectivity"; - qtInputs = [ base declarative ]; - } - ) - {}; - - declarative = callPackage - ( - { qtSubmodule, python, base, svg, xmlpatterns }: - - qtSubmodule { - name = "qtdeclarative"; - qtInputs = [ base svg xmlpatterns ]; - nativeBuildInputs = [ python ]; - } - ) - {}; - - doc = callPackage - ( - { qtSubmodule, declarative }: - - qtSubmodule { - name = "qtdoc"; - qtInputs = [ declarative ]; - } - ) - {}; - - enginio = callPackage - ( - { qtSubmodule, declarative }: - - qtSubmodule { - name = "qtenginio"; - qtInputs = [ declarative ]; - } - ) - {}; - - graphicaleffects = callPackage - ( - { qtSubmodule, declarative }: - - qtSubmodule { - name = "qtgraphicaleffects"; - qtInputs = [ declarative ]; - } - ) - {}; - - imageformats = callPackage - ( - { qtSubmodule, base }: - - qtSubmodule { - name = "qtimageformats"; - qtInputs = [ base ]; - } - ) - {}; - - location = callPackage - ( - { qtSubmodule, base, multimedia }: - - qtSubmodule { - name = "qtlocation"; - qtInputs = [ base multimedia ]; - } - ) - {}; - - /* macextras = not packaged */ - - multimedia = callPackage - ( - { qtSubmodule, base, declarative, pkgconfig - , alsaLib, gstreamer, gst_plugins_base, libpulseaudio - }: - - qtSubmodule { - name = "qtmultimedia"; - qtInputs = [ base declarative ]; - buildInputs = [ - pkgconfig alsaLib gstreamer gst_plugins_base libpulseaudio - ]; - } - ) - {}; - - quick1 = callPackage - ( - { qtSubmodule, script, svg, webkit, xmlpatterns }: - - qtSubmodule { - name = "qtquick1"; - qtInputs = [ script svg webkit xmlpatterns ]; - } - ) - {}; - - quickcontrols = callPackage - ( - { qtSubmodule, declarative }: - - qtSubmodule { - name = "qtquickcontrols"; - qtInputs = [ declarative ]; - } - ) - {}; - - script = callPackage - ( - { qtSubmodule, base, tools }: - - qtSubmodule { - name = "qtscript"; - qtInputs = [ base tools ]; - patchFlags = "-p2"; # patches originally for monolithic build - patches = [ ./0003-glib-2.32.patch ]; - } - ) - {}; - - sensors = callPackage - ( - { qtSubmodule, base, declarative }: - - qtSubmodule { - name = "qtsensors"; - qtInputs = [ base declarative ]; - } - ) - {}; - - serialport = callPackage - ( - { qtSubmodule, base }: - - qtSubmodule { - name = "qtserialport"; - qtInputs = [ base ]; - patchFlags = "-p2"; # patches originally for monolithic build - patches = [ ./0009-dlopen-serialport-udev.patch ]; - } - ) - {}; - - svg = callPackage - ( - { qtSubmodule, base }: - - qtSubmodule { - name = "qtsvg"; - qtInputs = [ base ]; - } - ) - {}; - - tools = callPackage - ( - { qtSubmodule, activeqt, base, declarative, webkit }: - - qtSubmodule { - name = "qttools"; - qtInputs = [ activeqt base declarative webkit ]; - } - ) - {}; - - translations = callPackage - ( - { qtSubmodule, tools }: - - qtSubmodule { - name = "qttranslations"; - qtInputs = [ tools ]; - } - ) - {}; - - /* wayland = not packaged */ - - /* webchannel = not packaged */ - - /* webengine = not packaged */ - - webkit = callPackage - ( - { qtSubmodule, declarative, location, multimedia, sensors - , fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt - , sqlite, udev - , bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby - , substituteAll - , flashplayerFix ? false - }: - - qtSubmodule { - name = "qtwebkit"; - qtInputs = [ declarative location multimedia sensors ]; - buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite ]; - nativeBuildInputs = [ - bison2 flex gdb gperf perl pkgconfig python ruby - ]; - patchFlags = "-p2"; # patches originally for monolithic build - patches = - optional flashplayerFix - (substituteAll - { - src = ./0002-dlopen-webkit-nsplugin.patch; - inherit gtk gdk_pixbuf; - } - ) - ++ optional flashplayerFix - (substituteAll - { - src = ./0007-dlopen-webkit-gtk.patch; - inherit gtk; - } - ) - ++ [ - (substituteAll - { - src = ./0008-dlopen-webkit-udev.patch; - inherit udev; - } - ) - ]; - } - ) - {}; - - webkit-examples = callPackage - ( - { qtSubmodule, tools, webkit }: - - qtSubmodule { - name = "qtwebkit-examples"; - qtInputs = [ tools webkit ]; - } - ) - {}; - - websockets = callPackage - ( - { qtSubmodule, base, declarative }: - - qtSubmodule { - name = "qtwebsockets"; - qtInputs = [ base declarative ]; - } - ) - {}; - - /* winextras = not packaged */ - - x11extras = callPackage - ( - { qtSubmodule, base }: - - qtSubmodule { - name = "qtx11extras"; - qtInputs = [ base ]; - } - ) - {}; - - xmlpatterns = callPackage - ( - { qtSubmodule, base }: - - qtSubmodule { - name = "qtxmlpatterns"; - qtInputs = [ base ]; - } - ) - {}; + makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; }; -in self +in makeScope pkgs.newScope addPackages diff --git a/pkgs/development/libraries/qt-5/5.4/fetchsrcs.sh b/pkgs/development/libraries/qt-5/5.4/fetchsrcs.sh new file mode 100755 index 00000000000..0fd5bb8d5fe --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/fetchsrcs.sh @@ -0,0 +1,47 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash -p coreutils findutils gnused nix wget + +set -x + +# The trailing slash at the end is necessary! +RELEASE_URL="http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/" +EXTRA_WGET_ARGS='-A *.tar.xz' + +mkdir tmp; cd tmp + +wget -nH -r -c --no-parent $RELEASE_URL $EXTRA_WGET_ARGS + +cat >../srcs.nix <>../srcs.nix <>../srcs.nix + +cd .. diff --git a/pkgs/development/libraries/qt-5/5.4/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/5.4/make-qt-wrapper.sh new file mode 100644 index 00000000000..d61665455bf --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/make-qt-wrapper.sh @@ -0,0 +1,42 @@ +addQtDependency() { + addToSearchPath QT_PLUGIN_PATH "$1/lib/qt5/plugins" + addToSearchPath QML_IMPORT_PATH "$1/lib/qt5/imports" + addToSearchPath QML2_IMPORT_PATH "$1/lib/qt5/qml" + addToSearchPath XDG_CONFIG_DIRS "$1/etc/xdg" + addToSearchPath XDG_DATA_DIRS "$1/share" +} + +wrapQtProgram() { + local prog="$1" + shift + wrapProgram "$prog" \ + --prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \ + --prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \ + --prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \ + --prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \ + --prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \ + "$@" +} + +makeQtWrapper() { + local old="$1" + local new="$2" + shift + shift + makeWrapper "$old" "$new" \ + --prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \ + --prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \ + --prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \ + --prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \ + --prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \ + "$@" +} + +# cannot use addToSearchPath because these directories may not exist yet +export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}$out/lib/qt5/plugins" +export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}$out/lib/qt5/imports" +export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}$out/lib/qt5/qml" +export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}$out/etc/xdg" +export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}$out/share" + +envHooks+=(addQtDependency) diff --git a/pkgs/development/libraries/qt-5/5.4/manifest.json b/pkgs/development/libraries/qt-5/5.4/manifest.json deleted file mode 100644 index 83dedb41706..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/manifest.json +++ /dev/null @@ -1,301 +0,0 @@ -[ - { - "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.sh b/pkgs/development/libraries/qt-5/5.4/manifest.sh deleted file mode 100755 index 780269a6417..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/manifest.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -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 ../../../../.. --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 deleted file mode 100644 index 4012b637e28..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/qt-submodule.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ stdenv, mkDerivation -, srcs, version -, lndir -, base -}: - -with stdenv.lib; - -args: - -mkDerivation (args // { - - name = "${args.name}-${version}"; - inherit version; - - srcs = args.srcs or [srcs."${args.name}-opensource-src"]; - - qtSubmodule = args.qtSubmodule or true; - dontAddPrefix = args.dontAddPrefix or true; - dontFixLibtool = args.dontFixLibtool or true; - configureScript = args.configureScript or "qmake"; - - postInstall = '' - rm "$out/bin/qmake" "$out/bin/qt.conf" - - cat "$out/nix-support/qt-inputs" | while read file; do - if [[ -h "$out/$file" ]]; then - rm "$out/$file" - fi - done - - cat "$out/nix-support/qt-inputs" | while read file; do - if [[ -d "$out/$file" ]]; then - rmdir --ignore-fail-on-non-empty -p "$out/$file" - fi - done - - rm "$out/nix-support/qt-inputs" - ''; - - propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []); - - enableParallelBuilding = - args.enableParallelBuilding or true; # often fails on Hydra, as well as qt4 - - meta = args.meta or { - homepage = http://qt-project.org; - description = "A cross-platform application framework for C++"; - license = "GPL/LGPL"; - maintainers = with maintainers; [ bbenoist qknight ttuegel ]; - platforms = platforms.linux; - }; - -}) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase.nix b/pkgs/development/libraries/qt-5/5.4/qtbase.nix deleted file mode 100644 index 30d53eb874b..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/qtbase.nix +++ /dev/null @@ -1,211 +0,0 @@ -{ stdenv, substituteAll -, srcs, version - -, 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 - -, coreutils, bison, flex, gdb, gperf, lndir, ruby -, python, perl, pkgconfig - -# optional dependencies -, cups ? null -, mysql ? null, postgresql ? null - -# options -, mesaSupported, mesa, mesa_glu -, buildDocs ? false -, buildExamples ? false -, 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}"; - inherit version; - - srcs = with srcs; [ qt5-opensource-src qtbase-opensource-src ]; - sourceRoot = "qt-everywhere-opensource-src-${version}"; - - postUnpack = '' - mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase - ''; - - prePatch = '' - substituteInPlace configure --replace /bin/pwd pwd - substituteInPlace qtbase/configure --replace /bin/pwd pwd - substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls - substituteInPlace qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \ - --replace /usr/share/X11/locale ${libX11}/share/X11/locale \ - --replace /usr/lib/X11/locale ${libX11}/share/X11/locale - sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf - ''; - - patches = - optional gtkStyle - (substituteAll { - src = ./0001-dlopen-gtkstyle.patch; - # substituteAll ignores env vars starting with capital letter - gconf = GConf; - inherit gnome_vfs libgnomeui gtk; - }) - ++ [ - (substituteAll { - src = ./0004-dlopen-resolv.patch; - glibc = stdenv.cc.libc; - }) - (substituteAll { - src = ./0005-dlopen-gl.patch; - openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path"; - }) - ./0006-tzdir.patch - (substituteAll { src = ./0010-dlopen-libXcursor.patch; inherit libXcursor; }) - (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" - export MAKEFLAGS=-j$NIX_BUILD_CORES - - sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/src/corelib/Qt5Config.cmake.in" - sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/src/corelib/Qt5CoreMacros.cmake" - sed -i 's/NO_DEFAULT_PATH//' "qtbase/src/gui/Qt5GuiConfigExtras.cmake.in" - 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 "; - - # -no-eglfs, -no-directfb, -no-linuxfb and -no-kms because of the current minimalist mesa - # TODO Remove obsolete and useless flags once the build will be totally mastered - configureFlags = '' - -verbose - -confirm-license - -opensource - - -release - -shared - -c++11 - ${optionalString developerBuild "-developer-build"} - -largefile - -accessibility - -rpath - -optimized-qmake - -strip - -reduce-relocations - -system-proxies - -pkg-config - - -gui - -widgets - -opengl desktop - -qml-debug - -nis - -iconv - -icu - -pch - -glib - -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 - -system-xcb - -system-xkbcommon - -openssl-linked - -dbus-linked - - -system-sqlite - -${if mysql != null then "plugin" else "no"}-sql-mysql - -${if postgresql != null then "plugin" else "no"}-sql-psql - - -make libs - -make tools - -${optionalString (buildExamples == false) "no"}make examples - -${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 = [ - 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 - ] - # Qt doesn't directly need GLU (just GL), but many apps use, it's small and - # doesn't remain a runtime-dep if not used - ++ optionals mesaSupported [ mesa mesa_glu ] - ++ optional (cups != null) cups - ++ optional (mysql != null) mysql.lib - ++ optional (postgresql != null) postgresql - ++ optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; - - buildInputs = - [ bison flex gperf ruby ] - ++ optional developerBuild gdb; - - nativeBuildInputs = [ python perl pkgconfig ]; - - # freetype-2.5.4 changed signedness of some struct fields - NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; - - postInstall = - '' - ${optionalString buildDocs '' - make docs && make install_docs - ''} - - # Don't retain build-time dependencies like gdb and ruby. - sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri - ''; - - inherit lndir; - setupHook = ./setup-hook.sh; - - enableParallelBuilding = true; # often fails on Hydra, as well as qt4 - - meta = { - homepage = http://qt-project.org; - description = "A cross-platform application framework for C++"; - license = "GPL/LGPL"; - maintainers = with maintainers; [ bbenoist qknight ttuegel ]; - platforms = platforms.linux; - }; - -} diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/compose-search-path.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/compose-search-path.patch new file mode 100644 index 00000000000..08d12087f08 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/compose-search-path.patch @@ -0,0 +1,16 @@ +Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp ++++ qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp +@@ -68,10 +68,7 @@ void TableGenerator::initPossibleLocatio + // the QTCOMPOSE environment variable + if (qEnvironmentVariableIsSet("QTCOMPOSE")) + m_possibleLocations.append(QString::fromLocal8Bit(qgetenv("QTCOMPOSE"))); +- m_possibleLocations.append(QStringLiteral("/usr/share/X11/locale")); +- m_possibleLocations.append(QStringLiteral("/usr/local/share/X11/locale")); +- m_possibleLocations.append(QStringLiteral("/usr/lib/X11/locale")); +- m_possibleLocations.append(QStringLiteral("/usr/local/lib/X11/locale")); ++ m_possibleLocations.append(QStringLiteral("${libX11}/share/X11/locale")); + m_possibleLocations.append(QStringLiteral(X11_PREFIX "/share/X11/locale")); + m_possibleLocations.append(QStringLiteral(X11_PREFIX "/lib/X11/locale")); + } diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/decrypt-ssl-traffic.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/decrypt-ssl-traffic.patch new file mode 100644 index 00000000000..10e7e01a07f --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/decrypt-ssl-traffic.patch @@ -0,0 +1,13 @@ +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/network/ssl/qsslsocket_openssl.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/network/ssl/qsslsocket_openssl.cpp ++++ qt-everywhere-opensource-src-5.4.2/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/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix new file mode 100644 index 00000000000..36bd3822bf7 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -0,0 +1,224 @@ +{ stdenv, lib, fetchurl, copyPathsToStore, makeWrapper +, srcs + +, xlibs, 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 + +, coreutils, bison, flex, gdb, gperf, lndir, ruby +, python, perl, pkgconfig + +# optional dependencies +, cups ? null +, mysql ? null, postgresql ? null + +# options +, mesaSupported, mesa, mesa_glu +, buildDocs ? false +, buildExamples ? false +, buildTests ? false +, developerBuild ? false +, gtkStyle ? false, libgnomeui, GConf, gnome_vfs, gtk +, decryptSslTraffic ? false +}: + +let + inherit (srcs.qt5) version; + system-x86_64 = lib.elem stdenv.system lib.platforms.x86_64; +in + +stdenv.mkDerivation { + + name = "qtbase-${version}"; + inherit version; + + srcs = with srcs; [ qt5.src qtbase.src ]; + + sourceRoot = "qt-everywhere-opensource-src-${version}"; + + postUnpack = '' + mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase + ''; + + patches = + copyPathsToStore (lib.readPathsFromFile ./. ./series) + ++ lib.optional gtkStyle ./dlopen-gtkstyle.patch + ++ lib.optional decryptSslTraffic ./decrypt-ssl-traffic.patch + ++ lib.optional mesaSupported [ ./dlopen-gl.patch ./mkspecs-libgl.patch ]; + + postPatch = + '' + substituteInPlace configure --replace /bin/pwd pwd + substituteInPlace qtbase/configure --replace /bin/pwd pwd + substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls + sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf + + sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/src/corelib/Qt5Config.cmake.in" + sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/src/corelib/Qt5CoreMacros.cmake" + sed -i 's/NO_DEFAULT_PATH//' "qtbase/src/gui/Qt5GuiConfigExtras.cmake.in" + sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in" + + substituteInPlace qtbase/src/network/kernel/qdnslookup_unix.cpp \ + --replace "@glibc@" "${stdenv.cc.libc}" + substituteInPlace qtbase/src/network/kernel/qhostinfo_unix.cpp \ + --replace "@glibc@" "${stdenv.cc.libc}" + + substituteInPlace qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp \ + --replace "@libXcursor@" "${libXcursor}" + + substituteInPlace qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp \ + --replace "@openssl@" "${openssl}" + + substituteInPlace qtbase/src/dbus/qdbus_symbols.cpp \ + --replace "@dbus_libs@" "${dbus}" + + substituteInPlace \ + qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \ + --replace "@libX11@" "${libX11}" + '' + + lib.optionalString gtkStyle '' + substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk}" + substituteInPlace qtbase/src/widgets/styles/qgtkstyle_p.cpp \ + --replace "@gtk@" "${gtk}" \ + --replace "@gnome_vfs@" "${gnome_vfs}" \ + --replace "@libgnomeui@" "${libgnomeui}" \ + --replace "@gconf@" "${GConf}" + '' + + lib.optionalString mesaSupported '' + substituteInPlace \ + qtbase/src/plugins/platforms/xcb/qglxintegration.cpp \ + --replace "@mesa@" "${mesa}" + substituteInPlace qtbase/mkspecs/common/linux.conf --replace "@mesa@" "${mesa}" + ''; + + preConfigure = '' + export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH" + export MAKEFLAGS=-j$NIX_BUILD_CORES + + 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 "; + + # -no-eglfs, -no-directfb, -no-linuxfb and -no-kms because of the current minimalist mesa + # TODO Remove obsolete and useless flags once the build will be totally mastered + configureFlags = '' + -verbose + -confirm-license + -opensource + + -release + -shared + -c++11 + ${lib.optionalString developerBuild "-developer-build"} + -largefile + -accessibility + -rpath + -optimized-qmake + -strip + -reduce-relocations + -system-proxies + -pkg-config + + -gui + -widgets + -opengl desktop + -qml-debug + -nis + -iconv + -icu + -pch + -glib + -xcb + -qpa xcb + -${lib.optionalString (cups == null) "no-"}cups + -${lib.optionalString (!gtkStyle) "no-"}gtkstyle + + -no-eglfs + -no-directfb + -no-linuxfb + -no-kms + + ${lib.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 + -system-xcb + -system-xkbcommon + -openssl-linked + -dbus-linked + + -system-sqlite + -${if mysql != null then "plugin" else "no"}-sql-mysql + -${if postgresql != null then "plugin" else "no"}-sql-psql + + -make libs + -make tools + -${lib.optionalString (buildExamples == false) "no"}make examples + -${lib.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 = lib.optionalString (postgresql != null) "-L${postgresql}/lib -lpq"; + + propagatedBuildInputs = [ + xlibs.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 + ] + # Qt doesn't directly need GLU (just GL), but many apps use, it's small and + # doesn't remain a runtime-dep if not used + ++ lib.optionals mesaSupported [ mesa mesa_glu ] + ++ lib.optional (cups != null) cups + ++ lib.optional (mysql != null) mysql.lib + ++ lib.optional (postgresql != null) postgresql + ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; + + buildInputs = + [ bison flex gperf ruby ] + ++ lib.optional developerBuild gdb; + + nativeBuildInputs = [ python perl pkgconfig ]; + + propagatedNativeBuildInputs = [ makeWrapper ]; + + # freetype-2.5.4 changed signedness of some struct fields + NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; + + postInstall = + '' + # Don't retain build-time dependencies like gdb and ruby. + sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri + '' + + lib.optionalString buildDocs '' + make docs && make install_docs + ''; + + inherit lndir; + setupHook = ./setup-hook.sh; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = http://qt-project.org; + description = "A cross-platform application framework for C++"; + license = "GPL/LGPL"; + maintainers = with maintainers; [ bbenoist qknight ttuegel ]; + platforms = platforms.linux; + }; + +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-dbus.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-dbus.patch new file mode 100644 index 00000000000..05e98d8be71 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-dbus.patch @@ -0,0 +1,13 @@ +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/dbus/qdbus_symbols.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/dbus/qdbus_symbols.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/dbus/qdbus_symbols.cpp +@@ -88,7 +88,7 @@ bool qdbus_loadLibDBus() + #ifdef Q_OS_WIN + QLatin1String("dbus-1"), + #endif +- QLatin1String("libdbus-1") ++ QLatin1String("@dbus_libs@/lib/libdbus-1") + }; + + lib->unload(); diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch new file mode 100644 index 00000000000..d6e08cd2410 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch @@ -0,0 +1,17 @@ +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp +@@ -560,7 +560,12 @@ void (*QGLXContext::getProcAddress(const + { + extern const QString qt_gl_library_name(); + // QLibrary lib(qt_gl_library_name()); ++ // Check system library paths first + QLibrary lib(QLatin1String("GL")); ++ if (!lib.load()) { ++ // Fallback to Mesa driver ++ lib.setFileName(QLatin1String("@mesa@/lib/libGL")); ++ } + glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB"); + } + } diff --git a/pkgs/development/libraries/qt-5/5.4/0001-dlopen-gtkstyle.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gtkstyle.patch similarity index 72% rename from pkgs/development/libraries/qt-5/5.4/0001-dlopen-gtkstyle.patch rename to pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gtkstyle.patch index 3f411139f5b..c2be7377949 100644 --- a/pkgs/development/libraries/qt-5/5.4/0001-dlopen-gtkstyle.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gtkstyle.patch @@ -1,18 +1,8 @@ -From 35d5995a58c86a6addbf0aaf0d1be64d39182872 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:21:58 -0600 -Subject: [PATCH] dlopen-gtkstyle - ---- - qtbase/src/widgets/styles/qgtk2painter.cpp | 2 +- - qtbase/src/widgets/styles/qgtkstyle_p.cpp | 12 ++++++------ - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/qtbase/src/widgets/styles/qgtk2painter.cpp b/qtbase/src/widgets/styles/qgtk2painter.cpp -index 7b9bd97..075947a 100644 ---- a/qtbase/src/widgets/styles/qgtk2painter.cpp -+++ b/qtbase/src/widgets/styles/qgtk2painter.cpp -@@ -104,7 +104,7 @@ static void initGtk() +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/widgets/styles/qgtk2painter.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/widgets/styles/qgtk2painter.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/widgets/styles/qgtk2painter.cpp +@@ -96,7 +96,7 @@ static void initGtk() static bool initialized = false; if (!initialized) { // enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0 @@ -21,11 +11,11 @@ index 7b9bd97..075947a 100644 QGtk2PainterPrivate::gdk_pixmap_new = (Ptr_gdk_pixmap_new)libgtk.resolve("gdk_pixmap_new"); QGtk2PainterPrivate::gdk_pixbuf_get_from_drawable = (Ptr_gdk_pixbuf_get_from_drawable)libgtk.resolve("gdk_pixbuf_get_from_drawable"); -diff --git a/qtbase/src/widgets/styles/qgtkstyle_p.cpp b/qtbase/src/widgets/styles/qgtkstyle_p.cpp -index 2c64225..3343d32 100644 ---- a/qtbase/src/widgets/styles/qgtkstyle_p.cpp -+++ b/qtbase/src/widgets/styles/qgtkstyle_p.cpp -@@ -334,7 +334,7 @@ void QGtkStylePrivate::gtkWidgetSetFocus(GtkWidget *widget, bool focus) +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/widgets/styles/qgtkstyle_p.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/widgets/styles/qgtkstyle_p.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/widgets/styles/qgtkstyle_p.cpp +@@ -326,7 +326,7 @@ void QGtkStylePrivate::gtkWidgetSetFocus void QGtkStylePrivate::resolveGtk() const { // enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0 @@ -34,7 +24,7 @@ index 2c64225..3343d32 100644 gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init"); gtk_window_new = (Ptr_gtk_window_new)libgtk.resolve("gtk_window_new"); -@@ -432,8 +432,8 @@ void QGtkStylePrivate::resolveGtk() const +@@ -424,8 +424,8 @@ void QGtkStylePrivate::resolveGtk() cons pango_font_description_get_family = (Ptr_pango_font_description_get_family)libgtk.resolve("pango_font_description_get_family"); pango_font_description_get_style = (Ptr_pango_font_description_get_style)libgtk.resolve("pango_font_description_get_style"); @@ -45,7 +35,7 @@ index 2c64225..3343d32 100644 } /* \internal -@@ -601,9 +601,9 @@ void QGtkStylePrivate::cleanupGtkWidgets() +@@ -593,9 +593,9 @@ void QGtkStylePrivate::cleanupGtkWidgets static bool resolveGConf() { if (!QGtkStylePrivate::gconf_client_get_default) { @@ -58,6 +48,3 @@ index 2c64225..3343d32 100644 } return (QGtkStylePrivate::gconf_client_get_default !=0); } --- -2.1.3 - diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-libXcursor.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-libXcursor.patch new file mode 100644 index 00000000000..608c68b6d5b --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-libXcursor.patch @@ -0,0 +1,17 @@ +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp +@@ -297,10 +297,10 @@ QXcbCursor::QXcbCursor(QXcbConnection *c + #ifdef XCB_USE_XLIB + static bool function_ptrs_not_initialized = true; + if (function_ptrs_not_initialized) { +- QLibrary xcursorLib(QLatin1String("Xcursor"), 1); ++ QLibrary xcursorLib(QLatin1String("@libXcursor@/lib/libXcursor"), 1); + bool xcursorFound = xcursorLib.load(); + if (!xcursorFound) { // try without the version number +- xcursorLib.setFileName(QLatin1String("Xcursor")); ++ xcursorLib.setFileName(QLatin1String("@libXcursor@/lib/Xcursor")); + xcursorFound = xcursorLib.load(); + } + if (xcursorFound) { diff --git a/pkgs/development/libraries/qt-5/5.4/0011-dlopen-openssl.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-openssl.patch similarity index 75% rename from pkgs/development/libraries/qt-5/5.4/0011-dlopen-openssl.patch rename to pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-openssl.patch index a79f0f36389..b648a58b570 100644 --- a/pkgs/development/libraries/qt-5/5.4/0011-dlopen-openssl.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-openssl.patch @@ -1,8 +1,8 @@ -diff --git a/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp b/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp -index c1fea93..bc1c0f0 100644 ---- a/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp -+++ b/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp -@@ -611,8 +611,8 @@ static QPair loadOpenSsl() +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp +@@ -611,8 +611,8 @@ static QPair loadO #endif #if defined(SHLIB_VERSION_NUMBER) && !defined(Q_OS_QNX) // on QNX, the libs are always libssl.so and libcrypto.so // first attempt: the canonical name is libssl.so. @@ -13,7 +13,7 @@ index c1fea93..bc1c0f0 100644 if (libcrypto->load() && libssl->load()) { // libssl.so. and libcrypto.so. found return pair; -@@ -629,8 +629,8 @@ static QPair loadOpenSsl() +@@ -629,8 +629,8 @@ static QPair loadO // OS X's /usr/lib/libssl.dylib, /usr/lib/libcrypto.dylib will be picked up in the third // attempt, _after_ /Contents/Frameworks has been searched. // iOS does not ship a system libssl.dylib, libcrypto.dylib in the first place. diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-resolv.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-resolv.patch new file mode 100644 index 00000000000..a79c806462f --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-resolv.patch @@ -0,0 +1,26 @@ +Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/network/kernel/qdnslookup_unix.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/src/network/kernel/qdnslookup_unix.cpp ++++ qt-everywhere-opensource-src-5.5.1/qtbase/src/network/kernel/qdnslookup_unix.cpp +@@ -79,7 +79,7 @@ static void resolveLibrary() + if (!lib.load()) + #endif + { +- lib.setFileName(QLatin1String("resolv")); ++ lib.setFileName(QLatin1String("@glibc/lib/resolv")); + if (!lib.load()) + return; + } +Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/network/kernel/qhostinfo_unix.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/src/network/kernel/qhostinfo_unix.cpp ++++ qt-everywhere-opensource-src-5.5.1/qtbase/src/network/kernel/qhostinfo_unix.cpp +@@ -95,7 +95,7 @@ static void resolveLibrary() + if (!lib.load()) + #endif + { +- lib.setFileName(QLatin1String("resolv")); ++ lib.setFileName(QLatin1String("@glibc@/lib/libresolv")); + if (!lib.load()) + return; + } diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch new file mode 100644 index 00000000000..10115e8144a --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch @@ -0,0 +1,15 @@ +Index: qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/common/linux.conf +=================================================================== +--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/mkspecs/common/linux.conf ++++ qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/common/linux.conf +@@ -12,8 +12,8 @@ QMAKE_INCDIR = + 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/qtbase/nix-profiles-library-paths.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/nix-profiles-library-paths.patch new file mode 100644 index 00000000000..824d2ea0817 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/nix-profiles-library-paths.patch @@ -0,0 +1,26 @@ +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/kernel/qcoreapplication.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/corelib/kernel/qcoreapplication.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/kernel/qcoreapplication.cpp +@@ -2442,6 +2442,21 @@ QStringList QCoreApplication::libraryPat + } + } + } ++ ++ // Add library paths derived from NIX_PROFILES. ++ const QByteArray nixProfilesEnv = qgetenv("NIX_PROFILES"); ++ if (!nixProfilesEnv.isEmpty()) { ++ QLatin1Char pathSep(' '); ++ QStringList paths = QFile::decodeName(nixProfilesEnv).split(pathSep, QString::SkipEmptyParts); ++ for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) { ++ it->append("/lib/qt5/plugins"); ++ QString canonicalPath = QDir(*it).canonicalPath(); ++ if (!canonicalPath.isEmpty() ++ && !app_libpaths->contains(canonicalPath)) { ++ app_libpaths->append(canonicalPath); ++ } ++ } ++ } + } + return *(coreappdata()->app_libpaths); + } diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/series b/pkgs/development/libraries/qt-5/5.4/qtbase/series new file mode 100644 index 00000000000..3cfa50e85b7 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/series @@ -0,0 +1,8 @@ +dlopen-resolv.patch +tzdir.patch +dlopen-libXcursor.patch +dlopen-openssl.patch +dlopen-dbus.patch +xdg-config-dirs.patch +nix-profiles-library-paths.patch +compose-search-path.patch diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh new file mode 100644 index 00000000000..b86b6df28ac --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh @@ -0,0 +1,100 @@ +if [[ -z "$QMAKE" ]]; then + +linkDependencyDir() { + @lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2" + if [[ -n "$NIX_QT_SUBMODULE" ]]; then + find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs" + fi +} + +addQtModule() { + if [[ -d "$1/mkspecs" ]]; then + # $1 is a Qt module + linkDependencyDir "$1" mkspecs + + for dir in bin include lib share; do + if [[ -d "$1/$dir" ]]; then + linkDependencyDir "$1" "$dir" + fi + done + fi +} + +propagateRuntimeDeps() { + local propagated + for dir in "etc/xdg" "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports" "share"; do + if [[ -d "$1/$dir" ]]; then + propagated= + for pkg in $propagatedBuildInputs; do + if [[ "z$pkg" == "z$1" ]]; then + propagated=1 + break + fi + done + if [[ -z $propagated ]]; then + propagatedBuildInputs="$propagatedBuildInputs $1" + fi + break + fi + done +} + +rmQtModules() { + cat "$out/nix-support/qt-inputs" | while read file; do + if [[ -h "$out/$file" ]]; then + rm "$out/$file" + fi + done + + cat "$out/nix-support/qt-inputs" | while read file; do + if [[ -d "$out/$file" ]]; then + rmdir --ignore-fail-on-non-empty -p "$out/$file" + fi + done + + rm "$out/nix-support/qt-inputs" +} + +rmQMake() { + rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf" +} + +setQMakePath() { + export PATH="$qtOut/bin${PATH:+:}$PATH" +} + +qtOut="" +if [[ -z "$NIX_QT_SUBMODULE" ]]; then + qtOut=`mktemp -d` +else + qtOut=$out +fi + +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" < -Date: Mon, 1 Dec 2014 17:23:22 -0600 -Subject: [PATCH] tzdir - ---- - qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp | 21 +++++++++++++++------ - 1 file changed, 15 insertions(+), 6 deletions(-) - -diff --git a/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp b/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp -index b4ea91e..a56a245 100644 ---- a/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp -+++ b/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp -@@ -68,7 +68,10 @@ typedef QHash QTzTimeZoneHash; +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp +@@ -61,7 +61,10 @@ typedef QHash Q // Parse zone.tab table, assume lists all installed zones, if not will need to read directories static QTzTimeZoneHash loadTzTimeZones() { @@ -23,7 +14,7 @@ index b4ea91e..a56a245 100644 if (!QFile::exists(path)) path = QStringLiteral("/usr/lib/zoneinfo/zone.tab"); -@@ -559,12 +562,18 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId) +@@ -552,12 +555,18 @@ void QTzTimeZonePrivate::init(const QByt if (!tzif.open(QIODevice::ReadOnly)) return; } else { @@ -47,6 +38,3 @@ index b4ea91e..a56a245 100644 } } --- -2.1.3 - diff --git a/pkgs/development/libraries/qt-5/5.4/0013-xdg_config_dirs.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/xdg-config-dirs.patch similarity index 68% rename from pkgs/development/libraries/qt-5/5.4/0013-xdg_config_dirs.patch rename to pkgs/development/libraries/qt-5/5.4/qtbase/xdg-config-dirs.patch index 63066658f0f..dbf5eac52e6 100644 --- a/pkgs/development/libraries/qt-5/5.4/0013-xdg_config_dirs.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/xdg-config-dirs.patch @@ -1,8 +1,8 @@ -diff --git a/qsettings.cpp b/qsettings.cpp -index 35b3ed4..210dfeb 100644 ---- a/qsettings.cpp -+++ b/qtbase/src/corelib/io/qsettings.cpp -@@ -1174,6 +1174,24 @@ QConfFileSettingsPrivate::QConfFileSettingsPrivate(QSettings::Format format, +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/io/qsettings.cpp +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/corelib/io/qsettings.cpp ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/io/qsettings.cpp +@@ -1128,6 +1128,24 @@ QConfFileSettingsPrivate::QConfFileSetti if (!application.isEmpty()) confFiles[F_System | F_Application].reset(QConfFile::fromName(systemPath + appFile, false)); confFiles[F_System | F_Organization].reset(QConfFile::fromName(systemPath + orgFile, false)); @@ -27,11 +27,11 @@ index 35b3ed4..210dfeb 100644 #else QString confName = getPath(format, QSettings::UserScope) + org; if (!application.isEmpty()) -diff --git a/qsettings_p.h b/qsettings_p.h -index a28b583..b2a240d 100644 ---- a/qsettings_p.h -+++ b/qtbase/src/corelib/io/qsettings_p.h -@@ -244,7 +244,7 @@ public: +Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/io/qsettings_p.h +=================================================================== +--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/corelib/io/qsettings_p.h ++++ qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/io/qsettings_p.h +@@ -240,7 +240,7 @@ public: F_Organization = 0x1, F_User = 0x0, F_System = 0x2, diff --git a/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix b/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix new file mode 100644 index 00000000000..95cd6fea79b --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase, qtdeclarative }: + +qtSubmodule { + name = "qtconnectivity"; + qtInputs = [ qtbase qtdeclarative ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtdeclarative/0001-nix-profiles-import-paths.patch b/pkgs/development/libraries/qt-5/5.4/qtdeclarative/0001-nix-profiles-import-paths.patch new file mode 100644 index 00000000000..8e86f97a947 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtdeclarative/0001-nix-profiles-import-paths.patch @@ -0,0 +1,37 @@ +From 3f6fa74067aacd0e595e45b4ef7ce754514cb205 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Sat, 17 Oct 2015 09:28:18 -0500 +Subject: [PATCH] nix profiles import paths + +--- + src/qml/qml/qqmlimport.cpp | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp +index 5a54609..f33c2f9 100644 +--- a/src/qml/qml/qqmlimport.cpp ++++ b/src/qml/qml/qqmlimport.cpp +@@ -1549,6 +1549,20 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e) + QString installImportsPath = QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath); + addImportPath(installImportsPath); + ++ // Add import paths derived from NIX_PROFILES. ++ const QByteArray nixProfilesEnv = qgetenv("NIX_PROFILES"); ++ if (!nixProfilesEnv.isEmpty()) { ++ QLatin1Char pathSep(' '); ++ QStringList paths = QFile::decodeName(nixProfilesEnv).split(pathSep, QString::SkipEmptyParts); ++ for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) { ++ it->append("/lib/qt5/qml"); ++ QString canonicalPath = QDir(*it).canonicalPath(); ++ if (!canonicalPath.isEmpty()) { ++ addImportPath(canonicalPath); ++ } ++ } ++ } ++ + // env import paths + QByteArray envImportPath = qgetenv("QML2_IMPORT_PATH"); + if (!envImportPath.isEmpty()) { +-- +2.5.2 + diff --git a/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix b/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix new file mode 100644 index 00000000000..9181c37b225 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix @@ -0,0 +1,8 @@ +{ qtSubmodule, python, qtbase, qtsvg, qtxmlpatterns }: + +qtSubmodule { + name = "qtdeclarative"; + patches = [ ./0001-nix-profiles-import-paths.patch ]; + qtInputs = [ qtbase qtsvg qtxmlpatterns ]; + nativeBuildInputs = [ python ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtdoc.nix b/pkgs/development/libraries/qt-5/5.4/qtdoc.nix new file mode 100644 index 00000000000..578ea6ba0b2 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtdoc.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtdeclarative }: + +qtSubmodule { + name = "qtdoc"; + qtInputs = [ qtdeclarative ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtenginio.nix b/pkgs/development/libraries/qt-5/5.4/qtenginio.nix new file mode 100644 index 00000000000..b860a73ef89 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtenginio.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtdeclarative }: + +qtSubmodule { + name = "qtenginio"; + qtInputs = [ qtdeclarative ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtgraphicaleffects.nix b/pkgs/development/libraries/qt-5/5.4/qtgraphicaleffects.nix new file mode 100644 index 00000000000..3273f12eb83 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtgraphicaleffects.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtdeclarative }: + +qtSubmodule { + name = "qtgraphicaleffects"; + qtInputs = [ qtdeclarative ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtimageformats.nix b/pkgs/development/libraries/qt-5/5.4/qtimageformats.nix new file mode 100644 index 00000000000..03d0fffbe80 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtimageformats.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase }: + +qtSubmodule { + name = "qtimageformats"; + qtInputs = [ qtbase ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtlocation.nix b/pkgs/development/libraries/qt-5/5.4/qtlocation.nix new file mode 100644 index 00000000000..1e134057c4b --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtlocation.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase, qtmultimedia }: + +qtSubmodule { + name = "qtlocation"; + qtInputs = [ qtbase qtmultimedia ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix new file mode 100644 index 00000000000..b6b4d8ea0cf --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix @@ -0,0 +1,12 @@ +{ qtSubmodule, qtbase, qtdeclarative, pkgconfig +, alsaLib, gstreamer, gst-plugins-base, libpulseaudio +}: + +qtSubmodule { + name = "qtmultimedia"; + qtInputs = [ qtbase qtdeclarative ]; + buildInputs = [ + pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio + ]; + configureFlags = "GST_VERSION=1.0"; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtquick1/0001-nix-profiles-import-paths.patch b/pkgs/development/libraries/qt-5/5.4/qtquick1/0001-nix-profiles-import-paths.patch new file mode 100644 index 00000000000..63b141f6ce5 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtquick1/0001-nix-profiles-import-paths.patch @@ -0,0 +1,37 @@ +From bbc706b3fcb90ca3b2b51d5e3434145572152711 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Sat, 17 Oct 2015 09:29:51 -0500 +Subject: [PATCH] nix profiles import paths + +--- + src/declarative/qml/qdeclarativeimport.cpp | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp +index 9404834..d185ed5 100644 +--- a/src/declarative/qml/qdeclarativeimport.cpp ++++ b/src/declarative/qml/qdeclarativeimport.cpp +@@ -725,6 +725,20 @@ QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e) + + addImportPath(installImportsPath); + ++ // Add import paths derived from NIX_PROFILES. ++ const QByteArray nixProfilesEnv = qgetenv("NIX_PROFILES"); ++ if (!nixProfilesEnv.isEmpty()) { ++ QLatin1Char pathSep(' '); ++ QStringList paths = QFile::decodeName(nixProfilesEnv).split(pathSep, QString::SkipEmptyParts); ++ for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) { ++ it->append("/lib/qt5/imports"); ++ QString canonicalPath = QDir(*it).canonicalPath(); ++ if (!canonicalPath.isEmpty()) { ++ addImportPath(canonicalPath); ++ } ++ } ++ } ++ + // env import paths + QByteArray envImportPath = qgetenv("QML_IMPORT_PATH"); + if (!envImportPath.isEmpty()) { +-- +2.5.2 + diff --git a/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix b/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix new file mode 100644 index 00000000000..d1c7bb389a4 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix @@ -0,0 +1,7 @@ +{ qtSubmodule, qtscript, qtsvg, qtwebkit, qtxmlpatterns }: + +qtSubmodule { + name = "qtquick1"; + patches = [ ./0001-nix-profiles-import-paths.patch ]; + qtInputs = [ qtscript qtsvg qtwebkit qtxmlpatterns ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtquickcontrols.nix b/pkgs/development/libraries/qt-5/5.4/qtquickcontrols.nix new file mode 100644 index 00000000000..93a864621b8 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtquickcontrols.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtdeclarative }: + +qtSubmodule { + name = "qtquickcontrols"; + qtInputs = [ qtdeclarative ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtscript/0001-glib-2.32.patch b/pkgs/development/libraries/qt-5/5.4/qtscript/0001-glib-2.32.patch new file mode 100644 index 00000000000..887e107b6c1 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtscript/0001-glib-2.32.patch @@ -0,0 +1,25 @@ +From abd80356449bb36c8adcc5c9ca1df6b47715d265 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Sun, 23 Aug 2015 09:13:34 -0500 +Subject: [PATCH] glib-2.32 + +--- + src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h +index 1f6d25e..087c3fb 100644 +--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h ++++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h +@@ -81,7 +81,7 @@ + #include + #elif PLATFORM(GTK) + #include +-typedef struct _GMutex GMutex; ++typedef union _GMutex GMutex; + typedef struct _GCond GCond; + #endif + +-- +2.5.0 + diff --git a/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix b/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix new file mode 100644 index 00000000000..127766e2ebd --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix @@ -0,0 +1,7 @@ +{ qtSubmodule, qtbase, qttools }: + +qtSubmodule { + name = "qtscript"; + qtInputs = [ qtbase qttools ]; + patches = [ ./0001-glib-2.32.patch ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtsensors.nix b/pkgs/development/libraries/qt-5/5.4/qtsensors.nix new file mode 100644 index 00000000000..61e64dc47e4 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtsensors.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase, qtdeclarative }: + +qtSubmodule { + name = "qtsensors"; + qtInputs = [ qtbase qtdeclarative ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/0009-dlopen-serialport-udev.patch b/pkgs/development/libraries/qt-5/5.4/qtserialport/0001-dlopen-serialport-udev.patch similarity index 60% rename from pkgs/development/libraries/qt-5/5.4/0009-dlopen-serialport-udev.patch rename to pkgs/development/libraries/qt-5/5.4/qtserialport/0001-dlopen-serialport-udev.patch index e1e66a3ce95..6636cc9265a 100644 --- a/pkgs/development/libraries/qt-5/5.4/0009-dlopen-serialport-udev.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtserialport/0001-dlopen-serialport-udev.patch @@ -1,17 +1,17 @@ -From 17c7257e54c00ea2121f2cf95fb2be5e5db6b4ad Mon Sep 17 00:00:00 2001 +From d81c2c870b9bea8fb8e6b85baefb06542f568338 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:31:03 -0600 -Subject: [PATCH] dlopen-serialport-udev +Date: Sun, 23 Aug 2015 09:16:02 -0500 +Subject: [PATCH] dlopen serialport udev --- - qtserialport/src/serialport/qtudev_p.h | 4 ++-- + src/serialport/qtudev_p.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/qtserialport/src/serialport/qtudev_p.h b/qtserialport/src/serialport/qtudev_p.h -index 09940ab..45460f9 100644 ---- a/qtserialport/src/serialport/qtudev_p.h -+++ b/qtserialport/src/serialport/qtudev_p.h -@@ -119,9 +119,9 @@ inline void *resolveSymbol(QLibrary *udevLibrary, const char *symbolName) +diff --git a/src/serialport/qtudev_p.h b/src/serialport/qtudev_p.h +index 6f2cabd..81b9849 100644 +--- a/src/serialport/qtudev_p.h ++++ b/src/serialport/qtudev_p.h +@@ -105,9 +105,9 @@ inline QFunctionPointer resolveSymbol(QLibrary *udevLibrary, const char *symbolN inline bool resolveSymbols(QLibrary *udevLibrary) { if (!udevLibrary->isLoaded()) { @@ -24,5 +24,5 @@ index 09940ab..45460f9 100644 qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0); return false; -- -2.1.3 +2.5.0 diff --git a/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix new file mode 100644 index 00000000000..fa7383fc1e7 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix @@ -0,0 +1,7 @@ +{ qtSubmodule, qtbase }: + +qtSubmodule { + name = "qtserialport"; + qtInputs = [ qtbase ]; + patches = [ ./0001-dlopen-serialport-udev.patch ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtsvg.nix b/pkgs/development/libraries/qt-5/5.4/qtsvg.nix new file mode 100644 index 00000000000..b9ccac7cf93 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtsvg.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase }: + +qtSubmodule { + name = "qtsvg"; + qtInputs = [ qtbase ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qttools.nix b/pkgs/development/libraries/qt-5/5.4/qttools.nix new file mode 100644 index 00000000000..65edc450812 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qttools.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase }: + +qtSubmodule { + name = "qttools"; + qtInputs = [ qtbase ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qttranslations.nix b/pkgs/development/libraries/qt-5/5.4/qttranslations.nix new file mode 100644 index 00000000000..50fc8cf6826 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qttranslations.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qttools }: + +qtSubmodule { + name = "qttranslations"; + qtInputs = [ qttools ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebkit-examples.nix b/pkgs/development/libraries/qt-5/5.4/qtwebkit-examples.nix new file mode 100644 index 00000000000..64f85c42d19 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit-examples.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qttools, qtwebkit }: + +qtSubmodule { + name = "qtwebkit-examples"; + qtInputs = [ qttools qtwebkit ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/0002-dlopen-webkit-nsplugin.patch b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0001-dlopen-webkit-nsplugin.patch similarity index 50% rename from pkgs/development/libraries/qt-5/5.4/0002-dlopen-webkit-nsplugin.patch rename to pkgs/development/libraries/qt-5/5.4/qtwebkit/0001-dlopen-webkit-nsplugin.patch index 0752cdcf479..0eeacce1bc0 100644 --- a/pkgs/development/libraries/qt-5/5.4/0002-dlopen-webkit-nsplugin.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0001-dlopen-webkit-nsplugin.patch @@ -1,19 +1,19 @@ -From 8c30f72dbe11752e8ed25f292c6e5695d7733f72 Mon Sep 17 00:00:00 2001 +From 862ce7d357a3ec32683ac6ec7c0ebdc9346b44ba Mon Sep 17 00:00:00 2001 From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:22:23 -0600 -Subject: [PATCH] dlopen-webkit-nsplugin +Date: Sun, 23 Aug 2015 09:18:54 -0500 +Subject: [PATCH 1/3] dlopen webkit nsplugin --- - qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp | 2 +- - qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp | 2 +- - .../WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp | 2 +- + Source/WebCore/plugins/qt/PluginPackageQt.cpp | 2 +- + Source/WebCore/plugins/qt/PluginViewQt.cpp | 2 +- + Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -diff --git a/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp b/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp -index 679480b..2c373cc 100644 ---- a/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp -+++ b/qtwebkit/Source/WebCore/plugins/qt/PluginPackageQt.cpp -@@ -132,7 +132,7 @@ static void initializeGtk(QLibrary* module = 0) +diff --git a/Source/WebCore/plugins/qt/PluginPackageQt.cpp b/Source/WebCore/plugins/qt/PluginPackageQt.cpp +index a923d49..2731d05 100644 +--- a/Source/WebCore/plugins/qt/PluginPackageQt.cpp ++++ b/Source/WebCore/plugins/qt/PluginPackageQt.cpp +@@ -136,7 +136,7 @@ static void initializeGtk(QLibrary* module = 0) } } @@ -22,10 +22,10 @@ index 679480b..2c373cc 100644 if (library.load()) { typedef void *(*gtk_init_check_ptr)(int*, char***); gtk_init_check_ptr gtkInitCheck = (gtk_init_check_ptr)library.resolve("gtk_init_check"); -diff --git a/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp b/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp +diff --git a/Source/WebCore/plugins/qt/PluginViewQt.cpp b/Source/WebCore/plugins/qt/PluginViewQt.cpp index de06a2f..363bde5 100644 ---- a/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp -+++ b/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp +--- a/Source/WebCore/plugins/qt/PluginViewQt.cpp ++++ b/Source/WebCore/plugins/qt/PluginViewQt.cpp @@ -697,7 +697,7 @@ static Display *getPluginDisplay() // support gdk based plugins (like flash) that use a different X connection. // The code below has the same effect as this one: @@ -35,10 +35,10 @@ index de06a2f..363bde5 100644 if (!library.load()) return 0; -diff --git a/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp b/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp +diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp index d734ff6..62a2197 100644 ---- a/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp -+++ b/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp +--- a/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp ++++ b/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp @@ -64,7 +64,7 @@ static Display* getPluginDisplay() // The code below has the same effect as this one: // Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default()); @@ -49,5 +49,5 @@ index d734ff6..62a2197 100644 return 0; -- -2.1.3 +2.5.0 diff --git a/pkgs/development/libraries/qt-5/5.4/0007-dlopen-webkit-gtk.patch b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0002-dlopen-webkit-gtk.patch similarity index 50% rename from pkgs/development/libraries/qt-5/5.4/0007-dlopen-webkit-gtk.patch rename to pkgs/development/libraries/qt-5/5.4/qtwebkit/0002-dlopen-webkit-gtk.patch index 9582b714c90..bb5d1f74364 100644 --- a/pkgs/development/libraries/qt-5/5.4/0007-dlopen-webkit-gtk.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0002-dlopen-webkit-gtk.patch @@ -1,16 +1,16 @@ -From 089db8835c80bf2b7dd91a97a5c6eb26636b6ab9 Mon Sep 17 00:00:00 2001 +From 6a407d30357c2551abceac75c82f4a1688e47437 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:26:39 -0600 -Subject: [PATCH] dlopen-webkit-gtk +Date: Sun, 23 Aug 2015 09:19:16 -0500 +Subject: [PATCH 2/3] dlopen webkit gtk --- - qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp | 2 +- + Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp b/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp +diff --git a/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp b/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp index 8de6521..0b25748 100644 ---- a/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp -+++ b/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp +--- a/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp ++++ b/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp @@ -53,7 +53,7 @@ static void messageHandler(QtMsgType type, const QMessageLogContext&, const QStr static bool initializeGtk() @@ -21,5 +21,5 @@ index 8de6521..0b25748 100644 return false; typedef void* (*gtk_init_ptr)(void*, void*); -- -2.1.3 +2.5.0 diff --git a/pkgs/development/libraries/qt-5/5.4/0008-dlopen-webkit-udev.patch b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch similarity index 62% rename from pkgs/development/libraries/qt-5/5.4/0008-dlopen-webkit-udev.patch rename to pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch index e8a4ba6a215..f3b9d407bd7 100644 --- a/pkgs/development/libraries/qt-5/5.4/0008-dlopen-webkit-udev.patch +++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch @@ -1,16 +1,16 @@ -From 25d2922cce383fcaa4c138e0cc6c8d92328eeacb Mon Sep 17 00:00:00 2001 +From 864020dd47c3b6d532d9f26b82185904cf9324f2 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel -Date: Mon, 1 Dec 2014 17:30:41 -0600 -Subject: [PATCH] dlopen-webkit-udev +Date: Sun, 23 Aug 2015 09:19:29 -0500 +Subject: [PATCH 3/3] dlopen webkit udev --- - qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp | 4 ++-- + Source/WebCore/platform/qt/GamepadsQt.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp b/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp +diff --git a/Source/WebCore/platform/qt/GamepadsQt.cpp b/Source/WebCore/platform/qt/GamepadsQt.cpp index 60ff317..da8ac69 100644 ---- a/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp -+++ b/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp +--- a/Source/WebCore/platform/qt/GamepadsQt.cpp ++++ b/Source/WebCore/platform/qt/GamepadsQt.cpp @@ -111,12 +111,12 @@ private: bool load() { @@ -27,5 +27,5 @@ index 60ff317..da8ac69 100644 return resolveMethods(); } -- -2.1.3 +2.5.0 diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix new file mode 100644 index 00000000000..596c02d39af --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix @@ -0,0 +1,33 @@ +{ qtSubmodule, stdenv, qtdeclarative, qtlocation, qtmultimedia, qtsensors +, fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt +, sqlite, udev +, bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby +, substituteAll +, flashplayerFix ? false +}: + +with stdenv.lib; + +qtSubmodule { + name = "qtwebkit"; + qtInputs = [ qtdeclarative qtlocation qtmultimedia qtsensors ]; + buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite ]; + nativeBuildInputs = [ + bison2 flex gdb gperf perl pkgconfig python ruby + ]; + patches = + let dlopen-webkit-nsplugin = substituteAll { + src = ./0001-dlopen-webkit-nsplugin.patch; + inherit gtk gdk_pixbuf; + }; + dlopen-webkit-gtk = substituteAll { + src = ./0002-dlopen-webkit-gtk.patch; + inherit gtk; + }; + dlopen-webkit-udev = substituteAll { + src = ./0003-dlopen-webkit-udev.patch; + inherit udev; + }; + in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ] + ++ [ dlopen-webkit-udev ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix b/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix new file mode 100644 index 00000000000..fbdfbbcf0db --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase, qtdeclarative }: + +qtSubmodule { + name = "qtwebsockets"; + qtInputs = [ qtbase qtdeclarative ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix b/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix new file mode 100644 index 00000000000..a765161e2d7 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase }: + +qtSubmodule { + name = "qtx11extras"; + qtInputs = [ qtbase ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix b/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix new file mode 100644 index 00000000000..9a8ddbba2bd --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix @@ -0,0 +1,6 @@ +{ qtSubmodule, qtbase }: + +qtSubmodule { + name = "qtxmlpatterns"; + qtInputs = [ qtbase ]; +} diff --git a/pkgs/development/libraries/qt-5/5.4/setup-hook.sh b/pkgs/development/libraries/qt-5/5.4/setup-hook.sh deleted file mode 100644 index 3bc4890f3bb..00000000000 --- a/pkgs/development/libraries/qt-5/5.4/setup-hook.sh +++ /dev/null @@ -1,77 +0,0 @@ -addQtModule() { - if [[ -d "$1/mkspecs" ]]; then - - @lndir@/bin/lndir -silent "$1/mkspecs" "$qtOut/mkspecs" - if [[ -n $qtSubmodule ]]; then - find "$1/mkspecs" -printf 'mkspecs/%P\n' >> "$qtOut/nix-support/qt-inputs" - fi - - if [[ -d "$1/bin" ]]; then - @lndir@/bin/lndir -silent "$1/bin" "$qtOut/bin" - if [[ -n $qtSubmodule ]]; then - find "$1/bin" -printf 'bin/%P\n' >> "$qtOut/nix-support/qt-inputs" - fi - fi - - if [[ -d "$1/include" ]]; then - @lndir@/bin/lndir -silent "$1/include" "$qtOut/include" - if [[ -n $qtSubmodule ]]; then - find "$1/include" -printf 'include/%P\n' >> "$qtOut/nix-support/qt-inputs" - fi - fi - - if [[ -d "$1/lib" ]]; then - @lndir@/bin/lndir -silent "$1/lib" "$qtOut/lib" - if [[ -n $qtSubmodule ]]; then - find "$1/lib" -printf 'lib/%P\n' >> "$qtOut/nix-support/qt-inputs" - 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" ]]; 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 -} - -setQMakePath() { - export PATH="$qtOut/bin${PATH:+:}$PATH" -} - -qtOut="" -if [[ -z $qtSubmodule ]]; then - qtOut="$PWD/qmake-$name" -else - qtOut=$out -fi - -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" <