package management

'Packaging Infrastructure' Contract Weekly Report #4

Blog post by waddlesplash on Fri, 2015-07-03 16:20
After I took last week off for vacation, this week went very well. HaikuPorts has been migrated to GitHub, many corner cases related to HaikuPorter have been resolved, and most of the infrastructure issues that were directly related to setting up the package build server are gone.

'Packaging Infrastructure' Contract Weekly Report #3

Blog post by waddlesplash on Fri, 2015-06-19 18:48
Hello again!

As mentioned in last week's report, I planned to work on integration with IRC to allow the developers to get real-time updates on what the builder was doing, finishing the documentation, and then working on the logic that actually builds packages. The first two of the three are pretty much done, and the last one I did get started on. So this week went pretty well.

'Packaging Infrastructure' Contract Weekly Report #2

Blog post by waddlesplash on Fri, 2015-06-12 18:04
Hello, Haikuvians!

This week was just as productive as last week. I did start on the builds logic, which now can run "builds" (lists of commands) in sequential order. I also improved the builder management system, and created documentation for pretty much everything.

'Packaging Infrastructure' Contract Weekly Report #1

Blog post by waddlesplash on Fri, 2015-06-05 17:52
Hello world!

This week was rather slow: I've logged only 18 hours of contract time this week. I expected this, partly because I didn't expect to do any work on Monday (as mentioned in my first blog post) and partly because I still had some coursework to finish up the semester with. But despite that, I got a ton of stuff done, and the foundations for the following weeks' work are well laid.

Beginning of 'Packaging Infrastructure' Contract

Blog post by waddlesplash on Mon, 2015-06-01 13:14
Anyone following the "haiku-inc" ML will have noticed that I've been approved to spend 240 hours (around 6 weeks of full-time work) on Haiku's packaging infrastructure. This mostly means I'll be working on the package building system, which will manage the "HaikuPorts" package repository, ensuring it's up-to-date across architectures (and later, across both nightly & release builds).

Further improvements to package management and related technologies

Blog post by mmadia on Sun, 2014-02-23 00:07

Since the package management feature branch was merged into HAIKU's
master repository, numerous issues were uncovered. As with any large
feature, an influx of regressions and other issues should always be expected.
Most of the issues revolved around not being able to install or even
run certain software, which for an operating system is a big deal.
Luckily, with any actively developed software such as Haiku, bug fixes
continue to happen. This article will go into some of those issues, what
has been done to fix them, and what other improvements are in the pipeline.

End of package management contract

Blog post by zooey on Sun, 2013-11-10 16:47

From mid-June to early November, I have spent 320 more hours working on package management. After having worked on the bootstrap support in HaikuPorter (which Ingo has already mentioned in his blog entry), I have spent some time reworking the way how Perl and Pythong organize their modules: Scripting languages with module support usually expect to be able to build modules from source and install them somewhere into the hierarchy of the scripting language. In our case, they can no longer just put the built (site-specific) modules into the "standard" folder, as that one is read-only. So the configuration of Perl and Python had to be changed, such that modules built from source are being installed correctly into a writable folder (in the non-packaged hierarchy). Perl already supports the notion of a vendor-modules folder, where packaged Perl modules will be installed (an example of such a beast are the perl modules contained in the git package). That idea has been extended to Python (such that it will automatically pick up the python modules provided by the mercurial package). Separating packaged modules from local (built from source) modules is an idea that should be followed by all (not only scripting) languages ported to Haiku.
The updated perl, python, git, mercurial and scons packages that are the result from that work have not yet been published, but I will do that during the next couple of days.

The package management branches of both haikuporter and haikuports have been merged into the respective master, i.e. all porting work done in there will produce packages. Several new 'testing-' branches will be added to the haikuports repository soon in order to be able to separate work on the bleeding edge from the work that tries to stabilize a given set of packages for a release.

Finally, I have started with work on the infrastructure required for automatic building of repositories and (at a later stage) packages. The first effect of this is that whenever a developer changes the version of a package used by Haiku's build system, the respective repository will be created automatically. Those repositories are being published to, from where pkgman will download packages.

Summarizing those months of work: I think we have managed to put most of the work behind us, but we haven't reached the goal just yet. There's still more work to do and I personally will return to continuing that work in my spare time.