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

View File

@ -1,5 +1,27 @@
--- a/src/gui/painting/qcups.cpp 2011-12-08 09:06:02.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
+++ b/src/gui/painting/qcups.cpp 2011-12-18 12:17:07.000000000 +0400 --- 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 @@ @@ -87,7 +87,7 @@
static void resolveCups() static void resolveCups()
@ -9,8 +31,9 @@
if(cupsLib.load()) { if(cupsLib.load()) {
_cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests"); _cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests");
_cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests"); _cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests");
--- a/src/gui/painting/qprinterinfo_unix.cpp 2011-12-08 09:06:02.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
+++ b/src/gui/painting/qprinterinfo_unix.cpp 2011-12-23 16:22:15.000000000 +0400 --- 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 @@ @@ -454,7 +454,7 @@
char *domain; char *domain;
int err; int err;
@ -20,39 +43,21 @@
typedef int (*ypGetDefaultDomain)(char **); typedef int (*ypGetDefaultDomain)(char **);
ypGetDefaultDomain _ypGetDefaultDomain = (ypGetDefaultDomain)lib.resolve("yp_get_default_domain"); ypGetDefaultDomain _ypGetDefaultDomain = (ypGetDefaultDomain)lib.resolve("yp_get_default_domain");
typedef int (*ypAll)(const char *, const char *, const struct ypall_callback *); 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 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
+++ b/src/network/kernel/qhostinfo_unix.cpp 2011-12-23 16:25:55.000000000 +0400 --- 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 @@ @@ -95,7 +95,7 @@
static void resolveLibrary() static void resolveLibrary()
{ {
#ifndef QT_NO_LIBRARY #ifndef QT_NO_LIBRARY
- QLibrary lib(QLatin1String("resolv")); - QLibrary lib(QLatin1String("resolv"));
+ QLibrary lib(QLatin1String("@glibc@/lib/libresolv")); + QLibrary lib(QLatin1String("@glibc@/lib/libresolv"));
lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
if (!lib.load()) if (!lib.load())
return; return;
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
--- a/src/corelib/tools/qlocale_icu.cpp 2011-12-08 09:06:03.000000000 +0400 --- qt-everywhere-opensource-src-4.8.3-orig/src/plugins/platforms/xlib/qxlibstatic.cpp 2012-09-10 21:36:51.000000000 -0400
+++ b/src/corelib/tools/qlocale_icu.cpp 2011-12-23 16:29:15.000000000 +0400 +++ qt-everywhere-opensource-src-4.8.3/src/plugins/platforms/xlib/qxlibstatic.cpp 2012-09-28 18:08:26.601720488 -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
@@ -242,7 +242,7 @@ @@ -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; typedef struct _GCond GCond;
#endif #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;