qt4: Update to 4.8.3

This commit is contained in:
Eelco Dolstra 2012-09-28 23:20:34 -04:00
parent 46b05945e0
commit bf1b2e9c2e
3 changed files with 58 additions and 69 deletions

View File

@ -7,13 +7,13 @@
, perl, coreutils, libXi
, buildMultimedia ? true, alsaLib, gstreamer, gst_plugins_base
, buildWebkit ? true
, flashplayerFix ? true, gdk_pixbuf
, flashplayerFix ? false, gdk_pixbuf
, gtkStyle ? false, libgnomeui, gtk, GConf, gnome_vfs
}:
let
v = "4.8.2";
in
with stdenv.lib;
let v = "4.8.3"; in
# TODO:
# * move some plugins (e.g., SQL plugins) to dedicated derivations to avoid
@ -24,27 +24,26 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-${v}.tar.gz";
sha256 = "0y93vkkn44md37gyg4y8sc9ylk27xkniaimfcpdcwd090qnjl6wj";
sha256 = "0a67riy4i0xj6j7vmckd0nakras3rl3rzx0r83h1p1i4z5s2kxzi";
};
patches = [ ./glib-2.32.patch ( substituteAll {
patches =
[ ./glib-2.32.patch
(substituteAll {
src = ./dlopen-absolute-paths.diff;
inherit cups icu libXfixes;
glibc = stdenv.gcc.libc;
})
] ++ stdenv.lib.optional gtkStyle (
substituteAll {
] ++ stdenv.lib.optional gtkStyle (substituteAll {
src = ./dlopen-gtkstyle.diff;
# substituteAll ignores env vars starting with capital letter
gconf = GConf;
gconf = GConf;
inherit gnome_vfs libgnomeui gtk;
}
) ++ stdenv.lib.optional flashplayerFix (
substituteAll {
})
++ stdenv.lib.optional flashplayerFix (substituteAll {
src = ./dlopen-webkit-nsplugin.diff;
inherit gtk gdk_pixbuf;
}
);
});
preConfigure =
''
@ -81,18 +80,16 @@ stdenv.mkDerivation rec {
[ libXrender libXrandr libXinerama libXcursor libXext libXfixes
libXv libXi libSM
]
++ (stdenv.lib.optional (stdenv.lib.lists.elem stdenv.system
stdenv.lib.platforms.mesaPlatforms)
mesa)
++ (stdenv.lib.optional (buildWebkit || buildMultimedia) alsaLib)
++ optional (stdenv.lib.lists.elem stdenv.system stdenv.lib.platforms.mesaPlatforms) mesa
++ optional (buildWebkit || buildMultimedia) alsaLib
++ [ zlib libpng openssl dbus.libs freetype fontconfig glib ]
++ (stdenv.lib.optionals (buildWebkit || buildMultimedia)
[ gstreamer gst_plugins_base ]);
++ optionals (buildWebkit || buildMultimedia) [ gstreamer gst_plugins_base ];
# The following libraries are only used in plugins
buildInputs = [ cups # Qt dlopen's libcups instead of linking to it
mysql postgresql sqlite libjpeg libmng libtiff icu ]
++ stdenv.lib.optionals gtkStyle [ gtk gdk_pixbuf ];
buildInputs =
[ cups # Qt dlopen's libcups instead of linking to it
mysql postgresql sqlite libjpeg libmng libtiff icu ]
++ optionals gtkStyle [ gtk gdk_pixbuf ];
buildNativeInputs = [ perl pkgconfig which ];
@ -119,7 +116,7 @@ stdenv.mkDerivation rec {
-no-svg
-make qmake -make libs -nomake tools
-nomake demos -nomake examples -nomake docs
'' + stdenv.lib.optionalString isMingw " -xplatform win32-g++-4.6";
'' + optionalString isMingw " -xplatform win32-g++-4.6";
patches = [];
preConfigure = ''
sed -i -e 's/ g++/ ${stdenv.cross.config}-g++/' \
@ -136,12 +133,11 @@ stdenv.mkDerivation rec {
'';
dontSetConfigureCross = true;
dontStrip = true;
} // (if isMingw then
{
} // optionalAttrs isMingw {
propagatedBuildInputs = [ ];
} else {});
};
meta = with stdenv.lib; {
meta = {
homepage = http://qt.nokia.com/products;
description = "A cross-platform application framework for C++";
license = "GPL/LGPL";

View File

@ -1,5 +1,27 @@
--- a/src/gui/painting/qcups.cpp 2011-12-08 09:06:02.000000000 +0400
+++ b/src/gui/painting/qcups.cpp 2011-12-18 12:17:07.000000000 +0400
diff -ru qt-everywhere-opensource-src-4.8.3-orig/src/corelib/tools/qlocale_icu.cpp qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp
--- qt-everywhere-opensource-src-4.8.3-orig/src/corelib/tools/qlocale_icu.cpp 2012-09-10 21:36:50.000000000 -0400
+++ qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp 2012-09-28 22:57:40.764153828 -0400
@@ -81,7 +81,7 @@
if (status == NotLoaded) {
// resolve libicui18n
- QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT));
+ QLibrary lib(QLatin1String("@icu@/lib/libicui18n"), QLatin1String(U_ICU_VERSION_SHORT));
lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
if (!lib.load()) {
qWarning() << "Unable to load library icui18n" << lib.errorString();
@@ -111,7 +111,7 @@
}
// resolve libicuuc
- QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT));
+ QLibrary ucLib(QLatin1String("@icu@/lib/libicuuc"), QLatin1String(U_ICU_VERSION_SHORT));
ucLib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
if (!ucLib.load()) {
qWarning() << "Unable to load library icuuc" << ucLib.errorString();
diff -ru qt-everywhere-opensource-src-4.8.3-orig/src/gui/painting/qcups.cpp qt-everywhere-opensource-src-4.8.3/src/gui/painting/qcups.cpp
--- qt-everywhere-opensource-src-4.8.3-orig/src/gui/painting/qcups.cpp 2012-09-10 21:36:51.000000000 -0400
+++ qt-everywhere-opensource-src-4.8.3/src/gui/painting/qcups.cpp 2012-09-28 18:08:26.600720491 -0400
@@ -87,7 +87,7 @@
static void resolveCups()
@ -9,8 +31,9 @@
if(cupsLib.load()) {
_cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests");
_cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests");
--- a/src/gui/painting/qprinterinfo_unix.cpp 2011-12-08 09:06:02.000000000 +0400
+++ b/src/gui/painting/qprinterinfo_unix.cpp 2011-12-23 16:22:15.000000000 +0400
diff -ru qt-everywhere-opensource-src-4.8.3-orig/src/gui/painting/qprinterinfo_unix.cpp qt-everywhere-opensource-src-4.8.3/src/gui/painting/qprinterinfo_unix.cpp
--- qt-everywhere-opensource-src-4.8.3-orig/src/gui/painting/qprinterinfo_unix.cpp 2012-09-10 21:36:51.000000000 -0400
+++ qt-everywhere-opensource-src-4.8.3/src/gui/painting/qprinterinfo_unix.cpp 2012-09-28 18:08:26.601720488 -0400
@@ -454,7 +454,7 @@
char *domain;
int err;
@ -20,39 +43,21 @@
typedef int (*ypGetDefaultDomain)(char **);
ypGetDefaultDomain _ypGetDefaultDomain = (ypGetDefaultDomain)lib.resolve("yp_get_default_domain");
typedef int (*ypAll)(const char *, const char *, const struct ypall_callback *);
--- a/src/network/kernel/qhostinfo_unix.cpp 2011-12-23 16:26:07.000000000 +0400
+++ b/src/network/kernel/qhostinfo_unix.cpp 2011-12-23 16:25:55.000000000 +0400
diff -ru qt-everywhere-opensource-src-4.8.3-orig/src/network/kernel/qhostinfo_unix.cpp qt-everywhere-opensource-src-4.8.3/src/network/kernel/qhostinfo_unix.cpp
--- qt-everywhere-opensource-src-4.8.3-orig/src/network/kernel/qhostinfo_unix.cpp 2012-09-10 21:36:51.000000000 -0400
+++ qt-everywhere-opensource-src-4.8.3/src/network/kernel/qhostinfo_unix.cpp 2012-09-28 18:08:53.186643755 -0400
@@ -95,7 +95,7 @@
static void resolveLibrary()
{
#ifndef QT_NO_LIBRARY
- QLibrary lib(QLatin1String("resolv"));
+ QLibrary lib(QLatin1String("@glibc@/lib/libresolv"));
lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
if (!lib.load())
return;
--- a/src/corelib/tools/qlocale_icu.cpp 2011-12-08 09:06:03.000000000 +0400
+++ b/src/corelib/tools/qlocale_icu.cpp 2011-12-23 16:29:15.000000000 +0400
@@ -81,7 +81,7 @@
if (status == NotLoaded) {
// resolve libicui18n
- QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT));
+ QLibrary lib(QLatin1String("@icu@/lib/libicui18n"), QLatin1String(U_ICU_VERSION_SHORT));
if (!lib.load()) {
qWarning() << "Unable to load library icui18n" << lib.errorString();
status = ErrorLoading;
@@ -110,7 +110,7 @@
}
// resolve libicuuc
- QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT));
+ QLibrary ucLib(QLatin1String("@icu@/lib/libicuuc"), QLatin1String(U_ICU_VERSION_SHORT));
if (!ucLib.load()) {
qWarning() << "Unable to load library icuuc" << ucLib.errorString();
status = ErrorLoading;
--- a/src/plugins/platforms/xlib/qxlibstatic.cpp 2011-12-08 09:06:02.000000000 +0400
+++ b/src/plugins/platforms/xlib/qxlibstatic.cpp 2011-12-23 20:38:49.000000000 +0400
diff -ru qt-everywhere-opensource-src-4.8.3-orig/src/plugins/platforms/xlib/qxlibstatic.cpp qt-everywhere-opensource-src-4.8.3/src/plugins/platforms/xlib/qxlibstatic.cpp
--- qt-everywhere-opensource-src-4.8.3-orig/src/plugins/platforms/xlib/qxlibstatic.cpp 2012-09-10 21:36:51.000000000 -0400
+++ qt-everywhere-opensource-src-4.8.3/src/plugins/platforms/xlib/qxlibstatic.cpp 2012-09-28 18:08:26.601720488 -0400
@@ -242,7 +242,7 @@
}

View File

@ -10,15 +10,3 @@ diff -Naur qt-everywhere-opensource-src-4.8.2-orig/src/3rdparty/javascriptcore/J
typedef struct _GCond GCond;
#endif
diff -Naur qt-everywhere-opensource-src-4.8.2-orig/src/3rdparty/webkit/Source/JavaScriptCore/wtf/gobject/GTypedefs.h qt-everywhere-opensource-src-4.8.2/src/3rdparty/webkit/Source/JavaScriptCore/wtf/gobject/GTypedefs.h
--- qt-everywhere-opensource-src-4.8.2-orig/src/3rdparty/webkit/Source/JavaScriptCore/wtf/gobject/GTypedefs.h 2012-04-26 15:46:14.000000000 -0400
+++ qt-everywhere-opensource-src-4.8.2/src/3rdparty/webkit/Source/JavaScriptCore/wtf/gobject/GTypedefs.h 2012-07-14 22:46:24.671138454 -0400
@@ -52,7 +52,7 @@
typedef struct _GHashTable GHashTable;
typedef struct _GInputStream GInputStream;
typedef struct _GList GList;
-typedef struct _GMutex GMutex;
+typedef union _GMutex GMutex;
typedef struct _GPatternSpec GPatternSpec;
typedef struct _GPollableOutputStream GPollableOutputStream;
typedef struct _GSocketClient GSocketClient;