[haiku-development] Re: Bootstrapping Haiku

  • From: Ingo Weinhold <ingo_weinhold@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Tue, 11 Feb 2014 14:20:58 +0100

On 02/11/2014 12:49 PM, Jonathan Schleifer wrote:
it seems like really nobody except olta did this before, so here's what 
obstacles I had to overcome.

Actually I did for x86. While it was a bit rough at that time, it basically worked. Due to not really being maintained (we really need continuous integration for the process) new issues probably have crept up.

There's even hardcoded /home/zooey at some places.

The only one I'm aware of is in the URL variable of the haikuporter recipe. It shouldn't be there, but that doesn't matter, since the second URL is the correct one and should be used, if the first one doesn't work.

I haven't yet got it to fully bootstrap, but I got quite far. I already found 
quite a few things that need fixing, but first I wanted to get it working at 
all.

I first tried it on OS X, but after I found so many problems, I decided to get 
it working on Linux first.

Only Linux is supported (and the plan was to also support Haiku eventually). We didn't (and don't) strive for supporting all build platforms, tools, and shells the regular build supports. Bootstrapping is a rare process and supporting all the different flavors just increases the maintenance burden.

The first problem that affects Linux and OS X is that the generated 
haikuports.conf contains relative paths - relative to the Haiku checkout.

This probably depends on how you configure the build (at source root vs. in generated directory). At least I have never seen the issue.

And now, finally, the problem where I'm stuck on Linux: After all bootstrap 
packages have been built, it tries to build meta-ports/meta_portsfile. For 
that, it passes a packages_list file, which lists all packages including 
version that should be built. The problem however is that it can't find the 
specified version, even though it exists. If you change the packages_list to 
use the newest version, it works. However, there's one port for which this 
can't be done: Python. Because that would mean using Python 3.2 instead of 2.7. 
I have no idea why it is refusing to find anything but the newest version. I 
tried changing the versions in the packages_list and deleting Python 3.2 - but 
that wouldn't help, it would still not find Python 2.7 or 2.6. So if anybody 
got an idea here, that'd be really appreciated!

From your description I can't say what exactly is going wrong. A serious problem we currently have is the state of the HaikuPorts repository. There really should be a branch that matches the current state of the corresponding package repository file in the Haiku sources. Currently we only have the master branch where everyone dumps their recipes, which may also mean that newer versions of recipes hide older ones that are still the current for the Haiku image. haikuporter may also have issues with the version selection in certain cases.

CU, Ingo


Other related posts: