bradford bio photo

Twitter LinkedIn Github Stackoverflow

I saw the announcement on the Transmission website of the release of transmission 1.80 and I got really excited about some of the features such as tracker-less torrents and magnet links.  I was running 1.51 which is what’s in the Ubuntu Jaunty repos.  Unfortunately I can’t upgrade my SheevaPlug to any Ubuntu distro beyond 9.04 because there is some funny business on how they’re compiling the arm packages for future releases. Eventually I’ll switch over to Debian but I really don’t feel like mucking around with the serial console on my plug.

I have been avoiding having to build from source on my plug because I just didn’t want to figure it all out. But I found a great guide and a post that was fantastic and very easy to follow.

# apt-get install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev

This command took about 10 minutes and around 160MB to install.

I then downloaded the latest release from this website (I chose the tar.bz archive)

To extract I simply typed in the following command:

# tar –xvf transmission-1.80.tar.bz2

I entered the extracted directory and ran this command:

# ./configure –disable-gtk

The –disable-gtk tag will disable the gui interface and make it compile faster.

After a while you should get a successful build

Before I ran the following command I backed up my transmission config file (/etc/transmission-daemon/settings.json) and purged transmission-daemon

# aptitude purge transmission-daemon

I then proceeded with the build

# make
# make install

Once this completed (it took around 30 minutes for me give or take) I could see that transmissioncli and transmission-remote existed in /usr/bin however I couldn’t find transmission-daemon. After a reboot it showed up.

Transmission 1.80 works! But I had to tweak it a bit to get it to work the way I wanted it to. I created an init.d script using these instructions.  As the instructions suggested I created a new user named transmission with no password so that when I used ran the /etc/init.d/transmission-daemon script it would run as transmission and not as root. In addition, since transmission’s config files were in root’s home directory (~/.config/transmission-daemon/), I changed the TRANSMISSION_HOME variable in the script to /etc/transmission-daemon and copied all the files over and changed their ownership to transmission:transmission so transmission-daemon can see its config files and they would be easily accessible later.

The last thing I needed to do was update my settings.json from the backup I made before installing. In the process of doing this I noticed that watch directories are supported in this version of transmission-daemon! I’ve been using my own implementation of a watch directory as discussed in this blog post, however having one built into transmission is much better in my opinion. From my reading, it looks like watch directories have been available for a while but just not for transmission-daemon.  To implement this first shut down transmission-daemon (/etc/init.d/transmission-daemon stop) and edit settings.json.  Add the following lines:

“watch-dir”: “/your/watch/dir”,
“watch-dir-enabled”: true,

When you restart it should work! If for some reason it doesn’t work you can start transmission-daemon with the –f flag to see what’s wrong.

The great thing about the watch-dir as implemented by transmission is that it uses inotify, meaning it doesn’t just run as a cron job (polling) but it waits for the folder to notify it if there is a change. So, adding the torrents to the watch dir result in them being immediately added to transmission. The problem with the watch directory however is that they simply stay in the watch directory after they’ve been added. I would much rather they be moved to another folder or even deleted once added.

To use transmission’s watch-dir I simply need to stop my cronjob script that would add the torrents from the watch-dir to transmission and make sure that flexget was dropping the torrents from the rss into the correct watch-dir. See my post to read more about that.

It works beautifully! Transmission is really starting to mature – I don’t miss uTorrent anymore!