summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2006-05-24 11:15:19 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2006-05-24 11:15:19 +0000
commit92171f132990074b43242e9a8e321a6372aa814b (patch)
tree0396b133626a8576aa4912b589d812fe42917cd3 /x11-libs/qt
parent* bump (diff)
downloadgentoo-2-92171f132990074b43242e9a8e321a6372aa814b.tar.gz
gentoo-2-92171f132990074b43242e9a8e321a6372aa814b.tar.bz2
gentoo-2-92171f132990074b43242e9a8e321a6372aa814b.zip
Add visibility patch to enable KDE hidden visibility. Enable only in presence of GCC 4.1 or later, so that we play it safe. No visibility flags are enabled or it would break Qt!
(Portage version: 2.1_rc2-r2)
Diffstat (limited to 'x11-libs/qt')
-rw-r--r--x11-libs/qt/ChangeLog8
-rw-r--r--x11-libs/qt/files/digest-qt-4.1.26
-rw-r--r--x11-libs/qt/files/qt-3.3.6-visibility.patch159
-rw-r--r--x11-libs/qt/qt-3.3.6-r1.ebuild6
4 files changed, 174 insertions, 5 deletions
diff --git a/x11-libs/qt/ChangeLog b/x11-libs/qt/ChangeLog
index 9980b10ea8ab..53065fdf9d10 100644
--- a/x11-libs/qt/ChangeLog
+++ b/x11-libs/qt/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for x11-libs/qt
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.314 2006/05/23 18:11:07 corsair Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.315 2006/05/24 11:15:19 flameeyes Exp $
+
+ 24 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ +files/qt-3.3.6-visibility.patch, qt-3.3.6-r1.ebuild:
+ Add visibility patch to enable KDE hidden visibility. Enable only in
+ presence of GCC 4.1 or later, so that we play it safe. No visibility flags
+ are enabled or it would break Qt!
23 May 2006; Markus Rothe <corsair@gentoo.org> qt-4.1.2.ebuild:
Stable on ppc64; bug #132349
diff --git a/x11-libs/qt/files/digest-qt-4.1.2 b/x11-libs/qt/files/digest-qt-4.1.2
index a2523c6c4228..8011bc427c9b 100644
--- a/x11-libs/qt/files/digest-qt-4.1.2
+++ b/x11-libs/qt/files/digest-qt-4.1.2
@@ -1,3 +1,3 @@
-MD5 18bca010d09b98e94210710047baca0a qt-x11-opensource-src-4.1.2.tar.gz 27924277
-RMD160 b4a0031a7c8d72492d8afa1a1190493999cb17ff qt-x11-opensource-src-4.1.2.tar.gz 27924277
-SHA256 025655971eef7f76ece9754346d6eb4e2dd44ddf569c4c84de27836aa24b04a3 qt-x11-opensource-src-4.1.2.tar.gz 27924277
+MD5 2a06c3a2c04678ce23024893ebb9a0db qt-x11-opensource-src-4.1.2.tar.gz 11588344
+RMD160 d9c59628a071f468109efbd095d3e2f142e63f22 qt-x11-opensource-src-4.1.2.tar.gz 11588344
+SHA256 12affb09e669599ff5292803051ac072d6ed13a0b6bb0caa82a25f3b780f8f67 qt-x11-opensource-src-4.1.2.tar.gz 11588344
diff --git a/x11-libs/qt/files/qt-3.3.6-visibility.patch b/x11-libs/qt/files/qt-3.3.6-visibility.patch
new file mode 100644
index 000000000000..a5246b9ff0e1
--- /dev/null
+++ b/x11-libs/qt/files/qt-3.3.6-visibility.patch
@@ -0,0 +1,159 @@
+Index: configure
+===================================================================
+--- configure (revision 471775)
++++ configure (working copy)
+@@ -1053,6 +1053,7 @@
+ [ -d $outpath/src/tools ] || mkdir -p $outpath/src/tools
+ cat > $outpath/src/tools/qconfig.cpp.new <<EOF
+ /* Install paths from configure */
++#include "qglobal.h"
+
+ static const char QT_INSTALL_PREFIX [267] = "qt_nstpath=$QT_INSTALL_PREFIX";
+ static const char QT_INSTALL_BINS [267] = "qt_binpath=$QT_INSTALL_BINS";
+Index: src/kernel/qgplugin.h
+===================================================================
+--- src/kernel/qgplugin.h (revision 471775)
++++ src/kernel/qgplugin.h (working copy)
+@@ -90,35 +90,19 @@
+ return i->iface(); \
+ }
+
+-# ifdef Q_WS_WIN
+-# ifdef Q_CC_BOR
+-# define Q_EXPORT_PLUGIN(PLUGIN) \
+- Q_PLUGIN_VERIFICATION_DATA \
+- Q_EXTERN_C __declspec(dllexport) \
+- const char * __stdcall qt_ucm_query_verification_data() \
+- { return qt_ucm_verification_data; } \
+- Q_EXTERN_C __declspec(dllexport) QUnknownInterface* \
+- __stdcall ucm_instantiate() \
+- Q_PLUGIN_INSTANTIATE( PLUGIN )
+-# else
+-# define Q_EXPORT_PLUGIN(PLUGIN) \
+- Q_PLUGIN_VERIFICATION_DATA \
+- Q_EXTERN_C __declspec(dllexport) \
+- const char *qt_ucm_query_verification_data() \
+- { return qt_ucm_verification_data; } \
+- Q_EXTERN_C __declspec(dllexport) QUnknownInterface* ucm_instantiate() \
+- Q_PLUGIN_INSTANTIATE( PLUGIN )
+-# endif
+-# else
+-# define Q_EXPORT_PLUGIN(PLUGIN) \
++#if defined(Q_WS_WIN) && defined(Q_CC_BOR)
++# define Q_STDCALL __stdcall
++#else
++# define Q_STDCALL
++#endif
++
++#define Q_EXPORT_PLUGIN(PLUGIN) \
+ Q_PLUGIN_VERIFICATION_DATA \
+- Q_EXTERN_C \
+- const char *qt_ucm_query_verification_data() \
++ Q_EXTERN_C Q_EXPORT \
++ const char * Q_STDCALL qt_ucm_query_verification_data() \
+ { return qt_ucm_verification_data; } \
+- Q_EXTERN_C QUnknownInterface* ucm_instantiate() \
++ Q_EXTERN_C Q_EXPORT QUnknownInterface* Q_STDCALL ucm_instantiate() \
+ Q_PLUGIN_INSTANTIATE( PLUGIN )
+-# endif
+-
+ #endif
+
+ struct QUnknownInterface;
+Index: src/kernel/qapplication_x11.cpp
+===================================================================
+--- src/kernel/qapplication_x11.cpp (revision 471775)
++++ src/kernel/qapplication_x11.cpp (working copy)
+@@ -314,7 +314,7 @@
+
+ // flags for extensions for special Languages, currently only for RTL languages
+ static bool qt_use_rtl_extensions = FALSE;
+-bool qt_hebrew_keyboard_hack = FALSE;
++Q_EXPORT bool qt_hebrew_keyboard_hack = FALSE;
+
+ static Window mouseActWindow = 0; // window where mouse is
+ static int mouseButtonPressed = 0; // last mouse button pressed
+@@ -3800,7 +3800,7 @@
+ }
+
+
+-bool qt_try_modal( QWidget *widget, XEvent *event )
++Q_EXPORT bool qt_try_modal( QWidget *widget, XEvent *event )
+ {
+ if (qt_xdnd_dragging) {
+ // allow mouse events while DnD is active
+Index: src/kernel/qtextengine_p.h
+===================================================================
+--- src/kernel/qtextengine_p.h (revision 471775)
++++ src/kernel/qtextengine_p.h (working copy)
+@@ -280,7 +280,7 @@
+
+ class QFontPrivate;
+
+-class QTextEngine {
++class Q_EXPORT QTextEngine {
+ public:
+ QTextEngine( const QString &str, QFontPrivate *f );
+ ~QTextEngine();
+Index: src/tools/qglobal.h
+===================================================================
+--- src/tools/qglobal.h (revision 471775)
++++ src/tools/qglobal.h (working copy)
+@@ -865,6 +865,10 @@
+ # define Q_TEMPLATE_EXTERN
+ # undef Q_DISABLE_COPY /* avoid unresolved externals */
+ # endif
++#elif defined(Q_CC_GNU) && __GNUC__ - 0 >= 4
++# define Q_EXPORT __attribute__((visibility("default")))
++# undef QT_MAKEDLL /* ignore these for other platforms */
++# undef QT_DLL
+ #else
+ # undef QT_MAKEDLL /* ignore these for other platforms */
+ # undef QT_DLL
+Index: tools/designer/uilib/qwidgetfactory.h
+===================================================================
+--- tools/designer/uilib/qwidgetfactory.h (revision 471775)
++++ tools/designer/uilib/qwidgetfactory.h (working copy)
+@@ -48,7 +48,7 @@
+ class QWidgetFactoryPrivate;
+ class UibStrTable;
+
+-class QWidgetFactory
++class Q_EXPORT QWidgetFactory
+ {
+ public:
+ QWidgetFactory();
+Index: tools/designer/uilib/qwidgetfactory.cpp
+===================================================================
+--- tools/designer/uilib/qwidgetfactory.cpp (revision 471775)
++++ tools/designer/uilib/qwidgetfactory.cpp (working copy)
+@@ -113,13 +113,13 @@
+ static QMap<QString, bool> *availableWidgetMap = 0;
+ static QStringList *availableWidgetList = 0;
+
+-QMap<QWidget*, QString> *qwf_forms = 0;
++Q_EXPORT QMap<QWidget*, QString> *qwf_forms = 0;
+ QString *qwf_language = 0;
+-bool qwf_execute_code = TRUE;
++Q_EXPORT bool qwf_execute_code = TRUE;
+ bool qwf_stays_on_top = FALSE;
+ QString qwf_currFileName = "";
+ QObject *qwf_form_object = 0;
+-QString *qwf_plugin_dir = 0;
++Q_EXPORT QString *qwf_plugin_dir = 0;
+
+ static void setupPluginDir()
+ {
+Index: tools/designer/shared/domtool.h
+===================================================================
+--- tools/designer/shared/domtool.h (revision 471775)
++++ tools/designer/shared/domtool.h (working copy)
+@@ -33,7 +33,7 @@
+ class QDomElement;
+ class QDomDocument;
+
+-class DomTool : public Qt
++class Q_EXPORT DomTool : public Qt
+ {
+ public:
+ static QVariant readProperty( const QDomElement& e, const QString& name, const QVariant& defValue );
diff --git a/x11-libs/qt/qt-3.3.6-r1.ebuild b/x11-libs/qt/qt-3.3.6-r1.ebuild
index 48f8e12b8222..903aed304e85 100644
--- a/x11-libs/qt/qt-3.3.6-r1.ebuild
+++ b/x11-libs/qt/qt-3.3.6-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-3.3.6-r1.ebuild,v 1.7 2006/05/12 22:31:52 tcort Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-3.3.6-r1.ebuild,v 1.8 2006/05/24 11:15:19 flameeyes Exp $
inherit eutils flag-o-matic toolchain-funcs
@@ -118,6 +118,10 @@ src_unpack() {
# ulibc patch (bug #100246)
epatch ${FILESDIR}/qt-ulibc.patch
+ # Visibility patch, apply only on GCC 4.1 and later for safety
+ [[ $(gcc-major-version)$(gcc-minor-version) -ge 41 ]] && \
+ epatch "${FILESDIR}/${P}-visibility.patch"
+
if use immqt || use immqt-bc ; then
epatch ../${IMMQT_P}.diff
sh make-symlinks.sh || die "make symlinks failed"