unieject: release and proceed

Unieject seems to be one of my most complete projects since a long time: yesterday after I completed FreeBSD support I started the release cycle with unieject-1, and also opened a Freshmeat project page.
I haven’t used a trunk/ tags/ layout on my svn server, but for those version is not a problem: until it can’t be stable there’s no reason on using major/minor versions.

I also wrote the unieject.1 manpage (my first manpage!) thanks to txt2man it’s just a matter of writing a structured text file.
Unfortunately this adds a new build-dependency, but that is not a problem for gentoo at least 🙂 (txt2man is a sh-script with gawk, so it’s just a matter of copying itself in /usr/bin); I added app-text/txt2man to portage yesterday.

The new upcoming version is going to have a few more options from Linux eject, if they are supported, such as setting the max speed of a drive. Unfortunately it seems like eject doesn’t care at all about the fact that the drive supports the speed settings, and just says to have set it. Instead unieject looks at the drive’s capabilities as reported by libcdio to see if it can set or not the speed.

I should probably also start documenting the public interface of the library via manpages as well, fortunately txt2man is simple enough to work for me.

I also started working on the osx port of it, fortunately seems like the code to get mounts and unmount them is the same as FreeBSD, but seems like libcdio needs a few tweaks to work on Tiger (and it doesn’t report the CD-Rom unit, also when the driver is loaded), maybe it’s supposed just to work on Darwin, I’ll ask kito 😛

Unfortunately most of the extra functions of eject I can’t really test, so I need to put them and hope (cd changers and so on).
Also the scsi, floppy and tape ejection mode needs to be rewrote completely as libcdio can’t (obviously) manage them.

Well, version 2 will probably be released today, and that will go in portage, as a virtual/eject provider, also if it needs a few workarounds for FreeBSD as it’s now (I can eject a CD-Rom working in CAM mode, I can’t do that for CD-Roms in native mode for now).

Another thing I need to take care is the localization, I never used gettext before so I need documentation about it.

I hope to have a valid eject alternative soon 🙂