summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Volkov <pva@gentoo.org>2011-05-24 17:46:45 +0000
committerPeter Volkov <pva@gentoo.org>2011-05-24 17:46:45 +0000
commitc3a1935716dff27070a0c8024e2638955927f99f (patch)
treeadc096f35de35f05aaea4b8909e5133bde7ab0cd
parentVersion bump (bug #346105) (diff)
downloadgentoo-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/ChangeLog11
-rw-r--r--net-im/psi/files/psi-0.14-qt-compat.patch40
-rw-r--r--net-im/psi/psi-0.14-r2.ebuild159
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
+}