Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to 4.3.0 not possible - rutorrent breaks #345

Closed
1 of 3 tasks
dstyp opened this issue May 15, 2024 · 5 comments
Closed
1 of 3 tasks

Update to 4.3.0 not possible - rutorrent breaks #345

dstyp opened this issue May 15, 2024 · 5 comments

Comments

@dstyp
Copy link

dstyp commented May 15, 2024

Support guidelines

I've found a bug and checked that ...

  • ... the documentation does not mention anything about my problem
  • ... there are no open or closed issues that are related to my problem

Description

Wanted to update to 4.3.0 but it breaks. Had to revert and am now using image: crazymax/rtorrent-rutorrent:4.2.9-0.9.8_2-0.13.8_2
in compose.yml.

Expected behaviour

Rutorrent to work

Actual behaviour

Many error messages, I have a screen shot

[15.05.2024 21:59:06] WebUl started.
[15.05.2024 21:59:07]JS error: [http://192.168.1.100:8080/: 3015] Uncaught ReferenceError: injectCustomElementCSS is not defined
[15.05.2024 21:59:071 Bad response from server: (404 [error,listl) < html> < title >404 Not Found</title> ‹center>

404 Not Found


nginx
page -->
Screenshot 2024-05-15 at 21 59 30

Steps to reproduce

1 set compose.yml to latest
2 pull & start
3 doesnt work

Docker info

Client: Docker Engine - Community
 Version:    26.1.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.0
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.26.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 8
  Running: 6
  Paused: 0
  Stopped: 2
 Images: 99
 Server Version: 26.1.0
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: e377cd56a71523140ca6ae87e30244719194a521
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.1.0-20-amd64
 Operating System: Debian GNU/Linux 12 (bookworm)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 31.2GiB
 Name: dsrvxxii
 ID: 30913477-cafc-44ba-86d0-1eafd7a92d18
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Docker Compose config

No response

Logs

will have to get back on this

Additional info

No response

@SnorreSelmer
Copy link

Yep, having the exact same issue here. latest fails to work with a 404, 4.2.9-0.9.8_2-0.13.8_2 works fine

@stickz
Copy link
Contributor

stickz commented May 17, 2024

Hello @dstyp @SnorreSelmer There are two steps required to upgrade to latest.

  1. Clear your web browser cache.
  2. Set RU_REMOVE_CORE_PLUGINS environment variable to false. The 404 error is caused by removing the httprpc plugin from the previous version of the docker container. This is now required for ruTorrent v4.3.0, as we dropped support for rpc.

Please do not hesitate to ask, if you have any further questions about this version upgrade. There are very significant and impactful changes to the docker container. It highly recommended to invest 15 minutes of your time into upgrading.

@crazy-max
Copy link
Owner

Set RU_REMOVE_CORE_PLUGINS environment variable to false.

@stickz Let me know if we should add this to the changelog or feel to open a PR 👍

stickz added a commit to stickz/docker-rtorrent-rutorrent that referenced this issue May 17, 2024
Users are receiving 404 errors during version upgrades. We need to disallow removing the httprpc plugin because it's required for ruTorrent v4.3+ operation. See crazy-max#345.
@stickz
Copy link
Contributor

stickz commented May 17, 2024

@dstyp @SnorreSelmer Please pull the latest ruTorrent v4.3.1 docker image @crazy-max just tagged. This will automatically resolve your problem. You'll receive a warning instead and ruTorrent v4.3.1 will load successfully.

@dstyp
Copy link
Author

dstyp commented May 18, 2024

@stickz @crazy-max great stuff just in time for the weekend. Thank you for the efforts! 🙏⭐️

Cryptik-Rick added a commit to Cryptik-Rick/docker-rtorrent-rutorrent that referenced this issue Jun 9, 2024
* cleanup workflow

* Bump action to latest major

* readme: fix badge and typo

* readme: update about section

* Alpine Linux 3.17

Also update to PHP 8.1 and Nginx 1.22.1.

GeoIP2 extension has been updated to 1.3.1 from a fork for
compat with PHP 8.1.

Created a fork of xmlrpc-c on GitHub to fix issues with SVN
checkout from Sourceforge.

* Set  S6_KILL_GRACETIME to 10 seconds (crazy-max#171)

* Align xmlrpc-c version

* ci: increase timeout

* Update CHANGELOG

* Configure xml-rpc correctly

`xmlrpc-c` is not configured properly. It will cause a very significant performance regression, if the `wininet` and `libwww` clients are not disabled. We want `xmlrpc-c` to use `curl` because it's razor fast and stable. These changes require testing before being merged. I don't have time to test it. The change value is of high importance.

* Install nginx and webdav module from Alpine repo

* New year

* Update CHANGELOG

* Make rtorrent and libtorrent with -O2 -flto

rTorrent, libTorrent and xmlrpc support link time optimizations. It's safe to do this. Make rTorrent and libTorrent with Level 2 optimizations. (default is no optimization)

* Bump php version

Needed to bump php7 to php81 to match the installed version, so rutorrent plugins can initiatlise properly.

* Update CHANGELOG

* Fix nginx logs folder perms

* ruTorrent v4.0-stable

* Update GeoIP2 ruTorrent plugin

* Update CHANGELOG

* ruTorrent V4.0.1-hotfix

* Update CHANGELOG

* feat(rutorrent): sets `$localHostedMode = true` (crazy-max#215)

* Update CHANGELOG

* ruTorrent v4.0.2-hotfix 

Bumps ruTorrent version to 4.0.2-hotfix for additional stability improvements.

* Set $cachedPluginLoading to false

* Update CHANGELOG

* Improve watch directory support

Use inotify event instead of task schedule to check watch directory.
https://man7.org/linux/man-pages/man7/inotify.7.html

* Remove erase data workaround

This workaround is no longer desirable, as discussed here:
crazy-max#225 (comment)

closes crazy-max#203
closes crazy-max#225

* Fix RU_REMOVE_CORE_PLUGINS defaults

Remove erasedata from defaults. Set to `false` to disable
removal of core ruTorrent plugins.

* ruTorrent v4.0.4

* RU_CACHED_PLUGIN_LOADING env var (default false)

* Update CHANGELOG

* Bump docker/bake-action from 2 to 3

Bumps [docker/bake-action](https://github.com/docker/bake-action) from 2 to 3.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](docker/bake-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* ruTorrent: version 4.1.2 stable

This commit bumps ruTorrent to version 4.1.2 stable. Critical bugs are resolved, which cause the web interface to fail to load. It is backwards compatible with other settings in version 4.0.4 stable. https://github.com/Novik/ruTorrent/releases/tag/v4.1.2

* ruTorrent: version 4.1.3 stable

This commit fixes an issue with the RSS context menu not displaying when the `rssurlrewrite` plugin is enabled.
https://github.com/Novik/ruTorrent/releases/tag/v4.1.3

* Update CHANGELOG

* Install php81-dom for ruTorrent v4.1

The `php81-dom` extension is required for ruTorrent v4.1 to function properly. Novik/ruTorrent#2500

`v4.1.3` throws an error when trying to update RSS Feeds. `v4.1.4` will be released next and fix this issue. However, it's still highly recommended to include this extension for optimization. See crazy-max#236. It wasn't enough to just include `php81-xml`. Alpine puts the DOM module into a separate package.

* ruTorrent: Upgrade to version 4.1.5

Fixes a bunch of bugs with RSS Feeds, torrent deletion and caching issues. Cache expiry removed in version 4.1.4. Deprecated options removed from configuration.

* Curl: Add building optimizations

Compile curl and c-ares with level 2 optimizations and link time optimizations. Pipe curl because it barely takes any memory.

* Update CHANGELOG

* chore: remove gitignore and dockerignore

* rTorrent: Improve session saving

This commit improves session saving support for rTorrent to prevent unnecessary loss of torrent files. It also increases the session saving interval from 20 minutes to 1 hour to reduce disk i/o usage with thousands of torrents. Session saving is a very intensive task and torrents fail to save into session by default when added.

* Update CHANGELOG

* ruTorrent: Upgrade to version 4.1.6

* ruTorrent: Upgrade to version 4.1.7

* chore: update labels

* chore: cleanup labels config

* chore: update github form templates

* ci: missing concurrency check

* test: use composite container-logs-check action

* ci: use compose stack for testing

* switch to compose v2

* Alpine Linux 3.18

* Dockerfile: fix src stages

* Update CHANGELOG

* ruTorrent v4.2.2

* Update CHANGELOG

* ruTorrent v4.2.5

* Update CHANGELOG

* rutorrent 4.2.6

Updating rutorrent to  4.2.6

* Bump actions/checkout from 3 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump crazy-max/ghaction-github-labeler from 4 to 5

Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from 4 to 5.
- [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases)
- [Commits](crazy-max/ghaction-github-labeler@v4...v5)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-github-labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump docker/setup-qemu-action from 2 to 3

Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](docker/setup-qemu-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump docker/bake-action from 3 to 4

Bumps [docker/bake-action](https://github.com/docker/bake-action) from 3 to 4.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](docker/bake-action@v3...v4)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump docker/login-action from 2 to 3

Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update README

* Update CHANGELOG

* Bump docker/setup-buildx-action from 2 to 3

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Upgrade to ruTorrent v4.2.9

* Update CHANGELOG

* rTorrent: Add stability patches

This commit adds multiple stability patches to rtorrent.

* Update CHANGELOG

* fix version for tagging

* rTorrent: Add tracker scrape feature

Resolves a software stability issue on rTorrent with tens of thousands of trackers. Announces trackers by default at regular intervals instead of forcefully announcing everything at startup.

* ci: distribute build across runners

* ci: fix build

* Improve c-ares & curl build process

This commit improves the c-ares and curl build process to use cmake instead. This is a much better choice for docker container. We do not require the features GNU Make provides. CMake should also be more stable for testing pull requests on GitHub.

It also upgrades the c-ares and curl version to receive the latest bug fixes and performance changes. There's been a huge leap forward since the older changes. Put simple, curl 8 is faster.

* Update README

* Update CHANGELOG

* Build fixes & improvements

- Compile everything with level 3 optimizations.
- Disable warnings for the rtorrent software stack to prevent overflows and reduce overall ARM build time.
- Fix critical issues with xml-rpc and libtorrent not applying the build flags.
- Add build flags to mktorrent.
- Fix configure params. Spaces are not allowed.
- Drop c++ support for xmlrpc (not required)

* Upgrade to Alpine 3.19

php 8.2 for ruTorrent v4.2.9.
gcc 13.2 for the rTorrent packages

* Update CHANGELOG

* build(deps): bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* rTorrent: Implement UDNS support

This pull request implements the UDNS library into libtorrent for asynchronous DNS requests on UDP trackers. The current c-ares support is limited to TCP trackers.

It resolves stability issues with the rTorrent software stack where it resolves UDP trackers synchronously by default. With a large number of torrents, the software will give out and fail to seed.

It also caches the result of `sscanf` into vector object, to avoid calling it thousands of times on broken trackers. This prevents the software from crashing and increases performance.

* Fix PHP version in rtlocal.rc

* Update CHANGELOG

* Update CHANGELOG.md

* rTorrent: Resolve memory leaks

This patch resolves critical memory leaks with the rTorrent software, that can cause an out of memory condition to happen. It has been tested for months and has demonstrated proven memory stability for rTorrent.

* rTorrent: Resolve memory access crash

rTorrent requires the usage of aligned memory access on all platforms (x86 and ARM) to prevent a memory access crash from happening. As such, we need to configure libtorrent with `--enable-aligned` to enable the feature.

This is also more efficient for CPU usage at the cost of slightly more memory consumption.  However, due to the relatively small usage of memory, all platforms will benefit.

More information can be found here: rakshasa/libtorrent#244

* ruTorrent v4.2.10

Signed-off-by: djerfy <djerfy@gmail.com>

* rTorrent: Add TCP socket configurations

By overriding the default rmem and wmem values for TCP sockets, we can greatly improve torrent throughput on rTorrent at a tiny cost to memory.

The default values of 4M per socket are a significant step up from rTorrent defaults. The maximum values are raised on alpine, allowing the user to configure up to 64M if they desire.

Environment variables are added to allow the user to control the values within the docker container. Documentation is updated explaining the environment variables and a recommendation for the next steps.

* Add php82-fileinfo package

Fixes uploading of custom PNG icons for trackers.

* new year

* ruTorrent v4.3.0

* update examples and test case

* readme: fix markdown

* Update CHANGELOG

* Fix CHANGELOG

* Update .rtlocal.rc file for changes

fixes crazy-max#336

* ruTorrent v4.3.0 fix

We must add `$useInternalHybrid = true;` to the torrent creator configuration file for ruTorrent v4.3.0.

* update README

* Update CHANGELOG

* ruTorrent v4.3.1-hotfix

Signed-off-by: djerfy <djerfy@gmail.com>

* ruTorrent: Do not permit core plugin removal of httprpc

Users are receiving 404 errors during version upgrades. We need to disallow removing the httprpc plugin because it's required for ruTorrent v4.3+ operation. See crazy-max#345.

* Update CHANGELOG

* Switch to rTorrent stickz project

rTorrent stickz is a project maintained by a core collaborator of ruTorrent.
https://github.com/stickz/rtorrent

It includes significant performance and stability optimizations for the rTorrent software. It also ensures full compatibility with link time optimizations during the build process.

It is a drop in replacement for rTorrent with all the core patches from this docker container included. It also improves the implementation of UDNS to make it more reliable.

The rTorrent stickz project focuses on performance and stability of the torrent client. It is designed to be fully compatible with ruTorrent. Also, it does not seek to modify the torrent software in any way that may be undesirable for users. As a result, it is a perfect candidate for this docker container!

* nginx: Disable listening for IPV6

fixes crazy-max#348

There is no point in supporting IPV6 on this docker container. IPV4 is required anyways for rTorrent to function properly.

If the user disables loading the IPV6 kernel module at boot time, the docker container will fail to initialize if nginx is listening for IPV6.

* ruTorrent: Upgrade to v4.3.2

* Update CHANGELOG

* rTorrent: Upgrade to version 3.1

closes crazy-max#354

Please tag a next release after merging.

* Update CHANGELOG

* rTorrent: Upgrade to v3.2

# Version 3.2 hotfix
- This hotfix resolves a critical issue with flushing invalid bencode to disk. 
- It also optimizes writing bencode to disk. Metadata is now only flushed when required.

## What's Changed
* rTorrent: Fix & optimize write_bencode by @stickz in stickz/rtorrent@970deae

**Full Changelog**: stickz/rtorrent@v3.1-0.9.8-0.13.8...v3.2-0.9.8-0.13.8

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: djerfy <djerfy@gmail.com>
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
Co-authored-by: CrazyMax <contact@crazymax.dev>
Co-authored-by: stickz <stickman002@mail.com>
Co-authored-by: Aciel <chaosnated@gmail.com>
Co-authored-by: Jeremy Chabernaud <djerfy@gmail.com>
Co-authored-by: blueberryapple <9259833+blueberryapple@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ac1dburn <colinborins@hotmail.com>
Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Co-authored-by: daschiller <david.schiller@gmx.at>
Cryptik-Rick added a commit to Cryptik-Rick/docker-rtorrent-rutorrent that referenced this issue Jun 9, 2024
* cleanup workflow

* Bump action to latest major

* readme: fix badge and typo

* readme: update about section

* Alpine Linux 3.17

Also update to PHP 8.1 and Nginx 1.22.1.

GeoIP2 extension has been updated to 1.3.1 from a fork for
compat with PHP 8.1.

Created a fork of xmlrpc-c on GitHub to fix issues with SVN
checkout from Sourceforge.

* Set  S6_KILL_GRACETIME to 10 seconds (crazy-max#171)

* Align xmlrpc-c version

* ci: increase timeout

* Update CHANGELOG

* Configure xml-rpc correctly

`xmlrpc-c` is not configured properly. It will cause a very significant performance regression, if the `wininet` and `libwww` clients are not disabled. We want `xmlrpc-c` to use `curl` because it's razor fast and stable. These changes require testing before being merged. I don't have time to test it. The change value is of high importance.

* Install nginx and webdav module from Alpine repo

* New year

* Update CHANGELOG

* Make rtorrent and libtorrent with -O2 -flto

rTorrent, libTorrent and xmlrpc support link time optimizations. It's safe to do this. Make rTorrent and libTorrent with Level 2 optimizations. (default is no optimization)

* Bump php version

Needed to bump php7 to php81 to match the installed version, so rutorrent plugins can initiatlise properly.

* Update CHANGELOG

* Fix nginx logs folder perms

* ruTorrent v4.0-stable

* Update GeoIP2 ruTorrent plugin

* Update CHANGELOG

* ruTorrent V4.0.1-hotfix

* Update CHANGELOG

* feat(rutorrent): sets `$localHostedMode = true` (crazy-max#215)

* Update CHANGELOG

* ruTorrent v4.0.2-hotfix 

Bumps ruTorrent version to 4.0.2-hotfix for additional stability improvements.

* Set $cachedPluginLoading to false

* Update CHANGELOG

* Improve watch directory support

Use inotify event instead of task schedule to check watch directory.
https://man7.org/linux/man-pages/man7/inotify.7.html

* Remove erase data workaround

This workaround is no longer desirable, as discussed here:
crazy-max#225 (comment)

closes crazy-max#203
closes crazy-max#225

* Fix RU_REMOVE_CORE_PLUGINS defaults

Remove erasedata from defaults. Set to `false` to disable
removal of core ruTorrent plugins.

* ruTorrent v4.0.4

* RU_CACHED_PLUGIN_LOADING env var (default false)

* Update CHANGELOG

* Bump docker/bake-action from 2 to 3

Bumps [docker/bake-action](https://github.com/docker/bake-action) from 2 to 3.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](docker/bake-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* ruTorrent: version 4.1.2 stable

This commit bumps ruTorrent to version 4.1.2 stable. Critical bugs are resolved, which cause the web interface to fail to load. It is backwards compatible with other settings in version 4.0.4 stable. https://github.com/Novik/ruTorrent/releases/tag/v4.1.2

* ruTorrent: version 4.1.3 stable

This commit fixes an issue with the RSS context menu not displaying when the `rssurlrewrite` plugin is enabled.
https://github.com/Novik/ruTorrent/releases/tag/v4.1.3

* Update CHANGELOG

* Install php81-dom for ruTorrent v4.1

The `php81-dom` extension is required for ruTorrent v4.1 to function properly. Novik/ruTorrent#2500

`v4.1.3` throws an error when trying to update RSS Feeds. `v4.1.4` will be released next and fix this issue. However, it's still highly recommended to include this extension for optimization. See crazy-max#236. It wasn't enough to just include `php81-xml`. Alpine puts the DOM module into a separate package.

* ruTorrent: Upgrade to version 4.1.5

Fixes a bunch of bugs with RSS Feeds, torrent deletion and caching issues. Cache expiry removed in version 4.1.4. Deprecated options removed from configuration.

* Curl: Add building optimizations

Compile curl and c-ares with level 2 optimizations and link time optimizations. Pipe curl because it barely takes any memory.

* Update CHANGELOG

* chore: remove gitignore and dockerignore

* rTorrent: Improve session saving

This commit improves session saving support for rTorrent to prevent unnecessary loss of torrent files. It also increases the session saving interval from 20 minutes to 1 hour to reduce disk i/o usage with thousands of torrents. Session saving is a very intensive task and torrents fail to save into session by default when added.

* Update CHANGELOG

* ruTorrent: Upgrade to version 4.1.6

* ruTorrent: Upgrade to version 4.1.7

* chore: update labels

* chore: cleanup labels config

* chore: update github form templates

* ci: missing concurrency check

* test: use composite container-logs-check action

* ci: use compose stack for testing

* switch to compose v2

* Alpine Linux 3.18

* Dockerfile: fix src stages

* Update CHANGELOG

* ruTorrent v4.2.2

* Update CHANGELOG

* ruTorrent v4.2.5

* Update CHANGELOG

* rutorrent 4.2.6

Updating rutorrent to  4.2.6

* Bump actions/checkout from 3 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump crazy-max/ghaction-github-labeler from 4 to 5

Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from 4 to 5.
- [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases)
- [Commits](crazy-max/ghaction-github-labeler@v4...v5)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-github-labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump docker/setup-qemu-action from 2 to 3

Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](docker/setup-qemu-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump docker/bake-action from 3 to 4

Bumps [docker/bake-action](https://github.com/docker/bake-action) from 3 to 4.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](docker/bake-action@v3...v4)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump docker/login-action from 2 to 3

Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update README

* Update CHANGELOG

* Bump docker/setup-buildx-action from 2 to 3

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Upgrade to ruTorrent v4.2.9

* Update CHANGELOG

* rTorrent: Add stability patches

This commit adds multiple stability patches to rtorrent.

* Update CHANGELOG

* fix version for tagging

* rTorrent: Add tracker scrape feature

Resolves a software stability issue on rTorrent with tens of thousands of trackers. Announces trackers by default at regular intervals instead of forcefully announcing everything at startup.

* ci: distribute build across runners

* ci: fix build

* Improve c-ares & curl build process

This commit improves the c-ares and curl build process to use cmake instead. This is a much better choice for docker container. We do not require the features GNU Make provides. CMake should also be more stable for testing pull requests on GitHub.

It also upgrades the c-ares and curl version to receive the latest bug fixes and performance changes. There's been a huge leap forward since the older changes. Put simple, curl 8 is faster.

* Update README

* Update CHANGELOG

* Build fixes & improvements

- Compile everything with level 3 optimizations.
- Disable warnings for the rtorrent software stack to prevent overflows and reduce overall ARM build time.
- Fix critical issues with xml-rpc and libtorrent not applying the build flags.
- Add build flags to mktorrent.
- Fix configure params. Spaces are not allowed.
- Drop c++ support for xmlrpc (not required)

* Upgrade to Alpine 3.19

php 8.2 for ruTorrent v4.2.9.
gcc 13.2 for the rTorrent packages

* Update CHANGELOG

* build(deps): bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* rTorrent: Implement UDNS support

This pull request implements the UDNS library into libtorrent for asynchronous DNS requests on UDP trackers. The current c-ares support is limited to TCP trackers.

It resolves stability issues with the rTorrent software stack where it resolves UDP trackers synchronously by default. With a large number of torrents, the software will give out and fail to seed.

It also caches the result of `sscanf` into vector object, to avoid calling it thousands of times on broken trackers. This prevents the software from crashing and increases performance.

* Fix PHP version in rtlocal.rc

* Update CHANGELOG

* Update CHANGELOG.md

* rTorrent: Resolve memory leaks

This patch resolves critical memory leaks with the rTorrent software, that can cause an out of memory condition to happen. It has been tested for months and has demonstrated proven memory stability for rTorrent.

* rTorrent: Resolve memory access crash

rTorrent requires the usage of aligned memory access on all platforms (x86 and ARM) to prevent a memory access crash from happening. As such, we need to configure libtorrent with `--enable-aligned` to enable the feature.

This is also more efficient for CPU usage at the cost of slightly more memory consumption.  However, due to the relatively small usage of memory, all platforms will benefit.

More information can be found here: rakshasa/libtorrent#244

* ruTorrent v4.2.10

Signed-off-by: djerfy <djerfy@gmail.com>

* rTorrent: Add TCP socket configurations

By overriding the default rmem and wmem values for TCP sockets, we can greatly improve torrent throughput on rTorrent at a tiny cost to memory.

The default values of 4M per socket are a significant step up from rTorrent defaults. The maximum values are raised on alpine, allowing the user to configure up to 64M if they desire.

Environment variables are added to allow the user to control the values within the docker container. Documentation is updated explaining the environment variables and a recommendation for the next steps.

* Add php82-fileinfo package

Fixes uploading of custom PNG icons for trackers.

* new year

* ruTorrent v4.3.0

* update examples and test case

* readme: fix markdown

* Update CHANGELOG

* Fix CHANGELOG

* Update .rtlocal.rc file for changes

fixes crazy-max#336

* ruTorrent v4.3.0 fix

We must add `$useInternalHybrid = true;` to the torrent creator configuration file for ruTorrent v4.3.0.

* update README

* Update CHANGELOG

* ruTorrent v4.3.1-hotfix

Signed-off-by: djerfy <djerfy@gmail.com>

* ruTorrent: Do not permit core plugin removal of httprpc

Users are receiving 404 errors during version upgrades. We need to disallow removing the httprpc plugin because it's required for ruTorrent v4.3+ operation. See crazy-max#345.

* Update CHANGELOG

* Switch to rTorrent stickz project

rTorrent stickz is a project maintained by a core collaborator of ruTorrent.
https://github.com/stickz/rtorrent

It includes significant performance and stability optimizations for the rTorrent software. It also ensures full compatibility with link time optimizations during the build process.

It is a drop in replacement for rTorrent with all the core patches from this docker container included. It also improves the implementation of UDNS to make it more reliable.

The rTorrent stickz project focuses on performance and stability of the torrent client. It is designed to be fully compatible with ruTorrent. Also, it does not seek to modify the torrent software in any way that may be undesirable for users. As a result, it is a perfect candidate for this docker container!

* nginx: Disable listening for IPV6

fixes crazy-max#348

There is no point in supporting IPV6 on this docker container. IPV4 is required anyways for rTorrent to function properly.

If the user disables loading the IPV6 kernel module at boot time, the docker container will fail to initialize if nginx is listening for IPV6.

* ruTorrent: Upgrade to v4.3.2

* Update CHANGELOG

* rTorrent: Upgrade to version 3.1

closes crazy-max#354

Please tag a next release after merging.

* Update CHANGELOG

* rTorrent: Upgrade to v3.2

# Version 3.2 hotfix
- This hotfix resolves a critical issue with flushing invalid bencode to disk. 
- It also optimizes writing bencode to disk. Metadata is now only flushed when required.

## What's Changed
* rTorrent: Fix & optimize write_bencode by @stickz in stickz/rtorrent@970deae

**Full Changelog**: stickz/rtorrent@v3.1-0.9.8-0.13.8...v3.2-0.9.8-0.13.8

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: djerfy <djerfy@gmail.com>
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
Co-authored-by: CrazyMax <contact@crazymax.dev>
Co-authored-by: stickz <stickman002@mail.com>
Co-authored-by: Aciel <chaosnated@gmail.com>
Co-authored-by: Jeremy Chabernaud <djerfy@gmail.com>
Co-authored-by: blueberryapple <9259833+blueberryapple@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ac1dburn <colinborins@hotmail.com>
Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Co-authored-by: daschiller <david.schiller@gmx.at>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants