diff options
Diffstat (limited to 'source/kde/kdenetwork')
-rw-r--r-- | source/kde/kdenetwork/doinst.sh | 5 | ||||
-rwxr-xr-x | source/kde/kdenetwork/kdenetwork.SlackBuild | 92 | ||||
-rw-r--r-- | source/kde/kdenetwork/kopete-r986796.diff | 396 | ||||
-rw-r--r-- | source/kde/kdenetwork/local.options | 1 | ||||
-rw-r--r-- | source/kde/kdenetwork/slack-desc | 19 |
5 files changed, 513 insertions, 0 deletions
diff --git a/source/kde/kdenetwork/doinst.sh b/source/kde/kdenetwork/doinst.sh new file mode 100644 index 00000000..22d4849b --- /dev/null +++ b/source/kde/kdenetwork/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdenetwork/kdenetwork.SlackBuild b/source/kde/kdenetwork/kdenetwork.SlackBuild new file mode 100755 index 00000000..6939ad4c --- /dev/null +++ b/source/kde/kdenetwork/kdenetwork.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdenetwork + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdenetwork-$VERSION..." +tar xvf $CWD/../src/kdenetwork-$VERSION.tar.?z* || exit 1 +cd kdenetwork-$VERSION + +zcat $CWD/kopete-r986796.diff.gz | patch -p4 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdenetwork-$VERSION +cp -a COPYING* INSTALL README $PKG/usr/doc/kdenetwork-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdenetwork-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdenetwork/kopete-r986796.diff b/source/kde/kdenetwork/kopete-r986796.diff new file mode 100644 index 00000000..a251b328 --- /dev/null +++ b/source/kde/kdenetwork/kopete-r986796.diff @@ -0,0 +1,396 @@ +Index: branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.h +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.h (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.h (revision 986796) +@@ -26,7 +26,13 @@ + + class QString; + class YMSGTransfer; ++class KJob; + ++namespace KIO ++{ ++ class Job; ++} ++ + /** + @author Duncan Mac-Vicar + */ +@@ -58,6 +64,15 @@ + void sendAuthResp_pre_0x0b(const QString &sn, const QString &seed); + void handleAuthResp(YMSGTransfer *transfer); + void parseCookies( YMSGTransfer *transfer ); ++ void sendAuthSixteenStage1(const QString& sn, const QString& seed); ++ void sendAuthSixteenStage2(const QString& token); ++ void sendAuthSixteenStage3(const QString& cryptString); ++protected Q_SLOTS: ++ void handleAuthSixteenStage1Data(KIO::Job*, const QByteArray& data); ++ void handleAuthSixteenStage1Result(KJob*); ++ void handleAuthSixteenStage2Data(KIO::Job*, const QByteArray& data); ++ void handleAuthSixteenStage2Result(KJob*); ++ + signals: + void haveSessionID( uint ); + void haveCookies(); +@@ -71,6 +86,10 @@ + QString m_cCookie; + QString m_loginCookie; + QString m_verificationWord; ++ QString m_stage1Data; ++ QString m_stage2Data; ++ QString m_challengeString; ++ uint m_sessionID; + }; + + #endif +Index: branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.cpp +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.cpp (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.cpp (revision 986796) +@@ -3,10 +3,10 @@ + Handles logging into to the Yahoo service + + Copyright (c) 2004 Duncan Mac-Vicar P. <duncan@kde.org> +- + Copyright (c) 2005-2006 André Duffeck <duffeck@kde.org> ++ Copyright 2009 Matt Rogers <mattr@kde.org> + +- Kopete (c) 2002-2006 by the Kopete developers <kopete-devel@kde.org> ++ Kopete (c) 2002-2009 by the Kopete developers <kopete-devel@kde.org> + + ************************************************************************* + * * +@@ -28,6 +28,10 @@ + #include <qstring.h> + #include <kdebug.h> + #include <stdlib.h> ++ ++#include <QCryptographicHash> ++#include <KDE/KJob> ++#include <KDE/KIO/Job> + extern "C" + { + #include "libyahoo.h" +@@ -177,52 +181,197 @@ + + QString sn = t->firstParam( 1 ); + QString seed = t->firstParam( 94 ); ++ m_challengeString = seed; + QString version_s = t->firstParam( 13 ); +- uint sessionID = t->id(); ++ m_sessionID = t->id(); + int version = version_s.toInt(); + + switch (version) + { + case 0: +- kDebug(YAHOO_RAW_DEBUG) << " Version pre 0x0b "<< version_s; +- break; ++ case 1: ++ case 2: ++ kDebug(YAHOO_RAW_DEBUG) << "Using version 16 authorization" << endl; ++ sendAuthSixteenStage1(sn, seed); ++ break; + default: +- kDebug(YAHOO_RAW_DEBUG) << " Version 0x0b "<< version_s; +- sendAuthResp_0x0b(sn, seed, sessionID); ++ kWarning(YAHOO_RAW_DEBUG) << "Unknown authentication method used!" ++ << "Attempting current authentication anyways"; ++ sendAuthSixteenStage1(sn, seed); + break; + } + mState = SentAuthResp; + +- emit haveSessionID( sessionID ); ++ emit haveSessionID( m_sessionID ); + } + +-void LoginTask::sendAuthResp_0x0b(const QString &sn, const QString &seed, uint sessionID) ++void LoginTask::sendAuthSixteenStage1(const QString& sn, const QString& seed) + { +- kDebug(YAHOO_RAW_DEBUG) << " with seed " << seed; +- char *resp_6 = (char *) malloc(100); +- char *resp_96 = (char *) malloc(100); +- authresp_0x0b(seed.toLatin1(), sn.toLatin1(), (client()->password()).toLatin1(), resp_6, resp_96); +- kDebug(YAHOO_RAW_DEBUG) << "resp_6: " << resp_6 << " resp_69: " << resp_96; ++ const QString YahooTokenUrl = "https://login.yahoo.com/config/pwtoken_get?src=ymsgr&ts=&login=%1&passwd=%2&chal=%3"; ++ kDebug(YAHOO_RAW_DEBUG) << "seed:" << seed; ++ m_stage1Data.clear(); ++ /* construct a URL from the seed and request tokens */ ++ QByteArray encodedUrl; ++ QString fullUrl = YahooTokenUrl.arg(sn, client()->password(), seed); ++ KUrl tokenUrl(fullUrl); ++ KIO::Job* job = KIO::get(tokenUrl, KIO::Reload, KIO::HideProgressInfo); ++ connect(job, SIGNAL(data(KIO::Job*, const QByteArray&)), ++ this, SLOT(handleAuthSixteenStage1Data(KIO::Job*, const QByteArray&))); ++ connect(job, SIGNAL(result(KJob*)), ++ this, SLOT(handleAuthSixteenStage1Result(KJob*))); ++} ++ ++void LoginTask::handleAuthSixteenStage1Data(KIO::Job* job, const QByteArray& data) ++{ ++ kDebug(YAHOO_RAW_DEBUG) << "data:" << data; ++ m_stage1Data.append(data); ++} ++ ++void LoginTask::handleAuthSixteenStage1Result(KJob* job) ++{ ++ int responseNumber = -1; ++ QString token; ++ int error = job->error(); ++ kDebug(YAHOO_RAW_DEBUG) << "error:" << error; ++ if (error == 0) ++ { ++ QStringList responses = m_stage1Data.split("\r\n"); ++ if (responses.count() >= 3) ++ { ++ responseNumber = responses[0].toInt(); ++ token = responses[1]; ++ token.remove("ymsgr="); ++ kDebug(YAHOO_RAW_DEBUG) << "response is:" << responseNumber; ++ kDebug(YAHOO_RAW_DEBUG) << "token is:" << token; ++ } ++ ++ if (responseNumber != 0) ++ { ++ switch(responseNumber) ++ { ++ case -1: ++ /* error in the received stream */ ++ emit loginResponse(Yahoo::LoginSock, QString()); ++ kDebug(YAHOO_RAW_DEBUG) << "unknown error logging in"; ++ break; ++ case 1212: ++ /* password incorrect */ ++ emit loginResponse(Yahoo::LoginPasswd, QString()); ++ kDebug(YAHOO_RAW_DEBUG) << "password incorrect"; ++ break; ++ case 1213: ++ /* security lock */ ++ emit loginResponse(Yahoo::LoginLock, QString()); ++ break; ++ case 1235: ++ /* username does not exist */ ++ emit loginResponse(Yahoo::LoginUname, QString()); ++ kDebug(YAHOO_RAW_DEBUG) << "user does not exist"; ++ break; ++ case 1214: ++ case 1236: ++ emit loginResponse(Yahoo::LoginVerify, QString()); ++ break; ++ case 100: /* username or password missing */ ++ /*FIXME handle this */ ++ break; ++ default: ++ /* FIXME unknown error. handle it! */ ++ break; ++ } ++ } ++ else ++ { ++ /* start stage 2 here */ ++ sendAuthSixteenStage2(token); ++ } ++ } ++} ++ ++void LoginTask::sendAuthSixteenStage2(const QString& token) ++{ ++ const QString YahooLoginUrl = "https://login.yahoo.com/config/pwtoken_login?src=ymsgr&ts=&token=%1"; ++ kDebug(YAHOO_RAW_DEBUG) << "token:" << token; ++ m_stage2Data.clear(); ++ QString fullUrl = YahooLoginUrl.arg(token); ++ KUrl loginUrl(fullUrl); ++ KIO::Job* job = KIO::get(loginUrl, KIO::Reload, KIO::HideProgressInfo); ++ connect(job, SIGNAL(data(KIO::Job*, const QByteArray&)), ++ this, SLOT(handleAuthSixteenStage2Data(KIO::Job*, const QByteArray&))); ++ connect(job, SIGNAL(result(KJob*)), ++ this, SLOT(handleAuthSixteenStage2Result(KJob*))); ++} ++ ++void LoginTask::handleAuthSixteenStage2Data(KIO::Job*, const QByteArray& data) ++{ ++ kDebug(YAHOO_RAW_DEBUG) << "data:" << data; ++ m_stage2Data.append(data); ++} ++ ++void LoginTask::handleAuthSixteenStage2Result(KJob* job) ++{ ++ QString crumb; ++ int responseNumber = -1; ++ int error = job->error(); ++ kDebug(YAHOO_RAW_DEBUG) << "error:" << error; ++ if (error == 0) ++ { ++ QStringList responses = m_stage2Data.split("\r\n"); ++ kDebug(YAHOO_RAW_DEBUG) << responses; ++ responseNumber = responses[0].toInt(); ++ if (responseNumber == 0) ++ { ++ crumb = responses[1]; ++ crumb.remove("crumb="); ++ m_yCookie = responses[2].remove(0,2); /* remove Y= */ ++ m_tCookie = responses[3].remove(0,2); /* remove T= */ ++ } ++ ++ if (responseNumber != 0) ++ { ++ switch(responseNumber) ++ { ++ case -1: ++ emit loginResponse(Yahoo::LoginSock, QString()); ++ break; ++ case 100: ++ emit loginResponse(Yahoo::LoginSock, QString()); ++ break; ++ default: /* try to login anyways */ ++ break; ++ } ++ } ++ else ++ { ++ QString cryptString = crumb; ++ cryptString.append(m_challengeString); ++ sendAuthSixteenStage3(cryptString); ++ } ++ } ++} ++ ++void LoginTask::sendAuthSixteenStage3(const QString& cryptString) ++{ ++ kDebug(YAHOO_RAW_DEBUG) << " with crypt string" << cryptString; ++ QByteArray cryptStringHash = QCryptographicHash::hash( cryptString.toAscii(), ++ QCryptographicHash::Md5 ); ++ cryptStringHash = cryptStringHash.toBase64(); ++ cryptStringHash = cryptStringHash.replace('+', '.'); ++ cryptStringHash = cryptStringHash.replace('/', '_'); ++ cryptStringHash = cryptStringHash.replace('=', '-'); ++ + YMSGTransfer *t = new YMSGTransfer(Yahoo::ServiceAuthResp, m_stateOnConnect); +- t->setId( sessionID ); +- t->setParam( 0 , sn.toLocal8Bit()); +- t->setParam( 2 , sn.toLocal8Bit()); ++ t->setId( m_sessionID ); ++ t->setParam( 1, client()->userId().toLocal8Bit()); ++ t->setParam( 0 , client()->userId().toLocal8Bit()); ++ t->setParam( 277, m_yCookie.toLocal8Bit() ); ++ t->setParam( 278, m_tCookie.toLocal8Bit() ); ++ t->setParam( 307, cryptStringHash ); ++ t->setParam( 244, 2097087 ); ++ t->setParam( 2 , client()->userId().toLocal8Bit()); + t->setParam( 2, 1 ); // Both parameter 2s wind up in the packet +- t->setParam( 6 , resp_6); +- t->setParam( 1, sn.toLocal8Bit()); +- t->setParam( 244, 2097087 ); + t->setParam( 135, YMSG_PROGRAM_VERSION_STRING ); +- t->setParam( 148, 480 ); +- t->setParam( 59 , "B\\tfckeert1kk1nl&b=2" ); // ??? + +- if( !m_verificationWord.isEmpty() ) +- { +- t->setParam( 227 , m_verificationWord.toLocal8Bit() ); +- m_verificationWord.clear(); +- } +- +- free(resp_6); +- free(resp_96); + send(t); + + } +Index: branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooeditaccount.cpp +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooeditaccount.cpp (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooeditaccount.cpp (revision 986796) +@@ -63,9 +63,9 @@ + mAutoConnect->setChecked(acct->excludeConnect()); + mPasswordWidget->load( &acct->password() ); + +- QString pagerServer = account()->configGroup()->readEntry("Server", "scs.msg.yahoo.com"); ++ QString pagerServer = account()->configGroup()->readEntry("Server", "scsa.msg.yahoo.com"); + int pagerPort = account()->configGroup()->readEntry("Port", 5050); +- if( pagerServer != "scs.msg.yahoo.com" || pagerPort != 5050 ) ++ if( pagerServer != "scsa.msg.yahoo.com" || pagerPort != 5050 ) + optionOverrideServer->setChecked( true ); + else + optionOverrideServer->setChecked( false ); +@@ -133,7 +133,7 @@ + } + else + { +- yahooAccount->setServer( "scs.msg.yahoo.com" ); ++ yahooAccount->setServer( "scsa.msg.yahoo.com" ); + yahooAccount->setPort( 5050 ); + } + +Index: branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp (revision 986796) +@@ -539,7 +539,7 @@ + return; + } + +- QString server = configGroup()->readEntry( "Server", "scs.msg.yahoo.com" ); ++ QString server = configGroup()->readEntry( "Server", "scsa.msg.yahoo.com" ); + int port = configGroup()->readEntry( "Port", 5050 ); + + initConnectionSignals( MakeConnections ); +Index: branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.upd +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.upd (revision 0) ++++ branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.upd (revision 986796) +@@ -0,0 +1,4 @@ ++Id=kopete-update-yahoo-server/r1 ++File=kopeterc ++Options=overwrite ++Script=kopete-update_yahoo_server.pl,perl +Index: branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.pl +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.pl (revision 0) ++++ branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.pl (revision 986796) +@@ -0,0 +1,20 @@ ++#!/usr/bin/perl ++ ++# Rename the old Gaim style to Pidgin ++ ++my $inYahoo = 0; ++foreach (<>) { ++ $inYahoo = 1 if (/^\[Account_YahooProtocol_.*$/); ++ if ($inYahoo) { ++ if (/^Server\=(.*)/) { ++ my $oldServer = $1; ++ if ($oldServer =~ m/\.yahoo\.com$/) { ++ print "Server=scsa.msg.yahoo.com\n"; ++ $inYahoo = 0; ++ next; ++ } ++ } ++ } ++ ++ print $_; ++} + +Property changes on: branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.pl +___________________________________________________________________ +Added: svn:executable + + * + +Index: branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/CMakeLists.txt +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/CMakeLists.txt (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/CMakeLists.txt (revision 986796) +@@ -4,10 +4,11 @@ + endif(NOT WIN32) + + +-install( FILES kopete-pluginloader.upd kopete-nameTracking.upd kopete-initialstatus.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) ++install( FILES kopete-pluginloader.upd kopete-nameTracking.upd kopete-initialstatus.upd kopete-update_yahoo_server.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) + +-install( PROGRAMS kopete-pluginloader.pl +- kopete-account-0.10.pl kopete-initialstatus.pl DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) ++install( PROGRAMS kopete-pluginloader.pl kopete-update_yahoo_server.pl ++ kopete-account-0.10.pl kopete-initialstatus.pl ++ DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) + + + #TODO kconf_program ? diff --git a/source/kde/kdenetwork/local.options b/source/kde/kdenetwork/local.options new file mode 100644 index 00000000..aae3c765 --- /dev/null +++ b/source/kde/kdenetwork/local.options @@ -0,0 +1 @@ +BUILD=2 diff --git a/source/kde/kdenetwork/slack-desc b/source/kde/kdenetwork/slack-desc new file mode 100644 index 00000000..03fdd8fd --- /dev/null +++ b/source/kde/kdenetwork/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdenetwork: kdenetwork (network utilities for KDE) +kdenetwork: +kdenetwork: Network related utilities for the K Desktop Environment. +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: |