Releases: transmission/transmission
4.1.1
Transmission 4.1.1
This is Transmission 4.1.1, a bugfix release.
4.1.0 was in development for over a year, so we've gotten a lot of good feedback, including actionable bug reports, since it was released three weeks ago. 4.1.1 fixes 20+ bugs and also has some performance improvements. All users are encouraged to upgrade to this version.
This progress was possible because of good bug reports and performance logs reported by users. Thanks, and keep them coming!
What's New in 4.1.1
All Platforms
- Fixed a
4.1.0bug that failed to report some filesystem errors to RPC clients who were querying the system's free space available. (#8258) - Fixed a
4.1.0bug that kept a a torrent's updated queue position from being shown. (#8298) - Fixed a
4.1.0bug that caused torrents' queuing order to sometimes be lost between sessions. (#8306) - Fixed "assertion failed: no timezone" error on OpenSolaris. (#8358)
- Fixed a
4.0.0bug that displayed the wrong mime-type icon for mp4 video files. (#8411) - Hardened .torrent parsing by exiting sooner if
pieceshas an invalid size. (#8412) - Reverted a
4.1.0RPC change that broke some 3rd party code by returning floating-point numbers, rather than integers, for speed limit fields. (#8416) - Fixed crash that could happen if a user paused a torrent and edited its tracker list at the same time. (#8478)
- Fixed
4.1.0crash on arm32 by switching crc32 libraries to Mark Madler's crcany. (#8529) - Require UTF-8 filenames in .torrent files, as required by the BitTorrent spec. (#8541)
- Fixed crash that could occur when parsing a .torrent file with a bad
pieceskey. (#8542) - Fixed potential file descriptor leak when launching scripts on POSIX systems. (#8549)
- Changed the network traffic algorithm to spread bandwidth more evenly amongst peers. (#8259)
- Improved laggy user interface when bandwidth usage is high. (#8454)
macOS Client
- Fixed a
4.1.0crash that occurred if deleting a torrent's files on macOS returned a system error. (#8275) - Fixed a crash in the "Rename File ..." dialog when trying to rename a torrent right when the torrent finished downloading. (#8425)
- Fixed
4.1.0crash when removing a torrent that was being show in the Inspector. (#8496) - Improved performance of internal Torrent lookup code. (#8505)
- Improved responsiveness when scrolling the torrent list with keyboard navigation. (#8323)
Qt Client
- Fixed a
4.1.0bug where the RPC error response arguments were not handled. (#8414) - Fixed a long-standing bug that wouldn't let
file:///URIs be added from the command line. (#8448) - Fixed broken icons in the torrent list on Windows. (#8456)
GTK Client
- Fixed a
4.1.0-beta.5assertion failure when fetching a blocklist failed on a system compiled withGLIBCXX_ASSERTIONSenabled. (#8273) - Fixed a
4.1.0bug that wouldn't let magnet links be added from the "Add URL" dialog. (#8277) - Fixed a
4.1.0bug that broke keyboard shortcuts when built with GTK3. (#8293) - Fixed a crash that could happen when removing some torrents. (#8340)
- Fixed a
4.1.0bug that showed the wrong encryption mode being shown in the Preferences dialog. (#8345) - Fixed a
4.0.xbug that prevented a handful of strings from being marked for translation. (#8350) - Fixed a
4.1.0packaging error that prevented the Qt and GTK clients from being installed side-by-side on Arch. (#8387) - Fixed a
4.1.0bug that wouldn't let magnet links be added from the command line. (#8415)
Web Client
- Reverted a
4.1.0change that merged the "Remove torrent" and "Trash torrent" confirmation dialogs into a single dialog. (#8355) - Fixed a
4.1.0bug that showed a "Connection failed" popup when opening the "Open torrent" dialog while the current download directory path was invalid. (#8386)
Everything Else
4.1.0
Transmission 4.1.0
This is Transmission 4.1.0. We've been working on this release for over
a year now, and we're excited to finally get it over the finish line!
What's New in 4.1.0
Highlights
- Improved µTP download performance. (#6508)
- Added support for IPv6 and dual-stack UDP trackers. (#6687)
- Support trackers that only support the old BEP-7 with
&ipv4=and&ipv6=. (#7481) - New JSON-RPC 2.0-compliant RPC API. (#7269)
- Added optional sequential downloading. (#4795)
- Use native icons for menus and toolbars: SF Symbols on macOS, Segoe Fluent on Windows 11, Segoe MDL2 on Windows 10, and XDG standard icon names everywhere else. (#7819, Qt Client)
- Fixed
4.0.6bug where Transmission might spam HTTP tracker announces. (#7086)
All Platforms
- Improved libtransmission code to use less CPU. (#4876, #5645, #5715, #5734, #5740, #5792, #6103, #6111, #6325, #6549, #6589, #6712, #7027, #7744, #7800)
- Avoid unnecessary heap memory allocations. (#5519, #5520, #5522, #5527, #5540, #5649, #5666, #5672, #5676, #5720, #5722, #5725, #5726, #5768, #5788, #5830, #6542)
- Slightly reduced latency when sending protocol messages to peers. (#5394)
- Added the option
preferred_transporttosettings.json, so that users can choose their preference between µTP and TCP. (#5939) - Return
X-Transmission-Rpc-Versionheader in RPC HTTP 409 response to indicate JSON-RPC support. (#7958) - Added an option to verify a torrent immediately after it finishes downloading. (#4178)
- Feat: add stats for known peers, not just connected ones. (#4900)
- Added support for using a proxy server for web connections. (#5038, #7486)
- Added ability to cache IP addresses used in global communications, and use it to fix UDP6 warning log spam. (#5329, #5510)
- Updated the torrent creator's default piece size to handle very large torrents better. (#5615)
- Added support for sending an
ipv4parameter during the Extension Protocol handshake. (#5643) - Setting
"cache-size-mb": 0insettings.jsonnow disables the disk write cache. (#5668) - Improved libtransmission code to use less CPU and RAM. (#5801)
- The WebUI now does separate port checks for IPv4 and IPv6. (#5953)
- Transmission now checks if local files exists after setting torrent location. (#5978)
- Added forced variant of the "Verify Local Data" context menu item to WebUI. (#5981)
- Improved handling of plaintext and MSE handshakes. (#6025)
- If a torrent contains empty (zero byte) files, create them when starting the torrent. (#6232)
- Added optional sequential downloading. (#6450, #6746, #6893, #7047)
- The Qt and GTK Client now does separate port checks for IPv4 and IPv6. (#6525)
- Improved DHT performance. (#6569, #6695)
- Added advanced
sleep-per-seconds-during-verifysetting tosettings.json. (#6572) - Improved µTP download performance. (#6586)
- Added support for IPv6 Local Peer Discovery. (#6700)
- Allow port forwarding state to automatically recover from error. (#6718)
- Save upload/download queue order between sessions. (#6753, #7332)
- Added BEP-21 downloader count to
tr_tracker_viewand RPC. (#6936) - Make client
reqqconfigurable. (#7030) - Daemon log timestamps are now in local ISO8601 format. (#7057)
- Log the reason when the RPC server rejects requests. (#7114)
- Added peer traffic statistics to
torrent-getrpc method. (#7172) - Added bytesCompleted field to torrent-get rpc call. (#7173)
- Deprecate
tcp-enabledandudp-enabledin favour ofpreferred_transports. (#7473) - Added raw PeerID to RPC interface. (#7514)
- IPv4 patterns in the RPC whitelist can now match with IPv4-mapped IPv6 addresses. (#7523)
torrent_get.wantedis now an array of booleans in the JSON-RPC API. (#7997)- Encryption mode in
settings.jsonand RPC are now serialized to the same set of strings. (#8032) - Fixed crash in
tr_peerMgrPeerStats(). (#5279) - Fixed "no such file or directory" warning when adding a magnet link. (#5426)
- Fixed bug that caused the wrong decimal separator to be used in some locales. (#5444)
- Fixed bug in sending torrent metadata to peers. (#5460)
- Fixed filename collision edge case when renaming files. (#5563)
- Fixed locale errors that broke number rounding when displaying statistics, e.g. upload / download ratios. (#5587)
- In RPC responses, change the default sort order of torrents to match Transmission 3.00. (#5604)
- Improved handling of multiple connections from the same IP address. (#5619)
- Always use a fixed-length key query in tracker announces. This isn't required by the spec, but some trackers rely on that fixed length because it's co...
4.1.0-beta.5
Transmission 4.1.0-beta.5
This is Transmission 4.1.0-beta.5. We're now in feature freeze for 4.1.0 -- testers and feedback are encouraged!
What's New in 4.1.0-beta.5
Highlights
- Fixed
4.1.0-beta.1bug where some downloads could get stuck for a long time. (#7899) - Fixed
4.1.0-beta.4bug that broke icons on Windows. (#7931) - Fixed
4.1.0-beta.4issue that included backwards-incompatible keys in the settings file. (#7917, #7918, #7932, #7995, #8002) - Return
X-Transmission-Rpc-Versionheader in RPC HTTP 409 response to indicate JSON-RPC support. (#7958)
All Platforms
- Fixed
4.1.0-beta.1bug where torrents with unaligned piece and block boundaries could get stuck at 99%. (#7944) - Fixed intermittent crashes on macOS and GTK app. (#7948)
- Reject incoming BT data if they are not selected for download. (#7866)
- Fixed minor 4.1.0 beta regression to honor the
sleep_per_seconds_during_verifysetting when verifying local data. (#7870) - Fixed remote RPC bug where querying
recently_activetorrents missed some torrents. (#8029) torrent_get.wantedis now an array of booleans in the JSON-RPC API. (#7997)- Encryption mode in
settings.jsonand RPC are now serialized to the same set of strings. (#8032) - Renamed setting to
cache_size_mibto reflect the correct size units. (#7971) - Renamed
peer_socket_tostopeer_socket_diffserv. (#8004) - Deprecated
session_get.rpc_versionandsession_get.rpc_version_minimumin favour ofsession_get.rpc_version_semverin RPC. (#8022)
macOS Client
- Fixed crash when opening the messages log. (#8035)
- Fixed re-opening the filter bar is showing an incorrect selected filter. (#7844)
- Removed menu icons on older Macs. (#7994)
Qt Client
- Fixed build script bug that could cause extra instances of Transmission to launch on Windows. (#7841)
- Fixed "sequence not ordered" assertion error in debug builds. (#8000)
- Fixed a Qt API deprecation warning when building with Qt >= 6.13. (#7940)
- Raised the minimum Qt5 version to 5.15. (#7943)
Daemon
- Deprecated
tcp-enabledandudp-enabledin favour ofpreferred_transports. (#7988)
transmission-remote
transmission-remote --blocklist-updatenow prints blocklist size after update. (#8021)- Fixed layout bug that caused columns to be misaligned when transfer speed was >= 10MB. (#8019)
- Deprecated
--(no-)utpin transmission-remote. (#7990)
Everything Else
- Updated documentation. (#8039)
Thank You!
Last but certainly not least, a big Thank You to these people who contributed to this release:
Contributions to All Platforms:
- @nevack (Dzmitry Neviadomski):
- Code review. (#7917)
- @reardonia (reardonia):
- Code review. (#7866)
- @tearfur (Yat Ho):
- Code review. (#7877, #7883, #7892, #7910, #7917, #7918, #7923, #7932, #7953, #7954, #7956, #7961, #7985, #8012)
- Reject incoming BT data if they are not selected for download. (#7866)
- Fixed minor 4.1.0 beta regression to honor the
sleep_per_seconds_during_verifysetting when verifying local data. (#7870) - Fix: FTBFS in C++20. (#7880)
- Perf: use iterator range insert in
Wishlist::next. (#7890) - Fixed
4.1.0-beta.1bug where some downloads could get stuck for a long time. (#7899) - Fix: only shrink wishlist block span if previous piece is wanted. (#7900)
- Fix: FTBFS with rapidjson 1.1.0 release on GCC < 12. (#7933)
- Fixed
4.1.0-beta.1bug where torrents with unaligned piece and block boundaries could get stuck at 99%. (#7944) - Fix: add client_has_piece check to recalculate_wanted_pieces. (#7945)
- Refactor: re-use
recalculate_wanted_pieceslogic in wishlist constructor. (#7946) - Fixed intermittent crashes on macOS and GTK app. (#7948)
- Refactor: use
api-compatforsettings.json. (#7950) - Return
X-Transmission-Rpc-Versionheader in RPC HTTP 409 response to indicate JSON-RPC support. (#7958) - Renamed setting to
cache_size_mibto reflect the correct size units. (#7971) - Refactor: use
apicompatforbandwidth-groups.json. (#7972) - Feat: generic support for optional fields in serializer. (#7979)
- Feat: sync the values of
preferred_transportsand*_enabled. (#7980) - Fixed
4.1.0-beta.4issue that included backwards-incompatible keys in the settings file. (#7995) torrent_get.wantedis now an array of booleans in the JSON-RPC API. (#7997)- Renamed
peer_socket_tostopeer_socket_diffserv. (#8004) - Fix: rpcimpl array size. (#8014)
- Fix: detect
is_torrentin rpc response too. (#8015) - Fix: discard any non-int tag when converting to tr4. (#8017)
- Fix: dedupe
Access-Control-Expose-Headersheader. (#8018) - Deprecated
session_get.rpc_versionandsession_get.rpc_version_minimumin favour ofsession_get.rpc_version_semverin RPC. (#8022) - Fixed remote RPC bug where querying
recently_activetorrents missed some torrents. (#8029) - Encryption mode in
settings.jsonand RPC are now serialized to the same set of strings. (#8032) - Fix: remove block from wishlist when received. (#8042)
- Fix: optional serializer edge cases. (#8044)
- Fix: wishlist edge case when got bad piece in unaligned torrents. (#8047)
- Fix: unconst variable to be moved. (#8048)
Contributions to macOS Client:
- @beyondcompute ([Evgeny Kulikov...
4.1.0-beta.4
Transmission 4.1.0-beta.4
This is Transmission 4.1.0-beta.4. We're not in feature freeze yet,
so this release includes some new features as well as bugfixes and
performance improvements.
What's New in 4.1.0-beta.4
Highlights
- Unify RPC and
settings.jsonstrings to snake_case, backwards compatible. (#7108) - New JSON-RPC 2.0-compliant RPC API. (#7269)
- Use native icons for menus and toolbars: SF Symbols on macOS, Segoe Fluent on Windows 11, Segoe MDL2 on Windows 10, and XDG standard icon names everywhere else. (#7819, Qt Client)
All Platforms
- Added an option to verify a torrent immediately after it finishes downloading. (#4178)
- Added BEP-21 downloader count to
tr_tracker_viewand RPC. (#6936) - Added peer traffic statistics to
torrent-getrpc method. (#7172) - Added bytesCompleted field to torrent-get rpc call. (#7173)
- Deprecate
tcp-enabledandudp-enabledin favour ofpreferred_transports. (#7473) - Added raw PeerID to RPC interface. (#7514)
- IPv4 patterns in the RPC whitelist can now match with IPv4-mapped IPv6 addresses. (#7523)
- Improved libtransmission code to use less CPU. (#7800)
- Support dual stack by manually creating and binding socket on Windows platform. (#6548)
- Generate imported targets for MbedTLS. (#7631)
- Added support for libevent 2.2.1-alpha-dev. (#7765)
- Bumped miniupnpc from 2.2.8 to 2.3.3. (#7783)
- Bumped
{fmt}to 12.1.0. (#7793)
macOS Client
- Fixed missing tooltips for Group rows in Torrent Table View. (#7828)
Qt Client
- Added the ability to use a custom URL path when connecting to remote Transmission servers. (#7561)
Web Client
- Implemented a context menu for file list in web app making way to rename or copy name of individual file. (#7389)
- Updated turtle for web app. (#6940)
- Added checkbox to delete data while removing torrents. (#7000)
- Gave labels to the mainwin buttons for web client. (#6985)
transmission-remote
- Added support to download sequentially from a specific piece. This can enable apps to seek within media files for streaming use cases. (#7808, #7809)
- Fixed
4.1.0-beta.1issue that displayed incorrect speeds when usingtransmission-remote -pi. (#7796)
Everything Else
- Apply Xcode 26.0 recommendations. (#7823)
- Updated documentation. (#7826, #7829, #7830, #7836, #7840)
Thank You!
Last but certainly not least, a big Thank You to these people who contributed to this release:
Contributions to All Platforms:
- @cdowen:
- @G-Ray (Geoffrey Bonneville):
- Feat: allow downloading sequentially from a specific piece. (#7502)
- @Ghost-chu (Ghost_chu):
- Code review. (#7172)
- @github-advanced-security[bot]:
- Code review. (#7514)
- @herbyuan:
- Support dual stack by manually creating and binding socket on Windows platform. (#6548)
- @killemov:
- Code review. (#7269)
- @nevack (Dzmitry Neviadomski):
- @reardonia (reardonia):
- @tearfur (Yat Ho):
- Code review. (#4178, #6548, #7172, #7173, #7502, #7514, #7743, #7785, #7797, #7799, #7800)
- Added BEP-21 downloader count to
tr_tracker_viewand RPC. (#6936) - Unify RPC and
settings.jsonstrings to snake_case, backwards compatible. (#7108) - New JSON-RPC 2.0-compliant RPC API. (#7269)
- Deprecate
tcp-enabledandudp-enabledin favour ofpreferred_transports. (#7473) - Fix: caching a source address doesn't imply public internet connectivity. (#7520)
- IPv4 patterns in the RPC whitelist can now match with IPv4-mapped IPv6 addresses. (#7523)
- Fix: don't bind udp sockets if no OS support. (#7552)
- Refactor: replace all
evutil_make_listen_socket_ipv6onlyusages. (#7779) - Refactor: torrent complete verify cleanup. (#7802)
- Refactor: overhaul
tr_addressspecial address checks. (#7818) - Refactor: store BT peers with
std::shared_ptr. (#7837) - Perf: short circuit reset_blocks_bitfield(). (#7838)
- @winterheart (Azamat H. Hackimov):
- Generate imported targets for MbedTLS. (#7631)
Contributions to macOS Client:
Contributions to Qt Client:
- @htmltiger:
- Added the ability to use a custom URL path when connecting to remote Transmission servers. ([#7561](http...
4.1.0-beta.3
Transmission 4.1.0-beta.3
This is Transmission 4.1.0-beta.3. We're not in feature freeze yet, so this release includes some new features as well as bugfixes and performance improvements.
What's New in 4.1.0-beta.3
All Platforms
- Added support for using a proxy server for web connections. (#7486)
- When downloading in sequential mode, flush pieces to disk as soon as they're completed and pass their checksum test. This helps apps that are trying to use the data in realtime, e.g. streaming media. (#7489)
- Respect the
min intervalandintervalkeys from any tracker responses. (#7493) - Announce port-forwarded peer port instead of local peer port on DHT. (#7511)
- Fixed
4.1.0-beta.1bug where UDP tracker announces were delayed for 10+ seconds on some systems. (#7634) - Fixed
4.1.0-beta.1bug where opening the Torrent Properties window while downloading would hang the Qt client. (#7638) - Fixed
4.1.0-beta.2bug that could crash when a peer's client name had invalid UTF-8. (#7667) - Improved libtransmission code to use less CPU. (#7744)
- Deprecated the RPC field
torrent-get.manualAnnounceTime. (#7497)
macOS Client
- Reimplemented QuickLook previews for torrent files with Quick Look preview extension API on macOS 12+. (#7213)
- Use modern macOS APIs to prevent idle system sleep and add support for Low Power Mode. (#7543)
- Updated app icon for Liquid Glass. (#7736)
Qt Client
- Use custom colored progress bars in Qt client for torrent states differentiation. (#7756)
Web Client
- Added new options for web client to filter torrents by their privacy or error status. (#6977)
- Added accept torrent files in web. (#7683)
- Fixed filtering torrents by tracker after a torrent's tracker list is edited. (#7761)
- Added waiting 1/4 seconds of typing in the search bar before executing and a new button to clear the search. (#6948)
- Updated viewport-sensitive layout and style to uniform across browsers of varying viewport. (#7328)
Daemon
- Use
Type=notify-reloadin the systemd service file. (#7570) - The daemon systemd service file now uses the CMake install prefix. (#7571)
transmission-remote
- Expose the
torrent-get.percentDonekey in transmission-remote. (#7622)
Everything Else
- Require CMake 3.16.3 or higher to build Transmission. (#7576)
- Configuring Transmission's CMake project no longer inserts third-party submodules to CMake's user package registry. (#7648)
- Sync translations. (#7768)
Thank You!
Last but certainly not least, a big Thank You to these people who contributed to this release:
Contributions to All Platforms:
- @flowerey (flower):
- Code review. (#7649)
- @G-Ray (Geoffrey Bonneville):
- When downloading in sequential mode, flush pieces to disk as soon as they're completed and pass their checksum test. This helps apps that are trying to use the data in realtime, e.g. streaming media. (#7489)
- @nevack (Dzmitry Neviadomski):
- @reardonia (reardonia):
- @tearfur (Yat Ho):
- Code review. (#7489, #7667, #7738)
- Feat: use canonical peer priority to decide which peers to keep. (#6981)
- Refactor: use new
tr_variantAPI forstats.json. (#7098) - Refactor: prioritise peers slots for downloading torrents. (#7306)
- Added support for using a proxy server for web connections. (#7486)
- Respect the
min intervalandintervalkeys from any tracker responses. (#7493) - Refactor: announcer code housekeeping. (#7496)
- Deprecated the RPC field
torrent-get.manualAnnounceTime. (#7497) - Feat: allow optional arguments in
tr_getopt(). (#7510) - Announce port-forwarded peer port instead of local peer port on DHT. (#7511)
- Fix: ignore whitespaces in whitelist. (#7522)
- Fix: correctly get Windows socket error codes in
get_source_address. (#7524) - Refactor: add more details to logs in ip cache. (#7525)
- Chore: bump libnatpmp. (#7536)
- Chore: bump rapidjson. (#7537)
- Chore: bump googletest. (#7538)
- Fix: Band-Aid fix for utp speed limit. (#7541)
- Refactor: removed redundant type check in
tr_ip_cache::set_global_addr(). (#7551) - Chore: bump libpsl. (#7575)
- Chore: bump dht. (#7577)
- Chore: bump libevent. (#7578)
- Fix: process failure response from a non-BEP-7 HTTP announcement. (#7580)
- Fix: accept either one of udp announce response. (#7583)
- Fix: load
.torrentthen.magnet. (#7585) - Chore: silence clang-tidy warnings. (#7586)
- Fix: remove duplicated mime types and prefer iana source. (#7590)
- Fixup! chore: move away from fmt/core.h (#7557). (#7595)
- Chore: bump {fmt} to 11.2.0 and fix compatibility. (#7612)
- Fix: include wolfssl library configurations header. (#7632)
- Fixed
4.1.0-beta.1bug where UDP tracker announces were delayed for 10+ seconds on some systems. (#7634) - Fixed
4.1.0-beta.1bug where opening the Torrent Properties window while downloading would hang the Qt client. (#7638) - Fix: FTBFS for libevent <= 2.1.8. (#7640)
- Chore: implement TR_CONSTEXPR23. (#7649)
- Build: conditionally compile
utils.mmusing generator expression. (#7704) - Fix: update wishlist when files wanted changed. ([#7733](http...
4.1.0-beta.2
Transmission 4.1.0-beta.2
This is Transmission 4.1.0-beta.2. We're not in feature freeze yet,
so this release includes some new features as well as bugfixes and
performance improvements.
What's New in 4.1.0-beta.2
Highlights
- Support trackers that only support the old BEP-7 with
&ipv4=and&ipv6=. (#7481)
All Platforms
- Added support for using a proxy server for web connections. (#5038)
- Added optional sequential downloading. (#6893, #7047)
- Disconnect blocklisted peers immediately upon blocklist update. (#7167)
- New files are assigned a file mode per the process umask defined in
settings.json. (#7195) - Harden the HTTP tracker response parser. (#7326)
- Fixed an issue where the speed limits are not effective below 16KiB/s. (#7339)
- Added workaround for crashes related to Curl bug 10936. (#7416)
- Added a workaround for users affected by Curl bug 6312. (#7447)
- Better utilize high Internet bandwidth. (#7029)
- Save upload/download queue order between sessions. (#7332)
macOS Client
- Fixed the context menu's appearance in compact mode. (#7350)
- Added Afrikaans and Greek translations. (#7477)
GTK Client
- Fixing a bug in adding torrent in GTK application. (#7247)
Web Client
- Added a new alert message of a problem when renaming torrent or file name. (#7394)
- Fixed a bug inflating per-torrent rows by long torrent names in compact view. (#7336)
- Fixed incorrect text entry sensitivity when sessions changed. (#7346)
- Added column mode for viewport unconstrained browsers. (#7051)
- Fixed an issue where Transmission web's custom context menu does not close when clicking on some outside element. (#7296)
- Implemented a new popup management system for web client to support multiple popups in a hierarchy-like system. (#7297)
Daemon
- Added optional sequential downloading. (#7048)
transmission-remote
- Improved error logging. (#7034)
Thank You!
Last but certainly not least, a big Thank You to these people who contributed to this release:
Contributions to All Platforms:
- @cdowen:
- Disconnect blocklisted peers immediately upon blocklist update. (#7167)
- @ile6695 (Ilkka Kallioniemi):
- Code review. (#7457)
- @jggimi (Josh Grosse):
- New files are assigned a file mode per the process umask defined in
settings.json. (#7195)
- New files are assigned a file mode per the process umask defined in
- @killemov:
- Code review. (#7047)
- @nevack (Dzmitry Neviadomski):
- @reardonia (reardonia):
- @tearfur (Yat Ho):
- Code review. (#5038, #6966, #6987, #7167, #7195, #7313, #7447, #7461, #7462, #7469, #7470, #7471)
- Refactor: store peers as benc in resume file. (#6892)
- Added optional sequential downloading. (#6893, #7047)
- Fix: abort handshake if the torrent is stopped. (#6947)
- Refactor: save outgoing
len(PadA),len(PadB)andlen(IA). (#6973) - Better utilize high Internet bandwidth. (#7029)
- Refactor: use new
tr_variantAPI for resume. (#7069) - Refactor: use evhttp public accessors in rpc server. (#7112)
- Fix: use message id to check for pex and metadata xfer support. (#7177)
- Feat: support the JSON
nulltype intr_variant. (#7255) - Fix: shadowed variable warning in
tr_torrentVerify(). (#7305) - Harden the HTTP tracker response parser. (#7326)
- Save upload/download queue order between sessions. (#7332)
- Fixed an issue where the speed limits are not effective below 16KiB/s. (#7339)
- Refactor: set peer io socket in constructor. (#7355)
- Chore: bump wide-integer. (#7383)
- Added workaround for crashes related to Curl bug 10936. (#7416)
- Experimental fix for frequent corrupt pieces and stuck progress. (#7443)
- Feat: warn about problematic curl versions. (#7457)
- Support trackers that only support the old BEP-7 with
&ipv4=and&ipv6=. (#7481) - Refactor: rename unreleased quarks to snake_case. (#7483)
- @Terentyev (Alexander Terentyev):
- Added support for using a proxy server for web connections. (#5038)
- @ThinkChaos:
- Code review. (#5038)
- @userwiths (Bark):
- Fix: Take into account only the private that is inside info. (#7313)
- @wegood9 (pathC):
- Added a workaround for users affected by Curl bug 6312. (#7447)
Contributions to macOS Client:
- @michalsrutek (Michal Šrůtek):
- Fixed MacStadium opensource URL. (#7289)
Contributions to Qt Client:
- @H5117:
- Qt: refactor Application. (#7092)
- @killemov:
- Code review. (#7092)
- @tearfur (Yat Ho):
- Code review. (#7479)
Contributions to GTK Client:
- @cloppingemu (cloppingemu):
- Fixing a bug in adding torrent in GTK application. ([#7247](https...
4.1.0-beta.1
Transmission 4.1.0-beta.1
This is the first beta for 4.1.0! It's been in development in parallel with the 4.0.x bugfix series since February 2023's release of 4.0.0 and has major code changes relative to 4.0.x.
What's New in 4.1.0-beta.1
Highlights
- Added optional sequential downloading. (#4795)
- Added the option
preferred-transporttosettings.json, so that users can choose their preference between µTP and TCP. (#5939) - Improved µTP download performance. (#6508)
- Added support for IPv6 and dual-stack UDP trackers. (#6687)
- Fixed
4.0.6bug where Transmission might spam HTTP tracker announces. (#7086)
All Platforms
- Added ability to cache IP addresses used in global communications, and use it to fix UDP6 warning log spam. (#5329, #5510)
- Added support for sending an
ipv4parameter during the Extension Protocol handshake. (#5643) - Setting
"cache-size-mb": 0insettings.jsonnow disables the disk write cache. (#5668) - Improved libtransmission code to use less CPU and RAM. (#5801)
- Transmission now checks if local files exists after setting torrent location. (#5978)
- Improved handling of plaintext and MSE handshakes. (#6025)
- If a torrent contains empty (zero byte) files, create them when starting the torrent. (#6232)
- Improved DHT performance. (#6569, #6695)
- Added advanced
sleep-per-seconds-during-verifysetting tosettings.json. (#6572) - Improved µTP download performance. (#6586)
- Added support for IPv6 Local Peer Discovery. (#6700)
- Allow port forwarding state to automatically recover from error. (#6718)
- Save upload/download queue order between sessions. (#6753)
- Make client
reqqconfigurable. (#7030) - Daemon log timestamps are now in local ISO8601 format. (#7057)
- Fixed crash in
tr_peerMgrPeerStats(). (#5279) - Fixed bug in sending torrent metadata to peers. (#5460)
- Avoid unnecessary heap memory allocations. (#5519, #5520, #5522, #5527, #5540, #5649, #5666, #5672, #5676, #5720, #5722, #5725, #5726, #5768, #5788, #5830)
- Fixed filename collision edge case when renaming files. (#5563)
- Fixed locale errors that broke number rounding when displaying statistics, e.g. upload / download ratios. (#5587)
- In RPC responses, change the default sort order of torrents to match Transmission 3.00. (#5604)
- Improved handling of multiple connections from the same IP address. (#5619)
- Always use a fixed-length key query in tracker announces. This isn't required by the spec, but some trackers rely on that fixed length because it's common practice by other BitTorrent clients. (#5652)
- Fixed minor performance bug that caused disk writes to be made in smaller batches than intended. (#5671)
- Fixed potential Windows crash when getstdhandle() returns
NULL. (#5675) - Modified LTEP to advertise PEX support more proactively, and added an sanity check for magnet metadata exchange. (#5783)
- Fixed
4.0.0bug where the port numbers in LPD announces are sometimes malformed. (#5825) - Fixed a bug that prevented editing the query part of a tracker URL. (#5871)
- Fixed a bug where Transmission may not announce LPD on its listening interface. (#5875)
- Fixed a bug that prevented editing trackers on magnet links. (#5957)
- Fixed HTTP tracker announces and scrapes sometimes failing after adding a torrent file by HTTPS URL. (#5969)
- Fixed blocklist error seen on some Synology devices due to a bug in
tr_sys_path_copy(). (#5974) - Run peerMgrPeerStats in session thread. (#5992)
- In some locales, some JSON stirngs were incorrectly escaped. (#6005)
- Fixed
1.60bug where low priority torrents behaved as if they had a normal priority. (#6079) - Fixed
4.0.4regression that could cause slower downloads when upload speed limits were enabled. (#6082) - Fixed
4.0.0bug where theIP addressfield in UDP announces were not encoded in network byte order. [BEP-15]. (#6126) - Improved parsing HTTP tracker announce response. (#6223)
- Fixed
4.0.0bugs where some RPC methods don't put torrents inrecently-activeanymore. (#6355, #6405) - Fixed error when using mbedtls crypto backend: "CTR_DRBG - The requested random buffer length is too big". (#6379)
- Fixed
4.0.0bug that caused some user scripts to have an invalidTR_TORRENT_TRACKERSenvironment variable. (#6434) - Added optional sequential downloading. (#6450, #6746)
- Fixed
4.0.0bug wherealt-speed-enabledhad no effect insettings.json. (#6483) - Fixed
4.0.0bug where the GTK client's "Use authentication" option was not saved between's sessions. (#6514) - Fixed
4.0.0bug wheresecondsDownloadingandsecondsSeedingwill be reset when stopping the torrent. (#6844) - Fixed
4.0.0bug where the filename for single-file torrents aren't sanitized. (#6846) - Partial file suffixes will now be updated after torrent verification. (#6871)
- Limit the number of bad pieces to accept from a webseed before banning it. (#6875)
- Fixed a
4.0.0bug where2.20-3.00torrent piece timestamps saved in the resume file aren't loaded correctly. (#6896) - Fixed a bug that could discard BT messages that immediately followed a handshake. (#6913)
- Various bug fixes and improvements related to PEX flags. (#6917)
- Fixed a bug where the turtle icon is active but not effective on starting Transmission. ([#6937](#6937...
4.0.6
Transmission 4.0.6
This is a bugfix-only release. Everyone's feedback on 4.0.x has been very helpful -- thanks for all the suggestions, bug reports, and pull requests!
What's New in 4.0.6
All Platforms
- Improved parsing HTTP tracker announce response. (#6223)
- Fixed
4.0.0bug that caused some user scripts to have an invalidTR_TORRENT_TRACKERSenvironment variable. (#6434) - Fixed
4.0.0bug wherealt-speed-enabledhad no effect insettings.json. (#6483) - Fixed
4.0.0bug where the GTK client's "Use authentication" option was not saved between's sessions. (#6514) - Fixed
4.0.0bug where the filename for single-file torrents aren't sanitized. (#6846)
macOS Client
- Fix: Sparkle support for handling beta version updates. (#5263)
- Fixed app unable to start when having many torrents and TimeMachine enabled. (#6523)
- Fix: Sparkle Version Comparator. (#6623)
Qt Client
- Fixed
4.0.0bug where piece size description text and slider state in torrent creation dialog are not always up-to-date. (#6516)
GTK Client
- Fixed build when compiling with GTKMM 4. (#6393)
- Added developer name to metainfo files. (#6598)
- Added the launchable desktop-id to metainfo files. (#6779)
- Fixed build when compiling on BSD. (#6812)
Web Client
- Fixed a
4.0.0bug where the infinite ratio symbol was displayed incorrectly in the WebUI. (#6491, #6500) - Fixed layout issue in speed display. (#6570)
- General UI improvement related to filterbar and fixes download/upload speed info wrap. (#6761)
Daemon
- Fixed a couple of logging issues. (#6463)
Everything Else
- Updated flatpak release metainfo. (#6357)
- Fixed libtransmission build on very old cmake versions. (#6418)
- UTP peer connections follow user-defined speed limits better now. (#6551)
- Only use a single concurrent queue for timeMachineExclude instead of one queue per torrent (#6523). (#6558)
- Fixed
4.0.5bug where svg and png icons in the WebUI might not be displayed. (#6563) - Fixed
4.0.0bug wherealt-speed-enabledhad no effect insettings.json. (#6564) - Fixed
4.0.0bugs where some RPC methods don't put torrents inrecently-activeanymore. (#6565) - Improved parsing HTTP tracker announce response. (#6567)
- Fixed compatibility with clang-format 18. (#6690)
- Fixed build when compiling with mbedtls 3.x . (#6823)
Thank You!
Last but certainly not least, a big Thank You to these people who contributed to this release:
Contributions to All Platforms:
- @tearfur (Yat Ho):
- Improved parsing HTTP tracker announce response. (#6223)
- Fix: add check for
EWOULDBLOCK. (#6350) - Fixed
4.0.0bug wherealt-speed-enabledhad no effect insettings.json. (#6483) - Fixed
4.0.0bug where the GTK client's "Use authentication" option was not saved between's sessions. (#6514) - Fixed
4.0.0bug where the filename for single-file torrents aren't sanitized. (#6846)
Contributions to macOS Client:
- @nevack (Dzmitry Neviadomski):
- @zorgiepoo (Zorg):
- Code review. (#5263)
Contributions to GTK Client:
- @brad0 (Brad Smith):
- Fixed build when compiling on BSD. (#6812)
- @wjt (Will Thompson):
Contributions to Web Client:
- @Rukario:
- General UI improvement related to filterbar and fixes download/upload speed info wrap. (#6761)
- @tearfur (Yat Ho):
- @tessus (Helmut K. C. Tessarek):
- Fixed layout issue in speed display. (#6570)
Contributions to Everything Else:
- @nevack (Dzmitry Neviadomski):
- Code review. (#6418)
- @orangepizza:
- Fixed build when compiling with mbedtls 3.x . (#6823)
- @tearfur (Yat Ho):
- UTP peer connections follow user-defined speed limits better now. (#6551)
- Fixed
4.0.5bug where svg and png icons in the WebUI might not be displayed. (#6563) - Fixed
4.0.0bug wherealt-speed-enabledhad no effect insettings.json. (#6564) - Fixed
4.0.0bugs where some RPC methods don't put torrents inrecently-activeanymore. (#6565) - Fix: add check for
EWOULDBLOCK(#6350). (#6566) - Improved parsing HTTP tracker announce response. (#6567)
- @wjt (Will Thompson):
- Updated flatpak release metainfo. (#6357)
4.0.5
Transmission 4.0.5
This is a bugfix-only release. Everyone's feedback on 4.0.x has been very helpful -- thanks for all the suggestions, bug reports, and pull requests!
What's New in 4.0.5
Highlights
- Fixed
4.0.0bug where theIP addressfield in UDP announces were not encoded in network byte order. [BEP-15]. (#6132) - Fixed a bug that incorrectly escaped JSON strings in some locales. (#6005, #6133)
- Fixed
4.0.4decreased download speeds for people who set a low upload bandwidth limit. (#6134)
All Platforms
- Fixed bug that prevented editing trackers on magnet links. (#5957)
- Fixed HTTP tracker announces and scrapes sometimes failing after adding a torrent file by HTTPS URL. (#5969)
- In RPC responses, change the default sort order of torrents to match Transmission 3.00. (#5604)
- Fixed
tr_sys_path_copy()behavior on some Synology Devices. (#5974)
macOS Client
- Support Sonoma when building from sources. (#6016, #6051)
- Fixed early truncation of long group names in groups list. (#6104)
Qt Client
- Fix: only append
.addedsuffix to watchdir files. (#5705)
GTK Client
Thank You!
Last but certainly not least, a big Thank You to these people who contributed to this release:
Contributions to All Platforms:
- @chantzish:
- Fixed bug that prevented editing trackers on magnet links. (#5957)
- @hgy59:
- @tearfur (Yat Ho):
- Code review. (#5974)
- Fixed HTTP tracker announces and scrapes sometimes failing after adding a torrent file by HTTPS URL. (#5969)
- Fixed a bug where Transmission is incorrectly escaping JSON strings in some locales. (#6005, #6133)
- Fixed
4.0.4decreased download speeds for people who set a low upload bandwidth limit. (#6082, #6134) - Fixed
4.0.0bug where theIP addressfield in UDP announces are not encoded in network byte order. [BEP-15]. (#6126, #6132) - Fix: formatting cmdline help message. (#6174)
Contributions to macOS Client:
- @nevack (Dzmitry Neviadomski):
- Code review. (#6104)
- @sweetppro (SweetPPro):
Contributions to GTK Client:
4.0.4
Transmission 4.0.4
This is a bugfix-only release. Everyone's feedback on 4.0.x has been very helpful -- thanks for all the suggestions, bug reports, and pull requests!
What's New in 4.0.4
All Platforms
- Fixed bug in sending torrent metadata to peers. (#5460)
- Avoid unnecessary heap memory allocations. (#5520, #5527)
- Fixed filename collision edge case when renaming files. (#5563)
- Fixed locale errors that broke number rounding when displaying statistics, e.g. upload / download ratios. (#5587)
- Always use a fixed-length key query in tracker announces. This isn't required by the spec, but some trackers rely on that fixed length because it's common practice by other BitTorrent clients. (#5652)
- Fixed potential Windows crash when getstdhandle() returns
NULL. (#5675) - Fixed
4.0.0bug where the port numbers in LDP announces are sometimes malformed. (#5825) - Fixed a bug that prevented editing the query part of a tracker URL. (#5871)
- Fixed a bug where Transmission may not announce LPD on its listening interface. (#5896)
- Made small performance improvements in libtransmission. (#5715)
macOS Client
- Updated code that had been using deprecated API. (#5633)
Qt Client
- Fixed torrent name rendering when showing magnet links in compact view. (#5491)
- Fixed bug that broke the "Move torrent file to trash" setting. (#5505)
- Fixed Qt 6.4 deprecation warning. (#5552)
- Fixed poor resolution of Qt application icon. (#5570)
GTK Client
- Fixed missing 'Remove torrent' tooltip. (#5777)
Web Client
- Don't show
nullas a tier name in the inspector's tier list. (#5462) - Fixed truncated play / pause icons. (#5771)
- Fixed overflow when rendering peer lists and made speed indicators honor
prefers-color-schememedia queries. (#5814) - Made the main menu accessible even on smaller displays. (#5827)
transmission-cli
- Fixed "no such file or directory" warning when adding a magnet link. (#5426)
- Fixed bug that caused the wrong decimal separator to be used in some locales. (#5444)
transmission-remote
- Fixed display bug that failed to show some torrent labels. (#5572)
Everything Else
- Ran all PNG files through lossless compressors to make them smaller. (#5586)
- Fixed potential build issue when compiling on macOS with gcc. (#5632)
Thank You!
Last but certainly not least, a big Thank You to these people who contributed to this release:
Contributions to All Platforms:
- @basilefff (Василий Чай):
- Fixed filename collision edge case when renaming files. (#5563)
- @G-Ray (Geoffrey Bonneville):
- Fixed potential Windows crash when getstdhandle() returns
NULL. (#5675)
- Fixed potential Windows crash when getstdhandle() returns
- @GaryElshaw (Gary Elshaw):
- Typos in libtransmission source code comments. (#5473)
- @KyleSanderson (Kyle Sanderson):
- Fixed uninitialized session_id_t values. (#5396)
- @qzydustin (Zhenyu Qi):
- Fixed a bug that prevented editing the query part of a tracker URL. (#5871)
- @tearfur (Yat Ho):
- Code review. (#5871, #5896)
- Always use a fixed-length key query in tracker announces. This isn't required by the spec, but some trackers rely on that fixed length because it's common practice by other BitTorrent clients. (#5652)
- Refactor: share
CompareCacheBlockByKeyby constexpr static member. (#5678) - Perf: convert comparator functors to static constexpr. (#5687)
- Perf: reduce copying in
enforceSwarmPeerLimit(). (#5731) - Fix: clamp down harder for upload as well. (#5821)
- Fixed
4.0.0bug where the port numbers in LDP announces are sometimes malformed. (#5825)
Contributions to macOS Client:
- @i0ntempest (Zhenfu Shi):
- Fix: wrong case in AppKit.h. (#5456)
- @nevack (Dzmitry Neviadomski):
Contributions to Qt Client:
- @dmantipov (Dmitry Antipov):
- Fixed Qt 6.4 deprecation warning. (#5552)
- @GaryElshaw (Gary Elshaw):
- Fixed poor resolution of Qt application icon. (#5570)
- @sfan5:
- Code review. (#5505)
Contributions to GTK Client:
- @GaryElshaw (Gary Elshaw):
- Fixed missing 'Remove torrent' tooltip. (#5777)
Contributions to Web Client:
- @dareiff (Derek Reiff):
- Fixed overflow when rendering peer lists and made speed indicators honor
prefers-color-schememedia queries. (#5814)
- Fixed overflow when rendering peer lists and made speed indicators honor
- @GaryElshaw (Gary Elshaw):
- Fixed truncated play / pause icons. (#5771)
- @Rukario:
- Made the main menu accessible even on smaller displays. (#5827)
Contributions to transmission-remote:
- @rsekman (Robin Seth Ekman):
- Fixed display bug that failed to show some torrent labels. (#5572)
Contributions to Everything Else:
- @barracuda156 (Sergey Fedorov):
- Code review. (#5632)
- @GaryElshaw (Gary Elshaw):
- Typos in libtransmission tests source code comments. (#5468)
- @JonatanWick (Jonatan):
- Docs: update translation site names. (#5481)
- @nevack (Dzmitry Neviadomski):
- Code review. (#5632)
- @PHLAK (Chris Kankiewicz):