I’ve recently embarked on a major rebuild of my desktop system from a Debian sid based testing/unstable distro for amd64 to an Ubuntu Breezy Badger install for amd64. The Ubuntu bit was relatively painless, and happily VMWare Workstation 5.5 now supports amd64, so it works nicely. Unfortunately, MythTV isn’t packaged up for amd64 yet, and having just gone through the saga of building it from source, I can understand why. I’d love to rant on about it for a while, but it’s late and I’ve got bucketloads of other things to do, so I’ll keep my thoughts on it brief for the moment.
Building MythTV from source is painful. Building anything from source generally requires a bit of knowledge, though well put together packages nowadays should, at a minimum, support a sort of ./configure; make; make install dance. Python has distutils. These tools make it easier for you as a developer to build your code to test it. MythTV supports this.. sortof. Its configure doesn’t check for all its dependencies. –disable-audio-oss works, but then the frontend doesn’t work under linux and you have to notice the debug output from mythfrontend saying that you shouldn’t disable OSS support under linux.
So to get the stupid thing compiled you build 20% until it breaks, install more dependencies, compile to 24.5% when it breaks again, and install more dependencies.. and so on. If you manage to work out what the hell all these build dependencies are, you get to make install. The mythbackend actually has some additional runtime dependencies that aren’t detected at compile time, and have obscure error messages buried early in the debug output, so they get covered by all the messages that come afterwards.
Assuming you’ve got things to the point that it’ll actually run, you then have to jump through the incredibly complicated setup process. The weird thing is, it isn’t really all that complex and it doesn’t have to be so hard. Using kaffeine is dead easy. If your digital TV card is detected and working by the kernel (a previous saga I’d solved before), kaffeine just automatically knows where you are (presumably by your timezone) and knows what your channel frequencies are. You just scan for channels, it detects them and asks you which ones you want to save to its config. Then you start watching or recording TV. Dead simple. MythTV configuration is insane. There are approximately four different ways to configure channels, of which I’ve only ever managed to get one to work, and they’re all broken in different ways. The documentation is worse than useless, because it sends you off on the wrong track. Online help is fragmented and challenging to follow.
MythTV is still strictly the province of true hackers. If you’re not comfortable with hand editing databases using SQL and can figure out that NVP: Disabling Audio isn’t necessarily a problem, then I’d stick to TiVo or Foxtel Digital. I’m taking away some good lessons on what not to do with the presentation to an end user.
However, given that MythTV is completely free and has only come about due to the generosity of those donating their time to write it, I want to make it clear that I am not disparaging their efforts. I am expressing my annoyance and frustration at what I see as sub-optimal when it could be so much better. The amount of effort that has gone into building some really complex stuff, like integration with DVB, video/audio codecs and the like. Making sure that configure looks for all its dependencies, and making the setup process simpler and more automated would go a long way to improving the software. It would certainly make it more accessible to your average linux user.
Enough about that for now. There’s much to do and not enough time to do it. I’ve just got to get this thing set up for pre-recording the stuff I’d like to watch, somehow, and then I shall forever be free from the idiotic scheduling decisions of network executives and their obsession with reality TV.
Pingback: Linux as the Core | eigenmagic