* Generate imported targets for MbedTLS
This change allows to use MbedTLS 3.6 config module without significant
code alteration which simplifies integration with future versions of
MbedTLS.
Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
* Update MBEDTLS_MINIMUM to 2.7
Code expects API from MbedTLS 2.x or later.
Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
---------
Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
* chore: update minor versions
* chore: bump to `style-loader@4`
major version change
* refactor: combine `#mainwin-toolbar:nth-last-child(2)` rule
* refactor: cleanup scss definitions
Notes: `.single-file` is no longer used in code
* chore: bump `esbuild-sass-plugin@3` `esbuild@0.25`
* chore: uninstall unused `stylelint-config-standard`
In fact, it was never used since added to `package.json`.
* chore: bump `stylelint@16` `stylelint-config-sass-guidelines@12`
* chore: bump `eslint@9` `eslint-plugin-sonarjs@1` `eslint-plugin-unicorn@61`
* chore: enable prettier for whole `transmission-web` package
* chore: bump `@primer/stylelint-config@13`
* chore: update minor versions
* build: remove lint config files from CMake dependency
* chore: bump minor versions
* chore: bump `eslint-plugin-sonarjs@3`
* ci: use `actions/setup-node@v4` to install Node.js
So that there's no risk of the OS package manager's Node.js version being too low.
Except in Alpine, which does not work with `actions/setup-node@v4`. Ref: https://github.com/actions/setup-node/issues/387
* chore: replace `lodash.isEqual` with `fast-deep-equal`
* chore: bump minor versions
* chore: re-generate package-lock.json
* chore: fix lint errors
* fix: operator== should return bool in tr_strbuf
Fixes build error with C++20/C++23
error: return type 'auto' of selected 'operator==' function for rewritten '!=' comparison is not 'bool'
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: explicitly specify Blocklist::size() return type as size_t
Fixes building with C++20/C++23
error: no matching function for call to 'size'
function 'size' with deduced return type cannot be used before it is defined
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: wrap runtime format strings with fmt::runtime in library, daemon and cli
fmt::format_string ctor is consteval with C++20
See https://github.com/fmtlib/fmt/issues/2438
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: wrap runtime format strings with fmt::runtime for GTK client
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: allow to override C and CXX standard via cmdline or env
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: add job to check if transmission compiles with C++23
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* Address code review by mikedld
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix new found fmt build errors
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* Address code review by tearfur
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: make tr_net_init_mgr singleton buildable with C++23
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
---------
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* ci: bump debian image from 11 to 12
debian 11 has npm 7.5.2, which is lower than our minimum required version 8.0.307.
* build: find `npm.cmd` on Windows
* chore: trigger CI
* Revert "chore: trigger CI"
This reverts commit adc8f4ec981c94c4eab3c1499ea0c555f554a1d2.
* Revert "ci: bump debian image from 11 to 12"
This reverts commit 4730d350b3789ec8ab750ff57e713a59c3389831.
* ci: use `actions/setup-node` in debian 11
* ci: don't test `REBUILD_WEB` if only `libtransmission` changed
* ci: don't test `REBUILD_WEB` if only `third-party` changed
* Create a new shared location for icons and update qt scripts to package public icons
* Move the Faenza.qrc back to original location
* Revert "Move the Faenza.qrc back to original location"
This reverts commit 963e099d65.
* Replace Faenza to its original location
* Remove attribution for an image that does not exist
* fix: Sparkle Version Comparator
* Code review: Reducing CFBundleVersion to three components and avoiding versionComparatorForUpdater
* adding +99 when it's a non-beta release
* code review: set CFBUNDLE_VERSION and unset components
* re-adding support for ignoring beta
* refactor: add miniupnp 2.3.0 as a submodule
* refactor: remove miniupnpc submodule
* deps: specify the 2.3.0 branch
* build: point to miniupnp monorepo subdirectory miniupnpc
* Fix building miniupnp from Xcode
* fixed miniupnp updateminiupnpcstrings.sh usage
* updating to miniupnpc 2.2.6
* fix build for Windows
* code review: removing the header move
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: fix CGFloat comparison warnings in macOS code.
There are 2 cases:
1. Speed comparisons.
The lowest significant value displayed in UI is 0.1 bytes per sec.
See [NSString stringForSpeed] and [NSString stringForSpeedCompact].
2. Ratio limit comparison.
The lowest significant value displayed in UI is 0.01 (no unit).
This is based on maximumFractionDigits=2 set in related XIB file.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: fix warning about shadowed variable
CGFloat const difference was used twice in the same scope
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: fix unused block parameter warnings
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable GCC_WARN_64_TO_32_BIT_CONVERSION for libtransmission
This warnings are not reported with CMake build.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable CLANG_WARN_STRICT_PROTOTYPES for dht
This is third party target, warning is not enabled with CMake build.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable '-Wexit-time-destructors' warning with CMake.
There are two cases when this is reported in libtransmission:
1. `log_state` in anonymous namespace in `log.cc`.
2. static inline `dh_pool_mutex` in `tr_handshake` in `handshake.h`.
I don't see how this may be improved or how this affects correctness,
so don't nag about that.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
---------
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* android patches for ndk
* Update libtransmission/file-capacity.cc
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* TrMacros: Move common & android vars
* Build android in CI
* Use vcpkg packages for curl & openssl
* Update CI for android
* Fix ndkVersion used with gradle
* Restore actions triggers events
* CMakeLists: Remove cond where curl is not found
* Use vcpkg tag instead of commit hash
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* TrMacros.cmake: clean unused variables & add vcpkg cond
* Remove quotes around VcpkgAndroid inclusion
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* actions: split steps to install vcpkg packages
* Build for android arm64
* actions: add make-android condition
* Revert "Use vcpkg tag instead of commit hash"
This reverts commit 65819026b1.
* build.gradle: use cmake version 3.22.1
* actions: use vcpkg 2024.01.12
* actions: Add ninja-build dependency
---------
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* Prefer `PROJECT_{SOURCE,BINARY}_DIR` to `CMAKE_` ones
* Extend use of 3rd-party dir vars to reduce duplication
* Fix typo in submodule repo name
* Remove `CURL::libcurl` target fallback
The target is always available since CMake 3.12, which is our current
minimum version.
* Add compat operator* for RefPtr
* Rename `*_tree_view_*` button handling helpers to `*_item_view_*`
* Move torrent item colors to CSS
* Switch to list view for torrents list (GTK 4)
* Bump Fedora image to 39 (current rawhide) for GTK 4.11
Enable deprecations as there're lots of them in 4.11 and I'm not keen on
fixing them all right now. Disable warnings as errors due to
-Warray-bounds issue somewhere in libfmt.
MSVC by default decodes source files in the current Windows code page if
they don't have a Unicode BOM, and also encodes strings and chars into
the current code page before storing them into the compiled binary. Our
files are always encoded in UTF-8, and our code always assumes runtime
strings are encoded in UTF-8, so we should pass the `/utf-8` flag to
MSVC.
Microsoft Docs:
https://learn.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8