[haiku-development] Re: Package-builders-build-off 2015

  • From: Adrien Destugues <pulkomandy@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 29 Nov 2015 13:19:07 +0100

On Sun, Nov 29, 2015 at 12:45:16PM +0100, Michael Lotz wrote:

The setup I've gone for requires the system to be fully self contained. It
requires that all dependencies (including the Haiku packages themselves) are
provided to the system and there are no implicit provides in some list that
needs to be maintained. It will also distribute all of these dependency
packages to the builders and enforce that no system packages of the build
host are used. This ensures that the packages will always be consistent and
no packages that just happen to be installed on one of the build hosts can
"leak" into the result and introduce subtle differences (i.e. resolved
requires in the packages pointing to different versions than was expected).
This is IMO a desirable property and goes beyond just build scheduling.

Does this make it possible to cross-compile packages from a non-Haiku
host? Given the stability issues encountered in various places when
running Haiku as a server (Netsurf and CMake build bots come to mind -
both of these didn't work very well and required constant watching and
fixing), it would be nice to be able to do that.

I can spend some more time on this to implement HPKR generation which would
then essentially make the system complete. It will not have a fancy web
frontend as the other two approaches have. That is IMHO not all that
important for an automated build. It produces logs that could easily be
exposed via a standard web server to produce something similar to what
buildbot exposes. It doesn't really make sense to spend this time if noone
else sees merit in the essence of my approach. Comments on that would
therefore be appreciated.

I think this approach is better. Adding a fancy web interface to a
working system is easy, and it doesn't even need to be intermixed with
the builder, it can parse the logs and generate HTML from them
independently).

How are circular dependencies to be handled? Waddlesplash's Kitchen
approach is: "I won't handle this, let's mark the packages as broken"
which means it can't be used to build OpenJDK, nor any of the core
components which the Haiku package depends on (gcc, binutils, libz,
freetype, etc). These are the packages I'm most concerned with, as
everything else could be handled by 3rd-parties.

--
Adrien.

Other related posts: