Hello community,
here is the log from the commit of package qbittorrent for openSUSE:Factory checked in at 2015-04-27 13:05:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qbittorrent (Old)
and /work/SRC/openSUSE:Factory/.qbittorrent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qbittorrent"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qbittorrent/qbittorrent.changes 2015-02-24 13:07:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.qbittorrent.new/qbittorrent.changes 2015-04-27 13:05:08.000000000 +0200
@@ -1,0 +2,6 @@
+Sun Apr 26 10:06:30 UTC 2015 - sor.alexei@meowr.ru
+
+- Add qbittorrent-libtorrent-1.0.patch for libtorrent-rasterbar
+ 1.0 support.
+
+-------------------------------------------------------------------
New:
----
qbittorrent-libtorrent-1.0.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qbittorrent.spec ++++++
--- /var/tmp/diff_new_pack.OXK3mt/_old 2015-04-27 13:05:08.000000000 +0200
+++ /var/tmp/diff_new_pack.OXK3mt/_new 2015-04-27 13:05:08.000000000 +0200
@@ -26,6 +26,8 @@
Group: Productivity/Networking/File-Sharing
Url: http://qbittorrent.org/
Source: https://github.com/%{name}/%{_name}/archive/release-%{version}.tar.gz#/%{name}-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM qbittorrent-libtorrent-1.0.patch sor.alexei@meowr.ru -- Add libtorrent-rasterbar 1.0 support.
+Patch0: %{name}-libtorrent-1.0.patch
BuildRequires: boost-devel >= 1.35
BuildRequires: fdupes
BuildRequires: hicolor-icon-theme
@@ -63,6 +65,7 @@
%prep
%setup -q -n %{_name}-release-%{version}
+%patch0 -p1
sed -i 's/\(QMAKE_CXXFLAGS += \)/\1%{optflags} /' unixconf.pri
%build
@@ -104,16 +107,16 @@
%files
%defattr(-,root,root)
%doc AUTHORS Changelog COPYING NEWS README.md TODO
-%doc %{_mandir}/man?/%{name}.?%{?ext_man}
%{_bindir}/%{name}
%{_datadir}/applications/%{_name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/pixmaps/%{name}.png
+%{_mandir}/man?/%{name}.?%{?ext_man}
%files nox
%defattr(-,root,root)
%doc AUTHORS Changelog COPYING NEWS README.md TODO
-%doc %{_mandir}/man?/%{name}-nox.?%{?ext_man}
%{_bindir}/%{name}-nox
+%{_mandir}/man?/%{name}-nox.?%{?ext_man}
%changelog
++++++ qbittorrent-libtorrent-1.0.patch ++++++
diff -aur a/src/misc.h b/src/misc.h
--- a/src/misc.h
+++ b/src/misc.h
@@ -71,7 +71,11 @@
inline QString toQString(const libtorrent::sha1_hash &hash) {
char out[41];
+#if LIBTORRENT_VERSION_NUM >= 10000
+ libtorrent::to_hex((char const*)&hash[0], libtorrent::sha1_hash::size, out);
+#else
to_hex((char const*)&hash[0], libtorrent::sha1_hash::size, out);
+#endif
return QString(out);
}
diff -aur a/src/properties/peerlistwidget.cpp b/src/properties/peerlistwidget.cpp
--- a/src/properties/peerlistwidget.cpp
+++ b/src/properties/peerlistwidget.cpp
@@ -161,16 +161,20 @@
empty_menu = false;
}
// Per Peer Speed limiting actions
+#if LIBTORRENT_VERSION_NUM < 10000
QAction *upLimitAct = 0;
QAction *dlLimitAct = 0;
+#endif
QAction *banAct = 0;
QAction *copyIPAct = 0;
if (!selectedPeerIPs.isEmpty()) {
copyIPAct = menu.addAction(IconProvider::instance()->getIcon("edit-copy"), tr("Copy IP"));
menu.addSeparator();
+#if LIBTORRENT_VERSION_NUM < 10000
dlLimitAct = menu.addAction(QIcon(":/Icons/skin/download.png"), tr("Limit download rate..."));
upLimitAct = menu.addAction(QIcon(":/Icons/skin/seeding.png"), tr("Limit upload rate..."));
menu.addSeparator();
+#endif
banAct = menu.addAction(IconProvider::instance()->getIcon("user-group-delete"), tr("Ban peer permanently"));
empty_menu = false;
}
@@ -191,6 +195,7 @@
}
return;
}
+#if LIBTORRENT_VERSION_NUM < 10000
if (act == upLimitAct) {
limitUpRateSelectedPeers(selectedPeerIPs);
return;
@@ -199,6 +204,7 @@
limitDlRateSelectedPeers(selectedPeerIPs);
return;
}
+#endif
if (act == banAct) {
banSelectedPeers(selectedPeerIPs);
return;
@@ -230,6 +236,7 @@
loadPeers(m_properties->getCurrentTorrent());
}
+#if LIBTORRENT_VERSION_NUM < 10000
void PeerListWidget::limitUpRateSelectedPeers(const QStringList& peer_ips)
{
if (peer_ips.empty())
@@ -299,7 +306,7 @@
}
}
}
-
+#endif
void PeerListWidget::clear() {
qDebug("clearing peer list");
@@ -384,7 +391,7 @@
m_missingFlags.insert(ip);
}
}
- m_listModel->setData(m_listModel->index(row, PeerListDelegate::CONNECTION), getConnectionString(peer.connection_type));
+ m_listModel->setData(m_listModel->index(row, PeerListDelegate::CONNECTION), getConnectionString(peer));
QString flags, tooltip;
getFlags(peer, flags, tooltip);
m_listModel->setData(m_listModel->index(row, PeerListDelegate::FLAGS), flags);
@@ -410,7 +417,7 @@
m_missingFlags.remove(ip);
}
}
- m_listModel->setData(m_listModel->index(row, PeerListDelegate::CONNECTION), getConnectionString(peer.connection_type));
+ m_listModel->setData(m_listModel->index(row, PeerListDelegate::CONNECTION), getConnectionString(peer));
QString flags, tooltip;
getFlags(peer, flags, tooltip);
m_listModel->setData(m_listModel->index(row, PeerListDelegate::PORT), QString::number(peer.ip.port()));
@@ -442,14 +449,21 @@
}
}
-QString PeerListWidget::getConnectionString(int connection_type)
+QString PeerListWidget::getConnectionString(const peer_info& peer)
{
+#if LIBTORRENT_VERSION_NUM >= 1600
+#if LIBTORRENT_VERSION_NUM < 10000
+ if (peer.connection_type & peer_info::bittorrent_utp) {
+#else
+ if (peer.flags & peer_info::utp_socket) {
+#endif
+ return QString::fromUtf8("μTP");
+ }
+#endif
+
QString connection;
- switch(connection_type) {
+ switch(peer.connection_type) {
#if LIBTORRENT_VERSION_NUM >= 1600
- case peer_info::bittorrent_utp:
- connection = QString::fromUtf8("μTP");
- break;
case peer_info::http_seed:
#endif
case peer_info::web_seed:
@@ -558,7 +572,11 @@
}
#if LIBTORRENT_VERSION_NUM > 1500 //P = Peer is using uTorrent uTP
+#if LIBTORRENT_VERSION_NUM < 10000
if (peer.connection_type & peer_info::bittorrent_utp) {
+#else
+ if (peer.flags & peer_info::utp_socket) {
+#endif
flags += "P ";
tooltip += QString::fromUtf8("μTP");
tooltip += ", ";
diff -aur a/src/properties/peerlistwidget.h b/src/properties/peerlistwidget.h
--- a/src/properties/peerlistwidget.h
+++ b/src/properties/peerlistwidget.h
@@ -77,13 +77,17 @@
void loadSettings();
void saveSettings() const;
void showPeerListMenu(const QPoint&);
+
+#if LIBTORRENT_VERSION_NUM < 10000
void limitUpRateSelectedPeers(const QStringList& peer_ips);
void limitDlRateSelectedPeers(const QStringList& peer_ips);
+#endif
+
void banSelectedPeers(const QStringList& peer_ips);
void handleSortColumnChanged(int col);
private:
- static QString getConnectionString(int connection_type);
+ static QString getConnectionString(const libtorrent::peer_info &peer);
static void getFlags(const libtorrent::peer_info& peer, QString& flags, QString& tooltip);
private:
diff -aur a/src/qtlibtorrent/qbtsession.cpp b/src/qtlibtorrent/qbtsession.cpp
--- a/src/qtlibtorrent/qbtsession.cpp
+++ b/src/qtlibtorrent/qbtsession.cpp
@@ -67,8 +67,6 @@
#include
#include
#include
-#include
-#include
#if LIBTORRENT_VERSION_NUM < 1600
#include
#include
@@ -77,6 +75,10 @@
#if LIBTORRENT_VERSION_NUM >= 1600
#include "libtorrent/error_code.hpp"
#endif
+#if LIBTORRENT_VERSION_NUM < 10000
+#include
+#include
+#endif
#include <queue>
#include
#include "dnsupdater.h"
@@ -114,8 +116,11 @@
#ifndef DISABLE_GUI
, geoipDBLoaded(false), resolve_countries(false)
#endif
- , m_tracker(0), m_shutdownAct(NO_SHUTDOWN),
- m_upnp(0), m_natpmp(0), m_dynDNSUpdater(0)
+ , m_tracker(0), m_shutdownAct(NO_SHUTDOWN)
+#if LIBTORRENT_VERSION_NUM < 10000
+ , m_upnp(0), m_natpmp(0)
+#endif
+ , m_dynDNSUpdater(0)
{
BigRatioTimer = new QTimer(this);
BigRatioTimer->setInterval(10000);
@@ -1181,7 +1186,11 @@
if (resumed) {
if (loadFastResumeData(hash, buf)) {
fastResume = true;
+#if LIBTORRENT_VERSION_NUM < 10000
p.resume_data = &buf;
+#else
+ p.resume_data = buf;
+#endif
qDebug("Successfully loaded fast resume data");
}
}
@@ -1553,25 +1562,33 @@
void QBtSession::enableUPnP(bool b) {
Preferences pref;
if (b) {
- if (!m_upnp) {
- qDebug("Enabling UPnP / NAT-PMP");
- m_upnp = s->start_upnp();
- m_natpmp = s->start_natpmp();
- }
+ qDebug("Enabling UPnP / NAT-PMP");
+#if LIBTORRENT_VERSION_NUM < 10000
+ m_upnp = s->start_upnp();
+ m_natpmp = s->start_natpmp();
+#else
+ s->start_upnp();
+ s->start_natpmp();
+#endif
// Use UPnP/NAT-PMP for Web UI too
if (pref.isWebUiEnabled() && pref.useUPnPForWebUIPort()) {
const qint16 port = pref.getWebUiPort();
+#if LIBTORRENT_VERSION_NUM < 10000
m_upnp->add_mapping(upnp::tcp, port, port);
m_natpmp->add_mapping(natpmp::tcp, port, port);
+#else
+ s->add_port_mapping(session::tcp, port, port);
+#endif
}
} else {
- if (m_upnp) {
- qDebug("Disabling UPnP / NAT-PMP");
- s->stop_upnp();
- s->stop_natpmp();
- m_upnp = 0;
- m_natpmp = 0;
- }
+ qDebug("Disabling UPnP / NAT-PMP");
+ s->stop_upnp();
+ s->stop_natpmp();
+
+#if LIBTORRENT_VERSION_NUM < 10000
+ m_upnp = 0;
+ m_natpmp = 0;
+#endif
}
}
diff -aur a/src/qtlibtorrent/qbtsession.h b/src/qtlibtorrent/qbtsession.h
--- a/src/qtlibtorrent/qbtsession.h
+++ b/src/qtlibtorrent/qbtsession.h
@@ -280,9 +280,11 @@
QPointer<QTracker> m_tracker;
TorrentSpeedMonitor *m_speedMonitor;
shutDownAction m_shutdownAct;
+#if LIBTORRENT_VERSION_NUM < 10000
// Port forwarding
libtorrent::upnp *m_upnp;
libtorrent::natpmp *m_natpmp;
+#endif
// DynDNS
DNSUpdater *m_dynDNSUpdater;
};
diff -aur a/src/qtlibtorrent/qtorrenthandle.cpp b/src/qtlibtorrent/qtorrenthandle.cpp
--- a/src/qtlibtorrent/qtorrenthandle.cpp
+++ b/src/qtlibtorrent/qtorrenthandle.cpp
@@ -87,14 +87,22 @@
QString QTorrentHandle::name() const {
QString name = TorrentPersistentData::getName(hash());
if (name.isEmpty()) {
+#if LIBTORRENT_VERSION_NUM < 10000
name = misc::toQStringU(torrent_handle::name());
+#else
+ name = misc::toQStringU(status(query_name).name);
+#endif
}
return name;
}
QString QTorrentHandle::creation_date() const {
#if LIBTORRENT_VERSION_NUM >= 1600
+#if LIBTORRENT_VERSION_NUM < 10000
boost::optional t = torrent_handle::get_torrent_info().creation_date();
+#else
+ boost::optional t = torrent_handle::torrent_file()->creation_date();
+#endif
return t ? misc::toQString(*t) : "";
#else
boost::optionalboost::posix_time::ptime boostDate = torrent_handle::get_torrent_info().creation_date();
@@ -168,38 +176,54 @@
}
size_type QTorrentHandle::total_size() const {
+#if LIBTORRENT_VERSION_NUM < 10000
return torrent_handle::get_torrent_info().total_size();
+#else
+ return torrent_handle::torrent_file()->total_size();
+#endif
}
size_type QTorrentHandle::piece_length() const {
+#if LIBTORRENT_VERSION_NUM < 10000
return torrent_handle::get_torrent_info().piece_length();
+#else
+ return torrent_handle::torrent_file()->piece_length();
+#endif
}
int QTorrentHandle::num_pieces() const {
+#if LIBTORRENT_VERSION_NUM < 10000
return torrent_handle::get_torrent_info().num_pieces();
+#else
+ return torrent_handle::torrent_file()->num_pieces();
+#endif
}
bool QTorrentHandle::first_last_piece_first() const {
- const torrent_info& t = get_torrent_info();
+#if LIBTORRENT_VERSION_NUM < 10000
+ torrent_info const* t = &get_torrent_info();
+#else
+ boost::intrusive_ptr t = torrent_file();
+#endif
// Get int first media file
int index = 0;
- for (index = 0; index < t.num_files(); ++index) {
+ for (index = 0; index < t->num_files(); ++index) {
#if LIBTORRENT_VERSION_NUM >= 1600
- QString path = misc::toQStringU(t.file_at(index).path);
+ QString path = misc::toQStringU(t->file_at(index).path);
#else
- QString path = misc::toQStringU(t.file_at(index).path.string());
+ QString path = misc::toQStringU(t->file_at(index).path.string());
#endif
const QString ext = fsutils::fileExtension(path);
if (misc::isPreviewable(ext) && torrent_handle::file_priority(index) > 0)
break;
}
- if (index >= t.num_files()) // No media file
+ if (index >= t->num_files()) // No media file
return false;
- QPair extremities = get_file_extremity_pieces (t, index);
+ QPair extremities = get_file_extremity_pieces (*t, index);
return (torrent_handle::piece_priority(extremities.first) == 7)
&& (torrent_handle::piece_priority(extremities.second) == 7);
@@ -328,11 +352,19 @@
}
int QTorrentHandle::num_files() const {
+#if LIBTORRENT_VERSION_NUM < 10000
return torrent_handle::get_torrent_info().num_files();
+#else
+ return torrent_handle::torrent_file()->num_files();
+#endif
}
QString QTorrentHandle::filename_at(unsigned int index) const {
+#if LIBTORRENT_VERSION_NUM < 10000
Q_ASSERT(index < (unsigned int)torrent_handle::get_torrent_info().num_files());
+#else
+ Q_ASSERT(index < (unsigned int)torrent_handle::torrent_file()->num_files());
+#endif
#if LIBTORRENT_VERSION_NUM >= 1600
return fsutils::fileName(filepath_at(index));
#else
@@ -341,22 +373,35 @@
}
size_type QTorrentHandle::filesize_at(unsigned int index) const {
+#if LIBTORRENT_VERSION_NUM < 10000
Q_ASSERT(index < (unsigned int)torrent_handle::get_torrent_info().num_files());
- return torrent_handle::get_torrent_info().file_at(index).size;
+ return torrent_handle::get_torrent_info().files().file_size(index);
+#else
+ Q_ASSERT(index < (unsigned int)torrent_handle::torrent_file()->num_files());
+ return torrent_handle::torrent_file()->files().file_size(index);
+#endif
}
QString QTorrentHandle::filepath_at(unsigned int index) const {
#if LIBTORRENT_VERSION_NUM >= 1600
+#if LIBTORRENT_VERSION_NUM < 10000
return misc::toQStringU(torrent_handle::get_torrent_info().file_at(index).path);
#else
+ return misc::toQStringU(torrent_handle::torrent_file()->files().file_path(index));
+#endif
+#else
return misc::toQStringU(torrent_handle::get_torrent_info().file_at(index).path.string());
#endif
}
QString QTorrentHandle::orig_filepath_at(unsigned int index) const {
#if LIBTORRENT_VERSION_NUM >= 1600
+#if LIBTORRENT_VERSION_NUM < 10000
return misc::toQStringU(torrent_handle::get_torrent_info().orig_files().at(index).path);
#else
+ return misc::toQStringU(torrent_handle::torrent_file()->orig_files().at(index).path);
+#endif
+#else
return misc::toQStringU(torrent_handle::get_torrent_info().orig_files().at(index).path.string());
#endif
}
@@ -370,11 +415,19 @@
}
QString QTorrentHandle::creator() const {
+#if LIBTORRENT_VERSION_NUM < 10000
return misc::toQStringU(torrent_handle::get_torrent_info().creator());
+#else
+ return misc::toQStringU(torrent_handle::torrent_file()->creator());
+#endif
}
QString QTorrentHandle::comment() const {
+#if LIBTORRENT_VERSION_NUM < 10000
return misc::toQStringU(torrent_handle::get_torrent_info().comment());
+#else
+ return misc::toQStringU(torrent_handle::torrent_file()->comment());
+#endif
}
size_type QTorrentHandle::total_failed_bytes() const {
@@ -549,10 +602,15 @@
#endif
}
+
bool QTorrentHandle::priv() const {
if (!has_metadata())
return false;
+#if LIBTORRENT_VERSION_NUM < 10000
return torrent_handle::get_torrent_info().priv();
+#else
+ return torrent_handle::torrent_file()->priv();
+#endif
}
QString QTorrentHandle::firstFileSavePath() const {
@@ -704,10 +762,14 @@
bool QTorrentHandle::save_torrent_file(const QString& path) const {
if (!has_metadata()) return false;
- const torrent_info& t = torrent_handle::get_torrent_info();
+#if LIBTORRENT_VERSION_NUM < 10000
+ torrent_info const* t = &get_torrent_info();
+#else
+ boost::intrusive_ptr t = torrent_file();
+#endif
- entry meta = bdecode(t.metadata().get(),
- t.metadata().get() + t.metadata_size());
+ entry meta = bdecode(t->metadata().get(),
+ t->metadata().get() + t->metadata_size());
entry torrent_entry(entry::dictionary_t);
torrent_entry["info"] = meta;
if (!torrent_handle::trackers().empty())