Subscribing to trac’s RSS feed

With trac version 0.11.7 we hit a bug where requesting the timeline RSS triggers a UnicodeDecodeError. This can be fixed by changing line 224 of the file /usr/share/pyshared/buildbot/status/web/feeds.py as follows:

unilist.append(unicode(line,'utf-8','replace'))

where we exploit the more recent resilient version Python’s unicode function: with the ‘replace’ option the official Unicode replacement character, U+FFFD, is used to replace input characters which cannot be decoded and no exception is thrown.

But even if all works well with generating the trac‘s RSS feed, subscribing it can be tricky if trac authentication is set up in the standard way: this involves a redirect to fictitious trac/login page, which installs a certain cookie. RSS readers and aggregators are not able to get this cookie and basically hit a 403 (forbidden) error.

The advised procedure described here i.e. using the HttpAuthPlugin, may work for you, but it did not work here.

What does work here is downloading the trac RSS feed with wget. To achieve that, you need to visit the trace/login page first, with the correct username and password, just to store the cookie (you can discard the downloaded login page); next visit the RSS link proper without supplying username and password:

wget --keep-session-cookies --save-cookies a -O /dev/null --user=username --password=password --no-check-certificate 'https://server/trac/login'
wget --load-cookies a -O trac.rss --no-check-certificate 'https://server/trac/timeline?ticket=on&milestone=on&max=50&author=&daysback=90&format=rss'

adapt the code above to your installation by replacing the server, username and password appropriately.

Enjoy !