commit:     27d1ce487d0182d9dcf0c8fc5e08b296c1225c93
Author:     Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Fri May  2 16:33:21 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun May  4 06:07:14 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27d1ce48

net-libs/libtorrent: add 0.15.3

deps/iuse :
rm ssl useflag, unconditionnally required now
net-libs/udns (unbundled)

use myeconfargs array

arch :
due to net-libs/udns, drop arm, arm64, mips, riscv
using a system-udns flag with p.mask to switch on bundled version
to avoid unkeywording would be nonsense.

Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/41912
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-libs/libtorrent/Manifest                       |  1 +
 .../files/libtorrent-0.15.3-unbundle_udns.patch    | 54 +++++++++++++++
 net-libs/libtorrent/libtorrent-0.15.3.ebuild       | 80 ++++++++++++++++++++++
 3 files changed, 135 insertions(+)

diff --git a/net-libs/libtorrent/Manifest b/net-libs/libtorrent/Manifest
index 40fdff284841..10edbfb0c9ea 100644
--- a/net-libs/libtorrent/Manifest
+++ b/net-libs/libtorrent/Manifest
@@ -1,3 +1,4 @@
 DIST libtorrent-0.13.8.tar.gz 834027 BLAKE2B 
374f33af52a45c244182d36bacd6b42eea9edc179e42fb40f4170a47a0cdd39cfb3f42f82fc26ab36718afb9a28a8dd72ca139b3646bbc1c2887444905438cdd
 SHA512 
417177df5b27cd8c6a6317063b0846da2690de4633836466728605c2edad2de407d29d321cc481b8d1352dd0ff6dd89f4566a830424a8cf986f2fddb04704da4
 DIST libtorrent-0.14.0.tar.gz 809617 BLAKE2B 
321a3911e22b148744439ceb87adb470036516bef6c75f55f860b1f985d7b61bced11c93aaf0a703bd6d0089816dbfdaaa9420b28619ed9dafa4d1495b6763bc
 SHA512 
d61b93778068849a706fa46b5b1c4fbab9246d8a1b45e574987d987eaba50145dd98be65cf969fb4d38a1e4c3bae03b283103163d415506598b8673740d8ac58
 DIST libtorrent-0.15.1.tar.gz 805722 BLAKE2B 
7b4b9aba8133a2a20a5dd39d451c9478c44f133ae3b5929b79cbd25fb0754b4bc64291a75da898ed335a808b992d67ffa7a3a431420da7073d2fb3c927109649
 SHA512 
e7d607fc3e31e2d6f4643c6760a271324a4f8f102e07228aca13427073426a393b12006329206fa14108d93c2f378a8db3761b0e14ff3ae391551777b4b04a6a
+DIST libtorrent-0.15.3.tar.gz 872751 BLAKE2B 
e1a851273e9341f1e71806ada0417d0123f6a7d0fc0965f6a957bbc55981072385d8ae1c59af18c64d5157457532d39af037cbd9313e2646020bdfb70fc48323
 SHA512 
795a1ff115b37df5899a59ff23524cde95380c323b5a11f369d7f43eb250843cf57ed4a2f39880992ecc05d5724c149cd2955ee6c621193f95d13875af341cec

diff --git a/net-libs/libtorrent/files/libtorrent-0.15.3-unbundle_udns.patch 
b/net-libs/libtorrent/files/libtorrent-0.15.3-unbundle_udns.patch
new file mode 100644
index 000000000000..d5c0b6838eb5
--- /dev/null
+++ b/net-libs/libtorrent/files/libtorrent-0.15.3-unbundle_udns.patch
@@ -0,0 +1,54 @@
+diff --git a/src/net/udns_library.cc b/src/net/udns_library.cc
+index 788e7eee..73b7e210 100644
+--- a/src/net/udns_library.cc
++++ b/src/net/udns_library.cc
+@@ -12,23 +12,6 @@
+ 
+ extern "C" {
+ 
+-#include "net/udns/udns.h"
+-
+-#include "net/udns/udns_XtoX.c"
+-#include "net/udns/udns_bl.c"
+-#include "net/udns/udns_codes.c"
+-#include "net/udns/udns_dn.c"
+-#include "net/udns/udns_dntosp.c"
+-#include "net/udns/udns_init.c"
+-#include "net/udns/udns_jran.c"
+-#include "net/udns/udns_misc.c"
+-#include "net/udns/udns_parse.c"
+-#include "net/udns/udns_resolver.c"
+-#include "net/udns/udns_rr_a.c"
+-#include "net/udns/udns_rr_mx.c"
+-#include "net/udns/udns_rr_naptr.c"
+-#include "net/udns/udns_rr_ptr.c"
+-#include "net/udns/udns_rr_srv.c"
+-#include "net/udns/udns_rr_txt.c"
++#include <udns.h>
+ 
+ }
+diff --git a/src/net/udns_library.h b/src/net/udns_library.h
+index b09b398a..bdb1bcdf 100644
+--- a/src/net/udns_library.h
++++ b/src/net/udns_library.h
+@@ -1,6 +1,6 @@
+ #ifndef TORRENT_NET_UDNS_LIBRARY_H
+ #define TORRENT_NET_UDNS_LIBRARY_H
+ 
+-#include "net/udns/udns.h"
++#include <udns.h>
+ 
+ #endif
+diff --git a/src/net/udns_resolver.cc b/src/net/udns_resolver.cc
+index e35e5fc1..f697112d 100644
+--- a/src/net/udns_resolver.cc
++++ b/src/net/udns_resolver.cc
+@@ -8,7 +8,7 @@
+ 
+ #include "globals.h"
+ #include "manager.h"
+-#include "net/udns/udns.h"
++#include <udns.h>
+ #include "torrent/common.h"
+ #include "torrent/poll.h"
+ #include "torrent/net/socket_address.h"

diff --git a/net-libs/libtorrent/libtorrent-0.15.3.ebuild 
b/net-libs/libtorrent/libtorrent-0.15.3.ebuild
new file mode 100644
index 000000000000..39e7965bf314
--- /dev/null
+++ b/net-libs/libtorrent/libtorrent-0.15.3.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="BitTorrent library written in C++ for *nix"
+HOMEPAGE="https://rakshasa.github.io/rtorrent/";
+SRC_URI="https://github.com/rakshasa/rtorrent/releases/download/v${PV}/${P}.tar.gz";
+
+LICENSE="GPL-2"
+# The README says that the library ABI is not yet stable and dependencies on
+# the library should be an explicit, syncronized version until the library
+# has had more time to mature. Until it matures we should not include a soname
+# subslot.
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux 
~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       dev-libs/openssl:=
+       net-libs/udns
+       sys-libs/zlib
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       virtual/pkgconfig
+       test? ( dev-util/cppunit )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.14.0-tests-address.patch
+       "${FILESDIR}"/${PN}-0.15.3-unbundle_udns.patch
+)
+
+src_prepare() {
+       default
+
+       # use system-udns
+       rm -r src/net/udns || 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() {
+       # bug 518582
+       local disable_instrumentation
+       echo -e "#include <inttypes.h>\nint main(){ int64_t var = 7; 
__sync_add_and_fetch(&var, 1); return 0;}" \
+               > "${T}/sync_add_and_fetch.c" || die
+       $(tc-getCC) ${CFLAGS} -o /dev/null -x c "${T}/sync_add_and_fetch.c" 
>/dev/null 2>&1
+       if [[ $? -ne 0 ]]; then
+               einfo "Disabling instrumentation"
+               disable_instrumentation="--disable-instrumentation"
+       fi
+
+       # configure needs bash or script bombs out on some null shift, bug 
#291229
+       export CONFIG_SHELL=${BASH}
+
+       local myeconfargs=(
+               LIBS="-ludns"
+               --enable-aligned
+               $(use_enable debug)
+               ${disable_instrumentation}
+               --with-posix-fallocate
+       )
+
+       econf "${myeconfargs[@]}"
+}
+
+src_install() {
+       default
+
+       find "${ED}" -type f -name '*.la' -delete || die
+}

Reply via email to