[HaikuPorts-devs] A thought on HaikuPorts and Optional Packages
andreas.faerber at web.de
Sat Jun 6 16:30:15 PDT 2009
Recently I ran into the issue of Haiku's struct stat not being POSIX-
compliant. My proposed fixes couldn't be applied right away, because
they would have broken binary Optional Packages relying on a certain
binary layout of the struct - requiring new Optional Packages to be
compiled with a local patch first, then uploaded, then the
OptionalPackages Jamfile updated, then finally the patch applied and
my port fully usable.
I wonder if it would be feasible to merge the two concepts of Optional
Packages installed with Haiku on the one hand and HaikuPorts compiled
+installed with a BePorter application on the other into a single
The goal would be to have the option of letting the Jam-based Haiku
build system download, patch, cross-compile and install software
packages onto the image via a simple command in UserBuildConfig. By
using Jam, I would hope the BepFiles could be turned into Jamfiles,
consisting of a series of abstract commands or variable assignments,
usable with different action definitions for both native and cross-
build environments respectively.
Cross-compiling Haiku, then compiling something inside Haiku that
needs fixes in Haiku headers requires me to synchronize changes
between the installed headers and those used to compile Haiku - to not
lose important changes and to check for undesired effects on kernel
compilation. If I noticed such problems in the same environment I
compile Haiku in (be it Linux or Haiku), it would make the roundtrip
times much shorter by using a single set of files and not having to
reboot in between.
Of course it has downsides as well. First, cross-compiling is far from
trivial. Second, it takes more time than unzipping pre-compiled files.
But then again not having an Open Source project constrained by binary
blobs seems worth the effort to me.
An alternative idea (or intermediate step) would be to generate a
first-boot script inside the image from Haiku's build system and to
take on the compilation process from there, whether Jam or not, in
that case still requiring a binary development package for
What do you think?
More information about the haikuports-devs