Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revise SDK bootstrap process according to new seed update procedure #351

Merged
merged 2 commits into from
Jul 18, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
## SDK bootstrap process
---
title: SDK bootstrap process
weight: 10
---

## Introduction

This document aims to provide a high-level overview of the SDK build ("bootstrap") process.

Expand All @@ -22,9 +27,7 @@ The output of the 4th stage, i.e. the archived contents of `/tmp/stage4root`, re

Stage 1 is somewhat of a preparation phase and does not actually involve any components to be found in the final SDK. This stage takes the seed tarball - which must be a previously released Flatcar SDK - and builds a minimal toolchain from the seed (with `USE=-*`).

**NOTE**
* this toolchain, i.e. the output of Stage 1, will be built from the "old" package versions from the seed SDK. Contents of `../third_party/coreos-overlay` and `../third_party/portage-stable` are ignored in this step. Instead, the ebuild repos included in the seed SDK are used (**FIXME: Not entirely true yet**)
* Stage 1 does _not_ feature strong library link isolation. All packages installed to `/tmp/stage1root` will be linked against libraries in `/` instead of libraries in `/tmp/stage1root`. Therefore, Stage 1 only uses the "old" seed SDK's package versions when building the seed for Stage 2.
**NOTE**: Stage 1 does _not_ feature strong library link isolation. All packages installed to `/tmp/stage1root` will be linked against libraries in `/` instead of libraries in `/tmp/stage1root`. We avoid issues with missing libraries later in the build by initially updating the seed, specifically relevant packages that have changed [sub-slot](https://wiki.gentoo.org/wiki/Sub-slots_and_Slot-Operators).

#### Stage 2 - Build the toolchain that builds the SDK

Expand Down
Loading