Upgrading to RTorrent 0.8.5

Recently I went through the process of upgrading rtorrent-0.8.2 and libtorrent-0.12.2 on my Ubuntu 9.04 box to the latest versions, rtorrent-0.8.5 and libtorrent-0.12.5. Unfortunately what should be a simple process was rather complicated because the developer has not yet updated the project’s website to reflect all of the changes that have been made to the configuration options in version 0.8.4 (which was released nearly a year ago!). After dozens of Google searches I was able track down the information I needed. In addition, I have added notes on hiccups I ran into when compiling RTorrent from source and getting RTorrent to work with dtach.

Compiling

To compile LibTorrent I needed to install the libsigc++-2.0-dev package. To compile RTorrent I needed to install libcurl4-openssl-dev. Both can be installed via apt-get:

sudo apt-get install libsigc++-2.0-dev libcurl4-openssl-dev

Updating .rtorrent.rc

The New Ratio Syntax

This actually has been documented to some extent on the RTorrentRatioHandling wiki page. Unfortunately “The basics” make little sense to me. Here is what I did:

Remove my old schedule command to stop torrents when they reach a certain ratio:

schedule = ratio,60,60,"stop_on_ratio=100"

And replace it with:

# Enable the default ratio group.
ratio.enable=
 
# Change the limits
ratio.min.set=100
#ratio.max.set=300
#ratio.upload.set=20M

My desired behavior is for RTorrent to close a torrent when its ratio reaches 1.0 which is why I am only setting ratio.min.set.

I am extremely curious why the developer decided to make the configuration command to enable ratios ratio.enable=. The equals sign on the end of the line makes the option feel very incomplete and does not make sense.

Deprecated on_* commands

All of the on_* commands are now deprecated.1 This includes on_start, on_stop, on_finished, and on_erase. I use an on_finished command to move finished torrents to a separate directory which had to be changed.

# deprecated on_finished command
# on_finished = move_complete,"d.set_directory=~/torrents/finished/ ;execute=mv,-u,$d.get_base_path=,~/torrents/finished/"
 
# Equivalent on_finished for rtorrent > 0.8.4
system.method.set_key = event.download.finished,move_complete,"d.set_directory=~/torrents/finished/ ;execute=mv,-u,$d.get_base_path=,~/torrents/finished/"

DTach

On a whim I decided to switch to running RTorrent with dtach instead of inside GNU Screen. My hope is that dtach will perform a little better. Unfortunately when I opened RTorrent with dtach my arrow keys changed my download threshold instead of navigating the list of torrents. A fix that I found is to specify TERM=linux when launching dtach.2

env TERM=linux dtach -c /tmp/rtorrent.dtach rtorrent

Once again I find it why this works to be a mystery but no explanation was given.

Rant

I have a lot of respect for the creator of RTorrent/LibTorrent. He has created an excellent Bittorrent client and backend that I have been happily been using for a couple years. However, I think it is very poor form that he released new updates that change the configuration interface without properly documenting the upgrade path on the website. This was frustrating enough that I tried to update the LibTorrent trac but public accounts are not allowed, blocking my attempt to help.

3 thoughts on “Upgrading to RTorrent 0.8.5

  1. Rick

    Hey, thanks for this. It’s perfect!

    Even several months later, the official documentation hasn’t been updated. I think rtorrent is terrific and I really appreciate the devs and everyone who has contributed to it, but I have more appealing things to do than spending days trying to piece together some new, uni-tasking syntax.

    I really appreciate it!

  2. Dan Walker

    Hi there! I just upgraded a pretty old rTorrent installation and my old depreciated rules stopped it launching. This page helped me a great deal, so thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>