>>> btfs: Building testing/btfs 3.1-r0 (using abuild 3.18.0_rc3-r1) started Sat, 25 Jul 2026 19:34:44 +0000 >>> btfs: Validating /home/buildozer/aports/testing/btfs/APKBUILD... >>> btfs: Analyzing dependencies... >>> btfs: Installing for build: build-base python3 autoconf automake curl-dev fuse3-dev libtorrent-rasterbar-dev boost-dev ( 1/80) Installing libbz2 (1.0.8-r6) ( 2/80) Installing libffi (3.5.2-r1) ( 3/80) Installing xz-libs (5.8.3-r0) ( 4/80) Installing mpdecimal (4.0.1-r0) ( 5/80) Installing libpanelw (6.6_p20260516-r0) ( 6/80) Installing readline (8.3.3-r1) ( 7/80) Installing sqlite-libs (3.53.3-r0) ( 8/80) Installing python3 (3.14.5-r2) ( 9/80) Installing python3-pycache-pyc0 (3.14.5-r2) (10/80) Installing pyc (3.14.5-r2) (11/80) Installing python3-pyc (3.14.5-r2) (12/80) Installing m4 (1.4.21-r0) (13/80) Installing perl (5.42.2-r0) (14/80) Installing autoconf (2.73-r0) (15/80) Installing automake (1.18.1-r1) (16/80) Installing brotli (1.2.0-r1) (17/80) Installing brotli-dev (1.2.0-r1) (18/80) Installing c-ares-dev (1.34.8-r0) (19/80) Installing libidn2-dev (2.3.8-r0) (20/80) Installing libpsl-utils (0.21.5-r3) (21/80) Installing libpsl-dev (0.21.5-r3) (22/80) Installing nghttp2-dev (1.69.0-r0) (23/80) Installing openssl-dev (3.5.7-r0) (24/80) Installing zlib-dev (1.3.2-r0) (25/80) Installing zstd (1.5.7-r2) (26/80) Installing zstd-dev (1.5.7-r2) (27/80) Installing curl-dev (8.21.0-r0) (28/80) Installing fuse3-libs (3.18.2-r0) (29/80) Installing fuse3-dev (3.18.2-r0) (30/80) Installing boost1.84-atomic (1.84.0-r6) (31/80) Installing boost1.84-chrono (1.84.0-r6) (32/80) Installing boost1.84-container (1.84.0-r6) (33/80) Installing boost1.84-context (1.84.0-r6) (34/80) Installing boost1.84-contract (1.84.0-r6) (35/80) Installing boost1.84-coroutine (1.84.0-r6) (36/80) Installing boost1.84-date_time (1.84.0-r6) (37/80) Installing boost1.84-fiber (1.84.0-r6) (38/80) Installing boost1.84-filesystem (1.84.0-r6) (39/80) Installing boost1.84-graph (1.84.0-r6) (40/80) Installing boost1.84-iostreams (1.84.0-r6) (41/80) Installing boost1.84-thread (1.84.0-r6) (42/80) Installing icu-data-en (78.1-r0) Executing icu-data-en-78.1-r0.post-install * If you need ICU with non-English locales and legacy charset support, install * package icu-data-full. (43/80) Installing icu-libs (78.1-r0) (44/80) Installing boost1.84-locale (1.84.0-r6) (45/80) Installing boost1.84-log (1.84.0-r6) (46/80) Installing boost1.84-log_setup (1.84.0-r6) (47/80) Installing boost1.84-math (1.84.0-r6) (48/80) Installing boost1.84-prg_exec_monitor (1.84.0-r6) (49/80) Installing boost1.84-program_options (1.84.0-r6) (50/80) Installing boost1.84-python3 (1.84.0-r6) (51/80) Installing boost1.84-random (1.84.0-r6) (52/80) Installing boost1.84-regex (1.84.0-r6) (53/80) Installing boost1.84-serialization (1.84.0-r6) (54/80) Installing boost1.84-stacktrace_basic (1.84.0-r6) (55/80) Installing boost1.84-stacktrace_noop (1.84.0-r6) (56/80) Installing boost1.84-system (1.84.0-r6) (57/80) Installing boost1.84-timer (1.84.0-r6) (58/80) Installing boost1.84-type_erasure (1.84.0-r6) (59/80) Installing boost1.84-unit_test_framework (1.84.0-r6) (60/80) Installing boost1.84-url (1.84.0-r6) (61/80) Installing boost1.84-wave (1.84.0-r6) (62/80) Installing boost1.84-wserialization (1.84.0-r6) (63/80) Installing boost1.84-json (1.84.0-r6) (64/80) Installing boost1.84-nowide (1.84.0-r6) (65/80) Installing boost1.84-libs (1.84.0-r6) (66/80) Installing boost1.84 (1.84.0-r6) (67/80) Installing linux-headers (7.1.4-r0) (68/80) Installing bzip2-dev (1.0.8-r6) (69/80) Installing icu (78.1-r0) (70/80) Installing icu-dev (78.1-r0) (71/80) Installing xz (5.8.3-r0) (72/80) Installing xz-dev (5.8.3-r0) (73/80) Installing boost1.84-dev (1.84.0-r6) (74/80) Installing boost-dev (1.84.0-r6) (75/80) Installing libtorrent-rasterbar (2.1.0-r0) (76/80) Installing libtorrent-rasterbar-dev (2.1.0-r0) (77/80) Installing .makedepends-btfs (20260725.193446) (78/80) Installing perl-error (0.17030-r0) (79/80) Installing perl-git (2.55.0-r0) (80/80) Installing git-perl (2.55.0-r0) Executing busybox-1.38.0-r4.trigger OK: 655.1 MiB in 186 packages >>> btfs: Cleaning up srcdir >>> btfs: Cleaning up pkgdir >>> btfs: Cleaning up tmpdir >>> btfs: Fetching https://distfiles.alpinelinux.org/distfiles/edge/btfs-3.1.tar.gz Connecting to distfiles.alpinelinux.org (172.105.82.32:443) saving to '/var/cache/distfiles/edge/btfs-3.1.tar.gz.part' btfs-3.1.tar.gz.part 100% |********************************| 24847 0:00:00 ETA '/var/cache/distfiles/edge/btfs-3.1.tar.gz.part' saved /var/cache/distfiles/edge/btfs-3.1.tar.gz: OK >>> btfs: Fetching https://distfiles.alpinelinux.org/distfiles/edge/btfs-3.1.tar.gz /var/cache/distfiles/edge/btfs-3.1.tar.gz: OK >>> btfs: Unpacking /var/cache/distfiles/edge/btfs-3.1.tar.gz... autoreconf: export WARNINGS= autoreconf: Entering directory '.' autoreconf: configure.ac: no obvious need to run autopoint autoreconf: running: aclocal --force autoreconf: configure.ac: tracing autoreconf: configure.ac: not using Libtool autoreconf: configure.ac: not using Intltool autoreconf: configure.ac: not using Gtkdoc autoreconf: configure.ac: no need to run autopoint (confirmed) autoreconf: running: /usr/bin/autoconf --force autoreconf: configure.ac: not running autoheader: no config headers autoreconf: running: automake --add-missing --copy --force-missing configure.ac:16: installing './compile' configure.ac:5: installing './install-sh' configure.ac:5: installing './missing' src/Makefile.am: installing './depcomp' autoreconf: configure.ac: not running make: --make not given autoreconf: Leaving directory '.' checking for a BSD-compatible install... /usr/bin/install -c checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 2 checking whether build environment is sane... yes checking for a race-free mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking xargs -n works... yes checking whether UID '100' is supported by ustar format... yes checking whether GID '101' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C++... yes checking whether c++ accepts -g... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of c++... gcc3 checking for riscv64-alpine-linux-musl-pkg-config... no checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for fuse3 >= 3.0... yes checking for libtorrent-rasterbar >= 1.0.0... yes checking for libcurl >= 7.22.0... yes checking for riscv64-alpine-linux-musl-gcc... cc checking whether the compiler supports GNU C... yes checking whether cc accepts -g... yes checking for cc option to enable C23 features... unsupported checking for cc option to enable C11 features... none needed checking whether cc understands -c and -o together... yes checking dependency style of cc... gcc3 checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for off_t... yes checking for size_t... yes checking for memset... yes checking for memcpy... yes checking for strcmp... yes checking for mkdir... yes checking for strdup... yes checking for realpath... yes checking for getxattr... yes checking for dirname... yes checking for basename... yes checking for pthread_setname_np in -lpthread... yes checking for library containing __atomic_load... none required checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating scripts/Makefile config.status: creating man/Makefile config.status: executing depfiles commands Making all in src make[1]: Entering directory '/home/buildozer/aports/testing/btfs/src/btfs-3.1/src' c++ -DPACKAGE_NAME=\"btfs\" -DPACKAGE_TARNAME=\"btfs\" -DPACKAGE_VERSION=\"3.1\" -DPACKAGE_STRING=\"btfs\ 3.1\" -DPACKAGE_BUGREPORT=\"johan.gunnarsson@gmail.com\" -DPACKAGE_URL=\"https://github.com/johang/btfs\" -DPACKAGE=\"btfs\" -DVERSION=\"3.1\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_MEMSET=1 -DHAVE_MEMCPY=1 -DHAVE_STRCMP=1 -DHAVE_MKDIR=1 -DHAVE_STRDUP=1 -DHAVE_REALPATH=1 -DHAVE_GETXATTR=1 -DHAVE_DIRNAME=1 -DHAVE_BASENAME=1 -DHAVE_LIBPTHREAD=1 -I. -std=c++14 -Wall -Wextra -Wconversion -Wsign-compare -Wsign-conversion -Wno-unused-parameter -I/usr/include/fuse3 -fexceptions -DTORRENT_LINKING_SHARED -DBOOST_ASIO_ENABLE_CANCELIO -DBOOST_ASIO_NO_DEPRECATED -DBOOST_SYSTEM_USE_UTF8 -D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING -DTORRENT_ABI_VERSION=2 -DTORRENT_USE_RTC=0 -DTORRENT_USE_OPENSSL -DTORRENT_USE_LIBCRYPTO -DTORRENT_SSL_PEERS -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 -DOPENSSL_NO_TLS1 -DOPENSSL_NO_TLS1_1 -DOPENSSL_NO_DTLS1 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -MT btfs-btfs.o -MD -MP -MF .deps/btfs-btfs.Tpo -c -o btfs-btfs.o `test -f 'btfs.cc' || echo './'`btfs.cc c++ -DPACKAGE_NAME=\"btfs\" -DPACKAGE_TARNAME=\"btfs\" -DPACKAGE_VERSION=\"3.1\" -DPACKAGE_STRING=\"btfs\ 3.1\" -DPACKAGE_BUGREPORT=\"johan.gunnarsson@gmail.com\" -DPACKAGE_URL=\"https://github.com/johang/btfs\" -DPACKAGE=\"btfs\" -DVERSION=\"3.1\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_MEMSET=1 -DHAVE_MEMCPY=1 -DHAVE_STRCMP=1 -DHAVE_MKDIR=1 -DHAVE_STRDUP=1 -DHAVE_REALPATH=1 -DHAVE_GETXATTR=1 -DHAVE_DIRNAME=1 -DHAVE_BASENAME=1 -DHAVE_LIBPTHREAD=1 -I. -std=c++14 -Wall -Wextra -Wconversion -Wsign-compare -Wsign-conversion -Wno-unused-parameter -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -MT btfsstat-btfsstat.o -MD -MP -MF .deps/btfsstat-btfsstat.Tpo -c -o btfsstat-btfsstat.o `test -f 'btfsstat.cc' || echo './'`btfsstat.cc mv -f .deps/btfsstat-btfsstat.Tpo .deps/btfsstat-btfsstat.Po c++ -std=c++14 -Wall -Wextra -Wconversion -Wsign-compare -Wsign-conversion -Wno-unused-parameter -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -Wl,--as-needed,-O1,--sort-common -o btfsstat btfsstat-btfsstat.o -lpthread In file included from /usr/include/libtorrent/bdecode.hpp:27, from /usr/include/libtorrent/torrent_info.hpp:32, from btfs.cc:39: /usr/include/libtorrent/string_view.hpp:17:12: error: 'string_view' has not been declared in 'std' 17 | using std::string_view; | ^~~~~~~~~~~ /usr/include/libtorrent/string_view.hpp:18:12: error: 'wstring_view' has not been declared in 'std' 18 | using std::wstring_view; | ^~~~~~~~~~~~ /usr/include/libtorrent/string_view.hpp:22:19: error: 'string_view' does not name a type 22 | constexpr string_view operator ""_sv(char const* str, std::size_t len) | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:322:9: error: 'string_view' does not name a type 322 | string_view list_string_value_at(int i | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:343:32: error: 'string_view' has not been declared 343 | bdecode_node dict_find(string_view key) const; | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:344:19: error: 'string_view' was not declared in this scope; did you mean 'string_t'? 344 | std::pair dict_at(int i) const; | ^~~~~~~~~~~ | string_t /usr/include/libtorrent/bdecode.hpp:344:44: error: template argument 1 is invalid 344 | std::pair dict_at(int i) const; | ^ /usr/include/libtorrent/bdecode.hpp:346:37: error: 'string_view' has not been declared 346 | bdecode_node dict_find_dict(string_view key) const; | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:347:37: error: 'string_view' has not been declared 347 | bdecode_node dict_find_list(string_view key) const; | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:348:39: error: 'string_view' has not been declared 348 | bdecode_node dict_find_string(string_view key) const; | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:349:36: error: 'string_view' has not been declared 349 | bdecode_node dict_find_int(string_view key) const; | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:350:9: error: 'string_view' does not name a type 350 | string_view dict_find_string_value(string_view key | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:352:42: error: 'string_view' has not been declared 352 | std::int64_t dict_find_int_value(string_view key | ^~~~~~~~~~~ /usr/include/libtorrent/bdecode.hpp:365:9: error: 'string_view' does not name a type 365 | string_view string_value() const; | ^~~~~~~~~~~ In file included from /usr/include/libtorrent/disk_interface.hpp:25, from /usr/include/libtorrent/file_storage.hpp:34, from /usr/include/libtorrent/torrent_info.hpp:38: /usr/include/libtorrent/storage_defs.hpp:91:27: error: 'string_view' has not been declared 91 | , string_view sp, string_view pfd, storage_mode_t const sm | ^~~~~~~~~~~ /usr/include/libtorrent/storage_defs.hpp:91:43: error: 'string_view' has not been declared 91 | , string_view sp, string_view pfd, storage_mode_t const sm | ^~~~~~~~~~~ /usr/include/libtorrent/storage_defs.hpp:113:17: error: 'string_view' does not name a type 113 | string_view path; | ^~~~~~~~~~~ /usr/include/libtorrent/storage_defs.hpp:117:17: error: 'string_view' does not name a type 117 | string_view part_file_dir; | ^~~~~~~~~~~ /usr/include/libtorrent/storage_defs.hpp: In constructor 'libtorrent::storage_params::storage_params(const libtorrent::file_storage&, const libtorrent::renamed_files&, int, int, libtorrent::storage_mode_t, libtorrent::aux::vector, libtorrent::aux::strong_typedef >&, const libtorrent::sha1_hash&, bool, bool)': /usr/include/libtorrent/storage_defs.hpp:96:27: error: class 'libtorrent::storage_params' does not have any field named 'path' 96 | , path(sp) | ^~~~ /usr/include/libtorrent/storage_defs.hpp:97:27: error: class 'libtorrent::storage_params' does not have any field named 'part_file_dir' 97 | , part_file_dir(pfd) | ^~~~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp: At global scope: /usr/include/libtorrent/file_storage.hpp:114:31: error: 'string_view' has not been declared 114 | void set_name(string_view n, bool borrow_string = false); | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:115:17: error: 'string_view' does not name a type 115 | string_view filename() const; | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:309:38: error: 'string_view' has not been declared 309 | void add_file_borrow(string_view filename | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:312:51: error: 'string_view' has not been declared 312 | , std::int64_t mtime = 0, string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:315:38: error: 'string_view' has not been declared 315 | void add_file_borrow(string_view filename | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:318:27: error: 'string_view' has not been declared 318 | , string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:322:50: error: 'string_view' has not been declared 322 | , std::time_t mtime = 0, string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:327:54: error: 'string_view' has not been declared 327 | void add_file_borrow(error_code& ec, string_view filename | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:330:51: error: 'string_view' has not been declared 330 | , std::int64_t mtime = 0, string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:339:54: error: 'string_view' has not been declared 339 | void add_file_borrow(error_code& ec, string_view filename | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:342:27: error: 'string_view' has not been declared 342 | , string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:346:50: error: 'string_view' has not been declared 346 | , std::time_t mtime = 0, string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:543:17: error: 'string_view' does not name a type 543 | string_view file_name(file_index_t index) const; | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:680:59: error: 'string_view' has not been declared 680 | void add_file_borrow_impl(error_code& ec, string_view filename | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:686:53: error: 'string_view' has not been declared 686 | , std::int64_t const mtime, string_view const symlink_path | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:692:51: error: 'string_view' has not been declared 692 | aux::path_index_t get_or_add_path(string_view path); | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:312:78: error: 'string_view' was not declared in this scope 312 | , std::int64_t mtime = 0, string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:318:54: error: 'string_view' was not declared in this scope 318 | , string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:322:77: error: 'string_view' was not declared in this scope 322 | , std::time_t mtime = 0, string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:330:78: error: 'string_view' was not declared in this scope 330 | , std::int64_t mtime = 0, string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:342:54: error: 'string_view' was not declared in this scope 342 | , string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:346:77: error: 'string_view' was not declared in this scope 346 | , std::time_t mtime = 0, string_view symlink_path = string_view() | ^~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:785:17: error: 'string_view' does not name a type 785 | string_view file_name(file_storage const& fs, file_index_t index) const; | ^~~~~~~~~~~ In file included from /usr/include/libtorrent/torrent_info.hpp:40: /usr/include/libtorrent/announce_entry.hpp:185:52: error: expected ')' before 'u' 185 | explicit announce_entry(string_view u); | ~ ^~ | ) In file included from /usr/include/libtorrent/bitfield.hpp:18, from /usr/include/libtorrent/aux_/merkle_tree.hpp:23, from /usr/include/libtorrent/torrent_info.hpp:42: /usr/include/libtorrent/aux_/unique_ptr.hpp: In function 'libtorrent::aux::unique_ptr libtorrent::aux::make_unique(IndexType)': /usr/include/libtorrent/aux_/unique_ptr.hpp:61:36: error: 'is_array_v' is not a member of 'std'; did you mean 'is_array'? [-Wtemplate-body] 61 | static_assert(std::is_array_v); | ^~~~~~~~~~ | is_array /usr/include/libtorrent/aux_/unique_ptr.hpp:61:48: error: expected primary-expression before '>' token [-Wtemplate-body] 61 | static_assert(std::is_array_v); | ^ /usr/include/libtorrent/aux_/unique_ptr.hpp:61:49: error: expected primary-expression before ')' token [-Wtemplate-body] 61 | static_assert(std::is_array_v); | ^ /usr/include/libtorrent/aux_/merkle_tree.hpp: At global scope: /usr/include/libtorrent/aux_/merkle_tree.hpp:107:14: error: 'optional' in namespace 'std' does not name a template type 107 | std::optional add_hashes( | ^~~~~~~~ /usr/include/libtorrent/aux_/merkle_tree.hpp:107:9: note: 'std::optional' is only available from C++17 onwards 107 | std::optional add_hashes( | ^~~ /usr/include/libtorrent/torrent_info.hpp:53:19: error: 'string_view' has not been declared 53 | , string_view element, bool force_element = false); | ^~~~~~~~~~~ /usr/include/libtorrent/torrent_info.hpp:500:17: error: 'string_view' does not name a type 500 | string_view ssl_cert() const; | ^~~~~~~~~~~ /usr/include/libtorrent/torrent_info.hpp:705:43: error: 'string_view' has not been declared 705 | void internal_set_creator(string_view); | ^~~~~~~~~~~ /usr/include/libtorrent/torrent_info.hpp:706:43: error: 'string_view' has not been declared 706 | void internal_set_comment(string_view); | ^~~~~~~~~~~ In file included from /usr/include/libtorrent/settings_pack.hpp:20, from /usr/include/libtorrent/session.hpp:19, from btfs.cc:40: /usr/include/libtorrent/entry.hpp:84:43: error: 'variant' in namespace 'std' does not name a template type 84 | using variant_type = std::variant::value | ^~~~~~~~~~~~ | string_type /usr/include/libtorrent/entry.hpp:91:78: error: template argument 1 is invalid 91 | static_assert(std::is_nothrow_move_constructible::value | ^ /usr/include/libtorrent/entry.hpp:99:9: error: expected class-name before '{' token 99 | { | ^ /usr/include/libtorrent/entry.hpp:110:51: error: 'variant_type' in namespace 'libtorrent::entry_types' does not name a type; did you mean 'string_type'? 110 | using variant_type = entry_types::variant_type; | ^~~~~~~~~~~~ | string_type /usr/include/libtorrent/entry.hpp:131:23: error: field 'string_view' has incomplete type 'libtorrent::entry' 131 | entry(string_view); // NOLINT | ^~~~~~~~~~~ /usr/include/libtorrent/entry.hpp:98:31: note: definition of 'struct libtorrent::entry' is not complete until the closing brace 98 | struct TORRENT_EXPORT entry : entry_types::variant_type | ^~~~~ /usr/include/libtorrent/entry.hpp:166:34: error: 'string_view' is not a type 166 | entry& operator=(string_view) &; | ^~~~~~~~~~~ /usr/include/libtorrent/entry.hpp:239:23: error: 'variant_type' has not been declared; did you mean 'string_type'? 239 | using variant_type::swap; | ^~~~~~~~~~~~ | string_type /usr/include/libtorrent/entry.hpp:252:35: error: 'string_view' is not a type 252 | entry& operator[](string_view key); | ^~~~~~~~~~~ /usr/include/libtorrent/entry.hpp:253:41: error: 'string_view' is not a type 253 | entry const& operator[](string_view key) const; | ^~~~~~~~~~~ /usr/include/libtorrent/entry.hpp:261:33: error: 'string_view' is not a type 261 | entry* find_key(string_view key); | ^~~~~~~~~~~ /usr/include/libtorrent/entry.hpp:262:39: error: 'string_view' is not a type 262 | entry const* find_key(string_view key) const; | ^~~~~~~~~~~ /usr/include/libtorrent/entry.hpp:291:24: error: 'string_view' does not name a type 291 | TORRENT_EXPORT string_view integer_to_str(std::array& buf | ^~~~~~~~~~~ /usr/include/libtorrent/settings_pack.hpp:67:44: error: 'string_view' was not declared in this scope 67 | TORRENT_EXPORT int setting_by_name(string_view name); | ^~~~~~~~~~~ /usr/include/libtorrent/settings_pack.hpp:67:44: note: suggested alternatives: In file included from /usr/include/boost/asio/detail/string_view.hpp:25, from /usr/include/boost/asio/buffer.hpp:27, from /usr/include/boost/asio/detail/reactive_socket_service.hpp:23, from /usr/include/boost/asio/basic_socket.hpp:39, from /usr/include/boost/asio/basic_socket_acceptor.hpp:21, from /usr/include/boost/asio/ip/tcp.hpp:19, from /usr/include/libtorrent/socket.hpp:33, from /usr/include/libtorrent/announce_entry.hpp:20: /usr/include/c++/15.2.0/experimental/string_view:570:9: note: 'std::experimental::fundamentals_v1::string_view' 570 | using string_view = basic_string_view; | ^~~~~~~~~~~ /usr/include/c++/15.2.0/experimental/string_view:570:9: note: 'std::experimental::fundamentals_v1::string_view' In file included from /usr/include/libtorrent/torrent_handle.hpp:46, from /usr/include/libtorrent/session_handle.hpp:21, from /usr/include/libtorrent/session.hpp:20: /usr/include/libtorrent/peer_info.hpp:383:22: error: 'variant' in namespace 'std' does not name a template type 383 | std::variant m_endpoint; | ^~~~~~~ /usr/include/libtorrent/peer_info.hpp:383:17: note: 'std::variant' is only available from C++17 onwards 383 | std::variant m_endpoint; | ^~~ In file included from /usr/include/libtorrent/session_handle.hpp:31: /usr/include/libtorrent/kademlia/dht_storage.hpp:124:27: error: 'string_view' has not been declared 124 | , string_view name, bool seed) = 0; | ^~~~~~~~~~~ In file included from /usr/include/libtorrent/session_handle.hpp:43: /usr/include/libtorrent/extensions.hpp:225:45: error: 'string_view' has not been declared 225 | virtual bool on_dht_request(string_view /* query */ | ^~~~~~~~~~~ /usr/include/libtorrent/extensions.hpp:374:25: error: 'string_view' does not name a type 374 | virtual string_view type() const { return {}; } | ^~~~~~~~~~~ In file included from /usr/include/libtorrent/session_params.hpp:23, from /usr/include/libtorrent/session.hpp:22: /usr/include/libtorrent/kademlia/dht_state.hpp:56:81: error: 'string_view' has not been declared 56 | TORRENT_EXTRA_EXPORT node_ids_t extract_node_ids(bdecode_node const& e, string_view key); | ^~~~~~~~~~~ In file included from /usr/include/libtorrent/alert_types.hpp:42, from btfs.cc:43: /usr/include/libtorrent/aux_/stack_allocator.hpp:53:45: error: 'string_view' has not been declared 53 | allocation_slot copy_string(string_view str); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:71:38: error: 'variant' in namespace 'std' does not name a template type 71 | using peer_endpoint_t = std::variant, sha256_hash>; | ^~~~~~~ /usr/include/libtorrent/alert_types.hpp:71:33: note: 'std::variant' is only available from C++17 onwards 71 | using peer_endpoint_t = std::variant, sha256_hash>; | ^~~ /usr/include/libtorrent/alert_types.hpp:154:25: error: 'peer_endpoint_t' has not been declared 154 | peer_endpoint_t ep_, peer_id const& pi); | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:171:17: error: 'peer_endpoint_t' does not name a type 171 | peer_endpoint_t ep; | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:193:72: error: 'string_view' has not been declared 193 | , tcp::endpoint const& ep, protocol_version v, string_view u); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:357:27: error: 'string_view' has not been declared 357 | , string_view n, string_view old, file_index_t idx); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:357:42: error: 'string_view' has not been declared 357 | , string_view n, string_view old, file_index_t idx); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:539:58: error: 'string_view' has not been declared 539 | , int times, protocol_version v, string_view u | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:540:64: error: 'string_view' has not been declared 540 | , operation_t op, error_code const& e, string_view m); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:582:27: error: 'string_view' has not been declared 582 | , string_view u, protocol_version v, string_view m); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:582:62: error: 'string_view' has not been declared 582 | , string_view u, protocol_version v, string_view m); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:607:49: error: 'string_view' has not been declared 607 | , int incomp, int comp, string_view u, protocol_version v); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:628:47: error: 'string_view' has not been declared 628 | , protocol_version v, string_view u, error_code const& e); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:631:47: error: 'string_view' has not been declared 631 | , protocol_version v, string_view u, string_view m); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:631:62: error: 'string_view' has not been declared 631 | , protocol_version v, string_view u, string_view m); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:664:55: error: 'string_view' has not been declared 664 | , int np, protocol_version v, string_view u); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:704:27: error: 'string_view' has not been declared 704 | , string_view u, protocol_version v, event_t e); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:737:27: error: 'peer_endpoint_t' has not been declared 737 | , peer_endpoint_t const& ep, peer_id const& peer_id); | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:751:27: error: 'peer_endpoint_t' has not been declared 751 | , peer_endpoint_t const& ep, peer_id const& peer_id); | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:765:27: error: 'peer_endpoint_t' has not been declared 765 | , peer_endpoint_t const& ep, peer_id const& peer_id); | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:779:27: error: 'peer_endpoint_t' has not been declared 779 | , peer_endpoint_t const& ep, peer_id const& peer_id, operation_t op | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:810:27: error: 'peer_endpoint_t' has not been declared 810 | , peer_endpoint_t const& ep, peer_id const& peer_id, socket_type_t type, direction_t direction); | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:829:52: error: 'peer_endpoint_t' has not been declared 829 | , torrent_handle const& h, peer_endpoint_t const& ep | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:864:45: error: 'peer_endpoint_t' has not been declared 864 | , torrent_handle h, peer_endpoint_t const& ep | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:936:27: error: 'peer_endpoint_t' has not been declared 936 | , peer_endpoint_t const& ep, peer_id const& peer_id, int block_num | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:960:27: error: 'peer_endpoint_t' has not been declared 960 | , peer_endpoint_t const& ep, peer_id const& peer_id, int block_num | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:984:27: error: 'peer_endpoint_t' has not been declared 984 | , peer_endpoint_t const& ep, peer_id const& peer_id, int block_num | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1007:27: error: 'peer_endpoint_t' has not been declared 1007 | , peer_endpoint_t const& ep | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1033:27: error: 'peer_endpoint_t' has not been declared 1033 | , peer_endpoint_t const& ep | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1054:52: error: 'string_view' has not been declared 1054 | , torrent_handle const& h, string_view p, string_view old); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1054:67: error: 'string_view' has not been declared 1054 | , torrent_handle const& h, string_view p, string_view old); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1080:73: error: 'string_view' has not been declared 1080 | , torrent_handle const& h, error_code const& e, string_view file | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1258:27: error: 'string_view' has not been declared 1258 | , string_view u, error_code const& e); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1260:27: error: 'string_view' has not been declared 1260 | , string_view u, string_view m); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1260:42: error: 'string_view' has not been declared 1260 | , string_view u, string_view m); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1298:27: error: 'string_view' has not been declared 1298 | , string_view file, operation_t op, torrent_handle const& h); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1467:83: error: 'string_view' has not been declared 1467 | TORRENT_UNEXPORT listen_failed_alert(aux::stack_allocator& alloc, string_view iface | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1470:83: error: 'string_view' has not been declared 1470 | TORRENT_UNEXPORT listen_failed_alert(aux::stack_allocator& alloc, string_view iface | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1473:83: error: 'string_view' has not been declared 1473 | TORRENT_UNEXPORT listen_failed_alert(aux::stack_allocator& alloc, string_view iface | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1476:83: error: 'string_view' has not been declared 1476 | TORRENT_UNEXPORT listen_failed_alert(aux::stack_allocator& alloc, string_view iface | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1713:74: error: 'string_view' has not been declared 1713 | , torrent_handle const& h, error_code const& ec, string_view file | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1756:27: error: 'peer_endpoint_t' has not been declared 1756 | , peer_endpoint_t const& ep, int r); | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1929:27: error: 'peer_endpoint_t' has not been declared 1929 | , peer_endpoint_t const& i); | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1944:72: error: 'string_view' has not been declared 1944 | , tcp::endpoint const& ep, protocol_version v, string_view u, const std::string& id); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1983:48: error: 'string_view' has not been declared 1983 | , error_code const& e, string_view f); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:2238:50: error: 'string_view' has not been declared 2238 | , std::int64_t sequence, string_view s, entry i, bool a); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:2581:27: error: 'peer_endpoint_t' has not been declared 2581 | , peer_endpoint_t const& ep, peer_id const& pi | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:2715:27: error: 'peer_endpoint_t' has not been declared 2715 | , peer_endpoint_t const& ep, peer_id const& peer_id); | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:2874:27: error: 'peer_endpoint_t' has not been declared 2874 | , peer_endpoint_t const& ep, peer_id const& peer_id, picker_flags_t flags | ^~~~~~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:2917:27: error: 'string_view' has not been declared 2917 | , string_view error_str); | ^~~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:3047:27: error: 'peer_endpoint_t' has not been declared 3047 | , peer_endpoint_t const& ep, peer_id const& peer_id, int block_num | ^~~~~~~~~~~~~~~ In file included from btfs.cc:44: /usr/include/libtorrent/magnet_uri.hpp:87:60: error: 'string_view' was not declared in this scope 87 | TORRENT_EXPORT add_torrent_params parse_magnet_uri(string_view uri, error_code& ec); | ^~~~~~~~~~~ /usr/include/libtorrent/magnet_uri.hpp:87:60: note: suggested alternatives: /usr/include/c++/15.2.0/experimental/string_view:570:9: note: 'std::experimental::fundamentals_v1::string_view' 570 | using string_view = basic_string_view; | ^~~~~~~~~~~ /usr/include/c++/15.2.0/experimental/string_view:570:9: note: 'std::experimental::fundamentals_v1::string_view' /usr/include/libtorrent/magnet_uri.hpp:87:87: error: expected primary-expression before '&' token 87 | TORRENT_EXPORT add_torrent_params parse_magnet_uri(string_view uri, error_code& ec); | ^ /usr/include/libtorrent/magnet_uri.hpp:87:89: error: 'ec' was not declared in this scope 87 | TORRENT_EXPORT add_torrent_params parse_magnet_uri(string_view uri, error_code& ec); | ^~ /usr/include/libtorrent/magnet_uri.hpp:88:43: error: redefinition of 'libtorrent::add_torrent_params libtorrent::parse_magnet_uri' 88 | TORRENT_EXPORT add_torrent_params parse_magnet_uri(string_view uri); | ^~~~~~~~~~~~~~~~ /usr/include/libtorrent/magnet_uri.hpp:87:43: note: 'libtorrent::add_torrent_params libtorrent::parse_magnet_uri' previously declared here 87 | TORRENT_EXPORT add_torrent_params parse_magnet_uri(string_view uri, error_code& ec); | ^~~~~~~~~~~~~~~~ /usr/include/libtorrent/magnet_uri.hpp:88:60: error: 'string_view' was not declared in this scope 88 | TORRENT_EXPORT add_torrent_params parse_magnet_uri(string_view uri); | ^~~~~~~~~~~ /usr/include/libtorrent/magnet_uri.hpp:88:60: note: suggested alternatives: /usr/include/c++/15.2.0/experimental/string_view:570:9: note: 'std::experimental::fundamentals_v1::string_view' 570 | using string_view = basic_string_view; | ^~~~~~~~~~~ /usr/include/c++/15.2.0/experimental/string_view:570:9: note: 'std::experimental::fundamentals_v1::string_view' /usr/include/libtorrent/magnet_uri.hpp:89:29: error: variable or field 'parse_magnet_uri' declared void 89 | TORRENT_EXPORT void parse_magnet_uri(string_view uri, add_torrent_params& p, error_code& ec); | ^~~~~~~~~~~~~~~~ /usr/include/libtorrent/magnet_uri.hpp:89:46: error: 'string_view' was not declared in this scope 89 | TORRENT_EXPORT void parse_magnet_uri(string_view uri, add_torrent_params& p, error_code& ec); | ^~~~~~~~~~~ /usr/include/libtorrent/magnet_uri.hpp:89:46: note: suggested alternatives: /usr/include/c++/15.2.0/experimental/string_view:570:9: note: 'std::experimental::fundamentals_v1::string_view' 570 | using string_view = basic_string_view; | ^~~~~~~~~~~ /usr/include/c++/15.2.0/experimental/string_view:570:9: note: 'std::experimental::fundamentals_v1::string_view' /usr/include/libtorrent/magnet_uri.hpp:89:81: error: expected primary-expression before '&' token 89 | TORRENT_EXPORT void parse_magnet_uri(string_view uri, add_torrent_params& p, error_code& ec); | ^ /usr/include/libtorrent/magnet_uri.hpp:89:83: error: 'p' was not declared in this scope 89 | TORRENT_EXPORT void parse_magnet_uri(string_view uri, add_torrent_params& p, error_code& ec); | ^ /usr/include/libtorrent/magnet_uri.hpp:89:96: error: expected primary-expression before '&' token 89 | TORRENT_EXPORT void parse_magnet_uri(string_view uri, add_torrent_params& p, error_code& ec); | ^ /usr/include/libtorrent/magnet_uri.hpp:89:98: error: 'ec' was not declared in this scope 89 | TORRENT_EXPORT void parse_magnet_uri(string_view uri, add_torrent_params& p, error_code& ec); | ^~ btfs.cc: In function 'bool move_to_next_unfinished(int&, int)': btfs.cc:85:40: error: cannot convert 'int' to 'libtorrent::piece_index_t' {aka 'libtorrent::aux::strong_typedef'} 85 | if (!handle.have_piece(piece)) | ^~~~~ | | | int /usr/include/libtorrent/torrent_handle.hpp:326:47: note: initializing argument 1 of 'bool libtorrent::torrent_handle::have_piece(libtorrent::piece_index_t) const' 326 | bool have_piece(piece_index_t piece) const; | ~~~~~~~~~~~~~~^~~~~ btfs.cc: In function 'void jump(int, int)': btfs.cc:104:38: error: no matching function for call to 'libtorrent::torrent_handle::piece_priority(int, int)' 104 | handle.piece_priority(tail++, 7); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ btfs.cc:104:38: note: there are 2 candidates /usr/include/libtorrent/torrent_handle.hpp:1150:22: note: candidate 1: 'void libtorrent::torrent_handle::piece_priority(libtorrent::piece_index_t, libtorrent::download_priority_t) const' 1150 | void piece_priority(piece_index_t index, download_priority_t priority) const; | ^~~~~~~~~~~~~~ /usr/include/libtorrent/torrent_handle.hpp:1150:51: note: no known conversion for argument 1 from 'int' to 'libtorrent::piece_index_t' {aka 'libtorrent::aux::strong_typedef'} 1150 | void piece_priority(piece_index_t index, download_priority_t priority) const; | ~~~~~~~~~~~~~~^~~~~ /usr/include/libtorrent/torrent_handle.hpp:1151:37: note: candidate 2: 'libtorrent::download_priority_t libtorrent::torrent_handle::piece_priority(libtorrent::piece_index_t) const' 1151 | download_priority_t piece_priority(piece_index_t index) const; | ^~~~~~~~~~~~~~ /usr/include/libtorrent/torrent_handle.hpp:1151:37: note: candidate expects 1 argument, 2 provided btfs.cc: In constructor 'btfs::Read::Read(char*, int, off_t, size_t)': btfs.cc:119:38: warning: 'const libtorrent::file_storage& libtorrent::torrent_info::files() const' is deprecated [-Wdeprecated-declarations] 119 | int64_t file_size = ti->files().file_size(index); | ~~~~~~~~~^~ /usr/include/libtorrent/torrent_info.hpp:250:37: note: declared here 250 | file_storage const& files() const; | ^~~~~ btfs.cc:119:51: error: cannot convert 'int' to 'libtorrent::file_index_t' {aka 'libtorrent::aux::strong_typedef'} 119 | int64_t file_size = ti->files().file_size(index); | ^~~~~ | | | int /usr/include/libtorrent/file_storage.hpp:544:53: note: initializing argument 1 of 'int64_t libtorrent::file_storage::file_size(libtorrent::file_index_t) const' 544 | std::int64_t file_size(file_index_t index) const; | ~~~~~~~~~~~~~^~~~~ btfs.cc:123:62: error: cannot convert 'int' to 'libtorrent::file_index_t' {aka 'libtorrent::aux::strong_typedef'} 123 | libtorrent::peer_request part = ti->map_file(index, offset, | ^~~~~ | | | int /usr/include/libtorrent/torrent_info.hpp:480:58: note: initializing argument 1 of 'libtorrent::peer_request libtorrent::torrent_info::map_file(libtorrent::file_index_t, int64_t, int) const' 480 | peer_request map_file(file_index_t const file, std::int64_t offset, int size) const | ~~~~~~~~~~~~~~~~~~~^~~~ btfs.cc: In member function 'void btfs::Read::fail(int)': btfs.cc:140:35: error: no match for 'operator==' (operand types are 'libtorrent::piece_index_t' {aka 'libtorrent::aux::strong_typedef'} and 'int') 140 | if (i->part.piece == piece && !i->filled) | ~~~~~~~~~~~~~ ^~ ~~~~~ | | | | | int | libtorrent::piece_index_t {aka libtorrent::aux::strong_typedef} btfs.cc:140:35: note: there are 2 candidates 140 | if (i->part.piece == piece && !i->filled) | ~~~~~~~~~~~~~~^~~~~~~~ btfs.cc:140:35: note: candidate 1: 'operator==(int, int)' (built-in) btfs.cc:140:35: note: no known conversion for argument 1 from 'libtorrent::piece_index_t' {aka 'libtorrent::aux::strong_typedef'} to 'int' In file included from /usr/include/libtorrent/peer_request.hpp:14, from /usr/include/libtorrent/file_storage.hpp:26: /usr/include/libtorrent/units.hpp:54:32: note: candidate 2: 'constexpr bool libtorrent::aux::strong_typedef::operator==(const libtorrent::aux::strong_typedef&) const [with UnderlyingType = int; Tag = libtorrent::aux::piece_index_tag; Cond = void]' 54 | constexpr bool operator==(strong_typedef const& rhs) const { return m_val == rhs.m_val; } | ^~~~~~~~ /usr/include/libtorrent/units.hpp:54:65: note: no known conversion for argument 1 from 'int' to 'const libtorrent::aux::strong_typedef&' 54 | constexpr bool operator==(strong_typedef const& rhs) const { return m_val == rhs.m_val; } | ~~~~~~~~~~~~~~~~~~~~~~^~~ btfs.cc: In member function 'void btfs::Read::copy(int, char*, int)': btfs.cc:147:35: error: no match for 'operator==' (operand types are 'libtorrent::piece_index_t' {aka 'libtorrent::aux::strong_typedef'} and 'int') 147 | if (i->part.piece == piece && !i->filled) | ~~~~~~~~~~~~~ ^~ ~~~~~ | | | | | int | libtorrent::piece_index_t {aka libtorrent::aux::strong_typedef} btfs.cc:147:35: note: there are 2 candidates 147 | if (i->part.piece == piece && !i->filled) | ~~~~~~~~~~~~~~^~~~~~~~ btfs.cc:147:35: note: candidate 1: 'operator==(int, int)' (built-in) btfs.cc:147:35: note: no known conversion for argument 1 from 'libtorrent::piece_index_t' {aka 'libtorrent::aux::strong_typedef'} to 'int' /usr/include/libtorrent/units.hpp:54:32: note: candidate 2: 'constexpr bool libtorrent::aux::strong_typedef::operator==(const libtorrent::aux::strong_typedef&) const [with UnderlyingType = int; Tag = libtorrent::aux::piece_index_tag; Cond = void]' 54 | constexpr bool operator==(strong_typedef const& rhs) const { return m_val == rhs.m_val; } | ^~~~~~~~ /usr/include/libtorrent/units.hpp:54:65: note: no known conversion for argument 1 from 'int' to 'const libtorrent::aux::strong_typedef&' 54 | constexpr bool operator==(strong_typedef const& rhs) const { return m_val == rhs.m_val; } | ~~~~~~~~~~~~~~~~~~~~~~^~~ btfs.cc: In member function 'int btfs::Read::read()': btfs.cc:187:33: error: cannot convert 'libtorrent::piece_index_t' {aka 'libtorrent::aux::strong_typedef'} to 'int' 187 | jump(parts.front().part.piece, size()); | ~~~~~~~~~~~~~~~~~~~^~~~~ | | | libtorrent::piece_index_t {aka libtorrent::aux::strong_typedef} btfs.cc:93:10: note: initializing argument 1 of 'void jump(int, int)' 93 | jump(int piece, int size) { | ~~~~^~~~~ /usr/include/libtorrent/units.hpp:53:36: note: explicit conversion function was not considered 53 | constexpr explicit operator UnderlyingType() const { return m_val; } | ^~~~~~~~ btfs.cc: In function 'void setup()': btfs.cc:214:43: warning: 'const libtorrent::file_storage& libtorrent::torrent_info::files() const' is deprecated [-Wdeprecated-declarations] 214 | char *p = strdup(ti->files().file_path(i).c_str()); | ~~~~~~~~~^~ /usr/include/libtorrent/torrent_info.hpp:250:37: note: declared here 250 | file_storage const& files() const; | ^~~~~ btfs.cc:214:56: error: cannot convert 'int' to 'libtorrent::file_index_t' {aka 'libtorrent::aux::strong_typedef'} 214 | char *p = strdup(ti->files().file_path(i).c_str()); | ^ | | | int /usr/include/libtorrent/file_storage.hpp:542:52: note: initializing argument 1 of 'std::string libtorrent::file_storage::file_path(libtorrent::file_index_t, const std::string&) const' 542 | std::string file_path(file_index_t index, std::string const& save_path = "") const; | ~~~~~~~~~~~~~^~~~~ btfs.cc:241:38: warning: 'const libtorrent::file_storage& libtorrent::torrent_info::files() const' is deprecated [-Wdeprecated-declarations] 241 | files["/" + ti->files().file_path(i)] = i; | ~~~~~~~~~^~ /usr/include/libtorrent/torrent_info.hpp:250:37: note: declared here 250 | file_storage const& files() const; | ^~~~~ btfs.cc:241:51: error: cannot convert 'int' to 'libtorrent::file_index_t' {aka 'libtorrent::aux::strong_typedef'} 241 | files["/" + ti->files().file_path(i)] = i; | ^ | | | int /usr/include/libtorrent/file_storage.hpp:542:52: note: initializing argument 1 of 'std::string libtorrent::file_storage::file_path(libtorrent::file_index_t, const std::string&) const' 542 | std::string file_path(file_index_t index, std::string const& save_path = "") const; | ~~~~~~~~~~~~~^~~~~ btfs.cc: In function 'void handle_read_piece_alert(libtorrent::read_piece_alert*, btfs::Log*)': btfs.cc:253:16: error: 'struct libtorrent::read_piece_alert' has no member named 'ec' 253 | if (a->ec) { | ^~ btfs.cc:257:39: error: cannot convert 'const libtorrent::piece_index_t' {aka 'const libtorrent::aux::strong_typedef'} to 'int' 257 | (*i)->fail(a->piece); | ~~~^~~~~ | | | const libtorrent::piece_index_t {aka const libtorrent::aux::strong_typedef} btfs.cc:138:21: note: initializing argument 1 of 'void btfs::Read::fail(int)' 138 | void Read::fail(int piece) { | ~~~~^~~~~ btfs.cc:261:39: error: cannot convert 'const libtorrent::piece_index_t' {aka 'const libtorrent::aux::strong_typedef'} to 'int' 261 | (*i)->copy(a->piece, a->buffer.get(), a->size); | ~~~^~~~~ | | | const libtorrent::piece_index_t {aka const libtorrent::aux::strong_typedef} btfs.cc:145:21: note: initializing argument 1 of 'void btfs::Read::copy(int, char*, int)' 145 | void Read::copy(int piece, char *buffer, int size) { | ~~~~^~~~~ btfs.cc: In function 'void handle_torrent_added_alert(libtorrent::torrent_added_alert*, btfs::Log*)': btfs.cc:291:19: error: invalid use of incomplete type 'struct libtorrent::torrent_added_alert' 291 | handle = a->handle; | ^~ In file included from /usr/include/libtorrent/torrent_info.hpp:31: /usr/include/libtorrent/fwd.hpp:286:8: note: forward declaration of 'struct libtorrent::torrent_added_alert' 286 | struct torrent_added_alert; | ^~~~~~~~~~~~~~~~~~~ btfs.cc:293:14: error: invalid use of incomplete type 'struct libtorrent::torrent_added_alert' 293 | if (a->handle.status().has_metadata) | ^~ /usr/include/libtorrent/fwd.hpp:286:8: note: forward declaration of 'struct libtorrent::torrent_added_alert' 286 | struct torrent_added_alert; | ^~~~~~~~~~~~~~~~~~~ btfs.cc: In function 'void handle_alert(libtorrent::alert*, btfs::Log*)': btfs.cc:328:47: error: incomplete type 'libtorrent::torrent_added_alert' used in nested name specifier 328 | case libtorrent::torrent_added_alert::alert_type: | ^~~~~~~~~~ btfs.cc:348:39: warning: 'stats_alert' is deprecated [-Wdeprecated-declarations] 348 | case libtorrent::stats_alert::alert_type: | ^~~~~~~~~~ /usr/include/libtorrent/alert_types.hpp:1821:42: note: declared here 1821 | struct TORRENT_DEPRECATED_EXPORT stats_alert final : torrent_alert | ^~~~~~~~~~~ btfs.cc: In function 'int btfs_getattr(const char*, stat*, fuse_file_info*)': btfs.cc:446:46: warning: 'const libtorrent::file_storage& libtorrent::torrent_info::files() const' is deprecated [-Wdeprecated-declarations] 446 | int64_t file_size = ti->files().file_size(files[path]); | ~~~~~~~~~^~ /usr/include/libtorrent/torrent_info.hpp:250:37: note: declared here 250 | file_storage const& files() const; | ^~~~~ btfs.cc:446:58: error: cannot convert 'std::map, int>::mapped_type' {aka 'int'} to 'libtorrent::file_index_t' {aka 'libtorrent::aux::strong_typedef'} 446 | int64_t file_size = ti->files().file_size(files[path]); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ /usr/include/libtorrent/file_storage.hpp:544:53: note: initializing argument 1 of 'int64_t libtorrent::file_storage::file_size(libtorrent::file_index_t) const' 544 | std::int64_t file_size(file_index_t index) const; | ~~~~~~~~~~~~~^~~~~ btfs.cc: In function 'void* btfs_init(fuse_conn_info*, fuse_config*)': btfs.cc:577:38: warning: 'libtorrent::session_handle::add_default_plugins' is deprecated [-Wdeprecated-declarations] 577 | libtorrent::session::add_default_plugins | | ^~~~~~~~~~~~~~~~~~~ /usr/include/libtorrent/session_handle.hpp:787:76: note: declared here 787 | TORRENT_DEPRECATED static inline constexpr session_flags_t add_default_plugins = 0_bit; | ^~~~~~~~~~~~~~~~~~~ btfs.cc:578:38: error: 'start_default_features' is not a member of 'libtorrent::session' 578 | libtorrent::session::start_default_features; | ^~~~~~~~~~~~~~~~~~~~~~ btfs.cc:586:36: warning: 'libtorrent::alert::stats_notification' is deprecated [-Wdeprecated-declarations] 586 | libtorrent::alert::stats_notification | | ^~~~~~~~~~~~~~~~~~ In file included from /usr/include/libtorrent/session_handle.hpp:23: /usr/include/libtorrent/alert.hpp:211:58: note: declared here 211 | static inline constexpr alert_category_t stats_notification = 11_bit; | ^~~~~~~~~~~~~~~~~~ btfs.cc:588:36: error: 'progress_notification' is not a member of 'libtorrent::alert' 588 | libtorrent::alert::progress_notification | | ^~~~~~~~~~~~~~~~~~~~~ btfs.cc:660:54: warning: 'libtorrent::session::session(const libtorrent::settings_pack&, libtorrent::session_flags_t)' is deprecated [-Wdeprecated-declarations] 660 | session = new libtorrent::session(pack, flags); | ^ /usr/include/libtorrent/session.hpp:185:17: note: declared here 185 | session(settings_pack const& pack, session_flags_t const flags); | ^~~~~~~ btfs.cc: In function 'bool populate_metadata(libtorrent::add_torrent_params&, const char*)': btfs.cc:884:17: error: 'parse_magnet_uri' was not declared in this scope; did you mean 'libtorrent::parse_magnet_uri'? 884 | parse_magnet_uri(uri, p, ec); | ^~~~~~~~~~~~~~~~ | libtorrent::parse_magnet_uri /usr/include/libtorrent/magnet_uri.hpp:87:43: note: 'libtorrent::parse_magnet_uri' declared here 87 | TORRENT_EXPORT add_torrent_params parse_magnet_uri(string_view uri, error_code& ec); | ^~~~~~~~~~~~~~~~ make[1]: *** [Makefile:419: btfs-btfs.o] Error 1 make[1]: Leaving directory '/home/buildozer/aports/testing/btfs/src/btfs-3.1/src' make: *** [Makefile:353: all-recursive] Error 1 >>> ERROR: btfs: build failed >>> btfs: Uninstalling dependencies... ( 1/80) Purging .makedepends-btfs (20260725.193446) ( 2/80) Purging autoconf (2.73-r0) ( 3/80) Purging m4 (1.4.21-r0) ( 4/80) Purging automake (1.18.1-r1) ( 5/80) Purging curl-dev (8.21.0-r0) ( 6/80) Purging fuse3-dev (3.18.2-r0) ( 7/80) Purging fuse3-libs (3.18.2-r0) ( 8/80) Purging libtorrent-rasterbar-dev (2.1.0-r0) ( 9/80) Purging openssl-dev (3.5.7-r0) (10/80) Purging libtorrent-rasterbar (2.1.0-r0) (11/80) Purging boost-dev (1.84.0-r6) (12/80) Purging boost1.84-dev (1.84.0-r6) (13/80) Purging boost1.84 (1.84.0-r6) (14/80) Purging linux-headers (7.1.4-r0) (15/80) Purging bzip2-dev (1.0.8-r6) (16/80) Purging icu-dev (78.1-r0) (17/80) Purging xz-dev (5.8.3-r0) (18/80) Purging xz (5.8.3-r0) (19/80) Purging zlib-dev (1.3.2-r0) (20/80) Purging zstd-dev (1.5.7-r2) (21/80) Purging zstd (1.5.7-r2) (22/80) Purging boost1.84-libs (1.84.0-r6) (23/80) Purging boost1.84-atomic (1.84.0-r6) (24/80) Purging boost1.84-chrono (1.84.0-r6) (25/80) Purging boost1.84-container (1.84.0-r6) (26/80) Purging boost1.84-contract (1.84.0-r6) (27/80) Purging boost1.84-coroutine (1.84.0-r6) (28/80) Purging boost1.84-date_time (1.84.0-r6) (29/80) Purging boost1.84-fiber (1.84.0-r6) (30/80) Purging boost1.84-graph (1.84.0-r6) (31/80) Purging boost1.84-iostreams (1.84.0-r6) (32/80) Purging boost1.84-json (1.84.0-r6) (33/80) Purging boost1.84-locale (1.84.0-r6) (34/80) Purging boost1.84-log_setup (1.84.0-r6) (35/80) Purging boost1.84-math (1.84.0-r6) (36/80) Purging boost1.84-nowide (1.84.0-r6) (37/80) Purging boost1.84-prg_exec_monitor (1.84.0-r6) (38/80) Purging boost1.84-program_options (1.84.0-r6) (39/80) Purging boost1.84-python3 (1.84.0-r6) (40/80) Purging boost1.84-random (1.84.0-r6) (41/80) Purging boost1.84-regex (1.84.0-r6) (42/80) Purging boost1.84-stacktrace_basic (1.84.0-r6) (43/80) Purging boost1.84-stacktrace_noop (1.84.0-r6) (44/80) Purging boost1.84-system (1.84.0-r6) (45/80) Purging boost1.84-timer (1.84.0-r6) (46/80) Purging boost1.84-type_erasure (1.84.0-r6) (47/80) Purging boost1.84-unit_test_framework (1.84.0-r6) (48/80) Purging boost1.84-url (1.84.0-r6) (49/80) Purging boost1.84-wave (1.84.0-r6) (50/80) Purging boost1.84-wserialization (1.84.0-r6) (51/80) Purging boost1.84-context (1.84.0-r6) (52/80) Purging boost1.84-log (1.84.0-r6) (53/80) Purging boost1.84-serialization (1.84.0-r6) (54/80) Purging boost1.84-thread (1.84.0-r6) (55/80) Purging brotli-dev (1.2.0-r1) (56/80) Purging brotli (1.2.0-r1) (57/80) Purging c-ares-dev (1.34.8-r0) (58/80) Purging git-perl (2.55.0-r0) (59/80) Purging perl-git (2.55.0-r0) (60/80) Purging perl-error (0.17030-r0) (61/80) Purging perl (5.42.2-r0) (62/80) Purging icu (78.1-r0) (63/80) Purging icu-libs (78.1-r0) (64/80) Purging libpsl-dev (0.21.5-r3) (65/80) Purging libpsl-utils (0.21.5-r3) (66/80) Purging nghttp2-dev (1.69.0-r0) (67/80) Purging python3-pyc (3.14.5-r2) (68/80) Purging python3-pycache-pyc0 (3.14.5-r2) (69/80) Purging pyc (3.14.5-r2) (70/80) Purging python3 (3.14.5-r2) (71/80) Purging readline (8.3.3-r1) (72/80) Purging sqlite-libs (3.53.3-r0) (73/80) Purging xz-libs (5.8.3-r0) (74/80) Purging boost1.84-filesystem (1.84.0-r6) (75/80) Purging icu-data-en (78.1-r0) (76/80) Purging libbz2 (1.0.8-r6) (77/80) Purging libffi (3.5.2-r1) (78/80) Purging libidn2-dev (2.3.8-r0) (79/80) Purging libpanelw (6.6_p20260516-r0) (80/80) Purging mpdecimal (4.0.1-r0) Executing busybox-1.38.0-r4.trigger OK: 392.1 MiB in 106 packages