3 Home
zachbacon edited this page 2026-07-04 07:24:57 -04:00
binutils →
gmp → mpfr → mpc →                  # gcc's hard builddeps as separate packages
gcc → make →
ncurses → readline →                 # readline before bash
bash → coreutils →
sed → grep → gawk → patch → findutils → diffutils →
tar → gzip → which →                 # these were missing from your list
xz → zstd → bzip2 → file →
m4 → bison → flex → pkgconf →
perl →
expat → libffi → openssl →           # python3's real builddeps
python3 →
autoconf → automake → libtool →
gettext → texinfo → util-linux → fakeroot →
cmake (rebuild) → ninja → meson      # meson needs python3, hence last

The insertions matter because Solus recipes declare them: their gcc builddeps gmp/mpfr/mpc as separate packages (unlike LFS which builds them in-tree), their bash links system readline, and python3 needs libffi for ctypes and openssl for the ssl module. If you write your own stage recipes instead, you can vendor those in-tree and skip the insertions — but since the goal is pristine Solus recipes, match their dependency shape.

The loop for each package:

apkg-builder build <pkg>/package.yml --profile bootstrap-x86_64 --local
apkg-builder local add *.apkg
apkg-builder local index

Two practical warnings for this phase:

check: steps will bite you. Solus recipes include test suites, and test suites are exactly what breaks in a not-yet-converged bootstrap chroot (glibc's and gcc's especially — they can also take hours). There's currently no --no-check flag on apkg-builder build; expect to comment out check: lines during Phase A, or I can add the flag — it's a five-minute change. Order failures are information. If a build fails on a missing lib, that's a builddep the recipe assumes from system.devel that your LFS image lacks — the fix is building that package earlier, not patching the recipe. Once the list is green through meson: apkg-builder image build main-x86_64, then run the same sequence again with --profile main-x86_64 for the convergence pass.

Want the --no-check flag added before you start?