diff options
author | Caleb Tennis <caleb@gentoo.org> | 2007-12-05 23:52:37 +0000 |
---|---|---|
committer | Caleb Tennis <caleb@gentoo.org> | 2007-12-05 23:52:37 +0000 |
commit | 5c276b2d553639b44508f4bd6a5a60e0abf2f054 (patch) | |
tree | 8a46d22efed94fd9460f3395cbc9d70519303c67 /x11-libs/qt | |
parent | LICENSE fix from project overlay (diff) | |
download | gentoo-2-5c276b2d553639b44508f4bd6a5a60e0abf2f054.tar.gz gentoo-2-5c276b2d553639b44508f4bd6a5a60e0abf2f054.tar.bz2 gentoo-2-5c276b2d553639b44508f4bd6a5a60e0abf2f054.zip |
qsslsocket.patch, bug #201296
(Portage version: 2.1.3.16)
Diffstat (limited to 'x11-libs/qt')
-rw-r--r-- | x11-libs/qt/ChangeLog | 8 | ||||
-rw-r--r-- | x11-libs/qt/files/digest-qt-4.3.2-r1 | 3 | ||||
-rw-r--r-- | x11-libs/qt/files/qsslsocket-fix.patch | 43 | ||||
-rw-r--r-- | x11-libs/qt/qt-4.3.2-r1.ebuild | 277 |
4 files changed, 330 insertions, 1 deletions
diff --git a/x11-libs/qt/ChangeLog b/x11-libs/qt/ChangeLog index d821a7694e52..78a1663e71b4 100644 --- a/x11-libs/qt/ChangeLog +++ b/x11-libs/qt/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for x11-libs/qt # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.500 2007/11/14 18:15:40 drac Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.501 2007/12/05 23:52:37 caleb Exp $ + +*qt-4.3.2-r1 (05 Dec 2007) + + 05 Dec 2007; Caleb Tennis <caleb@gentoo.org> +files/qsslsocket-fix.patch, + +qt-4.3.2-r1.ebuild: + Add qsslsocket patch, bug #201296 14 Nov 2007; Samuli Suominen <drac@gentoo.org> qt-4.3.2.ebuild: amd64 stable wrt #198454, thanks to Thomas A. for testing. diff --git a/x11-libs/qt/files/digest-qt-4.3.2-r1 b/x11-libs/qt/files/digest-qt-4.3.2-r1 new file mode 100644 index 000000000000..6617b32bc788 --- /dev/null +++ b/x11-libs/qt/files/digest-qt-4.3.2-r1 @@ -0,0 +1,3 @@ +MD5 a60490b36099bdd10c4d2f55430075b3 qt-x11-opensource-src-4.3.2.tar.gz 43462686 +RMD160 b73a3d7a1edd11987544291cce80b56f5a499969 qt-x11-opensource-src-4.3.2.tar.gz 43462686 +SHA256 70198d61d038007c787bab62700d35cbd3fc925b53fe920672f2a0afbae7e276 qt-x11-opensource-src-4.3.2.tar.gz 43462686 diff --git a/x11-libs/qt/files/qsslsocket-fix.patch b/x11-libs/qt/files/qsslsocket-fix.patch new file mode 100644 index 000000000000..b44b78f2812f --- /dev/null +++ b/x11-libs/qt/files/qsslsocket-fix.patch @@ -0,0 +1,43 @@ +diff src/network/qsslsocket_openssl.cpp src/network/qsslsocket_openssl.cpp +--- src/network/qsslsocket_openssl.cpp ++++ src/network/qsslsocket_openssl.cpp +@@ -188,8 +188,8 @@ struct QSslErrorList + Q_GLOBAL_STATIC(QSslErrorList, _q_sslErrorList) + static int q_X509Callback(int ok, X509_STORE_CTX *ctx) + { +- Q_UNUSED(ok); +- _q_sslErrorList()->errors << ctx->error; ++ if (!ok) ++ _q_sslErrorList()->errors << ctx->error; + return ctx->error; + } + +@@ -297,6 +297,7 @@ bool QSslSocketBackendPrivate::initSslContext() + + // Clear the session. + q_SSL_clear(ssl); ++ errorList.clear(); + + // Initialize memory BIOs for encryption and decryption. + readBio = q_BIO_new(q_BIO_s_mem()); +@@ -570,7 +571,7 @@ bool QSslSocketBackendPrivate::testConnection() + _q_sslErrorList()->mutex.lock(); + _q_sslErrorList()->errors.clear(); + int result = (mode == QSslSocket::SslClientMode) ? q_SSL_connect(ssl) : q_SSL_accept(ssl); +- QList<int> errorList = _q_sslErrorList()->errors; ++ errorList << _q_sslErrorList()->errors; + _q_sslErrorList()->mutex.unlock(); + + // Check if we're encrypted or not. +diff src/network/qsslsocket_openssl_p.h src/network/qsslsocket_openssl_p.h +index be57b87..00b9b45 100644 +--- src/network/qsslsocket_openssl_p.h ++++ src/network/qsslsocket_openssl_p.h +@@ -77,6 +77,7 @@ public: + SSL_SESSION *session; + X509_STORE *certificateStore; + X509_STORE_CTX *certificateStoreCtx; ++ QList<int> errorList; + + // Platform specific functions + void startClientEncryption(); diff --git a/x11-libs/qt/qt-4.3.2-r1.ebuild b/x11-libs/qt/qt-4.3.2-r1.ebuild new file mode 100644 index 000000000000..54bf0555269b --- /dev/null +++ b/x11-libs/qt/qt-4.3.2-r1.ebuild @@ -0,0 +1,277 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-4.3.2-r1.ebuild,v 1.1 2007/12/05 23:52:37 caleb 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 )" +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 + 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/${PF} + 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 + + epatch "${FILESDIR}"/qsslsocket-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 + + 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} +QMAKESPEC=$(qt_mkspecs_dir) +EOF + doenvd "${T}/44qt4" +} |