net-p2p/rtorrent: drop 0.15.3-r1, 0.15.4

Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/42714
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Nicolas PARLANT
2025-06-23 18:04:11 +02:00
committed by Sam James
parent 44e8db7c8b
commit dfa3f75385
6 changed files with 0 additions and 437 deletions

View File

@@ -1,5 +1,3 @@
DIST rtorrent-0.15.1.tar.gz 688056 BLAKE2B 0fd0b3748e1ec13935fa900434ad5d54c6062ea48c5f8cb320d0a30cb318c09f80347ca665c61a7745770c965eee5e1cfa7e96968a2468ad06711b80be5d6e92 SHA512 e5c713601ecb0c4536b64d98ca53261db35980b04a3f274d12f51467b021d77768e7f6a2004a33a76a99f7d96e0a2c3de4605fd7ee186ba05a7c16aa96b97ea5
DIST rtorrent-0.15.3.tar.gz 858703 BLAKE2B 9684141b9785a38ba609783aa5d294fb09f777f73beddf7d683531ad79c3fd09ed9b0a6118ef4f87678c5343d660bdd7a5ab18f5ec8e05a2c71a06588576579c SHA512 060319e0e4a5563c29d21b41e369e14e37bf5cc949c60cf482432c4cadda82151e0c5fef8f8082fd765b777b758676907eed070840117cac30565406717cf77c
DIST rtorrent-0.15.4.tar.gz 866692 BLAKE2B 941defa4393f29ca562bde6692c201df2e64bc2bf83c9a7aa85f8d19884723868019d54e19cb8f27c303dca094c3c135980ddac278960c657812fb4abd5a66e6 SHA512 9e197a49478e2df8959ce92eb065d4c063bfc096509bc53f13bcc2ebb1b1cc89e7156badb11b7a617d018d4dd77291a0e96762d28bc237deacdb29a36d96af1d
DIST rtorrent-0.15.5.tar.gz 866800 BLAKE2B 7e92d127e5104c40b51fdfef8ec73e097d926ed042626cd81df9c4b8b0e951d0ff054bc38efebbbdbc8ef051ae8e7ecb3b31d57b2bd0732a8fed721cf2899c7f SHA512 54888d9a2b37c0e4ebf3e47203c863b1fad5b2e39fa2a563a09c2615f3ff603ee240da86a990a8e24597bc2da32bda98400f661f8241dc1fb16953eebdc20fc0
DIST rtorrent-0.9.8.tar.gz 647523 BLAKE2B 3562ed03dee3baa4a702d20c7c91b9248d9de0f25d1f8cd182863101f293a0ef13cb49164e4d16b25e72a4fbe1cc1a2fbde176d3068c749edbcb2287ef260b2b SHA512 016685948d0290694ab9635ae218c7acd876e6d45bea1bdba3a29c545e64f5d824c5e2f6693a4c2e9200196177881d54f312d72e0a19742bd74a03bd19ca05c7

View File

@@ -1,52 +0,0 @@
add missing rtorrent.lua in tarball
diff --git a/rtorrent.lua b/rtorrent.lua
new file mode 100644
index 0000000..5bad750
--- /dev/null
+++ b/rtorrent.lua
@@ -0,0 +1,42 @@
+-- the "rtorrent" table is passed in by the C++ code, modify and
+-- return it for loading.
+local args = {...}
+local rtorrent = args[1]
+
+-- Autocall
+-- Allows syntax like `rtorrent.autocall.system.hostname()`
+local mt = {}
+function mt.__call (t, ...)
+ name = table.concat(rawget(t, "__namestack"), ".")
+ success, ret = pcall(rtorrent.call, name, ...)
+ if not success then error(name..": "..ret, 2) end
+ return ret
+end
+function mt.__index (t, key)
+ ns = rawget(t, "__namestack") or {}
+ table.insert(ns, key)
+ return setmetatable({__namestack=ns}, mt)
+end
+rtorrent["autocall"] = setmetatable({}, mt)
+
+-- Autocall-config Same as autocall, but passes an empty first target
+-- implicitly, for syntax like `rtorrent.autocall_config.session.directory.set("/tmp/")`
+local mt = {}
+function mt.__call (t, ...)
+ name = table.concat(rawget(t, "__namestack"), ".")
+ success, ret = pcall(rtorrent.call, name, "", ...)
+ if not success then error(name..": "..ret, 2) end
+ return ret
+end
+function mt.__index (t, key)
+ ns = rawget(t, "__namestack")
+ if ns == nil then
+ if _G[key] ~= nil then return _G[key] end
+ ns = {}
+ end
+ table.insert(ns, key)
+ return setmetatable({__namestack=ns}, mt)
+end
+rtorrent["autocall_config"] = setmetatable({}, mt)
+
+return rtorrent
--
2.49.0

View File

@@ -1,102 +0,0 @@
http:////github.com/rakshasa/rtorrent/pull/1463.patch
From 57240d94336a2560f9f3713598446c361c4efabb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jorge=20Israel=20Pe=C3=B1a?= <jorge.israel.p@gmail.com>
Date: Thu, 1 May 2025 16:56:33 +0200
Subject: [PATCH] Wrap fault struct in value
---
src/rpc/rpc_manager.cc | 2 +-
src/rpc/xmlrpc_tinyxml2.cc | 2 ++
test/rpc/xmlrpc_test.cc | 18 +++++++++---------
3 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/rpc/rpc_manager.cc b/src/rpc/rpc_manager.cc
index 620857113..7419f8b55 100644
--- a/src/rpc/rpc_manager.cc
+++ b/src/rpc/rpc_manager.cc
@@ -105,7 +105,7 @@ RpcManager::process(RPCType type, const char* in_buffer, uint32_t length, slot_r
return m_xmlrpc.process(in_buffer, length, callback);
} else {
- const std::string response = "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>XML-RPC not supported</string></value></member></struct></fault></methodResponse>";
+ const std::string response = "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>XML-RPC not supported</string></value></member></struct></value></fault></methodResponse>";
return callback(response.c_str(), response.size());
}
break;
diff --git a/src/rpc/xmlrpc_tinyxml2.cc b/src/rpc/xmlrpc_tinyxml2.cc
index 8be742958..8f2468f2d 100644
--- a/src/rpc/xmlrpc_tinyxml2.cc
+++ b/src/rpc/xmlrpc_tinyxml2.cc
@@ -313,6 +313,7 @@ print_xmlrpc_fault(int faultCode, std::string faultString, tinyxml2::XMLPrinter*
printer->OpenElement("methodResponse", true);
printer->OpenElement("fault", true);
+ printer->OpenElement("value", true);
printer->OpenElement("struct", true);
printer->OpenElement("member", true);
@@ -340,6 +341,7 @@ print_xmlrpc_fault(int faultCode, std::string faultString, tinyxml2::XMLPrinter*
printer->CloseElement(true);
printer->CloseElement(true);
printer->CloseElement(true);
+ printer->CloseElement(true);
}
bool
diff --git a/test/rpc/xmlrpc_test.cc b/test/rpc/xmlrpc_test.cc
index 1bfdeadcd..220512d73 100644
--- a/test/rpc/xmlrpc_test.cc
+++ b/test/rpc/xmlrpc_test.cc
@@ -67,35 +67,35 @@ std::vector<std::tuple<std::string, std::string, std::string>> basic_requests =
std::make_tuple("Invalid - missing method",
"<?xml version=\"1.0\"?><methodCall><methodName>no_such_method</methodName><params><param><value><i8>41</i8></value></param></params></methodCall>",
- "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-506</i8></value></member><member><name>faultString</name><value><string>method 'no_such_method' not defined</string></value></member></struct></fault></methodResponse>"),
+ "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-506</i8></value></member><member><name>faultString</name><value><string>method 'no_such_method' not defined</string></value></member></struct></value></fault></methodResponse>"),
std::make_tuple("Invalid - i8 target",
"<?xml version=\"1.0\"?><methodCall><methodName>xmlrpc_reflect</methodName><params><param><value><i8>41</i8></value></param></params></methodCall>",
- "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-500</i8></value></member><member><name>faultString</name><value><string>invalid parameters: target must be a string</string></value></member></struct></fault></methodResponse>"),
+ "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-500</i8></value></member><member><name>faultString</name><value><string>invalid parameters: target must be a string</string></value></member></struct></value></fault></methodResponse>"),
std::make_tuple("Invalid - empty int tag",
"<?xml version=\"1.0\"?><methodCall><methodName>xmlrpc_reflect</methodName><params><param><value><string></string></value></param><param><value><i8/></value></param></params></methodCall>",
- "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unable to parse empty integer</string></value></member></struct></fault></methodResponse>"),
+ "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unable to parse empty integer</string></value></member></struct></value></fault></methodResponse>"),
std::make_tuple("Invalid - empty int text",
"<?xml version=\"1.0\"?><methodCall><methodName>xmlrpc_reflect</methodName><params><param><value><string></string></value></param><param><value><i8></i8></value></param></params></methodCall>",
- "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unable to parse empty integer</string></value></member></struct></fault></methodResponse>"),
+ "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unable to parse empty integer</string></value></member></struct></value></fault></methodResponse>"),
std::make_tuple("Invalid - broken XML",
"thodCall><methodName>test_a</methodName><params><param><value><i8>41</i8></value></param></params></method",
- "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-503</i8></value></member><member><name>faultString</name><value><string>Error=XML_ERROR_PARSING_ELEMENT ErrorID=6 (0x6) Line number=1: XMLElement name=method</string></value></member></struct></fault></methodResponse>"),
+ "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-503</i8></value></member><member><name>faultString</name><value><string>Error=XML_ERROR_PARSING_ELEMENT ErrorID=6 (0x6) Line number=1: XMLElement name=method</string></value></member></struct></value></fault></methodResponse>"),
std::make_tuple("Invalid - non-integer i8",
"<?xml version=\"1.0\"?><methodCall><methodName>xmlrpc_reflect</methodName><params><param><value><i8>string value</i8></value></param></params></methodCall>",
- "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unable to parse integer value</string></value></member></struct></fault></methodResponse>"),
+ "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unable to parse integer value</string></value></member></struct></value></fault></methodResponse>"),
std::make_tuple("Invalid - float i8",
"<?xml version=\"1.0\"?><methodCall><methodName>xmlrpc_reflect</methodName><params><param><value><i8>3.14</i8></value></param></params></methodCall>",
- "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unable to parse integer value</string></value></member></struct></fault></methodResponse>"),
+ "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unable to parse integer value</string></value></member></struct></value></fault></methodResponse>"),
std::make_tuple("Invalid - non-boolean boolean",
"<?xml version=\"1.0\"?><methodCall><methodName>xmlrpc_reflect</methodName><params><param><value><boolean>string value</boolean></value></param></params></methodCall>",
- "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unknown boolean value: string value</string></value></member></struct></fault></methodResponse>")
+ "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-501</i8></value></member><member><name>faultString</name><value><string>unknown boolean value: string value</string></value></member></struct></value></fault></methodResponse>")
};
void
@@ -134,7 +134,7 @@ XmlrpcTest::test_invalid_utf8() {
void
XmlrpcTest::test_size_limit() {
std::string input = "<?xml version=\"1.0\"?><methodCall><methodName>xmlrpc_reflect</methodName><params><param><value><string></string></value></param><param><value><string>\xc3\x28</string></value></param></params></methodCall>";
- std::string expected = "<?xml version=\"1.0\"?><methodResponse><fault><struct><member><name>faultCode</name><value><i8>-509</i8></value></member><member><name>faultString</name><value><string>Content size exceeds maximum XML-RPC limit</string></value></member></struct></fault></methodResponse>";
+ std::string expected = "<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i8>-509</i8></value></member><member><name>faultString</name><value><string>Content size exceeds maximum XML-RPC limit</string></value></member></struct></value></fault></methodResponse>";
std::string output;
m_xmlrpc.set_size_limit(1);
m_xmlrpc.process(input.c_str(), input.size(), [&output](const char* c, uint32_t l){ output.append(c, l); return true;});

View File

@@ -1,63 +0,0 @@
https://github.com/rakshasa/rtorrent/pull/1507
From 231606afc16eef08ec1a344a7aaef7504343bb71 Mon Sep 17 00:00:00 2001
From: rakshasa <sundell.software@gmail.com>
Date: Sun, 1 Jun 2025 18:21:10 +0200
Subject: [PATCH] Fix ExecFile waitpid error handling.
---
src/rpc/exec_file.cc | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/rpc/exec_file.cc b/src/rpc/exec_file.cc
index 3be7bfa97..edf36697e 100644
--- a/src/rpc/exec_file.cc
+++ b/src/rpc/exec_file.cc
@@ -1,6 +1,7 @@
#include "config.h"
#include <cerrno>
+#include <cstring>
#include <fcntl.h>
#include <string>
#include <unistd.h>
@@ -18,7 +19,7 @@ namespace rpc {
int
ExecFile::execute(const char* file, char* const* argv, int flags) {
- // Write the execued command and its parameters to the log fd.
+ // Write the executed command and its parameters to the log fd.
[[maybe_unused]] int result;
if (m_log_fd != -1) {
@@ -117,18 +118,23 @@ ExecFile::execute(const char* file, char* const* argv, int flags) {
}
int status;
- int wpid;
- do {
- wpid = waitpid(childPid, &status, 0);
- } while (wpid == -1 && WIFEXITED(status) == 0);
-
- if (wpid != childPid)
- throw torrent::internal_error("ExecFile::execute(...) waitpid failed.");
+ while (waitpid(childPid, &status, 0) == -1) {
+ switch (errno) {
+ case EINTR:
+ continue;
+ case ECHILD:
+ throw torrent::internal_error("ExecFile::execute(...) waitpid failed with ECHILD, child process not found.");
+ case EINVAL:
+ throw torrent::internal_error("ExecFile::execute(...) waitpid failed with EINVAL.");
+ default:
+ throw torrent::internal_error("ExecFile::execute(...) waitpid failed with unexpected error: " + std::string(std::strerror(errno)));
+ }
+ };
// Check return value?
if (m_log_fd != -1) {
- if (status == 0)
+ if (WIFEXITED(status) && WEXITSTATUS(status) == 0)
result = write(m_log_fd, "\n--- Success ---\n", sizeof("\n--- Success ---\n"));
else
result = write(m_log_fd, "\n--- Error ---\n", sizeof("\n--- Error ---\n"));

View File

@@ -1,110 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# require 64-bit integer
LUA_COMPAT=( lua5-{3,4} )
inherit autotools linux-info lua-single systemd
DESCRIPTION="BitTorrent Client using libtorrent"
HOMEPAGE="https://rakshasa.github.io/rtorrent/"
SRC_URI="https://github.com/rakshasa/rtorrent/releases/download/v${PV}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug lua selinux test tinyxml2 xmlrpc"
RESTRICT="!test? ( test )"
REQUIRED_USE="
lua? ( ${LUA_REQUIRED_USE} )
tinyxml2? ( !xmlrpc )
"
COMMON_DEPEND="
~net-libs/libtorrent-${PV}
net-misc/curl
sys-libs/ncurses:0=
lua? ( ${LUA_DEPS} )
xmlrpc? ( dev-libs/xmlrpc-c:=[libxml2] )
"
DEPEND="${COMMON_DEPEND}
dev-cpp/nlohmann_json
"
RDEPEND="${COMMON_DEPEND}
selinux? ( sec-policy/selinux-rtorrent )
"
BDEPEND="
virtual/pkgconfig
test? ( dev-util/cppunit )
"
DOCS=( doc/rtorrent.rc )
PATCHES=(
"${FILESDIR}"/${PN}-0.15.3-unbundle_json.patch
# from upstream. To be removed in next release
"${FILESDIR}"/${PN}-0.15.3-struct_xmlrpc.patch
# missing rtorrent.lua in tarball
"${FILESDIR}"/${PN}-0.15.3-rtorrentlua.patch
)
pkg_setup() {
if ! linux_config_exists || ! linux_chkconfig_present IPV6; then
ewarn "rtorrent will not start without IPv6 support in your kernel"
ewarn "without further configuration. Please set bind=0.0.0.0 or"
ewarn "similar in your rtorrent.rc"
ewarn "Upstream bug: https://github.com/rakshasa/rtorrent/issues/732"
fi
use lua && lua-single_pkg_setup
}
src_prepare() {
default
# use system-json
rm -r src/rpc/nlohmann || die
# https://github.com/rakshasa/rtorrent/issues/332
cp "${FILESDIR}"/rtorrent.1 "${S}"/doc/ || die
if [[ ${CHOST} != *-darwin* ]]; then
# syslibroot is only for macos, change to sysroot for others
sed -i 's/Wl,-syslibroot,/Wl,--sysroot,/' "${S}/scripts/common.m4" || die
fi
eautoreconf
}
src_configure() {
# configure needs bash or script bombs out on some null shift, bug #291229
export CONFIG_SHELL=${BASH}
local myeconfargs=(
$(use_enable debug)
$(use_with lua)
$(usev xmlrpc --with-xmlrpc-c)
$(usev tinyxml2 --with-xmlrpc-tinyxml2)
)
use lua && myeconfargs+=(
LUA_INCLUDE="-I$(lua_get_include_dir)"
)
econf "${myeconfargs[@]}"
}
src_install() {
default
doman doc/rtorrent.1
if use lua; then
insinto $(lua_get_lmod_dir)
doins ${PN}.lua
fi
newinitd "${FILESDIR}/rtorrent-r1.init" rtorrent
newconfd "${FILESDIR}/rtorrentd.conf" rtorrent
systemd_newunit "${FILESDIR}/rtorrentd_at-r1.service" "rtorrentd@.service"
}

View File

@@ -1,108 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# require 64-bit integer
LUA_COMPAT=( lua5-{3,4} )
inherit autotools linux-info lua-single systemd
DESCRIPTION="BitTorrent Client using libtorrent"
HOMEPAGE="https://rakshasa.github.io/rtorrent/"
SRC_URI="https://github.com/rakshasa/rtorrent/releases/download/v${PV}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug lua selinux test tinyxml2 xmlrpc"
RESTRICT="!test? ( test )"
REQUIRED_USE="
lua? ( ${LUA_REQUIRED_USE} )
tinyxml2? ( !xmlrpc )
"
COMMON_DEPEND="
~net-libs/libtorrent-${PV}
net-misc/curl
sys-libs/ncurses:0=
lua? ( ${LUA_DEPS} )
xmlrpc? ( dev-libs/xmlrpc-c:=[libxml2] )
"
DEPEND="${COMMON_DEPEND}
dev-cpp/nlohmann_json
"
RDEPEND="${COMMON_DEPEND}
selinux? ( sec-policy/selinux-rtorrent )
"
BDEPEND="
virtual/pkgconfig
test? ( dev-util/cppunit )
"
DOCS=( doc/rtorrent.rc )
PATCHES=(
"${FILESDIR}"/${PN}-0.15.3-unbundle_json.patch
# from upstream. To be removed in next release
"${FILESDIR}"/${PN}-0.15.4-fix_waitpid.patch
)
pkg_setup() {
if ! linux_config_exists || ! linux_chkconfig_present IPV6; then
ewarn "rtorrent will not start without IPv6 support in your kernel"
ewarn "without further configuration. Please set bind=0.0.0.0 or"
ewarn "similar in your rtorrent.rc"
ewarn "Upstream bug: https://github.com/rakshasa/rtorrent/issues/732"
fi
use lua && lua-single_pkg_setup
}
src_prepare() {
default
# use system-json
rm -r src/rpc/nlohmann || die
# https://github.com/rakshasa/rtorrent/issues/332
cp "${FILESDIR}"/rtorrent.1 "${S}"/doc/ || die
if [[ ${CHOST} != *-darwin* ]]; then
# syslibroot is only for macos, change to sysroot for others
sed -i 's/Wl,-syslibroot,/Wl,--sysroot,/' "${S}/scripts/common.m4" || die
fi
eautoreconf
}
src_configure() {
# configure needs bash or script bombs out on some null shift, bug #291229
export CONFIG_SHELL=${BASH}
local myeconfargs=(
$(use_enable debug)
$(use_with lua)
$(usev xmlrpc --with-xmlrpc-c)
$(usev tinyxml2 --with-xmlrpc-tinyxml2)
)
use lua && myeconfargs+=(
LUA_INCLUDE="-I$(lua_get_include_dir)"
)
econf "${myeconfargs[@]}"
}
src_install() {
default
doman doc/rtorrent.1
if use lua; then
insinto $(lua_get_lmod_dir)
doins ${PN}.lua
fi
newinitd "${FILESDIR}/rtorrent-r1.init" rtorrent
newconfd "${FILESDIR}/rtorrentd.conf" rtorrent
systemd_newunit "${FILESDIR}/rtorrentd_at-r1.service" "rtorrentd@.service"
}