summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2015-02-07 12:52:20 -0600
committerThomas Tuegel <ttuegel@gmail.com>2015-02-07 12:52:20 -0600
commit042e4ad6338d3fea79ffd3ce2d6bbd16f58d5479 (patch)
tree9ebab62dc9ad0d5577c8abdb842ecfc80441bc98
parent73f8aebd8d22b92e336f3eecdee66ba9e1ea817c (diff)
qt5split: add split submodule build of Qt 5.3
-rw-r--r--.gitignore1
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0001-dlopen-gtkstyle.patch63
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0002-dlopen-webkit-nsplugin.patch53
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0003-glib-2.32.patch25
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0004-dlopen-resolv.patch39
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0005-dlopen-gl.patch25
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0006-tzdir.patch52
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0007-dlopen-webkit-gtk.patch25
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0008-dlopen-webkit-udev.patch31
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0009-dlopen-serialport-udev.patch28
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0010-dlopen-libXcursor.patch29
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0011-dlopen-openssl.patch38
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/0012-dlopen-dbus.patch25
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/default.nix330
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/manifest.nix166
-rwxr-xr-xpkgs/development/libraries/qt-5/5.3-submodules/manifest.sh15
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/qt-submodule.nix62
-rw-r--r--pkgs/development/libraries/qt-5/5.3-submodules/qtbase.nix174
-rw-r--r--pkgs/top-level/all-packages.nix2
19 files changed, 1183 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 337672a92dd7..a20a02b9a67b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,4 +14,5 @@ result-*
/pkgs/applications/kde-apps-*/tmp/
/pkgs/development/libraries/kde-frameworks-*/tmp/
+/pkgs/development/libraries/qt-5/*-submodules/tmp/
/pkgs/desktops/plasma-*/tmp/ \ No newline at end of file
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/0001-dlopen-gtkstyle.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0001-dlopen-gtkstyle.patch
new file mode 100644
index 000000000000..3f411139f5be
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0001-dlopen-gtkstyle.patch
@@ -0,0 +1,63 @@
+From 35d5995a58c86a6addbf0aaf0d1be64d39182872 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+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()
+ static bool initialized = false;
+ if (!initialized) {
+ // enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0
+- QLibrary libgtk(QLS("gtk-x11-2.0"), 0, 0);
++ QLibrary libgtk(QLS("@gtk@/lib/libgtk-x11-2.0"), 0, 0);
+
+ 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)
+ void QGtkStylePrivate::resolveGtk() const
+ {
+ // enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0
+- QLibrary libgtk(QLS("gtk-x11-2.0"), 0, 0);
++ QLibrary libgtk(QLS("@gtk@/lib/libgtk-x11-2.0"), 0, 0);
+
+ 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
+ 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");
+
+- gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLS("gnomeui-2"), 0, "gnome_icon_lookup_sync");
+- gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLS("gnomevfs-2"), 0, "gnome_vfs_init");
++ gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLS("@libgnomeui@/lib/libgnomeui-2"), 0, "gnome_icon_lookup_sync");
++ gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLS("@gnome_vfs@/lib/libgnomevfs-2"), 0, "gnome_vfs_init");
+ }
+
+ /* \internal
+@@ -601,9 +601,9 @@ void QGtkStylePrivate::cleanupGtkWidgets()
+ static bool resolveGConf()
+ {
+ if (!QGtkStylePrivate::gconf_client_get_default) {
+- QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_default");
+- QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_string");
+- QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_bool");
++ QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_default");
++ QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_string");
++ QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_bool");
+ }
+ return (QGtkStylePrivate::gconf_client_get_default !=0);
+ }
+--
+2.1.3
+
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/0002-dlopen-webkit-nsplugin.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0002-dlopen-webkit-nsplugin.patch
new file mode 100644
index 000000000000..0752cdcf4793
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0002-dlopen-webkit-nsplugin.patch
@@ -0,0 +1,53 @@
+From 8c30f72dbe11752e8ed25f292c6e5695d7733f72 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Mon, 1 Dec 2014 17:22:23 -0600
+Subject: [PATCH] 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 +-
+ 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)
+ }
+ }
+
+- QLibrary library(QLatin1String("libgtk-x11-2.0"), 0);
++ QLibrary library(QLatin1String("@gtk@/lib/libgtk-x11-2.0"), 0);
+ 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
+index de06a2f..363bde5 100644
+--- a/qtwebkit/Source/WebCore/plugins/qt/PluginViewQt.cpp
++++ b/qtwebkit/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:
+ // Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
+- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
++ QLibrary library(QLatin1String("@gdk_pixbuf@/lib/libgdk-x11-2.0"), 0);
+ 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
+index d734ff6..62a2197 100644
+--- a/qtwebkit/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
++++ b/qtwebkit/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());
+
+- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
++ QLibrary library(QLatin1String("@gdk_pixbuf@/libgdk-x11-2.0"), 0);
+ if (!library.load())
+ return 0;
+
+--
+2.1.3
+
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/0003-glib-2.32.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0003-glib-2.32.patch
new file mode 100644
index 000000000000..4abb69da4d85
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0003-glib-2.32.patch
@@ -0,0 +1,25 @@
+From a41c3e3a3a1ce4b373b1bbb98f3a835e9e8a0718 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+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 <pthread.h>
+ #elif PLATFORM(GTK)
+ #include <wtf/gtk/GOwnPtr.h>
+-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.3-submodules/0004-dlopen-resolv.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0004-dlopen-resolv.patch
new file mode 100644
index 000000000000..e6b921b771d3
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0004-dlopen-resolv.patch
@@ -0,0 +1,39 @@
+From 63af41c6eeca28c911c13b1a77afeaf860863c2d Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+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.3-submodules/0005-dlopen-gl.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0005-dlopen-gl.patch
new file mode 100644
index 000000000000..d112427bdd63
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0005-dlopen-gl.patch
@@ -0,0 +1,25 @@
+From 6aaf6858bf817172a4c503158e1701c4837ee790 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+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.3-submodules/0006-tzdir.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0006-tzdir.patch
new file mode 100644
index 000000000000..d5a74b25fb38
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0006-tzdir.patch
@@ -0,0 +1,52 @@
+From 775fd74351faaabd45f6751618b28e2b05812d05 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+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<QByteArray, QTzTimeZone> QTzTimeZoneHash;
+ // Parse zone.tab table, assume lists all installed zones, if not will need to read directories
+ static QTzTimeZoneHash loadTzTimeZones()
+ {
+- QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
++ QString path = qgetenv("TZDIR");
++ path += "/zone.tab";
++ if (!QFile::exists(path))
++ path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
+ if (!QFile::exists(path))
+ path = QStringLiteral("/usr/lib/zoneinfo/zone.tab");
+
+@@ -559,12 +562,18 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId)
+ if (!tzif.open(QIODevice::ReadOnly))
+ return;
+ } else {
+- // Open named tz, try modern path first, if fails try legacy path
+- tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++ // Try TZDIR first
++ QString zoneinfoDir = qgetenv("TZDIR");
++ zoneinfoDir += "/" + QString::fromLocal8Bit(ianaId);
++ tzif.setFileName(zoneinfoDir);
+ if (!tzif.open(QIODevice::ReadOnly)) {
+- tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
+- if (!tzif.open(QIODevice::ReadOnly))
+- return;
++ // Open named tz, try modern path first, if fails try legacy path
++ tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++ if (!tzif.open(QIODevice::ReadOnly)) {
++ tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++ if (!tzif.open(QIODevice::ReadOnly))
++ return;
++ }
+ }
+ }
+
+--
+2.1.3
+
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/0007-dlopen-webkit-gtk.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0007-dlopen-webkit-gtk.patch
new file mode 100644
index 000000000000..9582b714c903
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0007-dlopen-webkit-gtk.patch
@@ -0,0 +1,25 @@
+From 089db8835c80bf2b7dd91a97a5c6eb26636b6ab9 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Mon, 1 Dec 2014 17:26:39 -0600
+Subject: [PATCH] dlopen-webkit-gtk
+
+---
+ qtwebkit/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
+index 8de6521..0b25748 100644
+--- a/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
++++ b/qtwebkit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
+@@ -53,7 +53,7 @@ static void messageHandler(QtMsgType type, const QMessageLogContext&, const QStr
+
+ static bool initializeGtk()
+ {
+- QLibrary gtkLibrary(QLatin1String("libgtk-x11-2.0"), 0);
++ QLibrary gtkLibrary(QLatin1String("@gtk@/lib/libgtk-x11-2.0"), 0);
+ if (!gtkLibrary.load())
+ return false;
+ typedef void* (*gtk_init_ptr)(void*, void*);
+--
+2.1.3
+
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/0008-dlopen-webkit-udev.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0008-dlopen-webkit-udev.patch
new file mode 100644
index 000000000000..e8a4ba6a2151
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0008-dlopen-webkit-udev.patch
@@ -0,0 +1,31 @@
+From 25d2922cce383fcaa4c138e0cc6c8d92328eeacb Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Mon, 1 Dec 2014 17:30:41 -0600
+Subject: [PATCH] dlopen-webkit-udev
+
+---
+ qtwebkit/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
+index 60ff317..da8ac69 100644
+--- a/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp
++++ b/qtwebkit/Source/WebCore/platform/qt/GamepadsQt.cpp
+@@ -111,12 +111,12 @@ private:
+ bool load()
+ {
+ m_libUdev.setLoadHints(QLibrary::ResolveAllSymbolsHint);
+- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 1);
++ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1);
+ m_loaded = m_libUdev.load();
+ if (resolveMethods())
+ return true;
+
+- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 0);
++ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0);
+ m_loaded = m_libUdev.load();
+ return resolveMethods();
+ }
+--
+2.1.3
+
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/0009-dlopen-serialport-udev.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0009-dlopen-serialport-udev.patch
new file mode 100644
index 000000000000..e1e66a3ce95a
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0009-dlopen-serialport-udev.patch
@@ -0,0 +1,28 @@
+From 17c7257e54c00ea2121f2cf95fb2be5e5db6b4ad Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Mon, 1 Dec 2014 17:31:03 -0600
+Subject: [PATCH] dlopen-serialport-udev
+
+---
+ qtserialport/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)
+ inline bool resolveSymbols(QLibrary *udevLibrary)
+ {
+ if (!udevLibrary->isLoaded()) {
+- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1);
++ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1);
+ if (!udevLibrary->load()) {
+- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0);
++ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0);
+ if (!udevLibrary->load()) {
+ qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0);
+ return false;
+--
+2.1.3
+
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/0010-dlopen-libXcursor.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0010-dlopen-libXcursor.patch
new file mode 100644
index 000000000000..49ade86fae3f
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0010-dlopen-libXcursor.patch
@@ -0,0 +1,29 @@
+From b56e3737ca97e3de664603976989da4419297eb3 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+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.3-submodules/0011-dlopen-openssl.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0011-dlopen-openssl.patch
new file mode 100644
index 000000000000..d08061dd5dd6
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0011-dlopen-openssl.patch
@@ -0,0 +1,38 @@
+From 99d458c93698b2d4f16ff164ed54237279ffbb64 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Mon, 1 Dec 2014 17:35:21 -0600
+Subject: [PATCH] dlopen-openssl
+
+---
+ qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp b/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
+index 4e6200f..d9c3e7d 100644
+--- a/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
++++ b/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
+@@ -585,8 +585,8 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
+ #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.<SHLIB_VERSION_NUMBER>
+- libssl->setFileNameAndVersion(QLatin1String("ssl"), QLatin1String(SHLIB_VERSION_NUMBER));
+- libcrypto->setFileNameAndVersion(QLatin1String("crypto"), QLatin1String(SHLIB_VERSION_NUMBER));
++ libssl->setFileNameAndVersion(QLatin1String("@openssl@/lib/libssl"), QLatin1String(SHLIB_VERSION_NUMBER));
++ libcrypto->setFileNameAndVersion(QLatin1String("@openssl@/lib/libcrypto"), QLatin1String(SHLIB_VERSION_NUMBER));
+ if (libcrypto->load() && libssl->load()) {
+ // libssl.so.<SHLIB_VERSION_NUMBER> and libcrypto.so.<SHLIB_VERSION_NUMBER> found
+ return pair;
+@@ -597,8 +597,8 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
+ #endif
+
+ // second attempt: find the development files libssl.so and libcrypto.so
+- libssl->setFileNameAndVersion(QLatin1String("ssl"), -1);
+- libcrypto->setFileNameAndVersion(QLatin1String("crypto"), -1);
++ libssl->setFileNameAndVersion(QLatin1String("@openssl@/lib/libssl"), -1);
++ libcrypto->setFileNameAndVersion(QLatin1String("@openssl@/lib/libcrypto"), -1);
+ if (libcrypto->load() && libssl->load()) {
+ // libssl.so.0 and libcrypto.so.0 found
+ return pair;
+--
+2.1.3
+
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/0012-dlopen-dbus.patch b/pkgs/development/libraries/qt-5/5.3-submodules/0012-dlopen-dbus.patch
new file mode 100644
index 000000000000..f32386e114b7
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/0012-dlopen-dbus.patch
@@ -0,0 +1,25 @@
+From eec8a79c6cc9e2c65fd43db48ca2347de3ae0c5e Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Mon, 1 Dec 2014 17:38:04 -0600
+Subject: [PATCH] dlopen-dbus
+
+---
+ qtbase/src/dbus/qdbus_symbols.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/qtbase/src/dbus/qdbus_symbols.cpp b/qtbase/src/dbus/qdbus_symbols.cpp
+index a7a1b67..661baf1 100644
+--- a/qtbase/src/dbus/qdbus_symbols.cpp
++++ b/qtbase/src/dbus/qdbus_symbols.cpp
+@@ -93,7 +93,7 @@ bool qdbus_loadLibDBus()
+
+ static int majorversions[] = { 3, 2, -1 };
+ lib->unload();
+- lib->setFileName(QLatin1String("dbus-1"));
++ lib->setFileName(QLatin1String("@dbus_libs@/lib/libdbus-1"));
+ for (uint i = 0; i < sizeof(majorversions) / sizeof(majorversions[0]); ++i) {
+ lib->setFileNameAndVersion(lib->fileName(), majorversions[i]);
+ if (lib->load() && lib->resolve("dbus_connection_open_private"))
+--
+2.1.3
+
diff --git a/pkgs/development/libraries/qt-5/5.3-submodules/default.nix b/pkgs/development/libraries/qt-5/5.3-submodules/default.nix
new file mode 100644
index 000000000000..607da4f589a5
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.3-submodules/default.nix
@@ -0,0 +1,330 @@
+{ autonix, fetchurl, newScope, stdenv
+
+, bison2
+, mesa_noglu
+, cups
+, gnome
+
+# options
+, developerBuild ? false
+}:
+
+with autonix;
+with stdenv.lib;
+
+let
+ manifest =
+ importManifest ./manifest.nix { mirror = "http://download.qt.io"; };
+ srcs =
+ mapAttrs (name: src: fetchurl { inherit (src) url sha256 name; }) manifest;
+
+ version = "5.3.2";
+
+ callPackage = newScope (self // { inherit qtSubmodule; });
+
+ qtSubmodule = callPackage ./qt-submodule.nix {
+ inherit srcs version;
+ inherit (stdenv) mkDerivation;
+ };
+
+ self =
+ {
+
+ activeqt = callPackage
+ (
+ { qtSubmodule, base }:
+
+ qtSubmodule {
+ name = "qtactiveqt";
+ qtInputs = [ base ];
+ }
+ )
+ {};
+
+ base = callPackage ./qtbase.nix {
+ mesa = mesa_noglu;
+ cups = if stdenv.isLinux then 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;
+ };
+
+ connectivity = callPackage
+ (
+ { qtSubmodule, base, declarative }:
+
+ 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 ];
+ }
+ )
+ {};
+
+ multimedia = callPackage
+ (
+ { qtSubmodule, base, declarative
+ , alsaLib, gstreamer, gst_plugins_base, pulseaudio
+ }:
+
+ qtSubmodule {
+ name = "qtmultimedia";
+ qtInputs = [ base declarative ];
+ buildInputs = [
+ alsaLib gstreamer gst_plugins_base pulseaudio
+ ];
+ }
+ )
+ {};
+
+ 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 ];
+ }
+ )
+ {};
+
+ webkit = callPackage
+ (
+ { qtSubmodule, declarative, location, multimedia, sensors
+ , fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt
+ , sqlite, udev
+ , bison2, flex, gdb, gperf, perl, pkgconfig, python, rub