Saturday, 19 May 2007

Project Indiana Wishlist

OK, so many, many people will be saying many things about project Indiana before we ever see anything concrete, and then many more people will inevitably form two camps - the "Indianaphiles" and the "Indianaphobes".

All of that is inevitable and I guess we should just enjoy the ride. However, given the scope for Indiana thus far expressed is "Make a Sun branded Solaris distribution that's a lot more like Linux", and that the top man is Ian Murdoch, I have exactly one wish for this project.

Please, for the love of God, don't make it like, or derive it from, Debian or anything like Debian.

Why? Well, I have a list:

  1. Once upon a time .deb was a great new packaging system. People loved it (it was better than RPM!) and started improving it. Trouble is, everybody had their own ideas and added lots of distinct script to help you do everything you could every want to do. The result is a complex mess of tools with no common design and a steep learning curve for packagers. I've made Debian packages, it's even been part of my paid work. I've also made RPMs, ebuilds, Arch pacman packages and rPath conary packages. Of all of those systems I'd take pacman and the Arch Build System as a preference. This is infact the major reason that I always return to Arch Linux despite enjoying playing with various other distros. It's no more, or less powerful than the Debian system, but it's benefited from being designed from the ground up to do all the things you can do with a myriad of scripts for .deb with a small, clearly defined, well documented set of programs. It's very simple to use (you can learn enough to do 99% of packaging from a single, short man page), and that's led to a strong community building packages to share with each other as well as the primary Arch repositories (see http://aur.archlinux.org for the Arch User Repository).
  2. We already have a perfectly good Ubuntu derived Solaris distribution. I've used Nexenta GNU/Linux. It's good and as OpenSolaris develops I'm sure it'll be familiar enough to pull over a few Ubuntu and Debian users.
  3. The temptation to pick up ready made Debian packages is too great. Probably the worst things in Ubuntu are where something that's been badly packaged for Debian appears, verbatim in Ubuntu. There are, of course, many things that are packaged excellently by the Debian community, but there are a few shining examples of utter ineptitude. These packages tend not to be the mainstream applications, but some more esoteric things - mzscheme springs to mind. The general populous probably never notices (which is probably a factor in why they remain this way), but if they are applications that you care about then this situation is intensely annoying. If I pick up Solaris with Sun's name on it I want some assurance that it has been put together with the thought and attention of a team of professionals, even if it includes lots of community contribution (I certainly hope it will!).

OK, rant over :-)

Sunday, 6 May 2007

Intel HDA working under OpenSolaris

Another minor victory in my quest to get more familiar with OpenSolaris. I've upgraded to Nexenta unstable, and I noticed a package called sunwaudiohd being installed. That looked like a promising solution to the lack of audio on my OpenSolaris machine - the Intel HDA soundcard has never worked under any version I've used.

Sadly, the mere presence of this driver didn't seem to fix things (it's never that simple). A little research confirmed that it was the right driver, but that this bug had been discovered. The workaround noted:

update_drv -a -i '"pci8086,27d8"' audiohd

...seemed to do the trick and now I have excellent sound coming from my machine again.

Tuesday, 1 May 2007

Making ZFS work on removable media

I've been playing around with ZFS for quite a while now and I'm very impressed. Everything that's claimed of it holds up under my limited investigation. I've been working with both the OpenSolaris native version (thank you Nexenta!) and the ZFS-FUSE implementation for Linux.

The one thing that proved hard to do was to build a ZFS pool on my USB2 hard drive and move that pool between machines. For a couple of days I struggled in vane to see why I couldn't ZFS export from my linux box and ZFS import on my OpenSolaris box (or visa versa).

It turns out the answer is simple: ZFS-FUSE doesn't recognise that Linux doesn't use /dev/dsk (it even goes so far as to error because of this for some commands). The solution is to tell zpool that you want it to look elsewhere by adding the -d option to each zpool import/export command, eg.:

$ zpool import -d /dev mypool


... suddenly it all works beautifully. Now if only there were better docs for ZFS-FUSE! After all my struggling I word this out based on a comment against someone elses blog entry.