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

[BUG] Cannot add RSS feed on v4.1.3 #2500

Closed
3 tasks done
GH0STDATA opened this issue Apr 30, 2023 · 5 comments · Fixed by #2498
Closed
3 tasks done

[BUG] Cannot add RSS feed on v4.1.3 #2500

GH0STDATA opened this issue Apr 30, 2023 · 5 comments · Fixed by #2498

Comments

@GH0STDATA
Copy link

GH0STDATA commented Apr 30, 2023

Please complete the following tasks.

  • Web browser cache cleared
  • Link provided to install script if applicable
  • Web browser, ruTorrent, PHP and OS version provided

Tell us about your environment

Web Browser: Brave 1.50.121 (Chromium 112.0.5615.138)
ruTorrent: v4.1.3
PHP: PHP 8.1.18
OS: Ubuntu 20.04.6 LTS

Tell us how you installed ruTorrent

I installed ruTorrent via this docker image: https://github.com/crazy-max/docker-rtorrent-rutorrent

Describe the bug

I cannot add new RSS feeds, and RSS feeds do not update at the interval I have set.

I get this error in the dev console when trying to add a new RSS feed:

Additional logs from Docker:

2023/04/30 02:00:49 [error] 557#557: *89 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Class "DOMDocument" not found in /var/www/rutorrent/plugins/rss/rss_reader.php:124

Stack trace:
#0 /var/www/rutorrent/plugins/rss/rss.php(169): rssXpath()
#1 /var/www/rutorrent/plugins/rss/rss.php(940): rRSS->fetch()
#2 /var/www/rutorrent/plugins/rss/rss.php(1157): rRSSManager->tryFetch()
#3 /var/www/rutorrent/plugins/rss/action.php(30): rRSSManager->add()

thrown in /var/www/rutorrent/plugins/rss/rss_reader.php on line 124" while reading response header from upstream, client: 172.20.0.6, server: , request: "POST /plugins/rss/action.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "REDACTED", referrer: "https://REDACTED/"

I've reverted back to v4.0.4 for the time being until this issue has been resolved.

Steps to reproduce

  1. Install rtorrent-rutorrent via Docker
  2. Log into rutorrent
  3. Try to add RSS feed

Expected behavior

RSS feeds should be added successfully and updated at the interval that I have chosen.

Additional context

No response

@GH0STDATA
Copy link
Author

This bug be related to #2496, but I'm not 100% sure.

stickz added a commit to stickz/docker-rtorrent-rutorrent that referenced this issue Apr 30, 2023
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.
@boomboxnation
Copy link

boomboxnation commented Apr 30, 2023

While the new commit does now let me add new RSS and update existing, it is trying to load the <guid> rather than the <link> from the feed's <item> section, which in my case fails to load.

@TrimmingFool
Copy link
Contributor

Before, <guid> was only used if <link> did not exist.

$href = '';
if(array_key_exists('enclosure',$item))
$href = $item['enclosure'];
else
if(array_key_exists('link',$item))
$href = $item['link'];
else
if(array_key_exists('guid',$item))
$href = $item['guid'];
else
if(array_key_exists('source',$item))
$href = $item['source'];

Now, if <guid> is a valid url (i.e. matching a (http) url pattern) and <link> is not, <guid> is used.

// expect permalink in guid and normal link in url
$httpLinkExpr = '|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
$validPermalink = preg_match($httpLinkExpr, $item['guid']);
if (preg_match($httpLinkExpr, $item['link']) ) {
if (!$validPermalink) {
$item['guid'] = $item['link'];
}
} elseif ($validPermalink) {
$item['link'] = $item['guid'];
}
$link = $item['link'];
if (!empty($link)) {
$this->items[$link] = $item;
}

Either the matching for valid <link> values should improve or <link> should never be replaced by <guid> (as before).

@boomboxnation Thanks for reporting this. What is the link that isn't working?

@boomboxnation
Copy link

boomboxnation commented May 1, 2023

Something in my torrent IDs isn't matching then:

https://www.BLARGH.net/tor/download.php/7W0pSLI4asiHLzxtEm83RzUKmn8yM6cjUuQGwdG5rrnXZjjibq,,yt6jo7Db+LBNBHXZ,6+tx9iGxqY,j,beUD9oJO,Ej4+yt+N8g6xJxxbF2ji9riA++libga39A7d6KuWJfsPKAnfAeqk3oylBjr8EuJqmSzfrJ6Va0GqtjMCMsSBj87bayo4=

This makes sense as like 3 out of 100 did load properly. Here is the URL for one I think loaded properly:

https://www.BLARGH.net/tor/download.php/qCc7UKnOT0nQIE+MfYeVO9zfJfe2++xYUTAq0IyMELTwB2iICoeH5hx9pwQwQPOvgGDp1,C9Ydv7ms12y0ai7BEpnFQbSPWgrgwC7CC+Q78lvU840bk2gMl3e94MqLVdN3UFbhADX5BDIEexzxZbgEzwYSfovbVX9plLCDPeP0WclkKKAao9umQ=

Entire <item> section for a non-loading one...

<item>
<guid>https://www.BLARGH.net/t/928108</guid>
<title>Just another linux iso</title>
<link>https://www.BLARGH.net/tor/download.php/7W0pSLI4asiHLzxtEm83RzUKmn8yM6cjUuQGwdG5rrnXZjjibq,,yt6jo7Db+LBNBHXZ,6+tx9iGxqY,j,beUD9oJO,Ej4+yt+N8g6xJxxbF2ji9riA++libga39A7d6KuWJfsPKAnfAeqk3oylBjr8EuJqmSzfrJ6Va0GqtjMCMsSBj87bayo4=</link>
<category>LINUX ISO</category>
<description>A single script to build a minimal live Linux operating system from source code that runs Doom on boot. <br/></description>
<pubDate>Sun, 30 Apr 2023 12:36:28 +0000</pubDate>
</item>

@stickz
Copy link
Collaborator

stickz commented May 1, 2023

While the new commit does now let me add new RSS and update existing, it is trying to load the <guid> rather than the <link> from the feed's <item> section, which in my case fails to load.

@boomboxnation Please create a new issue report to further discuss this separate issue with @TrimmingFool. We need to close this one off and reference a new issue report when a fix is created.

We want to be able to say: This issue was fixed in v4.1.x. Then document changes, so people know which version to use. Developers need to reference the detailed issue report as well, in-case we accidentally introduce a bug trying to fix a problem.

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
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants