Recently I decided to replace my old NSLU2. This decision had two main reasons:
- With all nice features of hacked NSLU2 it is just not powerful enough to run Torrent and aMule in the same time. Heck, even aMule alone finishes all available memory when KAD is turned on.
- No display/audio output.
Since I still want hackable box which will be NAS and will be able to run general purpose applications (aMule and Transmission are first in list), the choice become really tough.
- NAS-only boxes are out (no video out)
- 90% of streamers are out - either not hackable or not powerful enough (few memory, slow CPU)
It turned out, however, that Apple TV suit my requirements almost perfectly
- Hackable, OSX inside
- Has HD display output
- Plenty of memory, general purpose Intel CPU
However, it turned out, that latest versions of Transmission (my favorite torrent client) can not be built "as-is" for Apple TV. Some people claimed, that issue is due to "limitations of Apple TV".
They are wrong. The problem is simply version mismatch between OSX on Mac and one on device. Apple TV have OS based on Tiger, while Mac's moved to Leopard.
So, when I decided to compile Transmission 1.75, the simplest way to ensure Tiger compatibility is to build it on Tiger with XCode 2.5. With help of VMWare and original Tiger DVD from my MacBook I setup my build environment.
Next issue is libcurl incompatibility. Transmission assume latest version of curl, while version installed on Apple TV is old one. Solution is to link with static version libcurl.
Downloading libcurl, compiling it to static lib, replacing <curl/curl.h> with "path_to_curl/curl.h" in web.c, adding libcurl.a to list of libraries and - here it is.