diff options
author | Ingmar Vanhassel <ingmar@gentoo.org> | 2008-03-19 04:20:15 +0000 |
---|---|---|
committer | Ingmar Vanhassel <ingmar@gentoo.org> | 2008-03-19 04:20:15 +0000 |
commit | af77bd16f2876ce8b22ccafe7a6cdda335943a4c (patch) | |
tree | d71bdd76a686ee5e8843d018b47ac3113715a44e /x11-libs | |
parent | Stable for HPPA too. (diff) | |
download | historical-af77bd16f2876ce8b22ccafe7a6cdda335943a4c.tar.gz historical-af77bd16f2876ce8b22ccafe7a6cdda335943a4c.tar.bz2 historical-af77bd16f2876ce8b22ccafe7a6cdda335943a4c.zip |
Anti-aliasing rules are broken in qt-4.3*, causing random runtime failures in Qt programs. bug 213411. Fixed by appending -fno-strict-aliasing.
Package-Manager: portage-2.1.4.4
Diffstat (limited to 'x11-libs')
-rw-r--r-- | x11-libs/qt/ChangeLog | 6 | ||||
-rw-r--r-- | x11-libs/qt/Manifest | 9 | ||||
-rw-r--r-- | x11-libs/qt/qt-4.3.4-r1.ebuild | 285 |
3 files changed, 295 insertions, 5 deletions
diff --git a/x11-libs/qt/ChangeLog b/x11-libs/qt/ChangeLog index 28f9528ccce6..f56bc03871f7 100644 --- a/x11-libs/qt/ChangeLog +++ b/x11-libs/qt/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for x11-libs/qt # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.525 2008/03/16 22:28:30 zlin Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.526 2008/03/19 04:20:15 ingmar Exp $ + + 19 Mar 2008; Ingmar Vanhassel <ingmar@gentoo.org> ChangeLog: + Anti-aliasing rules are broken in qt-4.3*, causing random runtime failures + in Qt programs. bug 213411. Fixed by appending -fno-strict-aliasing. 16 Mar 2008; Bo Ørsted Andresen <zlin@gentoo.org> qt-4.4.0_beta1.ebuild: The qt meta ebuild needs to block previous versions of qt:4 too. diff --git a/x11-libs/qt/Manifest b/x11-libs/qt/Manifest index c983cd1a38c5..3356bcad4e8d 100644 --- a/x11-libs/qt/Manifest +++ b/x11-libs/qt/Manifest @@ -41,14 +41,15 @@ EBUILD qt-3.3.4-r8.ebuild 10576 RMD160 24e821e4e3c0afa1945e3846e73065c7ac2f5e98 EBUILD qt-3.3.8-r4.ebuild 11694 RMD160 054ca74177797a4020e7d80b9277c26d300a1d11 SHA1 bd75957fed753ff00fc01b7659da14c48e3afdcb SHA256 64a69625317e726095a44c108cae5c2b3ae947a310747cf934490a6e40f52da9 EBUILD qt-4.3.2-r1.ebuild 8936 RMD160 5f162263374ec07294422e3e815ca07015bd20c9 SHA1 97e0a8db5dbdc8c17fde814719db202bce8c6d09 SHA256 187eef7e3ae5945e323989ed75be0b757d9e5669c690dcc15222037b0b621205 EBUILD qt-4.3.3.ebuild 8718 RMD160 432ee720745199be3d7ef972b79cb10af2f523ec SHA1 6e5414c1259cea0e70c00f796b411ae9bb6c0b6f SHA256 a5bf686c017159e6bd7c821dd8c37585c86753a1a7c6201f8af054784ae9eb20 +EBUILD qt-4.3.4-r1.ebuild 9024 RMD160 83efd5a208e3e1035eab4410d6fcd7a73869e071 SHA1 dc45424e8c7a356b394a356fb7f9b9aab7f93f92 SHA256 c436adfa675afad0cbeb946e61ae25c5a3962533fbc72b196fb2874d0586e963 EBUILD qt-4.3.4.ebuild 8876 RMD160 42f6aac8c009812a08cfd5facf16d451974b4c57 SHA1 e6620fadde24d8479fdf35b8577817e61b585ed4 SHA256 951cc6252ce6f9badce631f1777fbfe634b47ddb0b9c46f893891da53a2bb06b EBUILD qt-4.4.0_beta1.ebuild 790 RMD160 17637311a0e3075bc31fede8db75d37038fea7fa SHA1 34e382fd0548f4ec65bc2cc59434b93268c6f538 SHA256 66cf50d8f6e90926d72ca7839fd86cd768cc9fab7c999a13aedfb197f7b1cd33 -MISC ChangeLog 39486 RMD160 9a74547105ce0ebf2067bed73bc05b3747ef15e3 SHA1 4b80e9f0a62923039758293cd54467752fe5a1b3 SHA256 1bc9ae724a78daeef06b9e63475423537c9f14b9220add1f499fcbad512dd443 +MISC ChangeLog 39700 RMD160 4bb3f532d1248c569163b9df251bab6c610543d9 SHA1 5fdc509af8f89963790ca15ac4dd9780df1107c5 SHA256 44795399fdb1ba16a43919691fe5677c810c319a457025aaed21158f0119b283 MISC metadata.xml 156 RMD160 d76590850d56864c8d99e6877ed15841b55ef1fc SHA1 e872bab086832a9db3f0fa9b1897c70577d3af21 SHA256 94c4f580c1a55f8a5e1a1dcdd6dedfea0b8bd78c1d7137c354938d73c49e4448 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.7 (GNU/Linux) -iD8DBQFH3Z88fxJ68Jl1NeERAlRVAJ9+j2FmpeoRQdRvY/LH+O/8L45/kwCgqEGx -cuTE/CsloMLBvCa0p90nGhE= -=Eg8w +iD8DBQFH4JRqB18eXLOpYdkRAm/MAJ0eUFmORlPUn+N0H8m1Z1C7t0s97gCggo+D +NjoWFcTQqAqszYZsGwZL6u4= +=B5k6 -----END PGP SIGNATURE----- diff --git a/x11-libs/qt/qt-4.3.4-r1.ebuild b/x11-libs/qt/qt-4.3.4-r1.ebuild new file mode 100644 index 000000000000..b1c11db07122 --- /dev/null +++ b/x11-libs/qt/qt-4.3.4-r1.ebuild @@ -0,0 +1,285 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-4.3.4-r1.ebuild,v 1.1 2008/03/19 04:20:15 ingmar Exp $ + +inherit eutils flag-o-matic toolchain-funcs multilib + +SRCTYPE="opensource-src" +DESCRIPTION="The Qt toolkit is a comprehensive C++ application development framework." +HOMEPAGE="http://www.trolltech.com/" + +SRC_URI="ftp://ftp.trolltech.com/pub/qt/source/qt-x11-${SRCTYPE}-${PV}.tar.gz" +S=${WORKDIR}/qt-x11-${SRCTYPE}-${PV} + +LICENSE="|| ( QPL-1.0 GPL-2 GPL-3 )" +SLOT="4" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" + +IUSE_INPUT_DEVICES="input_devices_wacom" + +IUSE="accessibility cups dbus debug doc examples firebird gif glib jpeg mng mysql nas nis odbc opengl pch png postgres qt3support sqlite sqlite3 ssl tiff xinerama zlib ${IUSE_INPUT_DEVICES}" + +RDEPEND="x11-libs/libXrandr + x11-libs/libXcursor + x11-libs/libXfont + x11-libs/libSM + !x11-libs/qt-core + xinerama? ( x11-libs/libXinerama ) + media-libs/fontconfig + >=media-libs/freetype-2 + png? ( media-libs/libpng ) + jpeg? ( media-libs/jpeg ) + mng? ( >=media-libs/libmng-1.0.9 ) + tiff? ( media-libs/tiff ) + nas? ( >=media-libs/nas-1.5 ) + odbc? ( dev-db/unixODBC ) + mysql? ( virtual/mysql ) + firebird? ( dev-db/firebird ) + sqlite3? ( =dev-db/sqlite-3* ) + sqlite? ( =dev-db/sqlite-2* ) + opengl? ( virtual/opengl virtual/glu ) + postgres? ( dev-db/libpq ) + cups? ( net-print/cups ) + zlib? ( sys-libs/zlib ) + glib? ( dev-libs/glib ) + dbus? ( >=sys-apps/dbus-1.0.2 ) + ssl? ( dev-libs/openssl ) + input_devices_wacom? ( x11-libs/libXi x11-drivers/linuxwacom )" + +DEPEND="${RDEPEND} + xinerama? ( x11-proto/xineramaproto ) + x11-proto/xextproto + x11-proto/inputproto + dev-util/pkgconfig" + +pkg_setup() { + QTBASEDIR=/usr/$(get_libdir)/qt4 + QTPREFIXDIR=/usr + QTBINDIR=/usr/bin + QTLIBDIR=/usr/$(get_libdir)/qt4 + QTPCDIR=/usr/$(get_libdir)/pkgconfig + QTDATADIR=/usr/share/qt4 + QTDOCDIR=/usr/share/doc/${P} + QTHEADERDIR=/usr/include/qt4 + QTPLUGINDIR=${QTLIBDIR}/plugins + QTSYSCONFDIR=/etc/qt4 + QTTRANSDIR=${QTDATADIR}/translations + QTEXAMPLESDIR=${QTDATADIR}/examples + QTDEMOSDIR=${QTDATADIR}/demos + + PLATFORM=$(qt_mkspecs_dir) + +} + +qt_use() { + local flag="$1" + local feature="$1" + local enableval= + + [[ -n $2 ]] && feature=$2 + [[ -n $3 ]] && enableval="-$3" + + useq $flag && echo "${enableval}-${feature}" || echo "-no-${feature}" + return 0 +} + +qt_mkspecs_dir() { + # Allows us to define which mkspecs dir we want to use. + local spec + + case ${CHOST} in + *-freebsd*|*-dragonfly*) + spec="freebsd" ;; + *-openbsd*) + spec="openbsd" ;; + *-netbsd*) + spec="netbsd" ;; + *-darwin*) + spec="darwin" ;; + *-linux-*|*-linux) + spec="linux" ;; + *) + die "Unknown CHOST, no platform choosed." + esac + + CXX=$(tc-getCXX) + if [[ ${CXX/g++/} != ${CXX} ]]; then + spec="${spec}-g++" + elif [[ ${CXX/icpc/} != ${CXX} ]]; then + spec="${spec}-icc" + else + die "Unknown compiler ${CXX}." + fi + + echo "${spec}" +} + +src_unpack() { + + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/qt-4.2.3-hppa-ldcw-fix.patch + + cd "${S}"/mkspecs/$(qt_mkspecs_dir) + # set c/xxflags and ldflags + + # Don't let the user go too overboard with flags. If you really want to, uncomment + # out the line below and give 'er a whirl. + strip-flags + replace-flags -O3 -O2 + + if [[ $( gcc-fullversion ) == "3.4.6" && gcc-specs-ssp ]] ; then + ewarn "Appending -fno-stack-protector to CFLAGS/CXXFLAGS" + append-flags -fno-stack-protector + fi + + # Bug 178652 + if [[ "$(gcc-major-version)" == "3" ]] && use amd64; then + ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS" + append-flags -fno-gcse + fi + + # Anti-aliasing rules are broken in qt-4.3*, causing random runtime failures + # in Qt programs. bug 213411. + append-flags -fno-strict-aliasing + + 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}:" \ + -e "/CONFIG/s:$: nostrip:" \ + qmake.conf + + # Do not link with -rpath. See bug #75181. + sed -i -e "s:QMAKE_RPATH.*=.*:QMAKE_RPATH=:" qmake.conf + + # Replace X11R6/ directories, so /usr/X11R6/lib -> /usr/lib + sed -i -e "s:X11R6/::" qmake.conf + + # The trolls moved the definitions of the above stuff for g++, so we need to edit those files + # separately as well. + cd "${S}"/mkspecs/common + + sed -i -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CPPFLAGS} ${CFLAGS} ${ASFLAGS}:" \ + -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CPPFLAGS} ${CXXFLAGS} ${ASFLAGS}:" \ + -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \ + g++.conf + + # Do not link with -rpath. See bug #75181. + sed -i -e "s:QMAKE_RPATH.*=.*:QMAKE_RPATH=:" g++.conf + + # Replace X11R6/ directories, so /usr/X11R6/lib -> /usr/lib + sed -i -e "s:X11R6/::" linux.conf + + cd "${S}"/qmake + + sed -i -e "s:CXXFLAGS.*=:CXXFLAGS=${CPPFLAGS} ${CXXFLAGS} ${ASFLAGS} :" \ + -e "s:LFLAGS.*=:LFLAGS=${LDFLAGS} :" Makefile.unix + + cd "${S}" + +} + +src_compile() { + export PATH="${S}/bin:${PATH}" + export LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" + + [ $(get_libdir) != "lib" ] && myconf="${myconf} -L/usr/$(get_libdir)" + + # Disable visibility explicitly if gcc version isn't 4 + if [[ "$(gcc-major-version)" != "4" ]]; then + myconf="${myconf} -no-reduce-exports" + fi + + # Add a switch that will attempt to use recent binutils to reduce relocations. Should be harmless for other + # cases. From bug #178535 + myconf="${myconf} -reduce-relocations" + + myconf="${myconf} $(qt_use accessibility) $(qt_use cups) $(qt_use xinerama)" + myconf="${myconf} $(qt_use opengl) $(qt_use nis)" + + use nas && myconf="${myconf} -system-nas-sound" + + myconf="${myconf} $(qt_use gif gif qt) $(qt_use png libpng system)" + myconf="${myconf} $(qt_use jpeg libjpeg system) $(qt_use tiff libtiff system)" + myconf="${myconf} $(qt_use zlib zlib system) $(qt_use mng libmng system)" + + use debug && myconf="${myconf} -debug -no-separate-debug-info" || myconf="${myconf} -release -no-separate-debug-info" + + use mysql && myconf="${myconf} -plugin-sql-mysql -I/usr/include/mysql -L/usr/$(get_libdir)/mysql" || myconf="${myconf} -no-sql-mysql" + use postgres && myconf="${myconf} -plugin-sql-psql -I/usr/include/postgresql/pgsql" || myconf="${myconf} -no-sql-psql" + use firebird && myconf="${myconf} -plugin-sql-ibase -I/opt/firebird/include" || myconf="${myconf} -no-sql-ibase" + use sqlite3 && myconf="${myconf} -plugin-sql-sqlite -system-sqlite" || myconf="${myconf} -no-sql-sqlite" + use sqlite && myconf="${myconf} -plugin-sql-sqlite2" || myconf="${myconf} -no-sql-sqlite2" + use odbc && myconf="${myconf} -plugin-sql-odbc" || myconf="${myconf} -no-sql-odbc" + + use dbus && myconf="${myconf} -qdbus" || myconf="${myconf} -no-qdbus" + use glib && myconf="${myconf} -glib" || myconf="${myconf} -no-glib" + use qt3support && myconf="${myconf} -qt3support" || myconf="${myconf} -no-qt3support" + use ssl && myconf="${myconf} -openssl" || myconf="${myconf} -no-openssl" + + use pch && myconf="${myconf} -pch" || myconf="${myconf} -no-pch" + + use input_devices_wacom && myconf="${myconf} -tablet" || myconf="${myconf} -no-tablet" + + myconf="${myconf} -xrender -xrandr -xkb -xshape -sm" + + if ! use examples; then + myconf="${myconf} -nomake examples" + fi + + myconf="-stl -verbose -largefile -confirm-license \ + -platform ${PLATFORM} -xplatform ${PLATFORM} -no-rpath \ + -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR} -datadir ${QTDATADIR} \ + -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} -plugindir ${QTPLUGINDIR} \ + -sysconfdir ${QTSYSCONFDIR} -translationdir ${QTTRANSDIR} \ + -examplesdir ${QTEXAMPLESDIR} -demosdir ${QTDEMOSDIR} ${myconf}" + + echo ./configure ${myconf} + ./configure ${myconf} || die + + emake all || die +} + +src_install() { + export PATH="${S}/bin:${PATH}" + export LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" + + emake INSTALL_ROOT="${D}" install_subtargets || die + emake INSTALL_ROOT="${D}" install_qmake || die + emake INSTALL_ROOT="${D}" install_mkspecs || die + + if use doc; then + emake INSTALL_ROOT="${D}" install_htmldocs || die + fi + + # Install the translations. This may get use flagged later somehow + emake INSTALL_ROOT="${D}" install_translations || die + + keepdir "${QTSYSCONFDIR}" + + sed -i -e "s:${S}/lib:${QTLIBDIR}:g" "${D}"/${QTLIBDIR}/*.la + sed -i -e "s:${S}/lib:${QTLIBDIR}:g" "${D}"/${QTLIBDIR}/*.prl + sed -i -e "s:${S}/lib:${QTLIBDIR}:g" "${D}"/${QTLIBDIR}/pkgconfig/*.pc + + # pkgconfig files refer to WORKDIR/bin as the moc and uic locations. Fix: + sed -i -e "s:${S}/bin:${QTBINDIR}:g" "${D}"/${QTLIBDIR}/pkgconfig/*.pc + + # Move .pc files into the pkgconfig directory + dodir ${QTPCDIR} + mv "${D}"/${QTLIBDIR}/pkgconfig/*.pc "${D}"/${QTPCDIR} + + # Install .desktop files, from bug #174033 + insinto /usr/share/applications + doins "${FILESDIR}"/qt4/*.desktop + + # List all the multilib libdirs + local libdirs + for libdir in $(get_all_libdirs); do + libdirs="${libdirs}:/usr/${libdir}/qt4" + done + + cat > "${T}/44qt4" << EOF +LDPATH=${libdirs:1} +EOF + doenvd "${T}/44qt4" +} |