libtorrent out of portable

Note: This is an old post in a blog with a lot of posts over a long span of time. The world has changed, technologies have changed, and I've changed. It's likely this is out of date, the code doesn't work, the ideas haven't aged well, or the ideas were terrible to begin with. Let me know if you think this is something that needs updating.

Miro uses libtorrent-rasterbar for bittorrent downloading. We had a copy of the libtorrent source code in the portable section of our repository. Miro would compile libtorrent as a Python extension along with all the other stuff to build Miro binaries. Not any more.

Luc is almost done carrying my changes over to OSX 10.4, but as of today, libtorrent-rasterbar is no longer in the portable section of our repository.

What does this mean?

For Windows, a clean build on our Windows build box went from taking enough time for me to make dinner, eat dinner, and then completely forget what I was working on (26 minutes) to 4 minutes. In my Windows XP vm, a clean build went from 8 minutes to 1 minute. Plus I fixed the unicode problems Miro had with Windows and libtorrent and updated Miro to use libtorrent 0.14.6 on Windows.

For OSX, a clean build on my mac mini running OSX 10.5.8 went from 17 minutes to 1 minute. Plus I updated Miro to use libtorrent 0.14.6 on OSX, too.

For gtk-x11, libtorrent is now a required system package. Miro will no longer compile its own libtorrent if you don't already have it installed. I'm pretty sure that most modern versions of the major Linux distributions have packages for libtorrent-rasterbar and the Python bindings.

We have a couple of other changes that affect the project structure almost done. I'll blog about them as they finish landing.

Updates:

11/4/2009 This is completed now. Many thanks to Luc who sorted out the issues I was running into with compiling libtorrent on OSX 10.4 with Boost 1.35.0.

Want to comment? Send an email to willkg at bluesock dot org. Include the url for the blog entry in your comment so I have some context as to what you're talking about.