Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 6053 - new QT ebuild, adds optimizations
Summary: new QT ebuild, adds optimizations
Status: RESOLVED DUPLICATE of bug 7117
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High enhancement (vote)
Assignee: Dan Armak (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-08-05 14:04 UTC by David Nielsen
Modified: 2005-07-17 13:06 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Nielsen 2002-08-05 14:04:21 UTC
just added a hack from the mailing list, I'll take no credits for it. Finally 
we optimize QT as well - please include in mainstream distribution -  
 
# Copyright 1999-2002 Gentoo Technologies, Inc. 
# Distributed under the terms of the GNU General Public License, v2 or later 
# qt-3.0.5-r2 
 
S=${WORKDIR}/qt-x11-free-${PV} 
 
DESCRIPTION="QT version ${PV}" 
SLOT="3" 
LICENSE="QPL-1.0" 
KEYWORDS="x86" 
 
SRC_URI="ftp://ftp.trolltech.com/qt/source/qt-x11-free-${PV}.tar.gz" 
 
HOMEPAGE="http://www.trolltech.com/" 
 
DEPEND="virtual/x11 
	media-libs/libpng 
	media-libs/lcms 
	>=media-libs/libmng-1.0.0 
	gif? ( media-libs/giflib 
		media-libs/libungif ) 
	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 )" 
	 
 
QTBASE=/usr/qt/3 
export QTDIR=${S} 
 
src_unpack() { 
 
	export QTDIR=${S} 
 
	unpack qt-x11-free-${PV}.tar.gz 
 
	# qt patch - for ami, fixed on the spot bug.  
	cd ${S} 
	use nls && patch -p1 < ${FILESDIR}/qt-x11-free-3.0.5-ko_input.patch 
	 
	cd ${S} 
	cp configure configure.orig 
	sed -e 's:read acceptance:acceptance=yes:' configure.orig > configure 
 
	cp mkspecs/linux-g++/qmake.conf mkspecs/linux-g++/qmake.conf.orig  
	sed -e "s/-O2/${CFLAGS}/" mkspecs/linux-g++/qmake.conf.orig > 
mkspecs/linux-g++/qmake.conf  
} 
 
src_compile() { 
 
	export QTDIR=${S} 
	 
	export LDFLAGS="-ldl" 
 
	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" 
	[ -n "$DEBUG" ]	&& myconf="${myconf} -debug" 		|| 
myconf="${myconf} -release -no-g++-exceptions" 
	 
	# avoid wasting time building things we won't install 
	rm -rf tutorial examples 
 
	export YACC='byacc -d' 
	 
	./configure -sm -thread -stl -system-zlib -system-libjpeg 
-qt-imgfmt-{jpeg,mng,png} ${myconf} \ 
		-tablet -system-libmng -system-libpng -ldl -lpthread -xft || 
die 
 
	export QTDIR=${S} 
 
	emake src-qmake src-moc sub-src sub-tools || die 
 
} 
 
src_install() { 
 
 
	export QTDIR=${S} 
 
	cd ${S} 
 
	# binaries 
	into $QTBASE 
	dobin bin/* 
 
	# libraries 
	dolib lib/libqt-mt.so.${PV} lib/libqui.so.1.0.0 lib/libeditor.so.1.0.0 
	cd ${D}$QTBASE/lib 
	for x in libqui.so libeditor.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.0.3->3.0->3->.so 
	ln -s libqt-mt.so.${PV} libqt-mt.so.3.0 
	ln -s libqt-mt.so.3.0 libqt-mt.so.3 
	ln -s libqt-mt.so.3 libqt-mt.so 
 
	# libqt -> libqt-mt symlinks 
	ln -s libqt-mt.so.${PV} 	libqt.so.${PV} 
	ln -s libqt-mt.so.3.0	libqt.so.3.0 
	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} 
 
	# misc build reqs 
	dodir ${QTBASE}/mkspecs 
	cp -R ${S}/mkspecs/linux-g++ ${D}/${QTBASE}/mkspecs/ 
 
	sed -e "s:${D}::g" \ 
		-e "s:qt-x11-free-3.0.1::g" \ 
	-e "s:${WORKDIR}:${QTBASE}:" \ 
	-e "s:/usr/local/qt:${QTBASE}:" \ 
	${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 
 
} 
 
 
pkg_postinst() { 
 
einfo "NOTE: If you are upgrading from an older QT, you must remerge any 
versions of 
kde-base/kdelibs and x11-themes/mosfet-liquid-widgets, or QT/KDE widget style 
plugns 
will not work!" 
 
}
Comment 1 Dan Armak (RETIRED) gentoo-dev 2002-08-06 17:07:15 UTC
What list is that?  
 
I've tried doing this before. A patch/sed to enable CFLAGS isn't the problem, 
it's that the default flags include -Wall and with -O3 or in some other 
combinations it enables some flags that require several hundred MBs of ram per 
file being compiled. With make -j2 added, it's a recipe for disaster, 
especially on pcc I think. It's in info gcc somewhere, at least it was for gcc 
2.x (perhaps it's been fixed since then). 
 
Of course we could remove -Wall since we "know" that the source compiles 
cleanly. But I'm not sure I want to do it snice noone ever proved that added 
optimizations actually change anything in qt's preformance! 
 
I'll return to this later. 
Comment 2 SpanKY gentoo-dev 2002-08-31 23:32:12 UTC
http://bugs.gentoo.org/show_bug.cgi?id=7117#c6

*** This bug has been marked as a duplicate of 7117 ***