diff options
author | Caleb Tennis <caleb@gentoo.org> | 2005-01-31 16:54:26 +0000 |
---|---|---|
committer | Caleb Tennis <caleb@gentoo.org> | 2005-01-31 16:54:26 +0000 |
commit | 420f993579a1c0fde512ff0770ecee87cc7eb8e5 (patch) | |
tree | 7dfb7b72ebc35a67b2b3805be5999e2c2c756971 /x11-libs | |
parent | New ebuild thanks to Marcin 'aye' Kryczek <aye@gentoo.pl>, Carsten Lohrke <ca... (diff) | |
download | gentoo-2-420f993579a1c0fde512ff0770ecee87cc7eb8e5.tar.gz gentoo-2-420f993579a1c0fde512ff0770ecee87cc7eb8e5.tar.bz2 gentoo-2-420f993579a1c0fde512ff0770ecee87cc7eb8e5.zip |
Bump 3.3.4 to add patches back in
(Portage version: 2.0.51-r15)
Diffstat (limited to 'x11-libs')
-rw-r--r-- | x11-libs/qt/ChangeLog | 10 | ||||
-rw-r--r-- | x11-libs/qt/Manifest | 80 | ||||
-rw-r--r-- | x11-libs/qt/files/digest-qt-3.3.4-r1 | 2 | ||||
-rw-r--r-- | x11-libs/qt/files/qt-3.3.4-flickerfree_qiconview_buffered.patch | 103 | ||||
-rw-r--r-- | x11-libs/qt/files/qt-3.3.4-flickerfree_qscrollview_fixwindowactivate.patch | 36 | ||||
-rw-r--r-- | x11-libs/qt/files/qt-3.3.4-qclipboard-hack.patch | 48 | ||||
-rw-r--r-- | x11-libs/qt/qt-3.3.4-r1.ebuild | 273 |
7 files changed, 512 insertions, 40 deletions
diff --git a/x11-libs/qt/ChangeLog b/x11-libs/qt/ChangeLog index 6057a457c77d..aa93f87a9f0a 100644 --- a/x11-libs/qt/ChangeLog +++ b/x11-libs/qt/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for x11-libs/qt # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.188 2005/01/30 20:17:17 usata Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.189 2005/01/31 16:54:26 caleb Exp $ + +*qt-3.3.4-r1 (31 Jan 2005) + + 31 Jan 2005; Caleb Tennis <caleb@gentoo.org> + +files/qt-3.3.4-flickerfree_qiconview_buffered.patch, + +files/qt-3.3.4-flickerfree_qscrollview_fixwindowactivate.patch, + +files/qt-3.3.4-qclipboard-hack.patch, +qt-3.3.4-r1.ebuild: + Bump 3.3.4 for patches 31 Jan 2005; Mamoru KOMACHI <usata@gentoo.org> qt-3.3.4.ebuild: Updated immqt patch; bug #80056. diff --git a/x11-libs/qt/Manifest b/x11-libs/qt/Manifest index 5c6fa0df368a..a597c6a9d75d 100644 --- a/x11-libs/qt/Manifest +++ b/x11-libs/qt/Manifest @@ -1,52 +1,54 @@ -MD5 2bb4b537f9400f9e1972df49e56d161b ChangeLog 31651 -MD5 512150b47a904b0240101e319856aab1 metadata.xml 156 -MD5 f48889277f11c39d5f2160b262e7c314 qt-2.3.2-r1.ebuild 2289 -MD5 3f30d4e96664ba2574dfb069b708f4a1 qt-3.3.3.ebuild 6897 -MD5 7daec76f47482903184ed2b6d6d5640f qt-3.3.3-r1.ebuild 8039 -MD5 13c659d1e84ee9edb8e9c64d08fb06a9 qt-4.0.0_beta1.ebuild 4777 MD5 6eabb11b45974186ee77341995c7b215 qt-4.0.0_beta1-r1.ebuild 5702 +MD5 7daec76f47482903184ed2b6d6d5640f qt-3.3.3-r1.ebuild 8039 MD5 fbe7f8bc183824f9c17974b1a493c94d qt-3.3.2.ebuild 6895 -MD5 dd2127b3c7bc12b24621d172b6a075af qt-3.2.3-r1.ebuild 5159 -MD5 2a5d402b9d5ceff465069a1651f3b329 qt-2.3.2-r2.ebuild 2765 +MD5 f48889277f11c39d5f2160b262e7c314 qt-2.3.2-r1.ebuild 2289 MD5 0c35ff70fb6ff95611499d6fb69d8afc qt-3.3.1-r2.ebuild 5745 -MD5 3d1cc787b98b33e20bdb4768bd8e8ecc qt-3.3.3-r2.ebuild 8375 -MD5 f501109752b0f9524f5b5a32b8974f9b qt-4.0.0_beta1-r2.ebuild 5738 MD5 7e97379b94036d9db24b3ca93c21b6e7 qt-3.3.3-r3.ebuild 8737 -MD5 1f95b05c8230a39edeaa207a4fb5e796 qt-3.3.4.ebuild 8434 -MD5 494ea57bec4dcfe3a4ca65e413d81791 files/digest-qt-3.3.3 165 -MD5 698d5ff434cbace76297754f49699b7e files/digest-qt-3.3.2 165 -MD5 da2eb517a4c29a58002e92864ff966e5 files/qt-no-rpath-uic.patch 294 -MD5 77ee6484af384828441336443499ec0e files/digest-qt-3.3.3-r1 238 -MD5 8c01ee8bb9af451f93082717ed8f4c49 files/qfontdatabase_x11.diff 1147 -MD5 87c645dbad7233316ff3340847a59f22 files/digest-qt-3.3.1-r2 72 -MD5 9bd231bda8dcf1508a797c80002bfaa3 files/qt-3.3.1-qclipboard-fix.patch 2878 -MD5 33d20a19eba2cb13a7eb156d4eea10db files/qt-3.3.1-mips-relax-branches.patch 688 -MD5 33d20a19eba2cb13a7eb156d4eea10db files/qt-3.3.2-mips-relax-branches.patch 688 -MD5 471c09f2792eec732d715a983b7f7244 files/qt-3.3.3-immodule-20040819-event-inversion-20040908.diff 4150 -MD5 dd5958e335d63c95fc1e5051aa5224ca files/qt-3.3.2-immodule-20040819.patch 1761 -MD5 2df2442dc59faeb8b545a81d2523cf28 files/qt-3.3.3-immodule-r123-event-inversion-20040909.diff 327 -MD5 1402aee539796a7165cdd4646346da50 files/digest-qt-4.0.0_beta1 81 -MD5 383147673319909aa3b692646be3c3dd files/qt4b1.patch 564 -MD5 5754b897216dcf52901cfb4de6770d6e files/digest-qt-4.0.0_beta1-r1 99 -MD5 3c0e22a55628691f1789f7bf18426ba0 files/qt4b1_20041228.patch 297 +MD5 70fb644e599d4c43ce5cbb367e258117 qt-3.3.4.ebuild 8426 +MD5 f501109752b0f9524f5b5a32b8974f9b qt-4.0.0_beta1-r2.ebuild 5738 +MD5 3d1cc787b98b33e20bdb4768bd8e8ecc qt-3.3.3-r2.ebuild 8375 +MD5 13c659d1e84ee9edb8e9c64d08fb06a9 qt-4.0.0_beta1.ebuild 4777 +MD5 2bb4b537f9400f9e1972df49e56d161b ChangeLog 31651 +MD5 512150b47a904b0240101e319856aab1 metadata.xml 156 +MD5 3f30d4e96664ba2574dfb069b708f4a1 qt-3.3.3.ebuild 6897 +MD5 2a5d402b9d5ceff465069a1651f3b329 qt-2.3.2-r2.ebuild 2765 +MD5 70fb644e599d4c43ce5cbb367e258117 qt-3.3.4-r1.ebuild 8426 +MD5 dd2127b3c7bc12b24621d172b6a075af qt-3.2.3-r1.ebuild 5159 +MD5 9ac22fe721162a565a7507763f785ab5 files/qt-3.2.3-qpsprinter-useFreeType2-20031128.patch 9972 MD5 ad4921b9f10a62c1e211d064f5c7fd9a files/44qt4 121 -MD5 2f121ac14a939da7f1958ffc866f8560 files/qt4-rpath.patch 353 -MD5 37722e33e1a10fcc58463d13979e0f05 files/qt4-qtprf.patch 470 -MD5 037b7ee164790946df6a2d6ea89f01fc files/digest-qt-2.3.2-r2 65 -MD5 77ee6484af384828441336443499ec0e files/digest-qt-3.3.3-r2 238 -MD5 c115b4205c2a2eab0a547375e2f62460 files/digest-qt-3.3.4 166 MD5 c7f65a0625242eccf159e2b8ee74976d files/45qt3 109 -MD5 08cdd879d3418837cf4bad594dc0f91f files/45qtdir2 16 MD5 7a287bc7609ad2420f70af6d4c58302f files/50qt2 63 -MD5 7dc4f78d52452c28ba797ffc7db34f23 files/50qtdir3 16 -MD5 037b7ee164790946df6a2d6ea89f01fc files/digest-qt-2.3.2-r1 65 +MD5 37722e33e1a10fcc58463d13979e0f05 files/qt4-qtprf.patch 470 +MD5 698d5ff434cbace76297754f49699b7e files/digest-qt-3.3.2 165 +MD5 494ea57bec4dcfe3a4ca65e413d81791 files/digest-qt-3.3.3 165 +MD5 c115b4205c2a2eab0a547375e2f62460 files/digest-qt-3.3.4 166 +MD5 9bd231bda8dcf1508a797c80002bfaa3 files/qt-3.3.1-qclipboard-fix.patch 2878 +MD5 5754b897216dcf52901cfb4de6770d6e files/digest-qt-4.0.0_beta1-r1 99 MD5 057d98ec124a99d94abfb0b7487f969e files/digest-qt-4.0.0_beta1-r2 99 MD5 24486c56d654be71e66b7c01b143c9a9 files/digest-qt-3.2.3-r1 72 +MD5 87c645dbad7233316ff3340847a59f22 files/digest-qt-3.3.1-r2 72 +MD5 77ee6484af384828441336443499ec0e files/digest-qt-3.3.3-r1 238 +MD5 77ee6484af384828441336443499ec0e files/digest-qt-3.3.3-r2 238 MD5 77ee6484af384828441336443499ec0e files/digest-qt-3.3.3-r3 238 -MD5 e0a483959b1d3dad0fc58adc242624c1 files/qt-3.3.3-amd64-fullscreen.patch 1220 -MD5 b9689fa9461944ba25ebf0acde5fb70b files/qt-3.3.3-flickerfree_qiconview_buffered.patch 3347 +MD5 c115b4205c2a2eab0a547375e2f62460 files/digest-qt-3.3.4-r1 166 MD5 0221c85bc6f785b68812fc7f42110742 files/qt-3.3.3-flickerfree_qscrollview_fixwindowactivate.patch 1540 +MD5 33d20a19eba2cb13a7eb156d4eea10db files/qt-3.3.2-mips-relax-branches.patch 688 +MD5 2df2442dc59faeb8b545a81d2523cf28 files/qt-3.3.3-immodule-r123-event-inversion-20040909.diff 327 +MD5 687ac003fc61501eda26cb2cf068cb2a files/qt-3.2.3-scriptForChar-20031128.patch 18095 +MD5 8c01ee8bb9af451f93082717ed8f4c49 files/qfontdatabase_x11.diff 1147 +MD5 33d20a19eba2cb13a7eb156d4eea10db files/qt-3.3.1-mips-relax-branches.patch 688 +MD5 7dc4f78d52452c28ba797ffc7db34f23 files/50qtdir3 16 +MD5 383147673319909aa3b692646be3c3dd files/qt4b1.patch 564 +MD5 b9689fa9461944ba25ebf0acde5fb70b files/qt-3.3.3-flickerfree_qiconview_buffered.patch 3347 +MD5 2f121ac14a939da7f1958ffc866f8560 files/qt4-rpath.patch 353 +MD5 08cdd879d3418837cf4bad594dc0f91f files/45qtdir2 16 +MD5 3c0e22a55628691f1789f7bf18426ba0 files/qt4b1_20041228.patch 297 MD5 3e5e045d0c1448839a8dc1c82aeef21b files/qt-3.3.3-qclipboard-hack.patch 1662 +MD5 037b7ee164790946df6a2d6ea89f01fc files/digest-qt-2.3.2-r1 65 +MD5 037b7ee164790946df6a2d6ea89f01fc files/digest-qt-2.3.2-r2 65 +MD5 da2eb517a4c29a58002e92864ff966e5 files/qt-no-rpath-uic.patch 294 +MD5 dd5958e335d63c95fc1e5051aa5224ca files/qt-3.3.2-immodule-20040819.patch 1761 +MD5 1402aee539796a7165cdd4646346da50 files/digest-qt-4.0.0_beta1 81 +MD5 471c09f2792eec732d715a983b7f7244 files/qt-3.3.3-immodule-20040819-event-inversion-20040908.diff 4150 MD5 057679471a1149cfba2cabd7a1fd2b55 files/qt-3.2.3-qfontdatabase-i18n-20031024.patch 10536 -MD5 9ac22fe721162a565a7507763f785ab5 files/qt-3.2.3-qpsprinter-useFreeType2-20031128.patch 9972 -MD5 687ac003fc61501eda26cb2cf068cb2a files/qt-3.2.3-scriptForChar-20031128.patch 18095 +MD5 e0a483959b1d3dad0fc58adc242624c1 files/qt-3.3.3-amd64-fullscreen.patch 1220 diff --git a/x11-libs/qt/files/digest-qt-3.3.4-r1 b/x11-libs/qt/files/digest-qt-3.3.4-r1 new file mode 100644 index 000000000000..d12b1ee1a446 --- /dev/null +++ b/x11-libs/qt/files/digest-qt-3.3.4-r1 @@ -0,0 +1,2 @@ +MD5 027f4e82fbe592b39d2f160bfb3a73af qt-x11-free-3.3.4.tar.bz2 14439722 +MD5 85fdf8ac3264a8849ebae74aa9c37a9b qt-x11-immodule-unified-qt3.3.4-20041203.diff.bz2 113389 diff --git a/x11-libs/qt/files/qt-3.3.4-flickerfree_qiconview_buffered.patch b/x11-libs/qt/files/qt-3.3.4-flickerfree_qiconview_buffered.patch new file mode 100644 index 000000000000..593fb2518e30 --- /dev/null +++ b/x11-libs/qt/files/qt-3.3.4-flickerfree_qiconview_buffered.patch @@ -0,0 +1,103 @@ +Buffered QIconView. + +For every QIconView this patch creates a backbuffer where the image will +grow up (aka will be painted) before blitting the results to the screen. +This solves the konqueror flickering problems at its roots. There are +some more bugs that make conqueror repaint without reason.. patches +will follow. + Enrico Ros <eros.kde@email.it> + +--- src.orig/iconview/qiconview.cpp 2004-03-24 15:58:05.000000000 +0000 ++++ src/iconview/qiconview.cpp 2004-03-30 16:23:32.521253280 +0000 +@@ -211,6 +211,7 @@ + QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, + *startDragItem, *pressedItem, *selectAnchor, *renamingItem; + QRect *rubber; ++ QPixmap *backBuffer; + QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer, + *fullRedrawTimer; + int rastX, rastY, spacing; +@@ -2731,6 +2732,7 @@ + d->currentItem = 0; + d->highlightedItem = 0; + d->rubber = 0; ++ d->backBuffer = 0; + d->scrollTimer = 0; + d->startDragItem = 0; + d->tmpCurrentItem = 0; +@@ -2883,6 +2885,8 @@ + delete item; + item = tmp; + } ++ delete d->backBuffer; ++ d->backBuffer = 0; + delete d->fm; + d->fm = 0; + #ifndef QT_NO_TOOLTIP +@@ -4845,6 +4849,47 @@ + #endif + + /*! ++ This function grabs all paintevents that otherwise would have been ++ processed by the QScrollView::viewportPaintEvent(). Here we use a ++ doublebuffer to reduce 'on-paint' flickering on QIconView ++ (and of course its childs). ++ ++ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents() ++*/ ++ ++void QIconView::bufferedPaintEvent( QPaintEvent* pe ) ++{ ++ QWidget* vp = viewport(); ++ QRect r = pe->rect() & vp->rect(); ++ int ex = r.x() + contentsX(); ++ int ey = r.y() + contentsY(); ++ int ew = r.width(); ++ int eh = r.height(); ++ ++ if ( !d->backBuffer ) ++ d->backBuffer = new QPixmap(vp->size()); ++ if ( d->backBuffer->size() != vp->size() ) { ++ //Resize function (with hysteesis). Uses a good compromise between memory ++ //consumption and speed (number) of resizes. ++ float newWidth = (float)vp->width(); ++ float newHeight = (float)vp->height(); ++ if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() ) ++ { ++ newWidth *= 1.1892; ++ newHeight *= 1.1892; ++ d->backBuffer->resize( (int)newWidth, (int)newHeight ); ++ } else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() ) ++ d->backBuffer->resize( (int)newWidth, (int)newHeight ); ++ } ++ ++ QPainter p; ++ p.begin(d->backBuffer, vp); ++ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh); ++ p.end(); ++ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh); ++} ++ ++/*! + \reimp + */ + +@@ -5627,7 +5676,7 @@ + if ( !d->rubber ) + drawDragShapes( d->oldDragPos ); + } +- viewportPaintEvent( (QPaintEvent*)e ); ++ bufferedPaintEvent( (QPaintEvent*)e ); + if ( d->dragging ) { + if ( !d->rubber ) + drawDragShapes( d->oldDragPos ); +--- src.orig/iconview/qiconview.h 2004-03-30 16:00:47.605751976 +0000 ++++ src/iconview/qiconview.h 2003-05-16 13:02:38.000000000 +0000 +@@ -445,6 +445,7 @@ + void contentsDropEvent( QDropEvent *e ); + #endif + ++ void bufferedPaintEvent( QPaintEvent* ); + void resizeEvent( QResizeEvent* e ); + void keyPressEvent( QKeyEvent *e ); + void focusInEvent( QFocusEvent *e ); diff --git a/x11-libs/qt/files/qt-3.3.4-flickerfree_qscrollview_fixwindowactivate.patch b/x11-libs/qt/files/qt-3.3.4-flickerfree_qscrollview_fixwindowactivate.patch new file mode 100644 index 000000000000..5721db8c7690 --- /dev/null +++ b/x11-libs/qt/files/qt-3.3.4-flickerfree_qscrollview_fixwindowactivate.patch @@ -0,0 +1,36 @@ +QScrollView unwanted repaint fix. + +This fixes the 'flashing' konqueror window on activation / deactivation by +saving 1 unwanted repaint (when konqueror window has background). +I tracked down to the problem to the internal QViewportWidget of the +QScrollView class. + +When a window is activated the activation event is recursively propagated +to all childs triggering the windowActivationChange() functions in the +widget it passes by. +What happens when the event gets to the Viewport? +At this point the event has already been handled by windowActivationChange() +of the parent widget (a QIconView for example) and has then been propagated +to the Viewport that will handle it with the default +QWidget::windowActivationChange implementation, maybe raising an unwanted +update(); so here we stop the event. +As an addition: if the parent reimplements the windowActivationChange() +function, mainly to block the update, it won't be happy if the child will +trigger the update. If the parent do not reimplement the function il will +inherits the default implementation and there is no need for the viewport's +one. + +Enrico Ros <eros.kde@email.it> + +--- src.orig/widgets/qscrollview.cpp 2004-03-29 10:17:04.000000000 +0000 ++++ src/widgets/qscrollview.cpp 2004-03-30 16:40:07.599978320 +0000 +@@ -1551,6 +1551,9 @@ + case QEvent::LayoutHint: + d->autoResizeHint(this); + break; ++ case QEvent::WindowActivate: ++ case QEvent::WindowDeactivate: ++ return TRUE; + default: + break; + } diff --git a/x11-libs/qt/files/qt-3.3.4-qclipboard-hack.patch b/x11-libs/qt/files/qt-3.3.4-qclipboard-hack.patch new file mode 100644 index 000000000000..74c60fb25588 --- /dev/null +++ b/x11-libs/qt/files/qt-3.3.4-qclipboard-hack.patch @@ -0,0 +1,48 @@ +qt-bugs@ issue : none, probably even won't be +bugs.kde.org number : 80072 +applied: no +author: Lubos Lunak <l.lunak@kde.org> + +A crude hack for KDE #80072. No good idea how to fix it properly yet :(. + +--- src/kernel/qclipboard_x11.cpp.sav 2004-04-30 12:00:06.000000000 +0200 ++++ src/kernel/qclipboard_x11.cpp 2004-05-09 21:18:10.269264304 +0200 +@@ -109,6 +109,7 @@ static int pending_timer_id = 0; + static bool pending_clipboard_changed = FALSE; + static bool pending_selection_changed = FALSE; + ++Q_EXPORT bool qt_qclipboard_bailout_hack = false; + + // event capture mechanism for qt_xclb_wait_for_event + static bool waiting_for_data = FALSE; +@@ -453,6 +454,15 @@ static int qt_xclb_event_filter(XEvent * + return 0; + } + ++static bool selection_request_pending = false; ++ ++static Bool check_selection_request_pending( Display*, XEvent* e, XPointer ) ++ { ++ if( e->type == SelectionRequest && e->xselectionrequest.owner == owner->winId()) ++ selection_request_pending = true; ++ return False; ++ } ++ + bool qt_xclb_wait_for_event( Display *dpy, Window win, int type, XEvent *event, + int timeout ) + { +@@ -504,6 +514,14 @@ bool qt_xclb_wait_for_event( Display *dp + do { + if ( XCheckTypedWindowEvent(dpy,win,type,event) ) + return TRUE; ++ if( qt_qclipboard_bailout_hack ) { ++ XEvent dummy; ++ selection_request_pending = false; ++ if ( owner != NULL ) ++ XCheckIfEvent(dpy,&dummy,check_selection_request_pending,NULL); ++ if( selection_request_pending ) ++ return TRUE; ++ } + + now = QTime::currentTime(); + if ( started > now ) // crossed midnight diff --git a/x11-libs/qt/qt-3.3.4-r1.ebuild b/x11-libs/qt/qt-3.3.4-r1.ebuild new file mode 100644 index 000000000000..bbf9dc665a99 --- /dev/null +++ b/x11-libs/qt/qt-3.3.4-r1.ebuild @@ -0,0 +1,273 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-3.3.4-r1.ebuild,v 1.1 2005/01/31 16:54:26 caleb Exp $ + +inherit eutils flag-o-matic + +SRCTYPE="free" +DESCRIPTION="QT version ${PV}" +HOMEPAGE="http://www.trolltech.com/" + +IMMQT_P="qt-x11-immodule-unified-qt3.3.4-20041203" + +SRC_URI="ftp://ftp.trolltech.com/qt/source/qt-x11-${SRCTYPE}-${PV}.tar.bz2 + immqt? ( http://freedesktop.org/~daisuke/${IMMQT_P}.diff.bz2 ) + immqt-bc? ( http://freedesktop.org/~daisuke/${IMMQT_P}.diff.bz2 )" +# ppc-macos? ( http://dev.gentoo.org/~usata/distfiles/${P}-darwin-fink.patch.gz )" + +LICENSE="|| ( QPL-1.0 GPL-2 )" +SLOT="3" +KEYWORDS="~x86 ~amd64 ~hppa ~mips ~ppc64 ~sparc" +IUSE="cups debug doc firebird gif ipv6 mysql nas odbc opengl postgres sqlite xinerama zlib immqt immqt-bc" + +DEPEND="virtual/x11 virtual/xft + media-libs/libpng media-libs/jpeg media-libs/libmng + >=media-libs/freetype-2 + nas? ( >=media-libs/nas-1.5 ) + odbc? ( dev-db/unixODBC ) + mysql? ( dev-db/mysql ) + sqlite? ( =dev-db/sqlite-2* ) + firebird? ( dev-db/firebird ) + opengl? ( virtual/opengl virtual/glu ) + postgres? ( dev-db/postgresql ) + cups? ( net-print/cups ) + zlib? ( sys-libs/zlib )" + +S=${WORKDIR}/qt-x11-${SRCTYPE}-${PV} + +QTBASE=/usr/qt/3 +export QTDIR=${S} + +pkg_setup() { + if use immqt ; then + ewarn + ewarn "You are going to compile binary imcompatible immodule for Qt. This means" + ewarn "you have to recompile everything depending on Qt after you install it." + ewarn "Be aware." + ewarn + fi + + if useq ppc-macos ; then + export PLATFORM=darwin-g++ + export DYLD_LIBRARY_PATH="${QTDIR}/lib:/usr/X11R6/lib:${DYLD_LIBRARY_PATH}" + export INSTALL_ROOT="" + else + export PLATFORM=linux-g++ + fi +} + +src_unpack() { + unpack ${A} + + export QTDIR=${S} + cd ${S} + + cp configure configure.orig + sed -e 's:read acceptance:acceptance=yes:' configure.orig > configure + + epatch ${FILESDIR}/qt-no-rpath-uic.patch + + # fix fullscreen mode for 64 bit archs (kde bug 92992) + # epatch ${FILESDIR}/${P}-amd64-fullscreen.patch + + # fix freeze caused by bad interaction with kde klipper (kde bug 80072) + epatch ${FILESDIR}/${P}-qclipboard-hack.patch + + # performance patches (see http://robotics.dei.unipd.it/~koral/KDE/kflicker.html) + epatch ${FILESDIR}/${P}-flickerfree_qiconview_buffered.patch + epatch ${FILESDIR}/${P}-flickerfree_qscrollview_fixwindowactivate.patch + + if use immqt || use immqt-bc ; then + epatch ../${IMMQT_P}.diff + sh make-symlinks.sh || die "make symlinks failed" + fi + + if use ppc-macos ; then + gzcat ${FILESDIR}/${P}-darwin-fink.patch.gz | sed -e "s:@QTBASE@:${QTBASE}:g" > ${T}/${P}-darwin-fink.patch + epatch ${T}/${P}-darwin-fink.patch + fi + + cd mkspecs/${PLATFORM} + # set c/xxflags and ldflags + strip-flags + sed -i -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \ + -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \ + -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \ + qmake.conf || die + cd ${S} +} + +src_compile() { + export QTDIR=${S} + export SYSCONF=${D}${QTBASE}/etc/settings + + # Let's just allow writing to these directories during Qt emerge + # as it makes Qt much happier. + addwrite "${QTBASE}/etc/settings" + addwrite "$HOME/.qt" + + use nas && myconf="${myconf} -system-nas-sound" + use gif && myconf="${myconf} -qt-gif" || myconf="${myconf} -no-gif" + use mysql && myconf="${myconf} -plugin-sql-mysql -I/usr/include/mysql -L/usr/lib/mysql" || myconf="${myconf} -no-sql-mysql" + use postgres && myconf="${myconf} -plugin-sql-psql -I/usr/include/postgresql/server -I/usr/include/postgresql/pgsql -I/usr/include/postgresql/pgsql/server" || myconf="${myconf} -no-sql-psql" + use firebird && myconf="${myconf} -plugin-sql-ibase" || myconf="${myconf} -no-sql-ibase" + use sqlite && myconf="${myconf} -plugin-sql-sqlite" || myconf="${myconf} -no-sql-sqlite" + use odbc && myconf="${myconf} -plugin-sql-odbc" || myconf="${myconf} -no-sql-odbc" + use cups && myconf="${myconf} -cups" || myconf="${myconf} -no-cups" + 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" || myconf="${myconf} -no-xinerama" + use zlib && myconf="${myconf} -system-zlib" || myconf="${myconf} -qt-zlib" + use ipv6 && myconf="${myconf} -ipv6" || myconf="${myconf} -no-ipv6" + use immqt-bc && myconf="${myconf} -inputmethod" + use immqt && myconf="${myconf} -inputmethod -inputmethod-ext" + + if use ppc-macos ; then + myconf="${myconf} -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-cups -lresolv -shared" + myconf="${myconf} -I/usr/X11R6/include -L/usr/X11R6/lib" + myconf="${myconf} -L${S}/lib -I${S}/include" + sed -i -e "s,#define QT_AOUT_UNDERSCORE,," mkspecs/${PLATFORM}/qplatformdefs.h || die + fi + + export YACC='byacc -d' + + ./configure -sm -thread -stl -system-libjpeg -verbose -largefile \ + -qt-imgfmt-{jpeg,mng,png} -tablet -system-libmng \ + -system-libpng -lpthread -xft -platform ${PLATFORM} -xplatform \ + ${PLATFORM} -xrender -prefix ${QTBASE} -libdir ${QTBASE}/$(get_libdir) \ + -fast ${myconf} -dlopen-opengl || die + + export QTDIR=${S} + + emake src-qmake src-moc sub-src || die + DYLD_LIBRARY_PATH="${S}/lib:/usr/X11R6/lib:${DYLD_LIBRARY_PATH}" \ + LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" emake sub-tools || die +} + +src_install() { + export QTDIR=${S} + + # binaries + into $QTBASE + dobin bin/* + + # libraries + if use ppc-macos; then + # dolib is broken on BSD because of missing readlink(1) + dodir ${QTBASE}/$(get_libdir) + cp -fR lib/*.{dylib,la,a} ${D}/${QTBASE}/$(get_libdir) || die + + cd ${D}/${QTBASE}/$(get_libdir) + for lib in libqt-mt* ; do + ln -s ${lib} ${lib/-mt/} + done + else + dolib lib/lib{editor,qassistantclient,designercore}.a + dolib lib/libqt-mt.la + dolib lib/libqt-mt.so.3.3.4 lib/libqui.so.1.0.0 + cd ${D}/${QTBASE}/$(get_libdir) + + 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.3.3->3.3->3->.so + ln -s libqt-mt.so.3.3.4 libqt-mt.so.3.3 + ln -s libqt-mt.so.3.3 libqt-mt.so.3 + ln -s libqt-mt.so.3 libqt-mt.so + + # libqt -> libqt-mt symlinks + ln -s libqt-mt.so.3.3.4 libqt.so.3.3.4 + ln -s libqt-mt.so.3.3 libqt.so.3.3 + ln -s libqt-mt.so.3 libqt.so.3 + ln -s libqt-mt.so libqt.so + fi + + # plugins + cd ${S} + plugins=`find plugins -name "lib*.so" -print` + for x in $plugins; do + exeinto ${QTBASE}/`dirname $x` + doexe $x + done + + # Past this point just needs to be done once + is_final_abi || return 0 + + # 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} + + # List all the multilib libdirs + local libdirs + for libdir in $(get_all_libdirs); do + libdirs="${libdirs}:${QTBASE}/${libdir}" + done + dosed "s~^LDPATH=.*$~LDPATH=${libdirs:1}~" /etc/env.d/45qt3 + + if [ "${SYMLINK_LIB}" = "yes" ]; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) ${QTBASE}/lib + fi + + 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}/etc + keepdir ${QTBASE}/etc/settings + + dodir ${QTBASE}/doc + + if use doc; then + cp -r ${S}/doc ${D}/${QTBASE} + + cd ${S}/examples + find . -name Makefile | while read MAKEFILE + do + cp ${MAKEFILE} ${MAKEFILE}.old + sed -e 's:${S}:${QTBASE}:g' ${MAKEFILE}.old > ${MAKEFILE} + rm -f ${MAKEFILE}.old + done + + cp -r ${S}/examples ${D}/${QTBASE} + + cd ${S}/tutorial + find . -name Makefile | while read MAKEFILE + do + cp ${MAKEFILE} ${MAKEFILE}.old + sed -e 's:${S}:${QTBASE}:g' ${MAKEFILE}.old > ${MAKEFILE} + rm -f ${MAKEFILE}.old + done + + cp -r ${S}/tutorial ${D}/${QTBASE} + fi + + if use immqt || use immqt-bc ; then + dodoc ${S}/README.immodule + fi + + # misc build reqs + dodir ${QTBASE}/mkspecs + cp -R ${S}/mkspecs/${PLATFORM} ${D}/${QTBASE}/mkspecs/ + + sed -e "s:${S}:${QTBASE}:g" \ + ${S}/.qmake.cache > ${D}${QTBASE}/.qmake.cache + + if use ppc-macos ; then + dosed "s:linux-g++:${PLATFORM}:" /etc/env.d/45qt3 \ + "s:\$(QTBASE):\$(QTDIR):g" ${QTBASE}/mkspecs/${PLATFORM}/qmake.conf \ + "s:${S}:${QTBASE}:g" ${QTBASE}/mkspecs/${PLATFORM}/qmake.conf ${QTBASE}/lib/libqt-mt.la || die + fi +} |