[arch-commits] Commit in kdenetwork/trunk (PKGBUILD fix-yahoo-protocol.patch)

Andrea Scarpino andrea at archlinux.org
Sat Apr 10 15:55:16 UTC 2010


    Date: Saturday, April 10, 2010 @ 11:55:15
  Author: andrea
Revision: 77061

upgpkg: kdenetwork 4.4.2-2
fix yahoo protocol in kopete (FS#18624)

Added:
  kdenetwork/trunk/fix-yahoo-protocol.patch
Modified:
  kdenetwork/trunk/PKGBUILD

--------------------------+
 PKGBUILD                 |   12 +
 fix-yahoo-protocol.patch |  330 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 338 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2010-04-10 14:51:38 UTC (rev 77060)
+++ PKGBUILD	2010-04-10 15:55:15 UTC (rev 77061)
@@ -10,7 +10,7 @@
          'kdenetwork-krdc'
          'kdenetwork-krfb')
 pkgver=4.4.2
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 url='http://www.kde.org'
 license=('GPL' 'LGPL' 'FDL')
@@ -19,11 +19,15 @@
              'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
              'ppp' 'libv4l' 'libidn' 'rdesktop' 'qimageblitz' 'libxss' 'libxdamage'
              'libgadu' 'telepathy-qt4')
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
-md5sums=('079fe0c9b7d7c5b52e673b5f4bc4f301')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+	'fix-yahoo-protocol.patch')
+md5sums=('079fe0c9b7d7c5b52e673b5f4bc4f301'
+	'aef9c40e3b93f36b1c611f0bb5429e50')
 
 build() {
-        cd ${srcdir}
+        cd ${srcdir}/${pkgbase}-${pkgver}
+	patch -Np1 -i ${srcdir}/fix-yahoo-protocol.patch || return 1
+	cd ${srcdir}
 	mkdir build
 	cd build
 	cmake ../${pkgbase}-${pkgver} \

Added: fix-yahoo-protocol.patch
===================================================================
--- fix-yahoo-protocol.patch	                        (rev 0)
+++ fix-yahoo-protocol.patch	2010-04-10 15:55:15 UTC (rev 77061)
@@ -0,0 +1,330 @@
+Index: kdenetwork/kopete/protocols/yahoo/yahoocontact.h
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/yahoocontact.h	(revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/yahoocontact.h	(revision 1110828)
+@@ -56,8 +56,8 @@
+ 
+ 	void setOnlineStatus(const Kopete::OnlineStatus &status);
+ 	void setYahooStatus( const Kopete::OnlineStatus& );
+-	void setStealthed( bool );
+-	bool stealthed();
++	void updateStealthed();
++	bool stealthed() const;
+ 
+ 
+ 	/** The group name getter and setter methods**/
+@@ -121,7 +121,6 @@
+ 	YahooChatSession *m_manager;
+ 	YahooWebcamDialog* m_webcamDialog;
+ 	YahooAccount* m_account;
+-	bool m_stealthed;
+ 	bool m_receivingWebcam;
+ 	bool m_sessionActive;
+ 	
+Index: kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.cpp
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.cpp	(revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.cpp	(revision 1110828)
+@@ -34,9 +34,6 @@
+ 
+ }
+ 
+-QStringList loginstealthedbuddies;
+-QStringList loginunstealthedbuddies;
+-
+ bool ListTask::take( Transfer* transfer )
+ {
+ 	if ( !forMe( transfer ) )
+@@ -85,47 +82,30 @@
+ 		case 301:
+ 			if( p.second == "319"){
+ 				emit gotBuddy( buddy, QString(), group );
+-                                /**
+-                                * Note: michaelacole
+-                                * Since you can log in from other places and remove or add Perm Offline status
+-                                * We have to reset both conditions at login
+-                                * Yahoo sends this data at this time,
+-                                * so better to compile list of both now then notify kopete client.
+-                                */
+-				loginunstealthedbuddies.append( buddy );
+ 			}
+ 			break;
+ 		case 317:
+ 			if( p.second == "2"){
+-			kDebug(YAHOO_RAW_DEBUG) << "Stealthed setting on" << buddy ;
+-                        /** Note: michaelacole
+-                        * Since you can log in from other places and remove or add Perm Offline status
+-                        * We have to reset both conditions at login
+-                        * Yahoo sends this data at this time,
+-                        * so better to compile list of both now then notify kopete client.
+-                        */
+-			loginstealthedbuddies.append( buddy );
+-			loginunstealthedbuddies.removeAll( buddy );
++				kDebug(YAHOO_RAW_DEBUG) << "Stealthed setting on" << buddy ;
++				emit stealthStatusChanged( buddy, Yahoo::StealthActive );
+ 			};
+ 			break;
+-                /**
+-                * Note: michaelacole
+-                * Other buddy codes are here for add to list and blacklist
+-                * I will need to capute more codes for addition here.
+-                * Blacklist is done on the server at Yahoo whereas
+-                * Kopete has its own plugin for blacklisting.
+-                */
++			/**
++			* Note: michaelacole
++			* Other buddy codes are here for add to list and blacklist
++			* I will need to capute more codes for addition here.
++			* Blacklist is done on the server at Yahoo whereas
++			* Kopete has its own plugin for blacklisting.
++			*/
+ 		}
+ 	}
+-        /**
+-        * Note: michaelacole
+-        * Since you can log in from other places and remove or add Perm Offline status
+-        * We have to reset both conditions at login
+-        * Yahoo sends this data at this time,
+-        * so better to compile list of both now then notify kopete client.
+-        */
+-        client()->notifyUnstealthedBuddies( loginunstealthedbuddies );
+-        client()->notifyStealthedBuddies( loginstealthedbuddies );
++	/**
++	* Note: michaelacole
++	* Since you can log in from other places and remove or add Perm Offline status
++	* We have to reset both conditions at login
++	* Yahoo sends this data at this time,
++	* so better to compile list of both now then notify kopete client.
++	*/
+ }
+ 
+ 
+Index: kdenetwork/kopete/protocols/yahoo/libkyahoo/client.cpp
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/libkyahoo/client.cpp	(revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/libkyahoo/client.cpp	(revision 1110828)
+@@ -76,8 +76,7 @@
+ 	int error;
+ 	QString errorString;
+ 	QString errorInformation;
+-	QStringList stealthedBuddies;
+-	QStringList unstealthedBuddies;
++	QSet<QString> stealthedBuddies;
+ 	// tasks
+ 	bool tasksInitialized;
+ 	LoginTask * loginTask;
+@@ -133,14 +132,13 @@
+ 	
+ 	QObject::connect( d->loginTask, SIGNAL( haveSessionID( uint ) ), SLOT( lt_gotSessionID( uint ) ) );
+ 	QObject::connect( d->loginTask, SIGNAL( buddyListReady() ), SLOT( processPictureQueue() ) );
+-	QObject::connect( d->loginTask, SIGNAL( buddyListReady() ), SLOT( processStealthQueue() ) );
+ 	QObject::connect( d->loginTask, SIGNAL( loginResponse( int, const QString& ) ), 
+ 				SLOT( slotLoginResponse( int, const QString& ) ) );
+ 	QObject::connect( d->loginTask, SIGNAL( haveCookies() ), SLOT( slotGotCookies() ) );
+ 	QObject::connect( d->listTask, SIGNAL( gotBuddy(const QString &, const QString &, const QString &) ), 
+ 					SIGNAL( gotBuddy(const QString &, const QString &, const QString &) ) );
+ 	QObject::connect( d->listTask, SIGNAL( stealthStatusChanged( const QString&, Yahoo::StealthStatus ) ), 
+-					SIGNAL( stealthStatusChanged( const QString&, Yahoo::StealthStatus ) ) );
++					SLOT( notifyStealthStatusChanged( const QString&, Yahoo::StealthStatus ) ) );
+ }
+ 
+ Client::~Client()
+@@ -182,9 +180,11 @@
+ 	emit connected();
+ 	kDebug(YAHOO_RAW_DEBUG) << " starting login task ... ";
+ 
++	// Clear stealth settings
++	d->stealthedBuddies.clear();
++
+ 	d->loginTask->setStateOnConnect( (d->statusOnConnect == Yahoo::StatusInvisible) ? Yahoo::StatusInvisible : Yahoo::StatusAvailable );
+ 	d->loginTask->go();
+-	processStealthQueue();
+ 	d->active = true;
+ }
+ 
+@@ -615,29 +615,6 @@
+ 	spt->go( true );
+ }
+ 
+-// **** Stealth Handling **** michaelacole
+-void Client::processStealthQueue()
+-{
+-	if( d->buddyListReady ){
+-		while (!d->unstealthedBuddies.isEmpty())
+-			{
+-			QString it;
+-			it = d->unstealthedBuddies.takeFirst();
+-			kDebug(YAHOO_RAW_DEBUG) << "unstealthed setting set on" << it;
+-			stealthContact( it, Yahoo::StealthOffline , Yahoo::StealthNotActive );
+-			}
+-
+-		while (!d->stealthedBuddies.isEmpty())
+-			{
+-			QString it;
+-			it = d->stealthedBuddies.takeFirst();
+-			kDebug(YAHOO_RAW_DEBUG) << "stealthed setting set on" << it ;
+-			stealthContact( it, Yahoo::StealthPermOffline , Yahoo::StealthActive );
+-			}
+-	}
+-}
+-
+-
+ // ***** Webcam handling *****
+ 
+ void Client::requestWebcam( const QString &userId )
+@@ -767,14 +744,22 @@
+ 	emit error( level );
+ }
+ 
+-void Client::notifyStealthedBuddies( const QStringList &buddies)
++Yahoo::StealthStatus Client::stealthStatus( const QString &userId ) const
+ {
+-	d->stealthedBuddies = buddies;
++	if ( d->stealthedBuddies.contains( userId ) )
++		return Yahoo::StealthActive;
++	else
++		return Yahoo::StealthNotActive;
+ }
+ 
+-void Client::notifyUnstealthedBuddies( const QStringList &buddies)
++void Client::notifyStealthStatusChanged( const QString &userId, Yahoo::StealthStatus state )
+ {
+-	d->unstealthedBuddies = buddies;
++	if ( state == Yahoo::StealthActive )
++		d->stealthedBuddies.insert( userId );
++	else
++		d->stealthedBuddies.remove( userId );
++	
++	emit stealthStatusChanged( userId, state );
+ }
+ 
+ QString Client::userId()
+@@ -902,7 +887,7 @@
+ 	QObject::connect( d->statusTask, SIGNAL( statusChanged(QString,int,const QString,int,int,int) ), 
+ 				SIGNAL( statusChanged(QString,int,const QString,int,int,int) ) );
+ 	QObject::connect( d->statusTask, SIGNAL( stealthStatusChanged( const QString&, Yahoo::StealthStatus ) ), 
+-				SIGNAL( stealthStatusChanged( const QString&, Yahoo::StealthStatus ) ) );
++				SLOT( notifyStealthStatusChanged( const QString&, Yahoo::StealthStatus ) ) );
+ 	QObject::connect( d->statusTask, SIGNAL( loginResponse( int, const QString& ) ), 
+ 				SLOT( slotLoginResponse( int, const QString& ) ) );
+ 	QObject::connect( d->statusTask, SIGNAL( authorizationRejected( const QString&, const QString& ) ), 
+Index: kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.h
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.h	(revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.h	(revision 1110828)
+@@ -40,7 +40,7 @@
+ 
+ signals:
+ 	void gotBuddy(const QString&, const QString&, const QString&);
+-
++	void stealthStatusChanged( const QString&, Yahoo::StealthStatus );
+ };
+ 
+ #endif
+Index: kdenetwork/kopete/protocols/yahoo/libkyahoo/client.h
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/libkyahoo/client.h	(revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/libkyahoo/client.h	(revision 1110828)
+@@ -189,6 +189,12 @@
+ 		void stealthContact( QString const &userId, Yahoo::StealthMode mode, Yahoo::StealthStatus state );
+ 
+ 		/**
++		 * Get the stealth status of a buddy
++		 * @param userId the yahoo ID of the buddy
++		 */
++		Yahoo::StealthStatus stealthStatus( const QString &userId ) const;
++
++		/**
+ 		 * Request the buddy's picture
+ 		 * @param userId the yahoo ID of the buddy
+ 		 */
+@@ -456,12 +462,6 @@
+ 		 */
+ 		void notifyError( const QString &info, const QString &errorString, LogLevel level );
+ 
+-		/**
+-		 * Steathed information from login..
+-		 */
+-		void notifyStealthedBuddies( const QStringList &buddies);
+-		void notifyUnstealthedBuddies( const QStringList &buddies);
+-
+ 	signals:
+ 		/** CONNECTION EVENTS */
+ 		/**
+@@ -723,10 +723,10 @@
+ 		 */
+ 		void processPictureQueue();
+ 
+-		 /** 
+-		 * Update all Stealth info after login
++		/**
++		 * Process steathed change.
+ 		 */
+-		void processStealthQueue();
++		void notifyStealthStatusChanged( const QString &, Yahoo::StealthStatus );
+                 
+ 	private:
+ 		void distribute( Transfer *transfer );
+Index: kdenetwork/kopete/protocols/yahoo/yahoocontact.cpp
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/yahoocontact.cpp	(revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/yahoocontact.cpp	(revision 1110828)
+@@ -74,7 +74,6 @@
+ 	m_manager = 0L;
+ 	m_account = account;
+ 	m_YABEntry = 0L;
+-	m_stealthed = false;
+ 	m_receivingWebcam = false;
+ 	m_sessionActive = false;
+ 
+@@ -109,7 +108,8 @@
+ 
+ void YahooContact::setOnlineStatus(const Kopete::OnlineStatus &status)
+ {
+-	if( m_stealthed && status.internalStatus() <= 999)	// Not Stealted -> Stealthed
++	bool isStealthed = stealthed();
++	if( isStealthed && status.internalStatus() <= 999)	// Not Stealted -> Stealthed
+ 	{
+ 		Contact::setOnlineStatus(
+ 			Kopete::OnlineStatus(status.status() ,
+@@ -119,7 +119,7 @@
+ 			status.overlayIcons() + QStringList("yahoo_stealthed") ,
+ 			i18n("%1|Stealthed", status.description() ) ) );
+ 	}
+-	else if( !m_stealthed && status.internalStatus() > 999 )// Stealthed -> Not Stealthed
++	else if( !isStealthed && status.internalStatus() > 999 )// Stealthed -> Not Stealthed
+ 		Contact::setOnlineStatus( static_cast< YahooProtocol *>( protocol() )->statusFromYahoo( status.internalStatus() - 1000 ) );
+ 	else
+ 		Contact::setOnlineStatus( status );
+@@ -128,15 +128,14 @@
+ 		setStatusMessage( Kopete::StatusMessage() );
+ }
+ 
+-void YahooContact::setStealthed( bool stealthed )
++void YahooContact::updateStealthed()
+ {
+-	m_stealthed = stealthed;
+ 	setOnlineStatus( onlineStatus() );
+ }
+ 
+-bool YahooContact::stealthed()
++bool YahooContact::stealthed() const
+ {
+-	return m_stealthed;
++	return (m_account->yahooSession()->stealthStatus( m_userId ) == Yahoo::StealthActive );
+ }
+ 
+ void YahooContact::serialize(QMap<QString, QString> &serializedData, QMap<QString, QString> &addressBookData)
+Index: kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp
+===================================================================
+--- kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp	(revision 1110827)
++++ kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp	(revision 1110828)
+@@ -978,7 +978,7 @@
+ 		kDebug(YAHOO_GEN_DEBUG) << "contact " << who << " doesn't exist.";
+ 		return;
+ 	}
+-	kc->setStealthed( state == Yahoo::StealthActive );
++	kc->updateStealthed();
+ }
+ 
+ QString YahooAccount::prepareIncomingMessage( const QString &messageText )




More information about the arch-commits mailing list