summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaleb Tennis <caleb@gentoo.org>2004-07-09 19:29:45 +0000
committerCaleb Tennis <caleb@gentoo.org>2004-07-09 19:29:45 +0000
commitfdcbab59b93a47f3888542f2aaae7e7d87d66e4c (patch)
tree25f9b9ca363edcda2ce20a2a7713d3d2913653ad /x11-libs/qt
parentdisable sandbox in all non-hardened amd64 profiles until we can properly sort... (diff)
downloadgentoo-2-fdcbab59b93a47f3888542f2aaae7e7d87d66e4c.tar.gz
gentoo-2-fdcbab59b93a47f3888542f2aaae7e7d87d66e4c.tar.bz2
gentoo-2-fdcbab59b93a47f3888542f2aaae7e7d87d66e4c.zip
Whoops, got rid of one too many. Readd
Diffstat (limited to 'x11-libs/qt')
-rw-r--r--x11-libs/qt/ChangeLog7
-rw-r--r--x11-libs/qt/files/digest-qt-3.3.1-r21
-rw-r--r--x11-libs/qt/files/qfontdatabase_x11.diff27
-rw-r--r--x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch94
-rw-r--r--x11-libs/qt/qt-3.3.1-r2.ebuild193
5 files changed, 321 insertions, 1 deletions
diff --git a/x11-libs/qt/ChangeLog b/x11-libs/qt/ChangeLog
index 7c21e669eeac..756538ae295b 100644
--- a/x11-libs/qt/ChangeLog
+++ b/x11-libs/qt/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for x11-libs/qt
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.153 2004/07/09 19:25:07 caleb Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.154 2004/07/09 19:29:45 caleb Exp $
+
+*qt-3.3.1-r2 (09 Jul 2004)
+
+ 09 Jul 2004; Caleb Tennis <caleb@gentoo.org> qt-3.3.1-r2.ebuild:
+ Whoops, got rid of one too many - readd
09 Jul 2004; Caleb Tennis <caleb@gentoo.org> qt-3.0.5-r2.ebuild,
qt-3.1.2-r3.ebuild, qt-3.1.2-r4.ebuild, qt-3.3.0-r1.ebuild,
diff --git a/x11-libs/qt/files/digest-qt-3.3.1-r2 b/x11-libs/qt/files/digest-qt-3.3.1-r2
new file mode 100644
index 000000000000..68146f1a0e7f
--- /dev/null
+++ b/x11-libs/qt/files/digest-qt-3.3.1-r2
@@ -0,0 +1 @@
+MD5 4e599bedfcb3fe389bc7ec921c476432 qt-x11-free-3.3.1.tar.bz2 14397600
diff --git a/x11-libs/qt/files/qfontdatabase_x11.diff b/x11-libs/qt/files/qfontdatabase_x11.diff
new file mode 100644
index 000000000000..6a19825d2a5a
--- /dev/null
+++ b/x11-libs/qt/files/qfontdatabase_x11.diff
@@ -0,0 +1,27 @@
+--- src/kernel/qfontdatabsae_x11.cpp.orig 2004-03-04 17:53:01.000000000 +0100
++++ src/kernel/qfontdatabase_x11.cpp 2004-03-04 17:47:59.000000000 +0100
+@@ -1508,6 +1516,24 @@
+ XftResult res;
+ XftPattern *result =
+ XftFontMatch( QPaintDevice::x11AppDisplay(), fp->screen, pattern, &res );
++#ifdef QT_XFT2
++ if (script == QFont::Latin) {
++ // since we added the Euro char on top, check we actually got the family
++ // we requested. If we didn't get it correctly, remove the Euro from the pattern
++ // and try again.
++ FcChar8 *f;
++ res = FcPatternGetString(result, FC_FAMILY, 0, &f);
++ if (res == FcResultMatch && QString::fromUtf8((char *)f) != family->rawName) {
++ qDebug("trying without Euro");
++ FcPatternDel(pattern, FC_CHARSET);
++ FcCharSet *cs = FcCharSetCreate();
++ QChar sample = sampleCharacter(script);
++ FcCharSetAddChar(cs, sample.unicode());
++ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
++ result = XftFontMatch( QPaintDevice::x11AppDisplay(), fp->screen, pattern, &res );
++ }
++ }
++#endif
+ XftPatternDestroy(pattern);
+
+ // We pass a duplicate to XftFontOpenPattern because either xft font
diff --git a/x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch b/x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch
new file mode 100644
index 000000000000..fdfa086ff13f
--- /dev/null
+++ b/x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch
@@ -0,0 +1,94 @@
+--- src/kernel/qclipboard_x11.cpp.sav 2004-01-06 19:24:40.000000000 +0100
++++ src/kernel/qclipboard_x11.cpp 2004-01-22 19:48:32.000000000 +0100
+@@ -112,10 +112,6 @@ static bool pending_selection_changed =
+
+ // event capture mechanism for qt_xclb_wait_for_event
+ static bool waiting_for_data = FALSE;
+-static bool has_captured_event = FALSE;
+-static Window capture_event_win = None;
+-static int capture_event_type = -1;
+-static XEvent captured_event;
+
+ class QClipboardWatcher; // forward decl
+ static QClipboardWatcher *selection_watcher = 0;
+@@ -432,69 +428,36 @@ bool QClipboard::selectionModeEnabled()
+ { return inSelectionMode_obsolete; }
+
+
+-// event filter function... captures interesting events while
+-// qt_xclb_wait_for_event is running the event loop
+-static int qt_xclb_event_filter(XEvent *event)
+-{
+- if (event->xany.type == capture_event_type &&
+- event->xany.window == capture_event_win) {
+- VDEBUG( "QClipboard: event_filter(): caught event type %d", event->type );
+- has_captured_event = TRUE;
+- captured_event = *event;
+- return 1;
+- }
+-
+- return 0;
+-}
+-
+ bool qt_xclb_wait_for_event( Display *dpy, Window win, int type, XEvent *event,
+ int timeout )
+ {
+- if ( waiting_for_data )
+- qFatal( "QClipboard: internal error, qt_xclb_wait_for_event recursed" );
+-
+- waiting_for_data = TRUE;
+-
+ QTime started = QTime::currentTime();
+ QTime now = started;
+-
+- has_captured_event = FALSE;
+- capture_event_win = win;
+- capture_event_type = type;
+-
+- QX11EventFilter old_event_filter = qt_set_x11_event_filter(qt_xclb_event_filter);
++ bool flushed = FALSE;
+
+ do {
+- if ( XCheckTypedWindowEvent(dpy,win,type,event) ) {
+- waiting_for_data = FALSE;
+- qt_set_x11_event_filter(old_event_filter);
++ if ( XCheckTypedWindowEvent(dpy,win,type,event) )
+ return TRUE;
+- }
+
+ now = QTime::currentTime();
+ if ( started > now ) // crossed midnight
+ started = now;
+
+- // 0x08 == ExcludeTimers for X11 only
+- qApp->eventLoop()->processEvents( QEventLoop::ExcludeUserInput |
+- QEventLoop::ExcludeSocketNotifiers |
+- QEventLoop::WaitForMore | 0x08 );
+-
+- if ( has_captured_event ) {
+- waiting_for_data = FALSE;
+- *event = captured_event;
+- qt_set_x11_event_filter(old_event_filter);
+- return TRUE;
++ if(!flushed) {
++ XFlush( dpy );
++ flushed = TRUE;
+ }
+- } while ( started.msecsTo(now) < timeout );
+
+- waiting_for_data = FALSE;
+- qt_set_x11_event_filter(old_event_filter);
++ // sleep 50ms, so we don't use up CPU cycles all the time.
++ struct timeval usleep_tv;
++ usleep_tv.tv_sec = 0;
++ usleep_tv.tv_usec = 50000;
++ select(0, 0, 0, 0, &usleep_tv);
++ } while ( started.msecsTo(now) < timeout );
+
+ return FALSE;
+ }
+
+-
+ static inline int maxSelectionIncr( Display *dpy )
+ { return XMaxRequestSize(dpy) > 65536 ? 65536*4 : XMaxRequestSize(dpy)*4 - 100; }
+
diff --git a/x11-libs/qt/qt-3.3.1-r2.ebuild b/x11-libs/qt/qt-3.3.1-r2.ebuild
new file mode 100644
index 000000000000..7e253936838d
--- /dev/null
+++ b/x11-libs/qt/qt-3.3.1-r2.ebuild
@@ -0,0 +1,193 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-3.3.1-r2.ebuild,v 1.9 2004/07/09 19:29:45 caleb Exp $
+
+inherit eutils
+
+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 ~alpha ~ppc ~amd64 sparc ~hppa mips"
+IUSE="cups debug doc firebird gif icc ipv6 mysql nas odbc opengl postgres sqlite xinerama zlib"
+
+DEPEND="virtual/x11 virtual/xft
+ media-libs/libpng media-libs/jpeg media-libs/libmng
+ >=media-libs/freetype-2
+ gif? ( media-libs/giflib media-libs/libungif )
+ nas? ( >=media-libs/nas-1.5 )
+ odbc? ( dev-db/unixODBC )
+ mysql? ( dev-db/mysql )
+ sqlite? ( dev-db/sqlite )
+ firebird? ( dev-db/firebird )
+ opengl? ( virtual/opengl virtual/glu )
+ postgres? ( dev-db/postgresql )
+ cups? ( net-print/cups )
+ zlib? ( sys-libs/zlib )
+ icc? ( dev-lang/icc )"
+
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/qt-x11-${SRCTYPE}-${PV}
+
+QTBASE=/usr/qt/3
+export QTDIR=${S}
+export PLATFORM=linux-g++
+
+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
+ epatch ${FILESDIR}/qfontdatabase_x11.diff
+ epatch ${FILESDIR}/${P}-qclipboard-fix.patch
+
+ # mips requires this patch to pass a CFLAG to gcc/g++ (which passes it to the assembler).
+ # It tells the assembler to relax branches on mips, otherwise we get build errors.
+ use mips && epatch ${FILESDIR}/${P}-mips-relax-branches.patch
+
+# use icc && export PLATFORM=linux-icc
+}
+
+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"
+ 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 oci8 && myconf="${myconf} -plugin-sql-oci" || myconf="${myconf} -no-sql-oci"
+ 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"
+
+ 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} -fast ${myconf} \
+ -dlopen-opengl || die
+
+ export QTDIR=${S}
+
+ emake src-qmake src-moc sub-src || die
+ LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" emake sub-tools || die
+}
+
+src_install() {
+ export QTDIR=${S}
+
+ # binaries
+ into $QTBASE
+ dobin bin/*
+
+ # libraries
+
+ dolib lib/libqt-mt.so.3.3.1 lib/libqui.so.1.0.0
+ dolib lib/lib{editor,qassistantclient,designercore}.a lib/libqt-mt.la
+
+ 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.3.1->3.3->3->.so
+ ln -s libqt-mt.so.3.3.1 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.1 libqt.so.3.3.1
+ 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
+
+ # 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}/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
+
+ # 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
+
+ # plugins
+ cd ${S}
+ plugins=`find plugins -name "lib*.so" -print`
+ for x in $plugins; do
+ insinto ${QTBASE}/`dirname $x`
+ doins $x
+ done
+
+ # needed to fix lib64 issues on amd64, see bug #45669
+ use amd64 && ln -s ${QTBASE}/lib ${D}/${QTBASE}/lib64
+}