Commit Graph

10 Commits (c3418b96e7ecdb32d3237eba848d2a90ae86bdaf)

Author SHA1 Message Date
Dustin 5d730ee0e6 lib/crossdev: Do not update when installing
This usually results in a broken dependency graph that has to be
resolved by rebuilding the base layer.
2024-12-14 17:37:40 -06:00
Dustin 961cb0078c lib: Disable emerge color
Although Jenkins is supposed to be able to decode ANSI escape sequences
for terminal colors, it doesn't do so in all cases and when it does, it
doesn't seem to produce the right result for output from `emerge`.
2024-12-14 17:37:25 -06:00
Dustin d79bf8526e ci: Archive logs from /var/log too
When `crossdev` fails, we need to read the logs it put in `/var/log`.
2024-12-14 14:17:33 -06:00
Dustin a67ed592df tools: Install tini
During development, we leave a container running and `exec` into it
to run multiple commands.  To keep the container running, we need a PID
1 process that never terminates, which we achieved previously with
Python.  This technically works, but ultimately leaves a lot of zombie
processes.  If we use a "true" init process for PID 1, it will clean
these up.
2024-12-14 09:45:50 -06:00
Dustin 3f136a4ad1 crossdev: Build a cross toolchain for Rust
To cross-compile Rust packages, we need a standard library compiled for
the target system.
2024-12-14 09:41:35 -06:00
Dustin aaed7211b2 build: Install QEMU
Aimee OS/container-images/pipeline/head There was a failure building this commit Details
Although most software can be cross-compiled, there are quite a few edge
cases where executables built for the target system need to be run on
the build host.  Notably, `ldconfig` only considers libraries for the
same machine type as the tool itself, so it's impossible to run it in a
cross-compiled root.  In order to get passed these situations, we can
use QEMU in user mode to emulate the target architecture, allowing ARM
executables to run on AMD64 machines.
2024-12-12 18:02:16 -06:00
Dustin 20916b48c6 ci: Persist build logs
Aimee OS/container-images/pipeline/head This commit looks good Details
2024-12-08 10:59:30 -06:00
Dustin f99176abf3 tools: emerge shadow first
_sys-apps/shadow_ needs to be installed explicity, otherwise all
_acct-user/*_ and _acct-group/*_ packages will fail to install.
2024-12-08 10:59:30 -06:00
Dustin c13a44c6bf common: Persist binary packages between runs 2024-12-08 10:59:30 -06:00
Dustin 65988b0c32 Rework images into three layers
* Base
* Crossdev
* Build

The *Base* layer is bootstrapped from a regular Gentoo stage 3
environment.  The *Build* layer is the primary artifact, and is
"squashed" into a single layer when built.
2024-12-08 10:59:28 -06:00