Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qbittorrent for openSUSE:Factory checked in at 2024-09-30 15:41:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qbittorrent (Old) and /work/SRC/openSUSE:Factory/.qbittorrent.new.29891 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qbittorrent" Mon Sep 30 15:41:26 2024 rev:122 rq:1204669 version:5.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/qbittorrent/qbittorrent.changes 2024-09-17 18:19:57.483354593 +0200 +++ /work/SRC/openSUSE:Factory/.qbittorrent.new.29891/qbittorrent.changes 2024-09-30 15:41:45.164400043 +0200 @@ -1,0 +2,101 @@ +Mon Sep 30 06:38:35 UTC 2024 - Luigi Baldoni <aloi...@gmx.com> + +- Update to version 5.0.0 + New features: + * Support creating .torrent with larger piece size + * Improve tracker entries handling + * Add separate filter item for tracker errors + * Allow to remove tracker from tracker filter widget menu + * Implement "Reannounce In" column + * Expose "DHT bootstrap nodes" setting + * Add support for Mark-of-the-Web + (https://redcanary.com/threat-detection-report/techniques/mark-of-the-web-bypass/) + * Allow to keep unwanted files in separate folder + * Add "Copy Comment" to the torrent list's context menu + * Allow relative profile paths + * Enable Ctrl+F hotkey for more inputs + * Add seeding limits to RSS and Watched folders options UI + * Subcategories implicitly follow the parent category options + * Add option to name each qbittorrent instance + * Add button for sending test email + * Allow torrents to override default share limit action + * Use Start/Stop instead of Resume/Pause + * Add the Popularity metric + * Focus on Download button if torrent link retrieved from the + clipboard + * Add ability to pause/resume entire BitTorrent session + * Add an option to set BitTorrent session shutdown timeout + * Apply "Excluded file names" to folder names as well + * Allow to use regular expression to filter torrent content + * Allow to move content files to Trash instead of deleting them + * Add ability to display torrent "privateness" in UI + * Add a flag in "Peers" tab denoting a connection using NAT + hole punching + Bug fixes: + * Display error message when unrecoverable error occurred + * Update size of selected files when selection is changed + * Normalize tags by trimming leading/trailing whitespace + * Correctly handle share limits in torrent options dialog + * Adjust tracker tier when adding additional trackers + * Fix inconsistent naming between "Done/Progress" column + * Sanitize peer client names + * Apply share limits immediately when torrent downloading is + finished + * Show download progress for folders with zero byte size as + 100 instead of 0 + * Fix highlighted piece color + * Apply "merge trackers" logic regardless of way the torrent + is added + Web UI: + * Improve WebUI responsiveness + * Do not exit the app when WebUI has failed to start + * Add "Moving" filter to side panel + * Add dark theme + * Allow to remember torrent content files deletion + * Leave the fields empty when value is invalid + * Use natural sorting + * Improve WebUI login behavior + * Conditionally show filters sidebar + * Add support for running concurrent searches + * Improve accuracy of trackers list + * Fix error when category doesn't exist + * Improve table scrolling and selection on mobile + * Restore search tabs on load + * Restore previously used tab on load + * Increase default height of "Share ratio limit" dialog + * Use enabled search plugins by default + * Add columns "Incomplete Save Path", "Info Hash v1", "Info + Hash v2" + * Always create generic filter items + * Provide "Use Category paths in Manual Mode" option + * Provide "Merge trackers to existing torrent" option + Web API: + * Fix wrong timestamp values + * Send binary data with filename and mime type specified + * Expose API for the torrent creator + * Add support for SSL torrents + * Provide endpoint for listing directory content + * Provide "private" flag via "torrents/info" endpoint + * Add a way to download .torrent file using search plugin + * Add "private" filter for "torrents/info" endpoint + * Add root_path to "torrents/info" result + RSS: + * Show RSS feed title in HTML browser + * Allow to set delay between requests to the same host + Search: + * Allow users to specify Python executable path + * Lazy load search plugins + * Add date column to the built-in search engine + * Allow to rearrange search tabs + Other changes: + * Add support for systemd power management + * Add support for localized man pages + * Specify a locale if none is set + * Drop support for Qt5, qmake, autotools + * Minimum supported versions: Qt: 6.5, Boost: 1.76, OpenSSL: + 3.0.2 + * Switch to C++20 +- Replace qbittorrent-fix_boost_1.66_build.patch with + qbittorrent-fix_boost_1.75_build.patch + +------------------------------------------------------------------- Old: ---- qbittorrent-4.6.7.tar.xz qbittorrent-4.6.7.tar.xz.asc qbittorrent-fix_boost_1.66_build.patch New: ---- qbittorrent-5.0.0.tar.xz qbittorrent-5.0.0.tar.xz.asc qbittorrent-fix_boost_1.75_build.patch BETA DEBUG BEGIN: Old: * Switch to C++20 - Replace qbittorrent-fix_boost_1.66_build.patch with qbittorrent-fix_boost_1.75_build.patch BETA DEBUG END: BETA DEBUG BEGIN: New:- Replace qbittorrent-fix_boost_1.66_build.patch with qbittorrent-fix_boost_1.75_build.patch BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qbittorrent.spec ++++++ --- /var/tmp/diff_new_pack.AKjh3m/_old 2024-09-30 15:41:46.152441205 +0200 +++ /var/tmp/diff_new_pack.AKjh3m/_new 2024-09-30 15:41:46.156441371 +0200 @@ -25,7 +25,7 @@ %endif Name: qbittorrent -Version: 4.6.7 +Version: 5.0.0 Release: 0 Summary: A BitTorrent client in Qt License: GPL-2.0-or-later @@ -34,8 +34,8 @@ Source1: https://downloads.sf.net/%{name}/%{name}-%{version}.tar.xz.asc Source2: https://raw.githubusercontent.com/qbittorrent/qBittorrent/release-%{version}/5B7CC9A2.asc#/%{name}.keyring Patch0: harden_qbittorrent-nox@.service.patch -# PATCH-FIX-OPENSUSE qbittorrent-fix_boost_1.66_build.patch search for libboost_system.so and patch stacktrace function # aloi...@gmx.com -Patch2: qbittorrent-fix_boost_1.66_build.patch +# PATCH-FIX-OPENSUSE qbittorrent-fix_boost_1.75_build.patch search for libboost_system.so and patch stacktrace function # aloi...@gmx.com +Patch2: qbittorrent-fix_boost_1.75_build.patch # PATCH-FIX-OPENSUSE qbittorrent-altpython.patch force newer python for the plugins -- aloi...@gmx.com Patch3: qbittorrent-altpython.patch BuildRequires: cmake >= 3.16 @@ -48,7 +48,7 @@ %endif BuildRequires: pkgconfig BuildRequires: qt6-core-private-devel -BuildRequires: cmake(Qt6Core) >= 6.2 +BuildRequires: cmake(Qt6Core) >= 6.5.0 BuildRequires: cmake(Qt6DBus) BuildRequires: cmake(Qt6LinguistTools) BuildRequires: cmake(Qt6Network) @@ -57,7 +57,7 @@ BuildRequires: cmake(Qt6Widgets) BuildRequires: cmake(Qt6Xml) BuildRequires: pkgconfig(libtorrent-rasterbar) >= 2.0.9 -BuildRequires: pkgconfig(openssl) >= 1.1.1 +BuildRequires: pkgconfig(openssl) >= 3.0.2 BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(zlib) >= 1.2.11 # contains the qt6 plugins to read SVG icons @@ -110,6 +110,9 @@ mkdir -p %{buildroot}%{_sbindir}/ ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}-nox +%find_lang %{name} --with-man +%find_lang %{name}-nox --with-man + %fdupes %{buildroot}%{_datadir}/ %preun nox @@ -124,7 +127,7 @@ %post nox %service_add_post %{name}-nox@.service -%files +%files -f %{name}.lang %license COPYING %doc AUTHORS Changelog README.md %{_bindir}/%{name} @@ -135,7 +138,7 @@ %{_datadir}/metainfo/org.qbittorrent.qBittorrent.metainfo.xml %{_mandir}/man?/%{name}.?%{?ext_man} -%files nox +%files nox -f %{name}-nox.lang %license COPYING %doc AUTHORS Changelog README.md %{_bindir}/%{name}-nox ++++++ qbittorrent-4.6.7.tar.xz -> qbittorrent-5.0.0.tar.xz ++++++ ++++ 733124 lines of diff (skipped) ++++++ qbittorrent-altpython.patch ++++++ --- /var/tmp/diff_new_pack.AKjh3m/_old 2024-09-30 15:41:48.080521531 +0200 +++ /var/tmp/diff_new_pack.AKjh3m/_new 2024-09-30 15:41:48.084521698 +0200 @@ -1,14 +1,14 @@ -Index: qbittorrent-4.6.0/src/base/utils/foreignapps.cpp +Index: qBittorrent-release-5.0.0beta1/src/base/utils/foreignapps.cpp =================================================================== ---- qbittorrent-4.6.0.orig/src/base/utils/foreignapps.cpp -+++ qbittorrent-4.6.0/src/base/utils/foreignapps.cpp -@@ -256,7 +256,7 @@ PythonInfo Utils::ForeignApps::pythonInf - static PythonInfo pyInfo; - if (!pyInfo.isValid()) - { -- if (testPythonInstallation(u"python3"_s, pyInfo)) -+ if (testPythonInstallation(u"__PYTHON_ALT__"_s, pyInfo)) - return pyInfo; +--- qBittorrent-release-5.0.0beta1.orig/src/base/utils/foreignapps.cpp ++++ qBittorrent-release-5.0.0beta1/src/base/utils/foreignapps.cpp +@@ -276,7 +276,7 @@ PythonInfo Utils::ForeignApps::pythonInf - if (testPythonInstallation(u"python"_s, pyInfo)) + if (!pyInfo.isValid()) + { +- if (testPythonInstallation(u"python3"_s, pyInfo)) ++ if (testPythonInstallation(u"__PYTHON_ALT__"_s, pyInfo)) + return pyInfo; + LogMsg(QCoreApplication::translate("Utils::ForeignApps", "Failed to find `python3` executable in PATH environment variable. PATH: \"%1\"") + .arg(qEnvironmentVariable("PATH")), Log::INFO); ++++++ qbittorrent-fix_boost_1.66_build.patch -> qbittorrent-fix_boost_1.75_build.patch ++++++ --- /work/SRC/openSUSE:Factory/qbittorrent/qbittorrent-fix_boost_1.66_build.patch 2023-10-29 19:41:49.315423538 +0100 +++ /work/SRC/openSUSE:Factory/.qbittorrent.new.29891/qbittorrent-fix_boost_1.75_build.patch 2024-09-30 15:41:44.904389211 +0200 @@ -1,20 +1,20 @@ -Index: qbittorrent-4.6.0/CMakeLists.txt +Index: qBittorrent-release-5.0.0rc1/CMakeLists.txt =================================================================== ---- qbittorrent-4.6.0.orig/CMakeLists.txt -+++ qbittorrent-4.6.0/CMakeLists.txt +--- qBittorrent-release-5.0.0rc1.orig/CMakeLists.txt ++++ qBittorrent-release-5.0.0rc1/CMakeLists.txt @@ -7,7 +7,7 @@ project(qBittorrent ) # version requirements - older versions may work, but you are on your own --set(minBoostVersion 1.71) -+set(minBoostVersion 1.66) - set(minQt5Version 5.15.2) - set(minQt6Version 6.2) - set(minOpenSSLVersion 1.1.1) -Index: qbittorrent-4.6.0/src/app/stacktrace.cpp +-set(minBoostVersion 1.76) ++set(minBoostVersion 1.75) + set(minQt6Version 6.5.0) + set(minOpenSSLVersion 3.0.2) + set(minLibtorrent1Version 1.2.19) +Index: qBittorrent-release-5.0.0rc1/src/app/stacktrace.cpp =================================================================== ---- qbittorrent-4.6.0.orig/src/app/stacktrace.cpp -+++ qbittorrent-4.6.0/src/app/stacktrace.cpp +--- qBittorrent-release-5.0.0rc1.orig/src/app/stacktrace.cpp ++++ qBittorrent-release-5.0.0rc1/src/app/stacktrace.cpp @@ -30,7 +30,16 @@ #include <boost/stacktrace.hpp> @@ -24,7 +24,7 @@ + std::string getStacktrace() { -+#if BOOST_VERSION >= 107100 ++#if BOOST_VERSION > 107500 return boost::stacktrace::to_string(boost::stacktrace::stacktrace()); +#else + std::ostringstream out; @@ -32,3 +32,120 @@ + return out.str(); +#endif } +Index: qBittorrent-release-5.0.0rc1/src/base/bittorrent/sessionimpl.cpp +=================================================================== +--- qBittorrent-release-5.0.0rc1.orig/src/base/bittorrent/sessionimpl.cpp ++++ qBittorrent-release-5.0.0rc1/src/base/bittorrent/sessionimpl.cpp +@@ -42,7 +42,10 @@ + #include <iphlpapi.h> + #endif + ++#include <boost/version.hpp> ++#if BOOST_VERSION > 107500 + #include <boost/asio/ip/tcp.hpp> ++#endif + + #include <libtorrent/add_torrent_params.hpp> + #include <libtorrent/address.hpp> +@@ -96,6 +99,9 @@ + #include "extensiondata.h" + #include "filesearcher.h" + #include "filterparserthread.h" ++#if BOOST_VERSION == 107500 ++#include "hash.h" ++#endif + #include "loadtorrentparams.h" + #include "lttypecast.h" + #include "nativesessionextension.h" +Index: qBittorrent-release-5.0.0rc1/src/base/bittorrent/hash.h +=================================================================== +--- /dev/null ++++ qBittorrent-release-5.0.0rc1/src/base/bittorrent/hash.h +@@ -0,0 +1,72 @@ ++#pragma once ++ ++#include <boost/asio/ip/tcp.hpp> ++#include <functional> ++ ++namespace std { ++ ++template <> ++struct hash<boost::asio::ip::address_v4> ++{ ++ std::size_t operator()(const boost::asio::ip::address_v4& addr) ++ const BOOST_ASIO_NOEXCEPT ++ { ++ return std::hash<unsigned int>()(addr.to_uint()); ++ } ++}; ++ ++template <> ++struct hash<boost::asio::ip::address_v6> ++{ ++ std::size_t operator()(const boost::asio::ip::address_v6& addr) ++ const BOOST_ASIO_NOEXCEPT ++ { ++ const boost::asio::ip::address_v6::bytes_type bytes = addr.to_bytes(); ++ std::size_t result = static_cast<std::size_t>(addr.scope_id()); ++ combine_4_bytes(result, &bytes[0]); ++ combine_4_bytes(result, &bytes[4]); ++ combine_4_bytes(result, &bytes[8]); ++ combine_4_bytes(result, &bytes[12]); ++ return result; ++ } ++ ++private: ++ static void combine_4_bytes(std::size_t& seed, const unsigned char* bytes) ++ { ++ const std::size_t bytes_hash = ++ (static_cast<std::size_t>(bytes[0]) << 24) | ++ (static_cast<std::size_t>(bytes[1]) << 16) | ++ (static_cast<std::size_t>(bytes[2]) << 8) | ++ (static_cast<std::size_t>(bytes[3])); ++ seed ^= bytes_hash + 0x9e3779b9 + (seed << 6) + (seed >> 2); ++ } ++}; ++ ++template <> ++struct hash<boost::asio::ip::address> ++{ ++ std::size_t operator()(const boost::asio::ip::address& addr) ++ const BOOST_ASIO_NOEXCEPT ++ { ++ return addr.is_v4() ++ ? std::hash<boost::asio::ip::address_v4>()(addr.to_v4()) ++ : std::hash<boost::asio::ip::address_v6>()(addr.to_v6()); ++ } ++}; ++ ++template <typename InternetProtocol> ++struct hash<boost::asio::ip::basic_endpoint<InternetProtocol> > ++{ ++ std::size_t operator()( ++ const boost::asio::ip::basic_endpoint<InternetProtocol>& ep) ++ const BOOST_ASIO_NOEXCEPT ++ { ++ std::size_t hash1 = std::hash<boost::asio::ip::address>()(ep.address()); ++ std::size_t hash2 = std::hash<unsigned short>()(ep.port()); ++ return hash1 ^ (hash2 + 0x9e3779b9 + (hash1 << 6) + (hash1 >> 2)); ++ } ++}; ++ ++} // namespace std ++ ++ +Index: qBittorrent-release-5.0.0rc1/src/base/bittorrent/torrentimpl.h +=================================================================== +--- qBittorrent-release-5.0.0rc1.orig/src/base/bittorrent/torrentimpl.h ++++ qBittorrent-release-5.0.0rc1/src/base/bittorrent/torrentimpl.h +@@ -49,6 +49,10 @@ + + #include "base/path.h" + #include "base/tagset.h" ++#include <boost/version.hpp> ++#if BOOST_VERSION == 107500 ++#include "hash.h" ++#endif + #include "infohash.h" + #include "speedmonitor.h" + #include "sslparameters.h"