diff options
author | Peter Volkov <pva@gentoo.org> | 2011-05-24 17:46:45 +0000 |
---|---|---|
committer | Peter Volkov <pva@gentoo.org> | 2011-05-24 17:46:45 +0000 |
commit | c3a1935716dff27070a0c8024e2638955927f99f (patch) | |
tree | adc096f35de35f05aaea4b8909e5133bde7ab0cd | |
parent | Version bump (bug #346105) (diff) | |
download | gentoo-2-c3a1935716dff27070a0c8024e2638955927f99f.tar.gz gentoo-2-c3a1935716dff27070a0c8024e2638955927f99f.tar.bz2 gentoo-2-c3a1935716dff27070a0c8024e2638955927f99f.zip |
Add qt 4.7 compatibility patch to fix crash reported in bug #368589 by Amadeusz Żołnowski
(Portage version: 2.1.9.49/cvs/Linux x86_64)
-rw-r--r-- | net-im/psi/ChangeLog | 11 | ||||
-rw-r--r-- | net-im/psi/files/psi-0.14-qt-compat.patch | 40 | ||||
-rw-r--r-- | net-im/psi/psi-0.14-r2.ebuild | 159 |
3 files changed, 208 insertions, 2 deletions
diff --git a/net-im/psi/ChangeLog b/net-im/psi/ChangeLog index c01286def735..9cfa716c53b3 100644 --- a/net-im/psi/ChangeLog +++ b/net-im/psi/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-im/psi -# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-im/psi/ChangeLog,v 1.204 2010/11/30 19:24:56 pva Exp $ +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-im/psi/ChangeLog,v 1.205 2011/05/24 17:46:44 pva Exp $ + +*psi-0.14-r2 (24 May 2011) + + 24 May 2011; Peter Volkov <pva@gentoo.org> +psi-0.14-r2.ebuild, + +files/psi-0.14-qt-compat.patch: + Add qt 4.7 compatibility patch to fix crash reported in bug #368589 by + Amadeusz Żołnowski 30 Nov 2010; Peter Volkov <pva@gentoo.org> psi-9999.ebuild: Style fixes, wrt Nikoli. diff --git a/net-im/psi/files/psi-0.14-qt-compat.patch b/net-im/psi/files/psi-0.14-qt-compat.patch new file mode 100644 index 000000000000..99fa30794590 --- /dev/null +++ b/net-im/psi/files/psi-0.14-qt-compat.patch @@ -0,0 +1,40 @@ +commit ec91add0e6398ad20c7a8f14a1a08c5e3282c5bd +Author: Michail Pishchagin <mblsha@users.sourceforge.net> +Date: Tue Oct 19 11:26:31 2010 +0400 + + Fix crash in MUCAffiliationsModel on Qt 4.7 (closes #1087) + Based on 1610-psi-fix-crash-in-muc-configurator.diff from Psi+ + +diff --git a/src/mucaffiliationsmodel.cpp b/src/mucaffiliationsmodel.cpp +index 722b762..fd0a830 100644 +--- a/src/mucaffiliationsmodel.cpp ++++ b/src/mucaffiliationsmodel.cpp +@@ -150,15 +150,18 @@ void MUCAffiliationsModel::resetAffiliationLists() + + void MUCAffiliationsModel::resetAffiliationList(MUCItem::Affiliation a) + { ++ emit layoutAboutToBeChanged(); + enabled_[(AffiliationListIndex) affiliationToIndex(a)] = false; + QModelIndex index = affiliationListIndex(a); + if (hasChildren(index)) { + removeRows(0,rowCount(index),index); + } ++ emit layoutChanged(); + } + + void MUCAffiliationsModel::setAffiliationListEnabled(MUCItem::Affiliation a, bool b) + { ++ emit layoutAboutToBeChanged(); + QModelIndex index = affiliationListIndex(a); + enabled_[(AffiliationListIndex) index.row()] = b; + emit layoutChanged(); +@@ -208,6 +211,9 @@ void MUCAffiliationsModel::addItems(const QList<MUCItem>& items) + foreach(MUCItem item, items) { + QModelIndex list = affiliationListIndex(item.affiliation()); + if (list.isValid() && !item.jid().isEmpty()) { ++ if (!dirty) { ++ emit layoutAboutToBeChanged(); ++ } + int row = rowCount(list); + if (row == 0) { + enabled_[(AffiliationListIndex) list.row()] = true; diff --git a/net-im/psi/psi-0.14-r2.ebuild b/net-im/psi/psi-0.14-r2.ebuild new file mode 100644 index 000000000000..53caa553f411 --- /dev/null +++ b/net-im/psi/psi-0.14-r2.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-im/psi/psi-0.14-r2.ebuild,v 1.1 2011/05/24 17:46:44 pva Exp $ + +EAPI="2" + +inherit eutils qt4 multilib + +MY_P="${P/_rc/-rc}" + +DESCRIPTION="Qt4 Jabber client, with Licq-like interface" +HOMEPAGE="http://psi-im.org/" +# Langpack: +# http://lists.affinix.com/pipermail/psi-devel-affinix.com/2009-August/008798.html +# Later found his site: http://fs.scs-tsa.de/psi_l10n/ +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2 + http://fs.scs-tsa.de/psi_l10n/psi-0.14_langpack_for_packagers_2009-12-02.zip + extras? ( mirror://gentoo/${PN}-extra-patches-r1428.tar.bz2 + mirror://gentoo/${PN}-extra-iconsets-r1428.tar.bz2 )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="crypt dbus debug doc extras jingle spell ssl xscreensaver webkit" +RESTRICT="test" + +LANGS="be cs de fr it ja pl pt_BR ru sl sv ur_PK zh_TW" +for LNG in ${LANGS}; do + IUSE="${IUSE} linguas_${LNG}" + #SRC_URI="${SRC_URI} http://psi-im.org/download/lang/psi_${LNG/ur_PK/ur_pk}.qm" +done + +RDEPEND=">=x11-libs/qt-gui-4.4:4[qt3support,dbus?] + >=x11-libs/qt-qt3support-4.4:4 + >=app-crypt/qca-2.0.2:2 + spell? ( >=app-text/enchant-1.3.0 ) + xscreensaver? ( x11-libs/libXScrnSaver ) + extras? ( webkit? ( x11-libs/qt-webkit ) ) + app-arch/unzip" + +DEPEND="${RDEPEND} + extras? ( sys-devel/qconf ) + doc? ( app-doc/doxygen )" + +PDEPEND="crypt? ( app-crypt/qca-gnupg:2 ) + jingle? ( net-im/psimedia + app-crypt/qca-ossl:2 ) + ssl? ( app-crypt/qca-ossl:2 )" + +S=${WORKDIR}/${MY_P} + +src_prepare() { + epatch "${FILESDIR}/psi-0.14-qt-compat.patch" + + if use extras; then + # some patches from psi+ project http://code.google.com/p/psi-dev + ewarn "You're about to build heavily patched version of Psi called Psi+." + ewarn "It has really nice features but still is under heavy development." + ewarn "Take a look at homepage for more info: http://code.google.com/p/psi-dev" + ewarn "If you wish to disable some patches just put" + ewarn "MY_EPATCH_EXCLUDE=\"list of patches\"" + ewarn "into /etc/portage/env/${CATEGORY}/${PN} file." + ewarn + ewarn "Note: some patches depend on other. So if you disabled some patch" + ewarn "and other started to fail to apply, you'll have to disable patches" + ewarn "that fail too." + ebeep + + EPATCH_EXCLUDE="${MY_EPATCH_EXCLUDE} + 755-psiplus-fix-application-info-defines.diff + 9999-psiplus-application-info.diff" \ + EPATCH_SUFFIX="diff" EPATCH_FORCE="yes" epatch + sed -e 's/\(^#define PROG_CAPS_NODE \).*/\1"http:\/\/psi-dev.googlecode.com\/caps";/' \ + -e 's:\(^#define PROG_NAME "Psi\):\1+:' \ + -i src/applicationinfo.cpp || die + + qconf || die "Failed to create ./configure." + else + if use webkit; then + ewarn "Webkit support disabled as it is only available in Psi+" + ewarn "(USE='extras' enabled)." + fi + fi + + rm -rf third-party/qca # We use system libraries. +} + +src_configure() { + # unable to use econf because of non-standard configure script + # disable growl as it is a MacOS X extension only + local confcmd="./configure + --prefix=/usr + --qtdir=/usr + --disable-bundled-qca + --disable-growl + $(use dbus || echo '--disable-qdbus') + $(use debug && echo '--debug') + $(use spell || echo '--disable-aspell') + $(use spell || echo '--disable-enchant') + $(use xscreensaver || echo '--disable-xss') + $(use extras && { use webkit && echo '--enable-qtwebkit';} )" + + echo ${confcmd} + ${confcmd} || die "configure failed" + # Makefile is not always created... + [[ ! -f Makefile ]] && die "configure failed" +} + +src_compile() { + eqmake4 + + emake || die "emake failed" + + if use doc; then + cd doc + mkdir -p api # 259632 + make api_public || die "make api_public failed" + fi +} + +src_install() { + emake INSTALL_ROOT="${D}" install || die "emake install failed" + rm "${D}"/usr/share/psi/{COPYING,README} + + # this way the docs will be installed in the standard gentoo dir + newdoc iconsets/roster/README README.roster || die + newdoc iconsets/system/README README.system || die + newdoc certs/README README.certs || die + dodoc README || die + + if use doc; then + cd doc + dohtml -r api || die "dohtml failed" + fi + + # install translations + cd "${WORKDIR}" + insinto /usr/share/${PN}/ + local nolangs=true + for LNG in ${LANGS}; do + if use linguas_${LNG}; then + doins ${LNG}/${PN}_${LNG}.qm || die + newins ${LNG}/INFO INFO.${LNG} || die + nolangs=false + fi + done + + # if linguas is empty install all translations + if ${nolangs}; then + for LNG in ${LANGS}; do + doins ${LNG}/${PN}_${LNG}.qm || die + newins ${LNG}/INFO INFO.${LNG} || die + done + fi + + if use extras; then + cp -a "${WORKDIR}"/iconsets/* "${D}"/usr/share/${PN}/iconsets/ || die + fi +} |