diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2006-07-25 11:28:08 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2006-07-25 11:28:08 +0000 |
commit | 84f9b81acd9c69c0e4868b5675f7c48a8245534d (patch) | |
tree | 3f7112990f1af41603d29baf3787431712606a8a /net-im | |
parent | Apply Roman's patch also to 3.5.3 series. (diff) | |
download | gentoo-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')
-rw-r--r-- | net-im/kopete/ChangeLog | 9 | ||||
-rw-r--r-- | net-im/kopete/files/digest-kopete-0.12.1-r1 | 3 | ||||
-rw-r--r-- | net-im/kopete/files/kopete-0.12.1-oscarcontacts.patch | 142 | ||||
-rw-r--r-- | net-im/kopete/kopete-0.12.1-r1.ebuild | 129 |
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 +} |