Monday, December 18

Geek

So There I Was

Looking for an open-source BitTorrent tracker written in Python that I could hook into Minx...

Doh!

Yeah. That one might work.

Update: The art of helpful commenting:

# code duplication because ow.
I know the feeling.

Update: Yuggech.

Okay, so it's been a while since I installed the standard BitTorrent package on Linux.

The last time I did so was 4.0.something. The current release is 5.0.3.

4.0.x required Python 2.2 or later.

As for 5.0.3:

* Install Python, version 2.3 or later. (2.4 recommended) -- Fine. Got that.
* Install wxWidgets, version 2.6 or later, in the Unicode flavor. -- I'm not installing wxWidgets on a server just to make BitTorrent happy! I hope that this is only actually required for the GUI apps.
* Install wxPython, version 2.6 or later, in the Unicode flavor. -- Sod off.
* Install GTK, version 2.6 or later. -- Bugger that.
* Install Twisted, version 2 or later. -- No.
* Install PyCrypto, version 2 or later. -- Now that is actually a darn good idea.
* Install Psyco. -- Psyco is good. Requiring Psyco is very very bad.
* Install Zope.Interface. -- Sod off!
Fortunately, bittorrent.com provides a download site for previous versions. Version 4.4.0 (from January this year) appears to be the last release before they went dependency-crazy. It uses Twisted if you have it installed, but falls back to its own code if Twisted is not available. That's fine.

So 4.4.0 it is. 4.4 seems to be the end of a stable release, followed by a completely new release with these features:

* completely new UI -- Don't need it or want it.
* smart download/queuing behavior -- Don't need it.
* smart seeding behavior -- Don't need it.
* torrent priority system -- Don't need it.
* detailed progress bar and "piece bar" progress bar -- Don't need it.
* better save location management ("incomplete" and "finished" locations) -- Completely irrelevant.
* automatic bandwidth management - Hmm.
* download rate control -- Don't need it.
* transfer rate graphs -- Don't need it.
* choose which files to download first from a torrent -- Don't need it.
* better error handling and reporting -- Hmm.
* fast extensions (see bittorrent.org) -- Useful, yes, but not here.
* torrent "title" support (see bittorrent.org) -- There's nothing on bittorrent.org!
* multiple tracker support -- Actually, that might be something I could use.
* encryption support -- Don't need it.
* Zeroconf ("Rendezvous") local discovery -- Don't need it.
* sparse files -- Don't need it.
* threaded Disk IO -- Don't need it.
* translation update system -- Don't need it.
* now using wxWidgets instead of GTK on Windows, GUI is now native and should be a lot more stable -- Don't need it, don't want it, just make it go away!
* removed support for Python 2.2 -- Whatev.
I guess I can use 4.4.0 and then libtorrent if I need to.

Thanks, BitTorrent peeps, for at least keeping 4.4 around.

Update: libtorrent won't compile. Somewhere, deep in the jungle, a library is missing a .h file. Or something. Ick.

Update: The other thing I want to note, is that for something so popular, BitTorrent is incredibly underdocumented. The only place that the options to the tracker module are documented are in the program, and the only way to find them is by running the program, because they're all in translation files, and if you don't have all the crazy dependencies installed you can't run the program.

Blah.

Here's to statically-linked binaries. Yeah, I know they suck too. But they suck differently.

Posted by: Pixy Misa at 11:40 PM | Comments (5) | Add Comment | Trackbacks (Suck)
Post contains 605 words, total size 4 kb.

1

Shamus talked about this, too.

This is one of the big reasons why Linux is never going to be a real threat to Microsoft on the desktop.

Posted by: Steven Den Beste at Tuesday, December 19 2006 03:08 AM (+rSRq)

2 Yeah.

It's perfectly possibly to do this right - 4.4.0 is just fine, after all.

Now, Minx has a few dependencies too - CherryPy, PIL, Psyco, MySQL-Python (and MySQL, of course), and now memcached, which itself requires libevent.  But I don't expect anyone but me to ever have to install it.

This is a big reason why PHP is so popular - just write your program and drop it on the web server.  The fact that your server gets pwned by spammers within the following 24 hours is a small price to pay... or at least, that seems to be the prevailing opinion in much of the PHP community.

As for Windows: broken dependencies are relatively rare, that's true, because Windows applications are almost always precompiled, or at least prepackaged.

BitTorrent is written in Python, even on Windows.  The Windows installer for BitTorrent helpfully avoids the dependency issue by installing its own copies of everything.

Posted by: Pixy Misa at Tuesday, December 19 2006 07:18 AM (xyVrU)

3 Sad, really. I miss the days when the official BT package only required Python. I don't think I'd have even tried to build my content-distribution system around it if I'd had to install all of that crap on my Solaris servers. With 3.2.x, I think it took less than an hour to build Python, hack together the first version of my wrapper scripts, and push my first half-gig test file to 600 machines. It sounds like the current version would chew up a day of my time just tracking down dependencies. -j

Posted by: J Greely at Tuesday, December 19 2006 12:33 PM (2XtN5)

4

You mentioned having problems with bittorrent under windows some time ago -- I ran into this problem not long ago.  Some digging showed that Bittorrent was using an obscene amount of memory and locking up (and crashing) the entire machine.

Switched to utorrent (utorrent.com, natch) which is considerably more stable and advanced (lots of nice features), but is Windows only, unfortunately.

Anyhow.  Probably useless data for you now, but just in case you ever want to move your downloads to a wintel machine.

Posted by: bkw at Tuesday, December 19 2006 11:25 PM (KhFAm)

5 I was using Azureus for a long time, then that went insane and chewed up obscene  amounts of memory.  So I ended up on uTorrent, like you.

I'm tinkering with the original BitTorrent for hosting torrents and auto-seeding them.  I was running a tracker called Broadcast Machine, but it had some really annoying bugs and seems to have fallen out of maintenance.

Posted by: Pixy Misa at Wednesday, December 20 2006 04:45 AM (A9tur)

Hide Comments | Add Comment

Comments are disabled. Post is locked.
51kb generated in CPU 0.0219, elapsed 0.3178 seconds.
56 queries taking 0.2851 seconds, 343 records returned.
Powered by Minx 1.1.6c-pink.