Skip to content

Commit

Permalink
Merge branch 'RC_2_0'
Browse files Browse the repository at this point in the history
  • Loading branch information
arvidn committed Aug 25, 2023
2 parents 2e068c3 + 7208996 commit 16b5443
Show file tree
Hide file tree
Showing 98 changed files with 675 additions and 533 deletions.
4 changes: 2 additions & 2 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ freebsd_instance:
task:
install_script: |
IGNORE_OSVERSION=yes pkg update
pkg install -U -y git boost_build boost-libs unzip wget openssl cmake ninja
pkg install -U -y git boost-build boost-libs unzip wget openssl cmake ninja
echo "using clang ;" > ~/user-config.jam
submodules_script: |
git submodule update --init --recursive
Expand Down Expand Up @@ -45,7 +45,7 @@ build_macos_arm64_task:
env:
CIRRUS_CLONE_SUBMODULES: true
CIBW_SKIP: pp* cp38-* # cp38-* has problem with x86_64 / arm64 confusion
CIBW_BUILD: cp39-* cp310-* # cp311-* can be added after boost-python version >= 1.81
CIBW_BUILD: cp39-* cp310-* cp311-*
CIBW_ARCH: arm64
PATH: /opt/homebrew/bin:$PATH
PYTHON: python3.9
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/cibuildwheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ jobs:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.CIBW_BUILD }}
CIBW_ARCHS: ${{ matrix.CIBW_ARCHS }}
CIBW_TEST_SKIP: "*-win32"

steps:
- uses: actions/checkout@v3
Expand Down
32 changes: 21 additions & 11 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:

build:
name: build
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
continue-on-error: true

strategy:
Expand All @@ -52,7 +52,7 @@ jobs:
- name: install boost
run: |
sudo apt install libboost-tools-dev libboost-dev libboost-system-dev
sudo apt install libboost-python-dev libboost-tools-dev libboost-dev libboost-system-dev python3
echo "using gcc ;" >>~/user-config.jam
- name: install gcrypt
Expand All @@ -61,18 +61,23 @@ jobs:

- name: build library
run: |
b2 ${{ matrix.config }}
b2 ${{ matrix.config }} cxxstd=14,17,20 warnings-as-errors=on
- name: build examples
run: |
cd examples
b2 ${{ matrix.config }}
b2 ${{ matrix.config }} cxxstd=14,17,20 warnings-as-errors=on
- name: build tools
run: |
cd tools
b2 ${{ matrix.config }} warnings-as-errors=on
b2 ${{ matrix.config }} cxxstd=14,17,20 warnings-as-errors=on
- name: build python bindings
run: |
cd bindings/python
echo "using python ;" >>~/user-config.jam
BOOST_ROOT="" b2 ${{ matrix.config }} cxxstd=14,17,20 warnings-as-errors=on
fuzzers:
Expand Down Expand Up @@ -186,15 +191,15 @@ jobs:
test:
name: Tests
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
continue-on-error: true

strategy:
matrix:
include:
- config: webtorrent=on address-sanitizer=norecover undefined-sanitizer=norecover crypto=openssl
- config: toolset=clang logging=off address-sanitizer=norecover undefined-sanitizer=norecover
- config: thread-sanitizer=norecover crypto=openssl release debug-symbols=on
- config: thread-sanitizer=norecover crypto=openssl release debug-symbols=on cxxflags=-Wno-tsan
- config: crypto=gnutls
- config: deprecated-functions=off

Expand All @@ -221,17 +226,22 @@ jobs:
run: |
sudo apt install libgnutls28-dev
- name: install clang-10
- name: install clang-12
continue-on-error: true
run: |
sudo apt install clang-10
sudo apt install clang-12
- name: install GCC-12
continue-on-error: true
run: |
sudo apt install gcc-12
- name: install boost
run: |
sudo apt install libboost-tools-dev libboost-dev libboost-system-dev
pip install websockets
echo "using gcc ;" >>~/user-config.jam
echo "using clang : 10 : clang++-10 ;" >>~/user-config.jam
echo "using gcc : 12 : g++-12 ;" >>~/user-config.jam
echo "using clang : 12 : clang++-12 ;" >>~/user-config.jam
- name: build and run tests
run: |
Expand Down
18 changes: 9 additions & 9 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ default_language_version:
python: python3
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
rev: v4.4.0
hooks:
- id: trailing-whitespace
#- id: end-of-file-fixer
Expand All @@ -27,12 +27,12 @@ repos:
- id: check-symlinks
- id: check-toml
- repo: https://github.com/pappasam/toml-sort
rev: v0.20.1
rev: v0.23.1
hooks:
- id: toml-sort
args: [--all, --in-place]
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.9.0
rev: v1.10.0
hooks:
- id: rst-directive-colons
- id: rst-inline-touching-normal
Expand Down Expand Up @@ -61,13 +61,13 @@ repos:
tools/run_benchmark.py|
tools/update_copyright.py
)$
- repo: https://github.com/myint/autoflake
rev: v1.7.6
- repo: https://github.com/PyCQA/autoflake
rev: v2.1.1
hooks:
- id: autoflake
args: [--in-place, --remove-unused-variables, --remove-all-unused-imports, --remove-duplicate-keys]
- repo: https://github.com/python/black
rev: 22.10.0
- repo: https://github.com/psf/black
rev: 23.3.0
hooks:
- id: black
# Avoiding PR bloat
Expand Down Expand Up @@ -107,7 +107,7 @@ repos:
name: black (pyi)
types: [pyi]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.982
rev: v1.3.0
hooks:
- id: mypy
# Avoiding PR bloat
Expand Down Expand Up @@ -140,7 +140,7 @@ repos:
tools/update_copyright.py
)$
- repo: https://github.com/PyCQA/flake8
rev: 5.0.4
rev: 6.0.0
hooks:
- id: flake8
exclude: |
Expand Down
8 changes: 7 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -561,11 +561,17 @@ target_compile_definitions(torrent-rasterbar
_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING
PRIVATE
TORRENT_BUILDING_LIBRARY
_FILE_OFFSET_BITS=64
BOOST_EXCEPTION_DISABLE
BOOST_ASIO_HAS_STD_CHRONO
)

if (NOT WIN32)
target_compile_definitions(torrent-rasterbar
PRIVATE
_FILE_OFFSET_BITS=64
)
endif()

target_link_libraries(torrent-rasterbar
PUBLIC
Threads::Threads
Expand Down
47 changes: 25 additions & 22 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
* libtorrent now requires C++17 to build
* added support for WebTorrent

* fix missing python converter for dht::announce_flags_t

2.0.9 released

* fix issue with web seed connections when they close and re-open
* fallocate() not supported is not a fatal error
Expand Down Expand Up @@ -162,7 +165,7 @@

2.0 released

* dropped depenency on iconv
* dropped dependency on iconv
* deprecate set_file_hash() in torrent creator, as it's superceded by v2 torrents
* deprecate mutable access to info_section in torrent_info
* removed deprecated lazy_entry/lazy_bdecode
Expand Down Expand Up @@ -280,7 +283,7 @@
* fix issue with moving the session object
* deprecate torrent_status::allocating. This state is no longer used
* fix bug creating torrents with symbolic links
* remove special case to save metadata in resume data unconditionally when added throught magnet link
* remove special case to save metadata in resume data unconditionally when added through magnet link
* fix bugs in mutable-torrent support (reusing identical files from different torrents)
* fix incorrectly inlined move-assignment of file_storage
* add session::paused flag, and the ability to construct a session in paused mode
Expand Down Expand Up @@ -334,7 +337,7 @@
* limit number of concurrent HTTP announces
* fix queue position for force_rechecking a torrent that is not auto-managed
* improve rate-based choker documentation, and minor tweak
* undeprecate upnp_ignore_nonrouters (but refering to devices on our subnet)
* undeprecate upnp_ignore_nonrouters (but referring to devices on our subnet)
* increase default tracker timeout
* retry failed socks5 server connections
* allow UPnP lease duration to be changed after device discovery
Expand Down Expand Up @@ -414,7 +417,7 @@
1.2.1 release

* add dht_pkt_alert and alerts_dropped_alert to python bindings
* fix python bindins for block_uploaded_alert
* fix python bindings for block_uploaded_alert
* optimize resolving duplicate filenames in loading torrent files
* fix python binding of dht_settings
* tighten up various input validation checks
Expand All @@ -423,7 +426,7 @@
* fix python bindings for peer_info
* support creating symlinks, for torrents with symlinks in them
* fix error in seed_mode flag
* support magnet link parameters with number siffixes
* support magnet link parameters with number suffixes
* consistently use "lt" namespace in examples and documentation
* fix Mingw build to use native cryptoAPI
* uPnP/NAT-PMP errors no longer set the client's advertised listen port to zero
Expand Down Expand Up @@ -617,7 +620,7 @@

* fix infinite loop when parsing certain invalid magnet links
* fix parsing of torrents with certain invalid filenames
* fix leak of torrent_peer objecs (entries in peer_list)
* fix leak of torrent_peer objects (entries in peer_list)
* fix leak of peer_class objects (when setting per-torrent rate limits)
* expose peer_class API to python binding
* fix integer overflow in whole_pieces_threshold logic
Expand Down Expand Up @@ -652,7 +655,7 @@
* fix proxying of https connections
* fix race condition in disk I/O storage class
* fix http connection timeout on multi-homed hosts
* removed depdendency on boost::uintptr_t for better compatibility
* removed dependency on boost::uintptr_t for better compatibility
* fix memory leak in the disk cache
* fix double free in disk cache
* forward declaring libtorrent types is discouraged. a new fwd.hpp header is provided
Expand Down Expand Up @@ -938,7 +941,7 @@
* tweak flag_override_resume_data semantics to make more sense (breaks
backwards compatibility of edge-cases)
* improve DHT bootstrapping and periodic refresh
* improve DHT maintanence performance (by pinging instead of full lookups)
* improve DHT maintenance performance (by pinging instead of full lookups)
* fix bug in DHT routing table node-id prefix optimization
* fix incorrect behavior of flag_use_resume_save_path
* fix protocol race-condition in super seeding mode
Expand Down Expand Up @@ -1121,7 +1124,7 @@
* fix piece-picker stat bug when only selecting some files for download
* fix bug in async_add_torrent when settings file_priorities
* fix boost-1.42 support for python bindings
* fix memory allocation issue (virtual addres space waste) on windows
* fix memory allocation issue (virtual address space waste) on windows

0.16.11 release

Expand All @@ -1137,7 +1140,7 @@
* GCC 4.8 fix
* fix proxy failure semantics with regards to anonymous mode
* fix round-robin seed-unchoke algorithm
* add bootstrap.sh to generage configure script and run configure
* add bootstrap.sh to generate configure script and run configure
* fix bug in SOCK5 UDP support
* fix issue where torrents added by URL would not be started immediately

Expand Down Expand Up @@ -1314,7 +1317,7 @@
* support banning web seeds sending corrupt data
* don't let hung outgoing connection attempts block incoming connections
* improve SSL torrent support by using SNI and a single SSL listen socket
* improved peer exchange performance by sharing incoming connections which advertize listen port
* improved peer exchange performance by sharing incoming connections which advertise listen port
* deprecate set_ratio(), and per-peer rate limits
* add web seed support for torrents with pad files
* introduced a more scalable API for torrent status updates (post_torrent_updates()) and updated client_test to use it
Expand Down Expand Up @@ -1706,7 +1709,7 @@ release 0.14.9

release 0.14.8

* ignore unkown metadata messages
* ignore unknown metadata messages
* fixed typo that would sometimes prevent queued torrents to be checked
* fixed bug in auto-manager where active_downloads and active_seeds would
sometimes be used incorrectly
Expand All @@ -1733,7 +1736,7 @@ release 0.14.7
ended with a /
* fixed bug in error handling when parsing torrent files
* fixed file checking bug when renaming a file before checking the torrent
* fixed race conditon when receiving metadata from swarm
* fixed race condition when receiving metadata from swarm
* fixed assert in ut_metadata plugin
* back-ported some fixes for building with no exceptions
* fixed create_torrent when passing in a path ending with /
Expand Down Expand Up @@ -1826,7 +1829,7 @@ release 0.14.3
* fixed issue where renamed files were sometimes not saved in resume data
* accepts tracker responses with no 'peers' field, as long as 'peers6'
is present
* fixed CIDR-distance calculation in the precense of IPv6 peers
* fixed CIDR-distance calculation in the presence of IPv6 peers
* save partial resume data for torrents that are queued for checking
or checking, to maintain stats and renamed files
* Don't try IPv6 on windows if it's not installed
Expand All @@ -1851,7 +1854,7 @@ release 0.14.2
tracker urls
* fixed bug where the files requested from web seeds would be the
renamed file names instead of the original file names in the torrent.
* documentation fix of queing section
* documentation fix of queueing section
* fixed potential issue in udp_socket (affected udp tracker support)
* made name, comment and created by also be subject to utf-8 error
correction (filenames already were)
Expand All @@ -1865,7 +1868,7 @@ release 0.14.2
* fixed race condition when saving DHT state
* fixed bugs related to lexical_cast being locale dependent
* added support for SunPro C++ compiler
* fixed bug where messeges sometimes could be encrypted in the
* fixed bug where messages sometimes could be encrypted in the
wrong order, for encrypted connections.
* fixed race condition where torrents could get stuck waiting to
get checked
Expand All @@ -1886,7 +1889,7 @@ release 0.14.1
sometimes quit when an error occurred
* fixed DHT bug
* fixed potential shutdown crash in disk_io_thread
* fixed usage of deprecated boost.filsystem functions
* fixed usage of deprecated boost.filesystem functions
* fixed http_connection unit test
* fixed bug in DHT when a DHT state was loaded
* made rate limiter change in 0.14 optional (to take estimated
Expand Down Expand Up @@ -1957,7 +1960,7 @@ release 0.14
* Disk cache support.
* New, more memory efficient, piece picker with sequential download
support (instead of the more complicated sequential download threshold).
* Auto Upload slots. Automtically opens up more slots if
* Auto Upload slots. Automatically opens up more slots if
upload limit is not met.
* Improved NAT-PMP support by querying the default gateway
* Improved UPnP support by ignoring routers not on the clients subnet.
Expand Down Expand Up @@ -2068,7 +2071,7 @@ release 0.12
* fixed bug in DHT code which would send incorrect announce messages.
* fixed bug where the http header parser was case sensitive to the header
names.
* Implemented an optmization which frees the piece_picker once a torrent
* Implemented an optimization which frees the piece_picker once a torrent
turns into a seed.
* Added support for uT peer exchange extension, implemented by Massaroddel.
* Modified the quota management to offer better bandwidth balancing
Expand Down Expand Up @@ -2098,9 +2101,9 @@ release 0.11
* fixed bug with file_progress() with files = 0 bytes
* fixed a race condition bug in udp_tracker_connection that could
cause a crash.
* fixed bug occuring when increasing the sequenced download threshold
* fixed bug occurring when increasing the sequenced download threshold
with max availability lower than previous threshold.
* fixed an integer overflow bug occuring when built with gcc 4.1.x
* fixed an integer overflow bug occurring when built with gcc 4.1.x
* fixed crasing bug when closing while checking a torrent
* fixed bug causing a crash with a torrent with piece length 0
* added an extension to the DHT network protocol to support the
Expand Down Expand Up @@ -2166,7 +2169,7 @@ release 0.10

release 0.9.1

* made the session disable file name checks within the boost.filsystem library
* made the session disable file name checks within the boost.filesystem library
* fixed race condition in the sockets
* strings that are invalid utf-8 strings are now decoded with the
local codepage on windows
Expand Down
Loading

0 comments on commit 16b5443

Please sign in to comment.