CC @rakshasa
I'm happy to submit a patch for this, but first I wanted to check which solution you would prefer.
We set CURL_IPRESOLVE_WHATEVER which doesn't specify a protocol. On a dual stack system with both IPv4 and IPv6, curl will generally prefer IPv6 these days. We also mark the connection as IPv4 without checking what we got.;
curl_easy_setopt(m_handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER);
curl_easy_setopt(m_handle, CURLOPT_ENCODING, "");
m_ipv6 = false;
We retry connections marked as IPv4 with IPv6.
if (!(*itr)->is_using_ipv6()) {
(*itr)->retry_ipv6();
Retry does correctly force IPv6.
curl_easy_setopt(nhandle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
This results in a situation where on a dual stack system (getting more popular), rtorrent will sometimes announce on IPv6, fail and retry IPv6 again. Meaning that it never properly tries IPv4.
As for solutions, we could:
CURL_IPRESOLVE_WHATEVER
with CURL_IPRESOLVE_V4
, which will make it behave how the logic seems to intend, attempting IPv4 then falling back to IPv6.retry_ipv6()
with retry_ipv4()
on failure.CURL_IPRESOLVE_WHATEVER
and have curl let us know which protocol it chose. We could try the other one and not force an attempt order. Unfortunately I'm not aware of any way to check this from within the curl API.The first solution is probably more compatible with things as they exist right now, since it's more likely for something to be IPv4 only than IPv6 only.
The second solution is much more future-proof, getting us ready for a world where eventually most people are IPv6.
I think my personal preference is towards the second solution, better to design for the future than the past in my opinion, but I would value your input.
Optimization
Fix checking empty constant arrays in array_pop and array_shift extensions
test null/false standalone types
Fix array_filter result for non-trivial callbacks
Improve type inference for coalesce
Improve JUnit error formatter
Resolves phpstan/phpstan#6772
If AnalysisResult
has no errors, mark <testsuite>
as having 1 test in order to be considered as having passed.
Implement template type inference from conditional return type
added regression test for phpstan/phpstan#7562
Optimize ConstantArrayType::isKeysSupersetOf()
Remove outdated comments
ignoreErrors: multiple messages in and explixit reportUnmatched
Enums cannot implement Serializable
Fix assigning generic object without a constructor (like SplObjectStorage) to a nullable property
Accept ::class as literal string
ConditionalTagsExtension: Multiple conditions support
more precise $argc, $argv global var type
Change curl_setopt function signature based on 2nd arg
simplify ArrayFilterArgVisitor
gnupg::geterror can return false
The signature in the documentation code says it returns string, but the Return Values (correctly) indicates that it returns string or false on failure.
More gpg changes
There were several other signature mismatches, including a couple missing functions.
Using Efficient-Compression-Tool we can compless the PNG images without changing the visual appearance.
Save ~3 MB
I've done a playthrough after optimizing the images and saw no visual change.
I (mistakenly) assumed flags would remain relatively constant, countries don't change them very often and historical nation flags will never change.
For the SVG -> PNG process, I feel like the Efficient-Compression-Tool I used in this pull request is not viable. It's slow, and not bundled on most distributions.
optipng is probably a viable compression step for flag generation, it's much faster and widely available.
pts-core: Add Gentoo dependency hint for google-bechmark
Using Efficient-Compression-Tool we can compless the PNG images without changing the visual appearance.
Save 3.68 MB (14.7% of PNG bytes on average)
I've done a playthrough after optimizing the images and saw no visual change.
Losslessly optimize PNG images
Using Efficient-Compression-Tool we can compless the PNG images without changing the visual appearance.
Save 3.68 MB (14.7% of PNG size)
Losslessly compress PNG images
Using Efficient-Compression-Tool, we managed to reduge image sizes by 9.13KB out of 241.88KB (3.7741%) without changing visual appearence.
It's a small improvement, but we get something for nothing and that's nice.
Using Efficient-Compression-Tool, we managed to reduge image sizes by 1.82MB out of 4.39MB (41.3156%) without changing visual appearence.
Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.
Losslessly compress PNG images
Using Efficient-Compression-Tool, we managed to reduge image sizes by 1.82MB out of 4.39MB (41.3156%) without changing visual appearence.
Using Efficient-Compression-Tool, we managed to reduge image sizes by 9.13KB out of 241.88KB (3.7741%) without changing visual appearence.
It's a small improvement, but we get something for nothing and that's nice.
Losslessly compress PNG images
Using Efficient-Compression-Tool, we managed to reduge image sizes by 9.13KB out of 241.88KB (3.7741%) without changing visual appearence.
It's a small improvement, but we get something for nothing and that's nice.
[Build] Add missing setuptools to requirements
Although likely to already be installed this is a runtime requirement for Deluge
[CI] Improve packaging workflow
Include arch in artifacts so they can be downloaded separately
Added libtorrent 2.0 to matrix since users often request latest libtorrent.
Renamed workflow to make it's purpose clearer
[GTK] Added a torrent menu option for magnet copy
this will lined-up with the WebUI, which already have this option. in addition, it will not open the Add Torrent URL dialog after copied, which happens automatically when there is torrent/magnet URIs in the clipboard.
Closes: deluge-torrent/deluge#328 Closes: https://dev.deluge-torrent.org/ticket/3489
[Core] Add pygeoip dependency support
Provide support for the pure-python pygeoip as compiled GeoIP is not always available.
Ref: https://dev.deluge-torrent.org/ticket/3271
[CI] Specify github windows server version
To ensure builds don't break avoid using windows-latest
Refs: https://github.com/actions/virtual-environments/issues/4856
[Packaging] Disable GTK CSD by default on Windows
CirnoT reported how they felt that GTK3 is not reliable on Windows. Seeing some weird issues where clicking Deluge icon on taskbar does bring window to front but doing so again does not minimize it as one would expect. By using GTK_CSD=0 this would reduce these problems.
If changed to 0, this disables the default use of client-side decorations on GTK windows, thus making the window manager responsible for drawing the decorations of windows that do not have a custom titlebar widget.
This can be overridden by a global env var.
Ref: https://github.com/deluge-torrent/deluge/pull/331#issuecomment-1012311605 Ref: https://docs.gtk.org/gtk3/running.html
[GTK UI]About Dialog Update year
[CI] Cleanup packaging dependencies
[CI] Fix package job not running with PR label
The job would only run when the PR was labeled since
github.event.label.name
only available when labeled
type event
recieved
[CI] Add pygame to windows package build/spec file
pygame is required by notification plugin for sounds
[Common] Replace distro.linux_distribution function
As of distro (1.6.0)[1], this function is marked as deprecated. Instead, we will use the underlying functions directly, as explained in the (docs)[2].
[1] https://github.com/python-distro/distro/issues/263#issuecomment-927098357 [2] https://distro.readthedocs.io/en/latest/#distro.linux_distribution
Closes: https://github.com/deluge-torrent/deluge/pull/345
[Packaging] Simplify PyInstaller spec file
This makes the process of editing the file much more pleasant and removes duplicate code.
Fixed collecting twisted package which brings both build speed improvements but also decreases package size, as it stops PyInstaller from bundling tests (actually, some tests might even execute during import and break build if they're designed to throw!) used by PyInstaller
Closes: https://github.com/deluge-torrent/deluge/pull/342
[GTK] Hide account password length in log
We should not let anyone know the account's password length, as it can help to crack it. Instead, we will print a constant amount (10) of asterisks.
Closes: https://github.com/deluge-torrent/deluge/pull/346
[Core] Return plugin keys with get_torrents_status
When requesting all keys, get_torrents_status was missing plugin added keys This commit brings the behavior in line with get_torrent_status, and deluge 1.3
Closes: https://dev.deluge-torrent.org/ticket/3357 Closes: https://github.com/deluge-torrent/deluge/pull/347
Fix crash when logging errors initializing gettext
[Tests] Fix maketorrent test on Windows
[Tests] Enable metafile test on Windows
[Tests] Fix erroneous windows line endings in test state file
[Tests] Enable unicode path test on Windows
[Tests] Make failure message more clear when test daemon doesn't shut down cleanly
eslint cleanup, modernization and re-check on network reconnect
eslint cleanup, modernization and re-check on network reconnect
eslint cleanup, modernization and re-check on network reconnect
eslint cleanup, modernization and re-check on network reconnect
Skip CPU checks if network is offline (eg waiting for wi-fi to reconnect)
It seems my changes are causing a problem with the pytest-cov
dependency I already mentioned.
I will await developer input on how we should proceed.
Version bump, python 3.11 compatibility.
One observation I didn't fix: USE="test"
pulls in python code coverage tools which doesn't make any sense. Test mode is for finding unit test failures caused by dependencies, not to assess code coverage, which doesn't concern us as packagers.
dev-libs/yaz: Stabilize 5.32.0 x86, #886713
Signed-off-by: Sam James sam@gentoo.org
net-libs/loudmouth: Stabilize 1.5.4 sparc, #886765
Signed-off-by: Sam James sam@gentoo.org
dev-util/cunit: Stabilize 2.1_p3-r1 ppc, #886721
Signed-off-by: Sam James sam@gentoo.org
x11-apps/luit: Stabilize 20221028 x86, #886807
Signed-off-by: Sam James sam@gentoo.org
x11-terms/xterm: Stabilize 376 sparc, #886825
Signed-off-by: Sam James sam@gentoo.org
dev-lang/orc: Stabilize 0.4.32 arm64, #886973
Signed-off-by: Sam James sam@gentoo.org
app-forensics/libewf: Stabilize 20171104-r2 x86, #886671
Signed-off-by: Sam James sam@gentoo.org
sci-astronomy/celestia: drop 9999, out of sync with release ebuild
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
profiles: x86: Mask sci-physics/geant[vtk] while dependency not stable
Bug: https://bugs.gentoo.org/886975
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
dev-ruby/racc: Stabilize 1.6.0 hppa, #884107
Signed-off-by: Sam James sam@gentoo.org
app-admin/radmind: Stabilize 1.15.4-r1 x86, #886649
Signed-off-by: Sam James sam@gentoo.org
app-cdr/extract-xiso: Stabilize 2.7.1_p202204252159 ppc, #886659
Signed-off-by: Sam James sam@gentoo.org
app-cdr/extract-xiso: Stabilize 2.7.1_p202204252159 x86, #886659
Signed-off-by: Sam James sam@gentoo.org
app-dicts/eblook: Stabilize 1.6.1_p16 x86, #886661
Signed-off-by: Sam James sam@gentoo.org
app-office/homebank: Stabilize 5.5.4 ppc, #886675
Signed-off-by: Sam James sam@gentoo.org
dev-libs/libofx: Stabilize 0.10.9 ppc64, #886709
Signed-off-by: Sam James sam@gentoo.org
dev-util/bcpp: Stabilize 20221002 ppc, #886719
Signed-off-by: Sam James sam@gentoo.org
media-gfx/igal: Stabilize 3.1 ppc, #886729
Signed-off-by: Sam James sam@gentoo.org
media-gfx/igal: Stabilize 3.1 x86, #886729
Signed-off-by: Sam James sam@gentoo.org
mail-filter/maildrop: Stabilize 3.0.2 ppc64, #886737
Signed-off-by: Sam James sam@gentoo.org
kde-apps/libktnef: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/mailcommon: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/mailimporter: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/mbox-importer: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/messagelib: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/pim-data-exporter: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/pim-sieve-editor: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/pimcommon: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-misc/zanshin: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
dev-util/kdevelop: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
dev-util/kdevelop-php: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
dev-util/kdevelop-python: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
dev-util/kio-perldoc: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/cervisia: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/dolphin-plugins-git: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/dolphin-plugins-mercurial: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/dolphin-plugins-subversion: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/kapptemplate: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/kcachegrind: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
kde-apps/kde-dev-scripts: 22.12.0 version bump
Signed-off-by: Andreas Sturmlechner asturm@gentoo.org
Amended to add PHP 8.2 support