summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2006-07-25 11:28:08 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2006-07-25 11:28:08 +0000
commit84f9b81acd9c69c0e4868b5675f7c48a8245534d (patch)
tree3f7112990f1af41603d29baf3787431712606a8a /net-im/kopete
parentApply Roman's patch also to 3.5.3 series. (diff)
downloadgentoo-2-84f9b81acd9c69c0e4868b5675f7c48a8245534d.tar.gz
gentoo-2-84f9b81acd9c69c0e4868b5675f7c48a8245534d.tar.bz2
gentoo-2-84f9b81acd9c69c0e4868b5675f7c48a8245534d.zip
Add patch to fix server-side oscar contacts, reported by Roman Jarosz in bug #141675.
(Portage version: 2.1.1_pre3-r3)
Diffstat (limited to 'net-im/kopete')
-rw-r--r--net-im/kopete/ChangeLog9
-rw-r--r--net-im/kopete/files/digest-kopete-0.12.1-r13
-rw-r--r--net-im/kopete/files/kopete-0.12.1-oscarcontacts.patch142
-rw-r--r--net-im/kopete/kopete-0.12.1-r1.ebuild129
4 files changed, 282 insertions, 1 deletions
diff --git a/net-im/kopete/ChangeLog b/net-im/kopete/ChangeLog
index 3ba8f407433e..2111b417823e 100644
--- a/net-im/kopete/ChangeLog
+++ b/net-im/kopete/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-im/kopete
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-im/kopete/ChangeLog,v 1.73 2006/07/18 14:43:20 genstef Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-im/kopete/ChangeLog,v 1.74 2006/07/25 11:28:08 flameeyes Exp $
+
+*kopete-0.12.1-r1 (25 Jul 2006)
+
+ 25 Jul 2006; Diego Pettenò <flameeyes@gentoo.org>
+ +files/kopete-0.12.1-oscarcontacts.patch, +kopete-0.12.1-r1.ebuild:
+ Add patch to fix server-side oscar contacts, reported by Roman Jarosz in bug
+ #141675.
18 Jul 2006; Stefan Schweizer <genstef@gentoo.org>
+files/gnomemeeting-ekiga.patch, kopete-0.12.1.ebuild:
diff --git a/net-im/kopete/files/digest-kopete-0.12.1-r1 b/net-im/kopete/files/digest-kopete-0.12.1-r1
new file mode 100644
index 000000000000..2f6f75f34afa
--- /dev/null
+++ b/net-im/kopete/files/digest-kopete-0.12.1-r1
@@ -0,0 +1,3 @@
+MD5 b646f2f45fc0fbcd56ada5078fb540fb kopete-0.12.1.tar.bz2 5309636
+RMD160 0bb66fb0a8a0d12b0d19845d5a39993520cb368d kopete-0.12.1.tar.bz2 5309636
+SHA256 a18174bf48257361c6a337073e2fa1c7dc0b0eba274d558ac9fd5bc84275927e kopete-0.12.1.tar.bz2 5309636
diff --git a/net-im/kopete/files/kopete-0.12.1-oscarcontacts.patch b/net-im/kopete/files/kopete-0.12.1-oscarcontacts.patch
new file mode 100644
index 000000000000..9b17c6766e4d
--- /dev/null
+++ b/net-im/kopete/files/kopete-0.12.1-oscarcontacts.patch
@@ -0,0 +1,142 @@
+Index: kopete/protocols/oscar/liboscar/ssimanager.cpp
+===================================================================
+--- kopete/protocols/oscar/liboscar/ssimanager.cpp (revision 565947)
++++ kopete/protocols/oscar/liboscar/ssimanager.cpp (working copy)
+@@ -71,18 +71,65 @@
+ while ( it != d->SSIList.end() && d->SSIList.count() > 0 )
+ it = d->SSIList.remove( it );
+ };
++
++ d->nextContactId = 0;
++ d->nextGroupId = 0;
+ }
+
+ WORD SSIManager::nextContactId()
+ {
+- d->nextContactId++;
+- return d->nextContactId;
++ if ( d->nextContactId == 0 )
++ d->nextContactId++;
++
++ QValueList<Oscar::SSI>::const_iterator it, listEnd;
++
++ for ( ; d->nextContactId < 0x8000; d->nextContactId++ )
++ {
++ bool freeId = true;
++ listEnd = d->SSIList.end();
++ for ( it = d->SSIList.begin(); it != listEnd; ++it )
++ {
++ if ( ( *it ).bid() == d->nextContactId )
++ {
++ freeId = false;
++ break;
++ }
++ }
++
++ if ( freeId )
++ return d->nextContactId;
++ }
++
++ kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "No free id!" << endl;
++ return 0xFFFF;
+ }
+
+ WORD SSIManager::nextGroupId()
+ {
+- d->nextGroupId++;
+- return d->nextGroupId;
++ if ( d->nextGroupId == 0 )
++ d->nextGroupId++;
++
++ QValueList<Oscar::SSI>::const_iterator it, listEnd;
++
++ for ( ; d->nextGroupId < 0x8000; d->nextGroupId++ )
++ {
++ bool freeId = true;
++ listEnd = d->SSIList.end();
++ for ( it = d->SSIList.begin(); it != listEnd; ++it )
++ {
++ if ( ( *it ).type() == ROSTER_GROUP && ( *it ).gid() == d->nextGroupId )
++ {
++ freeId = false;
++ break;
++ }
++ }
++
++ if ( freeId )
++ return d->nextGroupId;
++ }
++
++ kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "No free group id!" << endl;
++ return 0xFFFF;
+ }
+
+ WORD SSIManager::numberOfItems() const
+@@ -390,8 +437,6 @@
+ if ( !group.name().isEmpty() ) //avoid the group with gid 0 and bid 0
+ { // the group is really new
+ kdDebug( OSCAR_RAW_DEBUG ) << k_funcinfo << "Adding group '" << group.name() << "' to SSI list" << endl;
+- if ( group.gid() > d->nextGroupId )
+- d->nextGroupId = group.gid();
+
+ d->SSIList.append( group );
+ emit groupAdded( group );
+@@ -426,6 +471,10 @@
+ QString groupName = group.name();
+ kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Removing group " << group.name() << endl;
+ int remcount = d->SSIList.remove( group );
++
++ if ( d->nextGroupId > group.gid() )
++ d->nextGroupId = group.gid();
++
+ if ( remcount == 0 )
+ {
+ kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "No groups removed" << endl;
+@@ -452,13 +501,6 @@
+
+ bool SSIManager::newContact( const Oscar::SSI& contact )
+ {
+- //what to validate?
+- if ( contact.bid() > d->nextContactId )
+- {
+- kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Setting next contact ID to " << contact.bid() << endl;
+- d->nextContactId = contact.bid();
+- }
+-
+ if ( d->SSIList.findIndex( contact ) == -1 )
+ {
+ kdDebug( OSCAR_RAW_DEBUG ) << k_funcinfo << "Adding contact '" << contact.name() << "' to SSI list" << endl;
+@@ -496,6 +538,9 @@
+ QString contactName = contact.name();
+ int remcount = d->SSIList.remove( contact );
+
++ if ( d->nextContactId > contact.bid() )
++ d->nextContactId = contact.bid();
++
+ if ( remcount == 0 )
+ {
+ kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "No contacts were removed." << endl;
+@@ -520,12 +565,6 @@
+
+ bool SSIManager::newItem( const Oscar::SSI& item )
+ {
+- if ( item.bid() > d->nextContactId )
+- {
+- kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Setting next contact ID to " << item.bid() << endl;
+- d->nextContactId = item.bid();
+- }
+-
+ //no error checking for now
+ kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Adding item " << item.toString() << endl;
+ d->SSIList.append( item );
+@@ -535,6 +574,10 @@
+ bool SSIManager::removeItem( const Oscar::SSI& item )
+ {
+ d->SSIList.remove( item );
++
++ if ( d->nextContactId > item.bid() )
++ d->nextContactId = item.bid();
++
+ return true;
+ }
+
diff --git a/net-im/kopete/kopete-0.12.1-r1.ebuild b/net-im/kopete/kopete-0.12.1-r1.ebuild
new file mode 100644
index 000000000000..14e41c3aedba
--- /dev/null
+++ b/net-im/kopete/kopete-0.12.1-r1.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-im/kopete/kopete-0.12.1-r1.ebuild,v 1.1 2006/07/25 11:28:08 flameeyes Exp $
+
+inherit kde eutils
+
+MY_P="${P/_/-}"
+MY_P="${MY_P/.0/}"
+
+DESCRIPTION="KDE multi-protocol IM client"
+HOMEPAGE="http://kopete.kde.org/"
+LICENSE="GPL-2"
+
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="jingle sametime ssl xmms xscreensaver slp kernel_linux latex crypt
+ winpopup sms irc yahoo gadu groupwise netmeeting statistics autoreplace
+ connectionstatus contactnotes translator webpresence texteffect highlight
+ alias autoreplace history nowlistening addbookmarks"
+
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+
+# The kernel_linux? ( ) conditional dependencies are for webcams, not supported
+# on other kernels AFAIK
+BOTH_DEPEND="dev-libs/libxslt
+ dev-libs/libxml2
+ net-dns/libidn
+ >=dev-libs/glib-2
+ app-crypt/qca
+ slp? ( net-libs/openslp )
+ jingle? (
+ >=media-libs/speex-1.1.6
+ dev-libs/expat
+ ~net-libs/ortp-0.7.1 )
+ sametime? ( =net-libs/meanwhile-0.4* )
+ xmms? ( media-sound/xmms )
+ || ( (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXrender
+ xscreensaver? ( x11-libs/libXScrnSaver )
+ ) <virtual/x11-7 )
+ kernel_linux? ( virtual/opengl )
+ sms? ( app-mobilephone/gsmlib )"
+
+RDEPEND="${BOTH_DEPEND}
+ ssl? ( app-crypt/qca-tls )
+ !kde-base/kopete
+ !kde-base/kdenetwork
+ !net-libs/libjingle
+ latex? ( virtual/tetex )
+ crypt? ( app-crypt/gnupg )"
+# gnomemeeting is deprecated and ekiga is not yet ~ppc64
+# only needed for calling
+# netmeeting? ( net-im/gnomemeeting )"
+
+DEPEND="${BOTH_DEPEND}
+ kernel_linux? ( virtual/os-headers )
+ || ( (
+ x11-proto/videoproto
+ x11-proto/xextproto
+ x11-proto/xproto
+ kernel_linux? ( x11-libs/libXv )
+ xscreensaver? ( x11-proto/scrnsaverproto )
+ ) <virtual/x11-7 )"
+
+need-kde 3.4
+
+#dev-libs/ilbc-rfc3951: could not see any benifit in it
+#sed -i 's:ilbc_found="no":ilbc_found="yes":' ${S}/kopete/protocols/jabber/jingle/configure.in.in
+
+pkg_setup() {
+ if use kernel_linux && ! built_with_use =x11-libs/qt-3* opengl; then
+ eerror "To support Video4Linux webcams in this package is required to have"
+ eerror "=x11-libs/qt-3* compiled with OpenGL support."
+ eerror "Please reemerge =x11-libs/qt-3* with USE=\"opengl\"."
+ die "Please reemerge =x11-libs/qt-3* with USE=\"opengl\"."
+ fi
+}
+
+kopete_disable() {
+ einfo "Disabling $2 $1"
+ sed -i -e "s/$2//" "${S}/kopete/$1s/Makefile.am"
+}
+
+src_unpack() {
+ kde_src_unpack
+ epatch "${FILESDIR}/${PN}-0.12_alpha1-xscreensaver.patch"
+ # use ekiga instead of gnomemeeting by default
+ epatch "${FILESDIR}/gnomemeeting-ekiga.patch"
+ # Bug #141675
+ epatch "${FILESDIR}/${P}-oscarcontacts.patch"
+
+ use latex || kopete_disable plugin latex
+ use crypt || kopete_disable plugin cryptography
+ use netmeeting || kopete_disable plugin netmeeting
+ use statistics || kopete_disable plugin statistics
+ use autoreplace || kopete_disable plugin autoreplace
+ use connectionstatus || kopete_disable plugin connectionstatus
+ use contactnotes || kopete_disable plugin contactnotes
+ use translator || kopete_disable plugin translator
+ use webpresence || kopete_disable plugin webpresence
+ use texteffect || kopete_disable plugin texteffect
+ use highlight || kopete_disable plugin highlight
+ use alias || kopete_disable plugin alias
+ use addbookmarks || kopete_disable plugin addbookmarks
+ use history || kopete_disable plugin history
+ use nowlistening || kopete_disable plugin nowlistening
+
+ use winpopup || kopete_disable protocol winpopup
+ use gadu || kopete_disable protocol '\$(GADU)'
+ use irc || kopete_disable protocol irc
+ use groupwise || kopete_disable protocol groupwise
+ use yahoo || kopete_disable protocol yahoo
+
+ rm -f "${S}/configure"
+}
+
+src_compile() {
+ # External libgadu support - doesn't work, kopete requires a specific development snapshot of libgadu.
+ # Maybe we can enable it in the future.
+ # The nowlistening plugin has xmms support.
+ local myconf="$(use_enable jingle)
+ $(use_enable sametime sametime-plugin)
+ $(use_with xmms) --without-external-libgadu
+ $(use_with xscreensaver) $(use_enable sms smsgsm)
+ $(use_enable debug testbed)"
+
+ kde_src_compile
+}