[HaikuPorts-devs] A thought on HaikuPorts and Optional Packages

Andreas Färber andreas.faerber at web.de
Sat Jun 6 16:30:15 PDT 2009


Hello,

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  
Jamfile-driven solution.

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  
bootstrapping.

What do you think?

Andreas



More information about the haikuports-devs mailing list