summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaleb Tennis <caleb@gentoo.org>2003-10-16 13:16:14 +0000
committerCaleb Tennis <caleb@gentoo.org>2003-10-16 13:16:14 +0000
commit34fdc340955576c9354ef3be6f4faf0a05d758e7 (patch)
treebaa343d64aa489955e483204a752472634245e4a /x11-libs
parentnew version - lots o' bug fixes (diff)
downloadgentoo-2-34fdc340955576c9354ef3be6f4faf0a05d758e7.tar.gz
gentoo-2-34fdc340955576c9354ef3be6f4faf0a05d758e7.tar.bz2
gentoo-2-34fdc340955576c9354ef3be6f4faf0a05d758e7.zip
new version - lots o' bug fixes
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/qt/ChangeLog11
-rw-r--r--x11-libs/qt/Manifest7
-rw-r--r--x11-libs/qt/files/0026-netwm-fullscreen.patch212
-rw-r--r--x11-libs/qt/files/0027-dnd-leak.patch10
-rw-r--r--x11-libs/qt/files/0028-fix_sub_popup_crash.patch11
-rw-r--r--x11-libs/qt/files/digest-qt-3.2.21
-rw-r--r--x11-libs/qt/qt-3.2.2.ebuild207
7 files changed, 456 insertions, 3 deletions
diff --git a/x11-libs/qt/ChangeLog b/x11-libs/qt/ChangeLog
index e2723b6e6fac..2350b288c546 100644
--- a/x11-libs/qt/ChangeLog
+++ b/x11-libs/qt/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for x11-libs/qt
# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.88 2003/10/02 20:29:45 caleb Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.89 2003/10/16 13:16:11 caleb Exp $
+
+*qt-3.2.2 (16 Oct 2003)
+
+ 16 Oct 2003; root <root@gentoo.org> qt-3.2.2.ebuild,
+ files/0026-netwm-fullscreen.patch, files/0027-dnd-leak.patch,
+ files/0028-fix_sub_popup_crash.patch:
+ New Qt version. Built off of qt-3.2.1-r2.ebuild, but added a few patches
+ from the KDE website to fix a few bugs that are (still) present in this
+ version of Qt.
*qt-3.2.1-r2 (02 Oct 2003)
diff --git a/x11-libs/qt/Manifest b/x11-libs/qt/Manifest
index 5e08cc427070..11f05af37ba1 100644
--- a/x11-libs/qt/Manifest
+++ b/x11-libs/qt/Manifest
@@ -1,4 +1,4 @@
-MD5 1dc01d5fc3e82c56f846bd8d8f856657 qt-3.2.2.ebuild 6097
+MD5 6fe86faef45e7705d6d4972abdcf44c0 qt-3.2.2.ebuild 6228
MD5 42cd5976a5be37ca6d3c663f2ed51bbf qt-3.2.1-r2.ebuild 6070
MD5 232c9a440f58d6f1a15c750ba4a25c48 qt-3.1.2-r3.ebuild 4979
MD5 3ea4b4de8bf408a89bad7560499c5517 qt-2.3.2-r1.ebuild 2274
@@ -9,10 +9,11 @@ MD5 00e9d63f2373eecbf8d070845e3ed794 qt-3.1.0-r3.ebuild 4698
MD5 aff33d960efe2f7ef7782bd0a7cc9441 qt-3.1.2-r4.ebuild 5340
MD5 b1227e9708a51d583e96b533764e5f5c qt-3.1.1-r2.ebuild 4510
MD5 c2026904ef73059c2f6e8138d2d62caa qt-3.2.0.ebuild 4339
-MD5 ba79db3f357f5a00cf2aad891dd760df ChangeLog 14748
+MD5 d61ea71085d1828e74f80a1a391e5e90 ChangeLog 15100
MD5 512150b47a904b0240101e319856aab1 metadata.xml 156
MD5 f036a81a9440e146ca67fb23dbb2b535 files/0013-qtabwidget-less_flicker.patch 2785
MD5 8ffca1b1b7523339af04fd24b4595ce4 files/0001-dnd_optimization.patch 5623
+MD5 5716cdfbdcb04ba8e3a25c7e1c49a9cc files/0026-netwm-fullscreen.patch 8243
MD5 8b3da5dae8babfcbdee3be465579d6c2 files/0002-dnd_active_window_fix.patch 7289
MD5 2d5b68b38185a30a28ffb2b652258cb8 files/45qt3 83
MD5 7a287bc7609ad2420f70af6d4c58302f files/50qt2 63
@@ -20,12 +21,14 @@ MD5 65c6cd464a60955c85a85b1dfd487c04 files/0004-qiconview_etc_ctrl_selecting.pat
MD5 edd5c27031cc5f29070a9094425f09d9 files/digest-qt-3.2.0 72
MD5 b79277b535797e854be75d1c396de0f2 files/digest-qt-3.2.1 72
MD5 1fd4137cd6f3d062dfd25523ee18468d files/digest-qt-3.2.2 72
+MD5 8fd2bb8fe0c4752252d064ff62257f9a files/0028-fix_sub_popup_crash.patch 302
MD5 e4054a5914b182318d548c53beea9590 files/0020-designer-deletetabs.patch 3493
MD5 c6dc1b6fadcb4897d4c7b0a768c2d196 files/qt-3.1.2-r3-qsocket.diff 447
MD5 0c06df8bd83ccf54e9045ef5703a1703 files/0024-fix_enter_leave_notify.patch 1374
MD5 04fdd1779f4aca06b809528a2d0bad7a files/qt-3.1.2-coreutils-fixup.patch 4203
MD5 b87df8ba9bf813ffe5e280fa2d79da25 files/qt-3.1.2-qpsprinter-ttc-otf-italic-20030429.patch 19286
MD5 08fa63b47b7a7cf4886c151e1ce0e33f files/0022-qdragobject-hotspot.patch 1266
+MD5 905e62743eb9d6304dc70510c5d3ee69 files/0027-dnd-leak.patch 345
MD5 001400cb2710d783deb4380ca6056bc2 files/qsocket-3.1.2.diff 3136
MD5 c8a8d41028d22397dcc86041f1856a79 files/digest-qt-3.0.5-r2 71
MD5 52e7df9b93f281c262716caac4cb7705 files/digest-qt-3.1.0-r3 72
diff --git a/x11-libs/qt/files/0026-netwm-fullscreen.patch b/x11-libs/qt/files/0026-netwm-fullscreen.patch
new file mode 100644
index 000000000000..00a6aabcb201
--- /dev/null
+++ b/x11-libs/qt/files/0026-netwm-fullscreen.patch
@@ -0,0 +1,212 @@
+--- src/kernel/qapplication_x11.cpp.sav 2003-08-06 18:41:22.000000000 +0200
++++ src/kernel/qapplication_x11.cpp 2003-08-06 18:42:22.000000000 +0200
+@@ -254,6 +254,7 @@ Atom qt_net_wm_state = 0;
+ Atom qt_net_wm_state_modal = 0;
+ Atom qt_net_wm_state_max_v = 0;
+ Atom qt_net_wm_state_max_h = 0;
++Atom qt_net_wm_state_fullscreen = 0;
+ Atom qt_net_wm_window_type = 0;
+ Atom qt_net_wm_window_type_normal = 0;
+ Atom qt_net_wm_window_type_dialog = 0;
+@@ -1420,6 +1421,62 @@ void qt_get_net_virtual_roots()
+ }
+ }
+
++void qt_net_change_state(const QWidget* w, Atom state, bool set)
++{
++ if( w->isShown()) { // managed by WM
++ XEvent ev;
++ ev.xclient.type = ClientMessage;
++ ev.xclient.message_type = qt_net_wm_state;
++ ev.xclient.display = w->x11Display();
++ ev.xclient.window = w->winId();
++ ev.xclient.format = 32;
++ ev.xclient.data.l[ 0 ] = set ? 1 : 0;
++ ev.xclient.data.l[ 1 ] = state;
++ ev.xclient.data.l[ 2 ] = 0;
++ ev.xclient.data.l[ 3 ] = 0;
++ ev.xclient.data.l[ 4 ] = 0;
++ XSendEvent( w->x11Display(), RootWindow(w->x11Display(), w->x11Screen() ), False,
++ SubstructureRedirectMask|SubstructureNotifyMask, &ev );
++ } else {
++ Atom ret;
++ int format, e;
++ unsigned char *data = 0;
++ unsigned long nitems, after;
++ e = XGetWindowProperty( w->x11Display(), w->winId(),
++ qt_net_wm_state, 0, 1024, False,
++ XA_ATOM, &ret, &format, &nitems,
++ &after, &data);
++ if (e == Success && ret == XA_ATOM && format == 32 &&
++ nitems > 0) {
++ Atom *states = (Atom *) data;
++ Atom *new_states = new Atom[ nitems + 1 ];
++ unsigned long i;
++ unsigned long new_count = 0;
++ for (i = 0; i < nitems; i++) {
++ if (states[i] == state) {
++ if(set) {
++ delete[] new_states;
++ return; // already set, no need to change anything
++ }
++ // else don't copy
++ } else
++ new_states[ new_count++ ] = states[ i ];
++ }
++ if( set )
++ new_states[ new_count++ ] = state;
++ XChangeProperty( w->x11Display(), w->winId(), qt_net_wm_state, XA_ATOM, 32, PropModeReplace,
++ (unsigned char *) new_states, new_count );
++ delete[] new_states;
++ } else {
++ Atom states[ 1 ] = { state };
++ XChangeProperty( w->x11Display(), w->winId(), qt_net_wm_state, XA_ATOM, 32, PropModeReplace,
++ (unsigned char *) states, set ? 1 : 0 );
++ }
++ if (data)
++ XFree(data);
++ }
++}
++
+ void qt_x11_create_wm_client_leader()
+ {
+ if ( qt_x11_wm_client_leader ) return;
+@@ -1912,6 +1965,7 @@ void qt_init_internal( int *argcptr, cha
+ qt_x11_intern_atom( "_NET_WM_STATE_MODAL", &qt_net_wm_state_modal );
+ qt_x11_intern_atom( "_NET_WM_STATE_MAXIMIZED_VERT", &qt_net_wm_state_max_v );
+ qt_x11_intern_atom( "_NET_WM_STATE_MAXIMIZED_HORZ", &qt_net_wm_state_max_h );
++ qt_x11_intern_atom( "_NET_WM_STATE_FULLSCREEN", &qt_net_wm_state_fullscreen );
+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE", &qt_net_wm_window_type );
+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_NORMAL",
+ &qt_net_wm_window_type_normal );
+@@ -3357,6 +3411,7 @@ int QApplication::x11ProcessEvent( XEven
+ &after, &data);
+
+ bool isMaximized = FALSE;
++ bool isFullScreen = FALSE;
+ if (e == Success && ret == XA_ATOM && format == 32 &&
+ nitems > 0) {
+ Atom *states = (Atom *) data;
+@@ -3366,8 +3421,9 @@ int QApplication::x11ProcessEvent( XEven
+ if (states[i] == qt_net_wm_state_max_v ||
+ states[i] == qt_net_wm_state_max_h) {
+ isMaximized = TRUE;
+- break;
+- }
++ } else if (states[i] == qt_net_wm_state_fullscreen) {
++ isFullScreen = TRUE;
++ }
+ }
+ }
+
+@@ -3375,6 +3431,21 @@ int QApplication::x11ProcessEvent( XEven
+ widget->setWState(WState_Maximized);
+ else
+ widget->clearWState(WState_Maximized);
++
++ if( qt_net_supports(qt_net_wm_state_fullscreen)) {
++ if( !isFullScreen && widget->isFullScreen()) {
++ // if there was QWidget::showFullScreen( bool ), that
++ // wouldn't mess with maximize state etc., this could be just
++ // widget->showFullScreen( false )
++ widget->topData()->fullscreen = 0;
++ QEvent e( QEvent::ShowNormal );
++ QApplication::sendSpontaneousEvent( widget, &e );
++ } else if( isFullScreen && !widget->isFullScreen()) {
++ widget->topData()->fullscreen = 1;
++ QEvent e( QEvent::ShowFullScreen );
++ QApplication::sendSpontaneousEvent( widget, &e );
++ }
++ }
+
+ if (data)
+ XFree(data);
+--- src/kernel/qwidget.cpp.sav 2003-08-06 18:41:22.000000000 +0200
++++ src/kernel/qwidget.cpp 2003-08-06 18:42:18.000000000 +0200
+@@ -5716,11 +5716,19 @@ void QWidget::reparent( QWidget *parent
+ strange effects on desktop changes or when the user raises other
+ windows.
+
+- Future X11 window managers that follow modern post-ICCCM
+- specifications may support full-screen mode properly.
++ X11 window managers that follow modern post-ICCCM
++ specifications support full-screen mode properly.
+
+ \sa showNormal(), showMaximized(), show(), hide(), isVisible()
+ */
++
++#if defined(Q_WS_X11)
++#include <X11/X.h>
++extern Atom qt_net_wm_state_fullscreen;
++extern bool qt_net_supports(Atom);
++extern void qt_net_change_state(const QWidget*,Atom,bool);
++#endif
++
+ #if (QT_VERSION-0 >= 0x040000)
+ #error "QWidget::showFullScreen() should be virtual (see change #16156)"
+ #endif
+@@ -5728,6 +5736,20 @@ void QWidget::showFullScreen()
+ {
+ if ( !isTopLevel() )
+ return;
++#if defined(Q_WS_X11)
++ if( qt_net_supports(qt_net_wm_state_fullscreen)) {
++ if( topData()->fullscreen ) {
++ show();
++ return;
++ }
++ qt_net_change_state(this,qt_net_wm_state_fullscreen,true);
++ topData()->fullscreen = 1;
++ show();
++ QEvent e( QEvent::ShowFullScreen );
++ QApplication::sendEvent( this, &e );
++ return;
++ }
++#endif
+ if ( topData()->fullscreen ) {
+ show();
+ raise();
+--- src/kernel/qwidget_x11.cpp.sav 2003-08-06 18:41:22.000000000 +0200
++++ src/kernel/qwidget_x11.cpp 2003-08-06 18:42:18.000000000 +0200
+@@ -111,6 +111,7 @@ extern Atom qt_net_wm_state;
+ extern Atom qt_net_wm_state_modal;
+ extern Atom qt_net_wm_state_max_v;
+ extern Atom qt_net_wm_state_max_h;
++extern Atom qt_net_wm_state_fullscreen;
+ extern Atom qt_net_wm_state_stays_on_top;
+ extern Atom qt_net_wm_window_type;
+ extern Atom qt_net_wm_window_type_normal;
+@@ -126,6 +127,7 @@ extern bool qt_broken_wm;
+
+ // defined in qapplication_x11.cpp
+ extern bool qt_net_supports(Atom);
++extern void qt_net_change_state(const QWidget*,Atom,bool);
+ extern unsigned long *qt_net_virtual_root_list;
+
+ #if defined (QT_TABLET_SUPPORT)
+@@ -1733,9 +1735,13 @@ void QWidget::showNormal()
+ {
+ if ( isTopLevel() ) {
+ if ( topData()->fullscreen ) {
+- // when reparenting, preserve some widget flags
+- reparent( 0, topData()->savedFlags, QPoint(0,0) );
+- topData()->fullscreen = 0;
++ if( qt_net_supports(qt_net_wm_state_fullscreen)) {
++ qt_net_change_state(this,qt_net_wm_state_fullscreen,false);
++ } else {
++ // when reparenting, preserve some widget flags
++ reparent( 0, topData()->savedFlags, QPoint(0,0) );
++ topData()->fullscreen = 0;
++ }
+ }
+ QRect r = topData()->normalGeometry;
+ if ( r.width() >= 0 ) {
+@@ -1749,7 +1755,7 @@ void QWidget::showNormal()
+ extra->topextra->fullscreen = 0;
+ if ( !isVisible() ) {
+ show();
+- } else {
++ } else if( testWState( WState_Minimized )) {
+ showWindow();
+ }
+ QEvent e( QEvent::ShowNormal );
diff --git a/x11-libs/qt/files/0027-dnd-leak.patch b/x11-libs/qt/files/0027-dnd-leak.patch
new file mode 100644
index 000000000000..3629371bc954
--- /dev/null
+++ b/x11-libs/qt/files/0027-dnd-leak.patch
@@ -0,0 +1,10 @@
+--- src/kernel/qdnd_x11.cpp 23 Sep 2003 16:01:19 -0000 1.57
++++ src/kernel/qdnd_x11.cpp 3 Oct 2003 16:37:31 -0000
+@@ -433,6 +433,7 @@ void qt_xdnd_cleanup()
+ qt_xdnd_atom_numbers = 0;
+ delete qt_xdnd_target_data;
+ qt_xdnd_target_data = 0;
++ delete noDropCursor;
+ noDropCursor = 0;
+ delete copyCursor;
+ copyCursor = 0;
diff --git a/x11-libs/qt/files/0028-fix_sub_popup_crash.patch b/x11-libs/qt/files/0028-fix_sub_popup_crash.patch
new file mode 100644
index 000000000000..04d66e6a8d03
--- /dev/null
+++ b/x11-libs/qt/files/0028-fix_sub_popup_crash.patch
@@ -0,0 +1,11 @@
+--- src/widgets/qpopupmenu.cpp 23 Jul 2003 18:14:02 -0000 1.55
++++ src/widgets/qpopupmenu.cpp 5 Oct 2003 23:30:38 -0000
+@@ -302,6 +302,8 @@ QPopupMenu::QPopupMenu( QWidget *parent,
+
+ QPopupMenu::~QPopupMenu()
+ {
++ hidePopups();
++
+ if ( syncMenu == this ) {
+ qApp->exit_loop();
+ syncMenu = 0;
diff --git a/x11-libs/qt/files/digest-qt-3.2.2 b/x11-libs/qt/files/digest-qt-3.2.2
new file mode 100644
index 000000000000..b164363232cf
--- /dev/null
+++ b/x11-libs/qt/files/digest-qt-3.2.2
@@ -0,0 +1 @@
+MD5 77d6e71e603fa54b9898d3364ef42aef qt-x11-free-3.2.2.tar.bz2 13943674
diff --git a/x11-libs/qt/qt-3.2.2.ebuild b/x11-libs/qt/qt-3.2.2.ebuild
new file mode 100644
index 000000000000..e55cb9144269
--- /dev/null
+++ b/x11-libs/qt/qt-3.2.2.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-3.2.2.ebuild,v 1.1 2003/10/16 13:16:11 caleb Exp $
+
+SRCTYPE="free"
+DESCRIPTION="QT version ${PV}"
+HOMEPAGE="http://www.trolltech.com/"
+SRC_URI="ftp://ftp.trolltech.com/qt/source/qt-x11-${SRCTYPE}-${PV}.tar.bz2"
+
+LICENSE="QPL-1.0 | GPL-2"
+SLOT="3"
+KEYWORDS="~x86"
+IUSE="cups nas postgres opengl mysql odbc gif doc"
+
+DEPEND="virtual/x11
+ media-libs/libpng
+ media-libs/lcms
+ media-libs/jpeg
+ >=media-libs/libmng-1.0.0
+ >=media-libs/freetype-2
+ virtual/xft
+ !<kde-base/kdelibs-3.1.4
+ nas? ( >=media-libs/nas-1.4.1 )
+ odbc? ( >=dev-db/unixODBC-2.0 )
+ mysql? ( >=dev-db/mysql-3.2.10 )
+ opengl? ( virtual/opengl virtual/glu )
+ postgres? ( >=dev-db/postgresql-7.2 )"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/qt-x11-${SRCTYPE}-${PV}
+
+QTBASE=/usr/qt/3
+export QTDIR=${S}
+
+src_unpack() {
+ unpack ${A}
+
+ export QTDIR=${S}
+ cd ${S}
+
+ cp configure configure.orig
+ sed -e 's:read acceptance:acceptance=yes:' configure.orig > configure
+
+ cd mkspecs/linux-g++
+ # use env's $CC, $CXX
+ if [ -n "$CXX" ]; then
+ einfo 'Using environment definition of $CXX'
+ cp qmake.conf qmake.conf.orig
+ sed -e "s:= g++:= ${CXX}:" qmake.conf.orig > qmake.conf
+ fi
+ if [ -n "$CC" ]; then
+ einfo 'Using environment definition of $CC'
+ cp qmake.conf qmake.conf.orig
+ sed -e "s:= gcc:= ${CC}:" qmake.conf.orig > qmake.conf
+ fi
+
+ # hppa and alpha people, please review the following
+
+ # hppa need some additional flags
+ if [ "${ARCH}" = "hppa" ]; then
+ echo "QMAKE_CFLAGS += -fPIC -ffunction-sections" >> qmake.conf
+ echo "QMAKE_CXXFLAGS += -fPIC -ffunction-sections" >> qmake.conf
+ echo "QMAKE_LFLAGS += -ffunction-sections -Wl,--stub-group-size=25000" >> qmake.conf
+ fi
+
+ # on alpha we need to compile everything with -fPIC
+ if [ ${ARCH} == "alpha" ]; then
+ cp qmake.conf qmake.conf.orig
+ sed -e "s:= -O2:= -O2 -fPIC:" qmake.conf.orig > qmake.conf
+ cat >> ${S}/tools/designer/editor/editor.pro <<_EOF_
+QMAKE_CFLAGS += -fPIC
+QMAKE_CXXFLAGS += -fPIC
+_EOF_
+ fi
+
+ cd ${S}
+ epatch ${FILESDIR}/0001-dnd_optimization.patch
+ epatch ${FILESDIR}/0002-dnd_active_window_fix.patch
+ epatch ${FILESDIR}/0003-qmenubar_fitts_law.patch
+ epatch ${FILESDIR}/0004-qiconview_etc_ctrl_selecting.patch
+ epatch ${FILESDIR}/0009-window_group.patch
+ epatch ${FILESDIR}/0011-listview_keys.patch
+ epatch ${FILESDIR}/0013-qtabwidget-less_flicker.patch
+ epatch ${FILESDIR}/0014-qiconview-autoscroll.patch
+ epatch ${FILESDIR}/0015-qiconview-finditem.patch
+ epatch ${FILESDIR}/0016-qiconview-rebuildcontainer.patch
+ epatch ${FILESDIR}/0017-qiconview-ctrl_rubber.patch
+ epatch ${FILESDIR}/0018-qlistview-paintcell.patch
+ epatch ${FILESDIR}/0019-qlistview-adjustcolumn.patch
+ epatch ${FILESDIR}/0020-designer-deletetabs.patch
+ epatch ${FILESDIR}/0021-qiconview-dragalittle.patch
+ epatch ${FILESDIR}/0022-qdragobject-hotspot.patch
+ epatch ${FILESDIR}/0024-fix_enter_leave_notify.patch
+ epatch ${FILESDIR}/0026-netwm-fullscreen.patch
+ epatch ${FILESDIR}/0027-dnd-leak.patch
+ epatch ${FILESDIR}/0028-fix_sub_popup_crash.patch
+}
+
+src_compile() {
+ export QTDIR=${S}
+ export SYSCONF=${QTBASE}/etc/settings
+ LD_LIBRARY_PATH_OLD=${LD_LIBRARY_PATH}
+ export LD_LIBRARY_PATH=${S}/lib:${LD_LIBRARY_PATH}
+
+ # fix #11144; qt wants to create lock files etc. in that directory
+ [ -d "$QTBASE/etc/settings" ] && addwrite "$QTBASE/etc/settings"
+ [ ! -d "$QTBASE/etc/settings" ] && dodir ${QTBASE}/etc/settings
+
+ export LDFLAGS="-ldl"
+
+ use cups || myconf="${myconf} -no-cups"
+ use nas && myconf="${myconf} -system-nas-sound"
+ use gif && myconf="${myconf} -qt-gif"
+ use mysql && myconf="${myconf} -plugin-sql-mysql -I/usr/include/mysql -L/usr/lib/mysql"
+ use postgres && myconf="${myconf} -plugin-sql-psql -I/usr/include/postgresql/server"
+ use odbc && myconf="${myconf} -plugin-sql-odbc"
+ use opengl && myconf="${myconf} -enable-module=opengl" || myconf="${myconf} -disable-opengl"
+ use debug && myconf="${myconf} -debug" || myconf="${myconf} -release -no-g++-exceptions"
+ use xinerama && myconf="${myconf} -xinerama"
+
+ export YACC='byacc -d'
+
+ ./configure -sm -thread -stl -system-zlib -system-libjpeg -verbose \
+ -qt-imgfmt-{jpeg,mng,png} -tablet -system-libmng \
+ -system-libpng -ldl -lpthread -xft -platform linux-g++ -xplatform \
+ linux-g++ -xrender -prefix ${D}${QTBASE} -plugindir ${QTBASE}/plugins \
+ -docdir ${QTBASE}/doc -translationdir ${QTBASE}/translations \
+ -datadir ${QTBASE} -fast ${myconf} || die
+
+ export QTDIR=${S}
+ emake src-qmake src-moc sub-src sub-tools || die
+ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH_OLD}
+}
+
+src_install() {
+ export QTDIR=${S}
+
+ # binaries
+ into $QTBASE
+ dobin bin/*
+
+ # libraries
+ dolib lib/libqt-mt.so.3.2.2 lib/libqui.so.1.0.0 lib/lib{editor,qassistantclient,designercore}.a
+ cd ${D}/$QTBASE/lib
+ for x in libqui.so ; do
+ ln -s $x.1.0.0 $x.1.0
+ ln -s $x.1.0 $x.1
+ ln -s $x.1 $x
+ done
+
+ # version symlinks - 3.2.1->3.2->3->.so
+ ln -s libqt-mt.so.3.2.2 libqt-mt.so.3.2
+ ln -s libqt-mt.so.3.2 libqt-mt.so.3
+ ln -s libqt-mt.so.3 libqt-mt.so
+
+ # libqt -> libqt-mt symlinks
+ ln -s libqt-mt.so.3.2.2 libqt.so.3.2.2
+ ln -s libqt-mt.so.3.2 libqt.so.3.2
+ ln -s libqt-mt.so.3 libqt.so.3
+ ln -s libqt-mt.so libqt.so
+
+ # includes
+ cd ${S}
+ dodir ${QTBASE}/include/private
+ cp include/* ${D}/${QTBASE}/include/
+ cp include/private/* ${D}/${QTBASE}/include/private/
+
+ # misc
+ insinto /etc/env.d
+ doins ${FILESDIR}/{45qt3,50qtdir3}
+
+ dodir ${QTBASE}/tools/designer/templates
+ cd ${S}
+ cp tools/designer/templates/* ${D}/${QTBASE}/tools/designer/templates
+
+ dodir ${QTBASE}/translations
+ cd ${S}
+ cp translations/* ${D}/${QTBASE}/translations
+
+ dodir ${QTBASE}/doc
+
+ if [ `use doc` ]; then
+ cd ${S}/doc
+ for x in html flyers; do
+ cp -r $x ${D}/${QTBASE}/doc
+ done
+
+ cp -r ${S}/doc/man ${D}/${QTBASE}
+ cp -r ${S}/examples ${D}/${QTBASE}
+ cp -r ${S}/tutorial ${D}/${QTBASE}
+ fi
+
+ # misc build reqs
+ dodir ${QTBASE}/mkspecs
+ cp -R ${S}/mkspecs/linux-g++ ${D}/${QTBASE}/mkspecs/
+
+ sed -e "s:${S}:${QTBASE}:g" \
+ ${S}/.qmake.cache > ${D}${QTBASE}/.qmake.cache
+
+ # plugins
+ cd ${S}
+ plugins=`find plugins -name "lib*.so" -print`
+ for x in $plugins; do
+ insinto ${QTBASE}/`dirname $x`
+ doins $x
+ done
+}