git: 7c412d80f232 - main - net-p2p/libtorrent-rasterbar2: update 2.0.13 → 2.1.1

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 21 Sep 2026 03:44:56 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7c412d80f232eb225c1d48ff72d5fab1dd8769e9

commit 7c412d80f232eb225c1d48ff72d5fab1dd8769e9
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-09-21 03:12:31 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-09-21 03:44:51 +0000

    net-p2p/libtorrent-rasterbar2: update 2.0.13 → 2.1.1
    
    - net/arrowdl is patched and patches upstreamed: https://github.com/setvisible/ArrowDL/pull/250
    - net-p2p/qbittorrent is patched and patches upstreamed: https://github.com/qbittorrent/qBittorrent/issues/24942
---
 net-p2p/libtorrent-rasterbar2/Makefile             |   9 +-
 net-p2p/libtorrent-rasterbar2/distinfo             |  14 +-
 net-p2p/libtorrent-rasterbar2/pkg-plist            | 145 ++++++++++++---------
 net-p2p/py-libtorrent-rasterbar/Makefile           |   1 +
 net-p2p/qbittorrent/Makefile                       |   1 +
 .../patch-src_base_bittorrent_customstorage.cpp    |  43 ++++++
 .../patch-src_base_bittorrent_customstorage.h      |  15 +++
 net/arrowdl/Makefile                               |   1 +
 .../files/patch-src_torrent_torrentcontext.cpp     |  22 ++++
 net/arrowdl/files/patch-src_torrent_utils.cpp      |  59 +++++++++
 10 files changed, 243 insertions(+), 67 deletions(-)

diff --git a/net-p2p/libtorrent-rasterbar2/Makefile b/net-p2p/libtorrent-rasterbar2/Makefile
index 4727426837d5..389eb04be45d 100644
--- a/net-p2p/libtorrent-rasterbar2/Makefile
+++ b/net-p2p/libtorrent-rasterbar2/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	libtorrent-rasterbar
 DISTVERSIONPREFIX=	v
-DISTVERSION=	2.0.13
+DISTVERSION=	2.1.1
 CATEGORIES=	net-p2p
 #MASTER_SITES=	https://github.com/arvidn/libtorrent/releases/download/v${DISTVERSION}/
 PKGNAMESUFFIX=	2
@@ -28,7 +28,11 @@ GH_ACCOUNT=	arvidn
 GH_PROJECT=	libtorrent
 GH_TUPLE=	arvidn:try_signal:105cce5:try_signal/deps/try_signal \
 		arvidn:libsimulator:66ac6cc:libsimulator/simulation/libsimulator \
-		paullouisageneau:boost-asio-gnutls:a57d4d3:asio/deps/asio-gnutls
+		paullouisageneau:boost-asio-gnutls:a57d4d3:asio/deps/asio-gnutls \
+		paullouisageneau:libdatachannel:a02b751:libdatachannel/deps/libdatachannel \
+			SergiusTheBest:plog:94899e0:libdatachannel_plog/deps/libdatachannel/deps/plog \
+			paullouisageneau:usrsctp:fec583d:libdatachannel_usrsctp/deps/libdatachannel/deps/usrsctp \
+			paullouisageneau:libjuice:5948a41:libdatachannel_libjuice/deps/libdatachannel/deps/libjuice
 
 USE_CXXSTD=	c++17 # prevent boost-related SEGV, see bug#264278
 
@@ -42,6 +46,7 @@ CMAKE_TESTING_ON=	build_tests
 
 OPTIONS_DEFINE=		DOCS EXAMPLES LOGGING
 OPTIONS_DEFAULT=	LOGGING
+OPTIONS_EXCLUDE=	EXAMPLES # EXAMPLES are disabled due to build errors, see https://github.com/arvidn/libtorrent/issues/8887
 OPTIONS_SUB=		yes
 LOGGING_DESC=		Enable logging to disk
 
diff --git a/net-p2p/libtorrent-rasterbar2/distinfo b/net-p2p/libtorrent-rasterbar2/distinfo
index d894b48c3c73..9702151b78f2 100644
--- a/net-p2p/libtorrent-rasterbar2/distinfo
+++ b/net-p2p/libtorrent-rasterbar2/distinfo
@@ -1,9 +1,17 @@
-TIMESTAMP = 1780978648
-SHA256 (arvidn-libtorrent-v2.0.13_GH0.tar.gz) = 86207fbe502153568bb4b11d11bb881d6c1388962e852ee0caacf1c07adeb161
-SIZE (arvidn-libtorrent-v2.0.13_GH0.tar.gz) = 4350054
+TIMESTAMP = 1789950138
+SHA256 (arvidn-libtorrent-v2.1.1_GH0.tar.gz) = 83be7e3adea439c0934bbf2852241c32e9b8f264f59493b6e3512d5f119d6af7
+SIZE (arvidn-libtorrent-v2.1.1_GH0.tar.gz) = 4760955
 SHA256 (arvidn-try_signal-105cce5_GH0.tar.gz) = a33b30e5066f8d8f53ec4be8b639569cd685fc2c7e90c16736907fa1a21939e5
 SIZE (arvidn-try_signal-105cce5_GH0.tar.gz) = 8020
 SHA256 (arvidn-libsimulator-66ac6cc_GH0.tar.gz) = f4847c878f6f48926021169f612d68e8503f3f3de14e76c81ce95580fa3671d0
 SIZE (arvidn-libsimulator-66ac6cc_GH0.tar.gz) = 146484
 SHA256 (paullouisageneau-boost-asio-gnutls-a57d4d3_GH0.tar.gz) = f6ceb4638cad0a5dd474ceef62e4bb07aab460af609cc87242292331c6c2616d
 SIZE (paullouisageneau-boost-asio-gnutls-a57d4d3_GH0.tar.gz) = 14644
+SHA256 (paullouisageneau-libdatachannel-a02b751_GH0.tar.gz) = 226a42b4abdda43b5dfb136d4da2bb17109b81f730a7926754318cf3631fd451
+SIZE (paullouisageneau-libdatachannel-a02b751_GH0.tar.gz) = 52651715
+SHA256 (SergiusTheBest-plog-94899e0_GH0.tar.gz) = 6dc8e7b8c5fccf83aebeec780dbc9f81112b3b33f29b369469ee9728ea737fdf
+SIZE (SergiusTheBest-plog-94899e0_GH0.tar.gz) = 206453
+SHA256 (paullouisageneau-usrsctp-fec583d_GH0.tar.gz) = 2ef2533809f4f1609c813c9266735520a7240a2799ba2f0ea6b7f7b99a962b24
+SIZE (paullouisageneau-usrsctp-fec583d_GH0.tar.gz) = 773019
+SHA256 (paullouisageneau-libjuice-5948a41_GH0.tar.gz) = e5d5d2356da02c476ced5efad1e19ca0c9606acfe4a80280c328e30e102bfcd6
+SIZE (paullouisageneau-libjuice-5948a41_GH0.tar.gz) = 107282
diff --git a/net-p2p/libtorrent-rasterbar2/pkg-plist b/net-p2p/libtorrent-rasterbar2/pkg-plist
index 422634577a0e..6807a50a6334 100644
--- a/net-p2p/libtorrent-rasterbar2/pkg-plist
+++ b/net-p2p/libtorrent-rasterbar2/pkg-plist
@@ -5,22 +5,31 @@ include/libtorrent/alert_types.hpp
 include/libtorrent/announce_entry.hpp
 include/libtorrent/assert.hpp
 include/libtorrent/aux_/alert_manager.hpp
-include/libtorrent/aux_/aligned_union.hpp
 include/libtorrent/aux_/alloca.hpp
 include/libtorrent/aux_/allocating_handler.hpp
 include/libtorrent/aux_/announce_entry.hpp
 include/libtorrent/aux_/apply_pad_files.hpp
 include/libtorrent/aux_/array.hpp
+include/libtorrent/aux_/back_pressure.hpp
 include/libtorrent/aux_/bandwidth_limit.hpp
 include/libtorrent/aux_/bandwidth_manager.hpp
 include/libtorrent/aux_/bandwidth_queue_entry.hpp
 include/libtorrent/aux_/bandwidth_socket.hpp
+include/libtorrent/aux_/bencoder.hpp
 include/libtorrent/aux_/bind_to_device.hpp
+include/libtorrent/aux_/bloom_filter.hpp
+include/libtorrent/aux_/bt_peer_connection.hpp
 include/libtorrent/aux_/buffer.hpp
 include/libtorrent/aux_/byteswap.hpp
 include/libtorrent/aux_/chained_buffer.hpp
+include/libtorrent/aux_/choker.hpp
 include/libtorrent/aux_/container_wrapper.hpp
+include/libtorrent/aux_/copy_ptr.hpp
 include/libtorrent/aux_/cpuid.hpp
+include/libtorrent/aux_/crc32c.hpp
+include/libtorrent/aux_/deadline_timer.hpp
+include/libtorrent/aux_/debug.hpp
+include/libtorrent/aux_/debug_disk_thread.hpp
 include/libtorrent/aux_/deferred_handler.hpp
 include/libtorrent/aux_/deprecated.hpp
 include/libtorrent/aux_/deque.hpp
@@ -30,52 +39,91 @@ include/libtorrent/aux_/disable_deprecation_warnings_push.hpp
 include/libtorrent/aux_/disable_warnings_pop.hpp
 include/libtorrent/aux_/disable_warnings_push.hpp
 include/libtorrent/aux_/disk_buffer_pool.hpp
+include/libtorrent/aux_/disk_cache.hpp
+include/libtorrent/aux_/disk_completed_queue.hpp
 include/libtorrent/aux_/disk_io_thread_pool.hpp
+include/libtorrent/aux_/disk_job.hpp
 include/libtorrent/aux_/disk_job_fence.hpp
 include/libtorrent/aux_/disk_job_pool.hpp
 include/libtorrent/aux_/drive_info.hpp
 include/libtorrent/aux_/ed25519.hpp
+include/libtorrent/aux_/enum_net.hpp
 include/libtorrent/aux_/escape_string.hpp
 include/libtorrent/aux_/export.hpp
 include/libtorrent/aux_/ffs.hpp
+include/libtorrent/aux_/file.hpp
 include/libtorrent/aux_/file_descriptor.hpp
 include/libtorrent/aux_/file_pointer.hpp
+include/libtorrent/aux_/file_pool.hpp
+include/libtorrent/aux_/file_pool_impl.hpp
 include/libtorrent/aux_/file_progress.hpp
 include/libtorrent/aux_/file_view_pool.hpp
 include/libtorrent/aux_/generate_peer_id.hpp
 include/libtorrent/aux_/has_block.hpp
+include/libtorrent/aux_/hash_picker.hpp
 include/libtorrent/aux_/hasher512.hpp
 include/libtorrent/aux_/heterogeneous_queue.hpp
+include/libtorrent/aux_/http_connection.hpp
+include/libtorrent/aux_/http_parser.hpp
+include/libtorrent/aux_/http_stream.hpp
+include/libtorrent/aux_/http_tracker_connection.hpp
 include/libtorrent/aux_/instantiate_connection.hpp
 include/libtorrent/aux_/invariant_check.hpp
 include/libtorrent/aux_/io.hpp
+include/libtorrent/aux_/io_bytes.hpp
 include/libtorrent/aux_/ip_helpers.hpp
 include/libtorrent/aux_/ip_notifier.hpp
+include/libtorrent/aux_/ip_voter.hpp
 include/libtorrent/aux_/keepalive.hpp
+include/libtorrent/aux_/link.hpp
 include/libtorrent/aux_/listen_socket_handle.hpp
 include/libtorrent/aux_/lsd.hpp
 include/libtorrent/aux_/merkle.hpp
 include/libtorrent/aux_/merkle_tree.hpp
 include/libtorrent/aux_/mmap.hpp
 include/libtorrent/aux_/mmap_disk_job.hpp
+include/libtorrent/aux_/mmap_storage.hpp
+include/libtorrent/aux_/netlink.hpp
 include/libtorrent/aux_/netlink_utils.hpp
 include/libtorrent/aux_/noexcept_movable.hpp
 include/libtorrent/aux_/numeric_cast.hpp
 include/libtorrent/aux_/open_mode.hpp
 include/libtorrent/aux_/packet_buffer.hpp
 include/libtorrent/aux_/packet_pool.hpp
+include/libtorrent/aux_/parse_url.hpp
+include/libtorrent/aux_/part_file.hpp
 include/libtorrent/aux_/path.hpp
+include/libtorrent/aux_/pe_crypto.hpp
+include/libtorrent/aux_/peer.hpp
+include/libtorrent/aux_/peer_class_set.hpp
+include/libtorrent/aux_/peer_connection.hpp
+include/libtorrent/aux_/peer_list.hpp
+include/libtorrent/aux_/piece_block_progress.hpp
+include/libtorrent/aux_/piece_picker.hpp
+include/libtorrent/aux_/platform_util.hpp
 include/libtorrent/aux_/polymorphic_socket.hpp
 include/libtorrent/aux_/pool.hpp
 include/libtorrent/aux_/portmap.hpp
 include/libtorrent/aux_/posix_part_file.hpp
 include/libtorrent/aux_/posix_storage.hpp
+include/libtorrent/aux_/pread_disk_job.hpp
+include/libtorrent/aux_/pread_storage.hpp
+include/libtorrent/aux_/precomputed_block_hashes.hpp
+include/libtorrent/aux_/proxy_base.hpp
 include/libtorrent/aux_/proxy_settings.hpp
+include/libtorrent/aux_/puff.hpp
+include/libtorrent/aux_/random.hpp
 include/libtorrent/aux_/range.hpp
+include/libtorrent/aux_/readwrite.hpp
 include/libtorrent/aux_/receive_buffer.hpp
+include/libtorrent/aux_/request_blocks.hpp
+include/libtorrent/aux_/resolve_duplicate_filenames.hpp
+include/libtorrent/aux_/resolve_links.hpp
 include/libtorrent/aux_/resolver.hpp
 include/libtorrent/aux_/resolver_interface.hpp
 include/libtorrent/aux_/route.h
+include/libtorrent/aux_/rtc_signaling.hpp
+include/libtorrent/aux_/rtc_stream.hpp
 include/libtorrent/aux_/scope_end.hpp
 include/libtorrent/aux_/session_call.hpp
 include/libtorrent/aux_/session_impl.hpp
@@ -84,79 +132,91 @@ include/libtorrent/aux_/session_settings.hpp
 include/libtorrent/aux_/session_udp_sockets.hpp
 include/libtorrent/aux_/set_socket_buffer.hpp
 include/libtorrent/aux_/set_traffic_class.hpp
+include/libtorrent/aux_/sha1.hpp
+include/libtorrent/aux_/sha256.hpp
 include/libtorrent/aux_/sha512.hpp
+include/libtorrent/aux_/sliding_average.hpp
+include/libtorrent/aux_/socket_io.hpp
 include/libtorrent/aux_/socket_type.hpp
+include/libtorrent/aux_/ssl.hpp
+include/libtorrent/aux_/ssl_stream.hpp
+include/libtorrent/aux_/stack_allocator.hpp
+include/libtorrent/aux_/stat.hpp
+include/libtorrent/aux_/stat_cache.hpp
+include/libtorrent/aux_/storage_array.hpp
 include/libtorrent/aux_/storage_free_list.hpp
 include/libtorrent/aux_/storage_utils.hpp
 include/libtorrent/aux_/store_buffer.hpp
 include/libtorrent/aux_/string_ptr.hpp
+include/libtorrent/aux_/string_util.hpp
 include/libtorrent/aux_/strview_less.hpp
 include/libtorrent/aux_/suggest_piece.hpp
+include/libtorrent/aux_/tailqueue.hpp
 include/libtorrent/aux_/throw.hpp
 include/libtorrent/aux_/time.hpp
 include/libtorrent/aux_/timestamp_history.hpp
+include/libtorrent/aux_/torrent.hpp
 include/libtorrent/aux_/torrent_impl.hpp
 include/libtorrent/aux_/torrent_list.hpp
+include/libtorrent/aux_/torrent_peer.hpp
+include/libtorrent/aux_/torrent_peer_allocator.hpp
+include/libtorrent/aux_/tracker_list.hpp
+include/libtorrent/aux_/tracker_manager.hpp
+include/libtorrent/aux_/udp_socket.hpp
+include/libtorrent/aux_/udp_tracker_connection.hpp
+include/libtorrent/aux_/union_endpoint.hpp
 include/libtorrent/aux_/unique_ptr.hpp
+include/libtorrent/aux_/utf8.hpp
 include/libtorrent/aux_/utp_socket_manager.hpp
 include/libtorrent/aux_/utp_stream.hpp
 include/libtorrent/aux_/vector.hpp
+include/libtorrent/aux_/vector_utils.hpp
+include/libtorrent/aux_/visit_block_iovecs.hpp
+include/libtorrent/aux_/web_connection_base.hpp
+include/libtorrent/aux_/web_peer_connection.hpp
+include/libtorrent/aux_/websocket_stream.hpp
+include/libtorrent/aux_/websocket_tracker_connection.hpp
 include/libtorrent/aux_/win_cng.hpp
 include/libtorrent/aux_/win_crypto_provider.hpp
 include/libtorrent/aux_/win_file_handle.hpp
 include/libtorrent/aux_/win_util.hpp
 include/libtorrent/aux_/windows.hpp
+include/libtorrent/aux_/xml_parse.hpp
 include/libtorrent/bdecode.hpp
 include/libtorrent/bencode.hpp
 include/libtorrent/bitfield.hpp
-include/libtorrent/bloom_filter.hpp
-include/libtorrent/bt_peer_connection.hpp
-include/libtorrent/choker.hpp
 include/libtorrent/client_data.hpp
 include/libtorrent/close_reason.hpp
 include/libtorrent/config.hpp
-include/libtorrent/copy_ptr.hpp
-include/libtorrent/crc32c.hpp
 include/libtorrent/create_torrent.hpp
-include/libtorrent/deadline_timer.hpp
-include/libtorrent/debug.hpp
 include/libtorrent/disabled_disk_io.hpp
 include/libtorrent/disk_buffer_holder.hpp
 include/libtorrent/disk_interface.hpp
 include/libtorrent/disk_observer.hpp
 include/libtorrent/download_priority.hpp
 include/libtorrent/entry.hpp
-include/libtorrent/enum_net.hpp
 include/libtorrent/error.hpp
 include/libtorrent/error_code.hpp
 include/libtorrent/extensions.hpp
+include/libtorrent/extensions/i2p_pex.hpp
 include/libtorrent/extensions/smart_ban.hpp
 include/libtorrent/extensions/ut_metadata.hpp
 include/libtorrent/extensions/ut_pex.hpp
-include/libtorrent/file.hpp
 include/libtorrent/file_layout.hpp
 include/libtorrent/file_storage.hpp
 include/libtorrent/fingerprint.hpp
 include/libtorrent/flags.hpp
 include/libtorrent/fwd.hpp
 include/libtorrent/gzip.hpp
-include/libtorrent/hash_picker.hpp
 include/libtorrent/hasher.hpp
 include/libtorrent/hex.hpp
-include/libtorrent/http_connection.hpp
-include/libtorrent/http_parser.hpp
-include/libtorrent/http_seed_connection.hpp
-include/libtorrent/http_stream.hpp
-include/libtorrent/http_tracker_connection.hpp
 include/libtorrent/i2p_stream.hpp
 include/libtorrent/identify_client.hpp
 include/libtorrent/index_range.hpp
 include/libtorrent/info_hash.hpp
-include/libtorrent/io.hpp
 include/libtorrent/io_context.hpp
 include/libtorrent/io_service.hpp
 include/libtorrent/ip_filter.hpp
-include/libtorrent/ip_voter.hpp
 include/libtorrent/kademlia/announce_flags.hpp
 include/libtorrent/kademlia/dht_observer.hpp
 include/libtorrent/kademlia/dht_settings.hpp
@@ -184,44 +244,26 @@ include/libtorrent/kademlia/sample_infohashes.hpp
 include/libtorrent/kademlia/traversal_algorithm.hpp
 include/libtorrent/kademlia/types.hpp
 include/libtorrent/libtorrent.hpp
-include/libtorrent/link.hpp
 include/libtorrent/load_torrent.hpp
-include/libtorrent/lsd.hpp
 include/libtorrent/magnet_uri.hpp
 include/libtorrent/mmap_disk_io.hpp
-include/libtorrent/mmap_storage.hpp
 include/libtorrent/natpmp.hpp
-include/libtorrent/netlink.hpp
 include/libtorrent/operations.hpp
-include/libtorrent/optional.hpp
-include/libtorrent/parse_url.hpp
-include/libtorrent/part_file.hpp
-include/libtorrent/pe_crypto.hpp
-include/libtorrent/peer.hpp
 include/libtorrent/peer_class.hpp
-include/libtorrent/peer_class_set.hpp
 include/libtorrent/peer_class_type_filter.hpp
-include/libtorrent/peer_connection.hpp
 include/libtorrent/peer_connection_handle.hpp
 include/libtorrent/peer_connection_interface.hpp
 include/libtorrent/peer_id.hpp
 include/libtorrent/peer_info.hpp
-include/libtorrent/peer_list.hpp
 include/libtorrent/peer_request.hpp
 include/libtorrent/performance_counters.hpp
 include/libtorrent/pex_flags.hpp
 include/libtorrent/piece_block.hpp
-include/libtorrent/piece_block_progress.hpp
-include/libtorrent/piece_picker.hpp
-include/libtorrent/platform_util.hpp
 include/libtorrent/portmap.hpp
 include/libtorrent/posix_disk_io.hpp
-include/libtorrent/proxy_base.hpp
-include/libtorrent/puff.hpp
+include/libtorrent/pread_disk_io.hpp
 include/libtorrent/random.hpp
 include/libtorrent/read_resume_data.hpp
-include/libtorrent/request_blocks.hpp
-include/libtorrent/resolve_links.hpp
 include/libtorrent/session.hpp
 include/libtorrent/session_handle.hpp
 include/libtorrent/session_params.hpp
@@ -230,53 +272,32 @@ include/libtorrent/session_stats.hpp
 include/libtorrent/session_status.hpp
 include/libtorrent/session_types.hpp
 include/libtorrent/settings_pack.hpp
-include/libtorrent/sha1.hpp
 include/libtorrent/sha1_hash.hpp
-include/libtorrent/sha256.hpp
-include/libtorrent/sliding_average.hpp
 include/libtorrent/socket.hpp
-include/libtorrent/socket_io.hpp
 include/libtorrent/socket_type.hpp
 include/libtorrent/socks5_stream.hpp
 include/libtorrent/span.hpp
-include/libtorrent/ssl.hpp
-include/libtorrent/ssl_stream.hpp
-include/libtorrent/stack_allocator.hpp
-include/libtorrent/stat.hpp
-include/libtorrent/stat_cache.hpp
 include/libtorrent/storage.hpp
 include/libtorrent/storage_defs.hpp
-include/libtorrent/string_util.hpp
 include/libtorrent/string_view.hpp
-include/libtorrent/tailqueue.hpp
 include/libtorrent/time.hpp
-include/libtorrent/torrent.hpp
 include/libtorrent/torrent_flags.hpp
 include/libtorrent/torrent_handle.hpp
 include/libtorrent/torrent_info.hpp
-include/libtorrent/torrent_peer.hpp
-include/libtorrent/torrent_peer_allocator.hpp
 include/libtorrent/torrent_status.hpp
-include/libtorrent/tracker_manager.hpp
+include/libtorrent/tracker_event.hpp
 include/libtorrent/truncate.hpp
-include/libtorrent/udp_socket.hpp
-include/libtorrent/udp_tracker_connection.hpp
-include/libtorrent/union_endpoint.hpp
 include/libtorrent/units.hpp
 include/libtorrent/upnp.hpp
-include/libtorrent/utf8.hpp
-include/libtorrent/vector_utils.hpp
 include/libtorrent/version.hpp
-include/libtorrent/web_connection_base.hpp
-include/libtorrent/web_peer_connection.hpp
+include/libtorrent/web_seed_entry.hpp
 include/libtorrent/write_resume_data.hpp
-include/libtorrent/xml_parse.hpp
 lib/cmake/LibtorrentRasterbar/LibtorrentRasterbarConfig.cmake
 lib/cmake/LibtorrentRasterbar/LibtorrentRasterbarConfigVersion.cmake
 lib/cmake/LibtorrentRasterbar/LibtorrentRasterbarTargets-%%CMAKE_BUILD_TYPE%%.cmake
 lib/cmake/LibtorrentRasterbar/LibtorrentRasterbarTargets.cmake
 lib/libtorrent-rasterbar.so
-lib/libtorrent-rasterbar.so.2.0
-lib/libtorrent-rasterbar.so.2.0.13
+lib/libtorrent-rasterbar.so.2.1
+lib/libtorrent-rasterbar.so.2.1.1
 libdata/pkgconfig/libtorrent-rasterbar.pc
 share/cmake/Modules/FindLibtorrentRasterbar.cmake
diff --git a/net-p2p/py-libtorrent-rasterbar/Makefile b/net-p2p/py-libtorrent-rasterbar/Makefile
index fc5e041f8a8b..52eadbdb0f10 100644
--- a/net-p2p/py-libtorrent-rasterbar/Makefile
+++ b/net-p2p/py-libtorrent-rasterbar/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	libtorrent-rasterbar
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.0.13
+PORTREVISION=	1
 PORTEPOCH=	2
 CATEGORIES=	net-p2p python
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
diff --git a/net-p2p/qbittorrent/Makefile b/net-p2p/qbittorrent/Makefile
index 2f54315fa2df..59fd5bad2640 100644
--- a/net-p2p/qbittorrent/Makefile
+++ b/net-p2p/qbittorrent/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	qbittorrent
 DISTVERSION=	5.2.3
+PORTREVISION=	1
 CATEGORIES=	net-p2p
 MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}
 
diff --git a/net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.cpp b/net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.cpp
new file mode 100644
index 000000000000..de820d3d5242
--- /dev/null
+++ b/net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.cpp
@@ -0,0 +1,43 @@
+-- Fix build with libtorrent-rasterbar 2.1.
+-- storage_params.path is now a string_view, renamed_files replaced
+-- mapped_files, and file_storage::rename_file() is deprecated. Use the
+-- public filenames view and renamed_files::rename_file() instead.
+
+--- src/base/bittorrent/customstorage.cpp.orig	2024-01-07 17:14:52 UTC
++++ src/base/bittorrent/customstorage.cpp
+@@ -65,11 +65,12 @@
+ {
+     lt::storage_holder storageHolder = m_nativeDiskIO->new_torrent(storageParams, torrent);
+
+-    const Path savePath {storageParams.path};
++    const Path savePath {std::string(storageParams.path)};
+     m_storageData[storageHolder] =
+     {
+         savePath,
+-        storageParams.mapped_files ? *storageParams.mapped_files : storageParams.files,
++        storageParams.files,
++        storageParams.renamed_files,
+         storageParams.priorities
+     };
+
+@@ -156,7 +157,10 @@
+             , [=, this, handler = std::move(handler)](const std::string &name, lt::file_index_t index, const lt::storage_error &error)
+     {
+         if (!error)
+-            m_storageData[storage].files.rename_file(index, name);
++        {
++            StorageData &storageData = m_storageData[storage];
++            storageData.renamedFiles.rename_file(storageData.files, index, name);
++        }
+         handler(name, index, error);
+     });
+ }
+@@ -212,7 +216,7 @@
+ void CustomDiskIOThread::handleCompleteFiles(lt::storage_index_t storage, const Path &savePath)
+ {
+     const StorageData storageData = m_storageData[storage];
+-    const lt::file_storage &fileStorage = storageData.files;
++    const lt::filenames fileStorage(storageData.files, storageData.renamedFiles);
+     for (const lt::file_index_t fileIndex : fileStorage.file_range())
+     {
+         // ignore files that have priority 0
diff --git a/net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.h b/net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.h
new file mode 100644
index 000000000000..056c5a854044
--- /dev/null
+++ b/net-p2p/qbittorrent/files/patch-src_base_bittorrent_customstorage.h
@@ -0,0 +1,15 @@
+-- Fix build with libtorrent-rasterbar 2.1.
+-- In libtorrent 2.1, storage_params no longer has mapped_files; renamed
+-- file overlays are kept in a separate renamed_files object. Store it so
+-- we can reconstruct the filenames view later.
+--- src/base/bittorrent/customstorage.h.orig	2024-01-07 17:14:52 UTC
++++ src/base/bittorrent/customstorage.h
+@@ -97,6 +97,7 @@ private:
+     struct StorageData
+     {
+         Path savePath;
+         lt::file_storage files;
++        lt::renamed_files renamedFiles;
+         lt::aux::vector<lt::download_priority_t, lt::file_index_t> filePriorities;
+     };
+     QHash<lt::storage_index_t, StorageData> m_storageData;
diff --git a/net/arrowdl/Makefile b/net/arrowdl/Makefile
index 261c12d2355c..2a59361d5535 100644
--- a/net/arrowdl/Makefile
+++ b/net/arrowdl/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	${GH_PROJECT:tl}
 PORTVERSION=	4.2.1
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	net
 
 MAINTAINER=	danfe@FreeBSD.org
diff --git a/net/arrowdl/files/patch-src_torrent_torrentcontext.cpp b/net/arrowdl/files/patch-src_torrent_torrentcontext.cpp
new file mode 100644
index 000000000000..676bc213deb3
--- /dev/null
+++ b/net/arrowdl/files/patch-src_torrent_torrentcontext.cpp
@@ -0,0 +1,22 @@
+-- fix build with libtorrent-rasterbar2-2.1.1
+
+--- src/torrent/torrentcontext.cpp.orig	2026-09-21 02:42:24 UTC
++++ src/torrent/torrentcontext.cpp
+@@ -913,14 +913,14 @@ bool TorrentContext::_addTorrent(Torrent *torrent) // 
+         // QByteArray bytes = source.toUtf8();
+ 
+         auto ptr = bytes.constData();
+-        auto size = static_cast<boost::string_view::size_type>(bytes.size());
++	auto size = static_cast<std::string_view::size_type>(bytes.size());
+ 
+         lt::string_view uri { ptr, size };
+         lt::error_code ec;
+-        p = lt::parse_magnet_uri(uri.to_string(), ec);
++	p = lt::parse_magnet_uri(std::string(uri), ec);
+         if (ec) {
+             qDebug_1 << "invalid magnet link:";
+-            qDebug_1 << QString::fromStdString(uri.to_string());
++	     qDebug_1 << QString::fromUtf8(uri.data(), uri.size());
+             qDebug_1 << QString::fromStdString(ec.message());
+             return false;
+         }
diff --git a/net/arrowdl/files/patch-src_torrent_utils.cpp b/net/arrowdl/files/patch-src_torrent_utils.cpp
new file mode 100644
index 000000000000..8eb9a71aec4a
--- /dev/null
+++ b/net/arrowdl/files/patch-src_torrent_utils.cpp
@@ -0,0 +1,59 @@
+-- fix build with libtorrent-rasterbar2-2.1.1
+
+-- lt::string_view::to_string() was removed; use Qt's fromUtf8() on the raw
+-- data instead. lt::aux::to_hex()/from_hex() are not exported from the shared
+-- library with ABI version 2, so replace them with QByteArray hex conversion.
+
+--- src/torrent/utils.cpp.orig	2025-03-23 11:56:15 UTC
++++ src/torrent/utils.cpp
+@@ -17,7 +17,6 @@
+ #include "utils.h"
+
+ #include "libtorrent/add_torrent_params.hpp"
+-#include "libtorrent/hex.hpp"               // to_hex, from_hex
+ #include "libtorrent/magnet_uri.hpp"
+ #include "libtorrent/torrent_info.hpp"
+
+@@ -25,21 +24,19 @@
+ UniqueId TorrentUtils::toUniqueId(const lt::sha1_hash &hash)
+ {
+     if (!hash.is_all_zeros()) {
+-        auto hex = lt::aux::to_hex(hash);
+-        return QString::fromStdString(hex).toUpper();
++        return QString::fromLatin1(QByteArray(hash.data(), hash.size()).toHex()).toUpper();
+     }
+     return {};
+ }
+
+ lt::sha1_hash TorrentUtils::fromUniqueId(const UniqueId &uuid)
+ {
+-    lt::span<char const> in(uuid.toStdString());
+-    lt::sha1_hash out;
+-    if (!lt::aux::from_hex(in, out.data())) {
++    const QByteArray bin = QByteArray::fromHex(uuid.toLatin1());
++    if (bin.size() != lt::sha1_hash::size()) {
+         qWarning() << "invalid info-hash";
+         return lt::sha1_hash();
+     }
+-    return out;
++    return lt::sha1_hash(lt::span<char const>(bin.constData(), bin.size()));
+ }
+
+ /******************************************************************************
+@@ -376,14 +373,13 @@
+
+ QString TorrentUtils::toString(const lt::string_view &s)
+ {
+-    return QString::fromStdString(s.to_string()).toUpper();
++    return QString::fromUtf8(s.data(), s.size()).toUpper();
+ }
+
+ QString TorrentUtils::toString(const lt::sha1_hash &hash)
+ {
+     if (!hash.is_all_zeros()) {
+-        auto hex = lt::aux::to_hex(hash);
+-        return QString::fromStdString(hex).toUpper();
++        return QString::fromLatin1(QByteArray(hash.data(), hash.size()).toHex()).toUpper();
+     }
+     return {};
+ }