diff options
author | Caleb Tennis <caleb@gentoo.org> | 2003-10-16 13:16:14 +0000 |
---|---|---|
committer | Caleb Tennis <caleb@gentoo.org> | 2003-10-16 13:16:14 +0000 |
commit | 34fdc340955576c9354ef3be6f4faf0a05d758e7 (patch) | |
tree | baa343d64aa489955e483204a752472634245e4a /x11-libs | |
parent | new version - lots o' bug fixes (diff) | |
download | gentoo-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/ChangeLog | 11 | ||||
-rw-r--r-- | x11-libs/qt/Manifest | 7 | ||||
-rw-r--r-- | x11-libs/qt/files/0026-netwm-fullscreen.patch | 212 | ||||
-rw-r--r-- | x11-libs/qt/files/0027-dnd-leak.patch | 10 | ||||
-rw-r--r-- | x11-libs/qt/files/0028-fix_sub_popup_crash.patch | 11 | ||||
-rw-r--r-- | x11-libs/qt/files/digest-qt-3.2.2 | 1 | ||||
-rw-r--r-- | x11-libs/qt/qt-3.2.2.ebuild | 207 |
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 +} |