Update readme for docker images

There was some confusion about what they are and how they are used.
Hopefully this clarifies things a bit.
This commit is contained in:
Adrien Destugues
2021-05-16 18:04:16 +02:00
parent bb76d2f16c
commit ae0a10cad3
2 changed files with 32 additions and 2 deletions
+16 -2
View File
@@ -1,8 +1,22 @@
# Haiku bootstrap in a container
In Haiku, "bootstrap" is the process of building an Haiku disk image without
any pre-compiled dependencies. Everything is built from sources instead. This
is useful in the following cases:
- Bringing up a new CPU architecture or ABI, for which no packages are yet
available,
- You do not trust our precompiled binaries used for a normal build.
The resulting image is a very minimal one, containing just enough parts of
Haiku to be able to run haikuporter inside it and generate package files that
can then be used for a normal build of Haiku.
The Haiku bootstrap process is highly dependant on what tools are installed
on the host machine. Bootstraped haikuporter builds can pick up on things
like the locally installed clang vs the gcc toolchain we are providing.
on the host machine. Bootstraped haikuporter builds can pick up on things
like the locally installed clang vs the gcc toolchain we are providing,
the shell being used (bash works, mksh is known to cause problems), or even
the way the host distribution compiled Python. This makes the process
unreliable when running it outside of a well-knwon environment.
By running bootstrap within a container, we can better isolate the process
from the end users host and create more-reproduceable bootstrap builds.
+16
View File
@@ -0,0 +1,16 @@
# A docker image suitable for cross-compiling Haiku applications
This docker image provides an environment suitable to build Haiku applications
inside a Linux compiler. It can be used by projects willing to integrate an
Haiku build inside their CI system, for example.
The docker build of this image prepares the environment by:
- Building our toolchain
- Building the haiku hpkg files and downloading dependencies
- Extracting headers and libraries from the hpkg files to generate a sysroot
directory
- Setting up environment variables for the toolchain to be usable
You can then use the $ARCH-unknown-haiku compiler (for example
arm-unknown-haiku-gcc) to build your application. All the required files are
installed in /tools/cross-tools-$ARCH.