Package Management: New Contract Starts

Blog post by bonefish on Mon, 2013-06-03 20:13

On the technical side not that much has happened since my previous blog post a week ago. Oliver has continued to work on cross-building and, given the potential for surprises and "interesting" problems, probably will do so for a while longer.

I have added support for the new package file format features (declaring settings files, users, groups, and post-install scripts) to haikuporter. I have also added a checker for our packaging policy (at least a part of it), so that it can now already be detected while building a package whether it violates the policy and therefore might cause trouble later.

Furthermore I've started implementing a dependency analyzer in haikuporter that figures out which packages we actually need to cross-build so that all other packages can be built. Part of the implementation will also be reused for another missing feature: A build recipe only declares the minimum version of the package's dependencies. ATM these declarations end up unmodified in the package, which is not correct, though. E.g. if the minimum requirement for a certain library is version 1.0, the package might actually be built against version 1.4. Since new features of the later version might be used implicitly or even explicitly, the resulting package will require the newer library. So we need to replace the minimum requirements declared in the recipe by the actual versions we've used when building the package.

Once that feature has been implemented (barring potential further issues) we will once again -- and hopefully for the last time -- go through all build recipes to update them and build new packages. I'm not sure yet which of the remaining tasks we'll tackle after that. Possibly some build system work (e.g. getting the hybrid builds working again), maybe already pushing for integration with repositories.

As was mentioned in the recent Haiku, Inc. news post, pre-built images of the package management Haiku are now available for testing. I believe Matt builds them weekly, so the second one should hit the server some time later today. Thanks to reports by Humdinger I've looked into and fixed a few issues the first image has; like most Wifi firmware being missing from the image and queries not working correctly in some cases. I also made the Installer usuable again, so it will be possible to install Haiku from the upcoming image using that application. I recommend doing that, if only to enjoy watching how fast the installation process is.

Issues with the package management Haiku can be reported as usual via Trac. There's now a version "R1/Package Management" the tickets can be assigned to.