mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
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:
committed by
Sam James
parent
44e8db7c8b
commit
dfa3f75385
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;});
|
||||
@@ -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"));
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user