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:
Vendored
+15
-1
@@ -1,8 +1,22 @@
|
|||||||
# Haiku bootstrap in a container
|
# 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
|
The Haiku bootstrap process is highly dependant on what tools are installed
|
||||||
on the host machine. Bootstraped haikuporter builds can pick up on things
|
on the host machine. Bootstraped haikuporter builds can pick up on things
|
||||||
like the locally installed clang vs the gcc toolchain we are providing.
|
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
|
By running bootstrap within a container, we can better isolate the process
|
||||||
from the end users host and create more-reproduceable bootstrap builds.
|
from the end users host and create more-reproduceable bootstrap builds.
|
||||||
|
|||||||
+16
@@ -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.
|
||||||
Reference in New Issue
Block a user