Date: Saturday, September 8, 2012 @ 04:21:58 Author: ronald Revision: 166475
archrelease: copy trunk to extra-i686, extra-x86_64 Added: libktorrent/repos/extra-i686/PKGBUILD (from rev 166474, libktorrent/trunk/PKGBUILD) libktorrent/repos/extra-x86_64/PKGBUILD (from rev 166474, libktorrent/trunk/PKGBUILD) Deleted: libktorrent/repos/extra-i686/PKGBUILD libktorrent/repos/extra-i686/magnet.patch libktorrent/repos/extra-x86_64/PKGBUILD libktorrent/repos/extra-x86_64/magnet.patch ---------------------------+ extra-i686/PKGBUILD | 68 ++++++------- extra-i686/magnet.patch | 226 -------------------------------------------- extra-x86_64/PKGBUILD | 68 ++++++------- extra-x86_64/magnet.patch | 226 -------------------------------------------- 4 files changed, 62 insertions(+), 526 deletions(-) Deleted: extra-i686/PKGBUILD =================================================================== --- extra-i686/PKGBUILD 2012-09-08 08:21:17 UTC (rev 166474) +++ extra-i686/PKGBUILD 2012-09-08 08:21:58 UTC (rev 166475) @@ -1,37 +0,0 @@ -# $Id$ -# Maintainer: Ronald van Haren <ronald.archlinux.org> -# Maintainer: Andrea Scarpino <and...@archlinux.org> - -pkgname=libktorrent -pkgver=1.2.1 -pkgrel=2 -pkgdesc="A BitTorrent protocol implementation" -arch=('i686' 'x86_64') -url="http://ktorrent.org/" -license=('GPL2') -depends=('kdelibs') -makedepends=('automoc4' 'cmake' 'boost' 'doxygen') -source=("http://ktorrent.org/downloads/4.2.1/${pkgname}-${pkgver}-2.tar.bz2" - "magnet.patch") -sha1sums=('857e4227c4bba685755d66581d881f893f6311ae' - 'f0156489364e5590b0b539cfe2abc929c1922ef8') - -build() { - cd "${srcdir}" - - pushd ${pkgname}-${pkgver}-2 - patch -Np1 -i ${srcdir}/magnet.patch - popd - - mkdir build - cd build - cmake ../${pkgname}-${pkgver}-2 \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr - make -} - -package() { - cd "${srcdir}/build" - make DESTDIR="${pkgdir}" install -} Copied: libktorrent/repos/extra-i686/PKGBUILD (from rev 166474, libktorrent/trunk/PKGBUILD) =================================================================== --- extra-i686/PKGBUILD (rev 0) +++ extra-i686/PKGBUILD 2012-09-08 08:21:58 UTC (rev 166475) @@ -0,0 +1,31 @@ +# $Id$ +# Maintainer: Ronald van Haren <ronald.archlinux.org> +# Maintainer: Andrea Scarpino <and...@archlinux.org> + +pkgname=libktorrent +pkgver=1.3.0 +pkgrel=1 +pkgdesc="A BitTorrent protocol implementation" +arch=('i686' 'x86_64') +url="http://ktorrent.org/" +license=('GPL2') +depends=('kdelibs') +makedepends=('automoc4' 'cmake' 'boost' 'doxygen') +source=("http://ktorrent.org/downloads/4.3.0/${pkgname}-${pkgver}.tar.bz2") +sha1sums=('e7e813af36f5854237111fd550f4914b83f17102') + +build() { + cd "${srcdir}" + + mkdir build + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd "${srcdir}/build" + make DESTDIR="${pkgdir}" install +} Deleted: extra-i686/magnet.patch =================================================================== --- extra-i686/magnet.patch 2012-09-08 08:21:17 UTC (rev 166474) +++ extra-i686/magnet.patch 2012-09-08 08:21:58 UTC (rev 166475) @@ -1,226 +0,0 @@ -commit 5107e4b7a050d7533f44801f5f5f5694203fd3b5 -Author: Joris Guisson <joris.guis...@gmail.com> -Date: Wed Jul 11 20:16:43 2012 +0200 - - Make sure all trackers are used of a magnet link - - BUG: 302997 - BUG: 303269 - -diff --git a/src/magnet/magnetlink.cpp b/src/magnet/magnetlink.cpp -index 525bfa5..43168dc 100644 ---- a/src/magnet/magnetlink.cpp -+++ b/src/magnet/magnetlink.cpp -@@ -19,13 +19,14 @@ - ***************************************************************************/ - - #include "magnetlink.h" -+#include <QUrl> - #include <QStringList> - #include <util/log.h> - #include <util/error.h> - - namespace bt - { -- -+ - MagnetLink::MagnetLink() - { - } -@@ -44,7 +45,7 @@ namespace bt - { - parse(mlink); - } -- -+ - MagnetLink::~MagnetLink() - { - } -@@ -64,83 +65,114 @@ namespace bt - { - return info_hash == mlink.infoHash(); - } -- -+ -+ static KUrl::List GetTrackers(const KUrl & url) -+ { -+ KUrl::List result; -+ const QString encoded_query = QString::fromLatin1(url.encodedQuery()); -+ const QString item = QLatin1String("tr="); -+ if(encoded_query.length() <= 1) -+ return result; -+ -+ const QStringList items = encoded_query.split(QString(QLatin1Char('&')), QString::SkipEmptyParts); -+ const int len = item.length(); -+ for(QStringList::ConstIterator it = items.begin(); it != items.end(); ++it) -+ { -+ if((*it).startsWith(item)) -+ { -+ if((*it).length() > len) -+ { -+ QString str = (*it).mid(len); -+ str.replace(QLatin1Char('+'), QLatin1Char(' ')); // + in queries means space. -+ result.push_back(QUrl::fromPercentEncoding(str.toLatin1())); -+ } -+ } -+ } -+ -+ return result; -+ } -+ - void MagnetLink::parse(const QString& mlink) - { - KUrl url(mlink); -- if (url.protocol() != "magnet") -+ if(url.protocol() != "magnet") - { -- Out(SYS_GEN|LOG_NOTICE) << "Invalid protocol of magnet link " -- << mlink << endl; -+ Out(SYS_GEN | LOG_NOTICE) << "Invalid protocol of magnet link " -+ << mlink << endl; - return; - } -- -+ - torrent_url = url.queryItem("to"); - //magnet://description-of-content.btih.HASH(-HASH)*.dht/path/file?x.pt=&x.to= - - // TODO automatically select these files and prefetches from here - path = url.queryItem("pt"); -- if ( path.isEmpty() && url.hasPath() && url.path() != "/" ) { -+ if(path.isEmpty() && url.hasPath() && url.path() != "/") -+ { - // TODO find out why RemoveTrailingSlash does not work - path = url.path(KUrl::RemoveTrailingSlash).remove(QRegExp("^/")); - } - - QString xt = url.queryItem("xt"); -- if ( xt.isEmpty() -- || !xt.startsWith("urn:btih:") ) { -+ if(xt.isEmpty() -+ || !xt.startsWith("urn:btih:")) -+ { - QRegExp btihHash("([^\\.]+).btih"); -- if ( btihHash.indexIn(url.host()) != -1 ) { -+ if(btihHash.indexIn(url.host()) != -1) -+ { - QString primaryHash = btihHash.cap(1).split("-")[0]; -- xt = "urn:btih:"+primaryHash; -- } else { -- Out(SYS_GEN|LOG_NOTICE) << "No hash found in magnet link " -- << mlink << endl; -+ xt = "urn:btih:" + primaryHash; -+ } -+ else -+ { -+ Out(SYS_GEN | LOG_NOTICE) << "No hash found in magnet link " -+ << mlink << endl; - return; - } - } -- -+ - QString ih = xt.mid(9); -- if (ih.length() != 40 && ih.length() != 32) -+ if(ih.length() != 40 && ih.length() != 32) - { -- Out(SYS_GEN|LOG_NOTICE) << "Hash has not valid length in magnet link " -- << mlink << endl; -+ Out(SYS_GEN | LOG_NOTICE) << "Hash has not valid length in magnet link " -+ << mlink << endl; - return; - } -- -+ - try - { -- if (ih.length() == 32) -+ if(ih.length() == 32) - ih = base32ToHexString(ih); - - Uint8 hash[20]; -- memset(hash,0,20); -- for (int i = 0;i < 20;i++) -+ memset(hash, 0, 20); -+ for(int i = 0; i < 20; i++) - { -- Uint8 low = charToHex(ih[2*i + 1]); -- Uint8 high = charToHex(ih[2*i]); -+ Uint8 low = charToHex(ih[2 * i + 1]); -+ Uint8 high = charToHex(ih[2 * i]); - hash[i] = (high << 4) | low; - } -- -+ - info_hash = SHA1Hash(hash); -- tracker_urls = url.queryItem("tr").split(","); -+ tracker_urls = GetTrackers(url); - name = url.queryItem("dn"); - magnet_string = mlink; - } -- catch (...) -+ catch(...) - { -- Out(SYS_GEN|LOG_NOTICE) << "Invalid magnet link " << mlink << endl; -+ Out(SYS_GEN | LOG_NOTICE) << "Invalid magnet link " << mlink << endl; - } - } -- -+ - Uint8 MagnetLink::charToHex(const QChar& ch) - { -- if (ch.isDigit()) -+ if(ch.isDigit()) - return ch.digitValue(); -- -- if (!ch.isLetter()) -+ -+ if(!ch.isLetter()) - throw bt::Error("Invalid char"); -- -- if (ch.isLower()) -+ -+ if(ch.isLower()) - return 10 + ch.toAscii() - 'a'; - else - return 10 + ch.toAscii() - 'A'; -@@ -155,28 +187,28 @@ namespace bt - QString str = s.toUpper(); - // 32 base32 chars -> 40 hex chars - // 4 base32 chars -> 5 hex chars -- for (int i = 0; i < 8; i++) -+ for(int i = 0; i < 8; i++) - { - part = 0; -- for (int j = 0; j < 4; j++) -+ for(int j = 0; j < 4; j++) - { -- ch = str[i*4 + j]; -- if (ch.isDigit() && (ch.digitValue() < 2 || ch.digitValue() > 7)) -+ ch = str[i * 4 + j]; -+ if(ch.isDigit() && (ch.digitValue() < 2 || ch.digitValue() > 7)) - throw bt::Error("Invalid char"); - -- if (ch.isDigit()) -- tmp = ch.digitValue() + 24; -+ if(ch.isDigit()) -+ tmp = ch.digitValue() + 24; - else - tmp = ch.toAscii() - 'A'; -- part = part + (tmp << 5*(3-j)); -+ part = part + (tmp << 5 * (3 - j)); - } - - // part is a Uint32 with 20 bits (5 hex) -- for (int j = 0; j < 5; j++) -+ for(int j = 0; j < 5; j++) - { -- tmp = (part >> 4*(4-j)) & 0xf; -- if (tmp >= 10) -- ret.append(QChar((tmp-10) + 'a')); -+ tmp = (part >> 4 * (4 - j)) & 0xf; -+ if(tmp >= 10) -+ ret.append(QChar((tmp - 10) + 'a')); - else - ret.append(QChar(tmp + '0')); - } Deleted: extra-x86_64/PKGBUILD =================================================================== --- extra-x86_64/PKGBUILD 2012-09-08 08:21:17 UTC (rev 166474) +++ extra-x86_64/PKGBUILD 2012-09-08 08:21:58 UTC (rev 166475) @@ -1,37 +0,0 @@ -# $Id$ -# Maintainer: Ronald van Haren <ronald.archlinux.org> -# Maintainer: Andrea Scarpino <and...@archlinux.org> - -pkgname=libktorrent -pkgver=1.2.1 -pkgrel=2 -pkgdesc="A BitTorrent protocol implementation" -arch=('i686' 'x86_64') -url="http://ktorrent.org/" -license=('GPL2') -depends=('kdelibs') -makedepends=('automoc4' 'cmake' 'boost' 'doxygen') -source=("http://ktorrent.org/downloads/4.2.1/${pkgname}-${pkgver}-2.tar.bz2" - "magnet.patch") -sha1sums=('857e4227c4bba685755d66581d881f893f6311ae' - 'f0156489364e5590b0b539cfe2abc929c1922ef8') - -build() { - cd "${srcdir}" - - pushd ${pkgname}-${pkgver}-2 - patch -Np1 -i ${srcdir}/magnet.patch - popd - - mkdir build - cd build - cmake ../${pkgname}-${pkgver}-2 \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr - make -} - -package() { - cd "${srcdir}/build" - make DESTDIR="${pkgdir}" install -} Copied: libktorrent/repos/extra-x86_64/PKGBUILD (from rev 166474, libktorrent/trunk/PKGBUILD) =================================================================== --- extra-x86_64/PKGBUILD (rev 0) +++ extra-x86_64/PKGBUILD 2012-09-08 08:21:58 UTC (rev 166475) @@ -0,0 +1,31 @@ +# $Id$ +# Maintainer: Ronald van Haren <ronald.archlinux.org> +# Maintainer: Andrea Scarpino <and...@archlinux.org> + +pkgname=libktorrent +pkgver=1.3.0 +pkgrel=1 +pkgdesc="A BitTorrent protocol implementation" +arch=('i686' 'x86_64') +url="http://ktorrent.org/" +license=('GPL2') +depends=('kdelibs') +makedepends=('automoc4' 'cmake' 'boost' 'doxygen') +source=("http://ktorrent.org/downloads/4.3.0/${pkgname}-${pkgver}.tar.bz2") +sha1sums=('e7e813af36f5854237111fd550f4914b83f17102') + +build() { + cd "${srcdir}" + + mkdir build + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd "${srcdir}/build" + make DESTDIR="${pkgdir}" install +} Deleted: extra-x86_64/magnet.patch =================================================================== --- extra-x86_64/magnet.patch 2012-09-08 08:21:17 UTC (rev 166474) +++ extra-x86_64/magnet.patch 2012-09-08 08:21:58 UTC (rev 166475) @@ -1,226 +0,0 @@ -commit 5107e4b7a050d7533f44801f5f5f5694203fd3b5 -Author: Joris Guisson <joris.guis...@gmail.com> -Date: Wed Jul 11 20:16:43 2012 +0200 - - Make sure all trackers are used of a magnet link - - BUG: 302997 - BUG: 303269 - -diff --git a/src/magnet/magnetlink.cpp b/src/magnet/magnetlink.cpp -index 525bfa5..43168dc 100644 ---- a/src/magnet/magnetlink.cpp -+++ b/src/magnet/magnetlink.cpp -@@ -19,13 +19,14 @@ - ***************************************************************************/ - - #include "magnetlink.h" -+#include <QUrl> - #include <QStringList> - #include <util/log.h> - #include <util/error.h> - - namespace bt - { -- -+ - MagnetLink::MagnetLink() - { - } -@@ -44,7 +45,7 @@ namespace bt - { - parse(mlink); - } -- -+ - MagnetLink::~MagnetLink() - { - } -@@ -64,83 +65,114 @@ namespace bt - { - return info_hash == mlink.infoHash(); - } -- -+ -+ static KUrl::List GetTrackers(const KUrl & url) -+ { -+ KUrl::List result; -+ const QString encoded_query = QString::fromLatin1(url.encodedQuery()); -+ const QString item = QLatin1String("tr="); -+ if(encoded_query.length() <= 1) -+ return result; -+ -+ const QStringList items = encoded_query.split(QString(QLatin1Char('&')), QString::SkipEmptyParts); -+ const int len = item.length(); -+ for(QStringList::ConstIterator it = items.begin(); it != items.end(); ++it) -+ { -+ if((*it).startsWith(item)) -+ { -+ if((*it).length() > len) -+ { -+ QString str = (*it).mid(len); -+ str.replace(QLatin1Char('+'), QLatin1Char(' ')); // + in queries means space. -+ result.push_back(QUrl::fromPercentEncoding(str.toLatin1())); -+ } -+ } -+ } -+ -+ return result; -+ } -+ - void MagnetLink::parse(const QString& mlink) - { - KUrl url(mlink); -- if (url.protocol() != "magnet") -+ if(url.protocol() != "magnet") - { -- Out(SYS_GEN|LOG_NOTICE) << "Invalid protocol of magnet link " -- << mlink << endl; -+ Out(SYS_GEN | LOG_NOTICE) << "Invalid protocol of magnet link " -+ << mlink << endl; - return; - } -- -+ - torrent_url = url.queryItem("to"); - //magnet://description-of-content.btih.HASH(-HASH)*.dht/path/file?x.pt=&x.to= - - // TODO automatically select these files and prefetches from here - path = url.queryItem("pt"); -- if ( path.isEmpty() && url.hasPath() && url.path() != "/" ) { -+ if(path.isEmpty() && url.hasPath() && url.path() != "/") -+ { - // TODO find out why RemoveTrailingSlash does not work - path = url.path(KUrl::RemoveTrailingSlash).remove(QRegExp("^/")); - } - - QString xt = url.queryItem("xt"); -- if ( xt.isEmpty() -- || !xt.startsWith("urn:btih:") ) { -+ if(xt.isEmpty() -+ || !xt.startsWith("urn:btih:")) -+ { - QRegExp btihHash("([^\\.]+).btih"); -- if ( btihHash.indexIn(url.host()) != -1 ) { -+ if(btihHash.indexIn(url.host()) != -1) -+ { - QString primaryHash = btihHash.cap(1).split("-")[0]; -- xt = "urn:btih:"+primaryHash; -- } else { -- Out(SYS_GEN|LOG_NOTICE) << "No hash found in magnet link " -- << mlink << endl; -+ xt = "urn:btih:" + primaryHash; -+ } -+ else -+ { -+ Out(SYS_GEN | LOG_NOTICE) << "No hash found in magnet link " -+ << mlink << endl; - return; - } - } -- -+ - QString ih = xt.mid(9); -- if (ih.length() != 40 && ih.length() != 32) -+ if(ih.length() != 40 && ih.length() != 32) - { -- Out(SYS_GEN|LOG_NOTICE) << "Hash has not valid length in magnet link " -- << mlink << endl; -+ Out(SYS_GEN | LOG_NOTICE) << "Hash has not valid length in magnet link " -+ << mlink << endl; - return; - } -- -+ - try - { -- if (ih.length() == 32) -+ if(ih.length() == 32) - ih = base32ToHexString(ih); - - Uint8 hash[20]; -- memset(hash,0,20); -- for (int i = 0;i < 20;i++) -+ memset(hash, 0, 20); -+ for(int i = 0; i < 20; i++) - { -- Uint8 low = charToHex(ih[2*i + 1]); -- Uint8 high = charToHex(ih[2*i]); -+ Uint8 low = charToHex(ih[2 * i + 1]); -+ Uint8 high = charToHex(ih[2 * i]); - hash[i] = (high << 4) | low; - } -- -+ - info_hash = SHA1Hash(hash); -- tracker_urls = url.queryItem("tr").split(","); -+ tracker_urls = GetTrackers(url); - name = url.queryItem("dn"); - magnet_string = mlink; - } -- catch (...) -+ catch(...) - { -- Out(SYS_GEN|LOG_NOTICE) << "Invalid magnet link " << mlink << endl; -+ Out(SYS_GEN | LOG_NOTICE) << "Invalid magnet link " << mlink << endl; - } - } -- -+ - Uint8 MagnetLink::charToHex(const QChar& ch) - { -- if (ch.isDigit()) -+ if(ch.isDigit()) - return ch.digitValue(); -- -- if (!ch.isLetter()) -+ -+ if(!ch.isLetter()) - throw bt::Error("Invalid char"); -- -- if (ch.isLower()) -+ -+ if(ch.isLower()) - return 10 + ch.toAscii() - 'a'; - else - return 10 + ch.toAscii() - 'A'; -@@ -155,28 +187,28 @@ namespace bt - QString str = s.toUpper(); - // 32 base32 chars -> 40 hex chars - // 4 base32 chars -> 5 hex chars -- for (int i = 0; i < 8; i++) -+ for(int i = 0; i < 8; i++) - { - part = 0; -- for (int j = 0; j < 4; j++) -+ for(int j = 0; j < 4; j++) - { -- ch = str[i*4 + j]; -- if (ch.isDigit() && (ch.digitValue() < 2 || ch.digitValue() > 7)) -+ ch = str[i * 4 + j]; -+ if(ch.isDigit() && (ch.digitValue() < 2 || ch.digitValue() > 7)) - throw bt::Error("Invalid char"); - -- if (ch.isDigit()) -- tmp = ch.digitValue() + 24; -+ if(ch.isDigit()) -+ tmp = ch.digitValue() + 24; - else - tmp = ch.toAscii() - 'A'; -- part = part + (tmp << 5*(3-j)); -+ part = part + (tmp << 5 * (3 - j)); - } - - // part is a Uint32 with 20 bits (5 hex) -- for (int j = 0; j < 5; j++) -+ for(int j = 0; j < 5; j++) - { -- tmp = (part >> 4*(4-j)) & 0xf; -- if (tmp >= 10) -- ret.append(QChar((tmp-10) + 'a')); -+ tmp = (part >> 4 * (4 - j)) & 0xf; -+ if(tmp >= 10) -+ ret.append(QChar((tmp - 10) + 'a')); - else - ret.append(QChar(tmp + '0')); - }