ReiserFS, extended attributes, and compiling on Solaris

I read a good article (Why a New Filesystem Matters) about the importance of file metadata, and cool tricks like querying file content. In the example in the article, it is assumed you know what file your interested in. One crucial point of the article is that there is a cost for storing metadata, both loss of speed and disk space. Medusa might be a smarter option than I originally supposed for handling file metadata, because, while it's database takes up disk space, it is fast, and it's content indexers will be optional. Medusa will handle the disk space better because it uses a separate filesystem, it's database, which is optimized for small chunks of data. ReiserFS is great at handling files, but it doesn't know a lot about the relations between the files, nor does it help the user know about them. Medusa will know a lot about them, so it makes more sense to ask a Medusa for this information that using a filesystem plug in to query a file's metadata.

I've been trying to install Medusa on Solaris 8 Sun/GNOME 2 on an idle computer at work. It doesn't compile for all the stupid reasons. Sun ships with ancient libs, old developer tools, it's developer installation is missing pieces, etc.... Then there is the Medusa code itself. It dies for simple portability reasons, the basic UNIX libs aren't the same as Linux. Medusa's code often uses it's own methods to solve problems that specialized libs do fabulously well. Simple tests fail because native (not portable native) code is used to getpid(), and logging doesn't work calling setenv(). Using glib, and specialized libs for logging, testing, DB storage, system idle usage would let me focus on developing and perfecting Medusa's core features instead of making mediocre alternatives to libs that are already on the computer.

Medusa has a long way to go, and I'll need just as much time to factor out Medusa's private support code as well as develop it's core functions. As frustrating as this is, refactoring bad local code for proven, reusable code from other libs will get me more functionality now than simply start over.