Package Management Goes Live

Blog post by bonefish on Fri, 2013-27-09 22:33

I'm proud to announce that, at last, the package management branch has been merged into the main development line, aka master branch. The builds and nightly images from hrev46113 on will include the new feature.

I only notice now that I should probably have given Matt a heads-up upfront, since due to the somewhat changed build process the build bot will need an update. So there might be a bit of a delay until the first Haiku PM nightly images will hit the website. Sorry for that.

So, what happened in package management land since my last post? As planned we finished building the standard packages for the missing (and actually working) architectures (x86 gcc 4 and x86-64). Oliver put quite a bit of work into fixing and improving the haikuporter bootstrap process. While it was basically working at the time of my previous article, it needed a bit of nudging and some creative work-arounds to go the full distance. Now it should be possible to build all packages with a single haikuporter invocation.

Furthermore I've worked on the package daemon. When manually moving packages into or out of one of the "packages" directories, the package daemon does now resolve the package dependencies and suggests and performs download and installation or deinstallation of additional packages as necessary. Regardless of the method of activating a package (manually or via the package manager) the daemon does now also -- as specified in the package -- extract default settings files, create Unix users and groups, and run post-installation scripts.

At the recent BeGeistert code sprint Rene Gollent started to integrate the actual package management functionality into the HaikuDepot application. The basic package installation and uninstallation functionality is working, though more work still has to be done.

Stephan Aßmus has created a Google Code project for the web application that will provide the additional package related information, like screenshots, user ratings and comments. It will probably also help with evaluating the stability of packages and assigning them to respective repositories. A small group of developers has formed to tackle the task of designing and implementing the web application.

Finally I'd like to announce the completion of my contract (well, that was already end of August) and again thank everyone who donated to make the contract possible in the first place. I hope you aren't too disappointed with the end result. As expected package management isn't completely finished and polished yet, but things should be reasonably usable already and development will continue, if at a slower pace.