microsoft / microsoft/azurelinux

[3.0] Allow building the initial raw toolchain without containerization

Open
#13,109 5 comments 0 reactions 1 assignee View on GitHub

@anphel31 is already working on this.

Since Apr 2, 2025.

3.0 feature-request
Dominant language
Python
Stars
5.3k
Forks
707
Avg merge
2d 18h
Merged PRs (30d)
235

Description

I was exploring Azure Linux from a bootstrappability standpoint, specifically, building it on top of live-bootstrap without additional external binary dependencies. (Conflict-of-interest disclaimer: I'm one of live-bootstrap's developers.)

The way Azure Linux is built comes very close to achieving this, using a Linux From Scratch-based strategy for creating the initial "raw" toolchain - very similar to what was done to bootstrap Gentoo previously. Unfortunately, this is all defeated by the use of a prebuilt Azure Linux Docker image to wrap the LFS environment, creating precisely the kind of circular dependency (and potential Trusting Trust attack vector) that bootstrapping from source is meant to avoid.

As far as I explored, beyond this initial step, all further steps rely only on binaries built in the previous steps, without pulling in further precompiled binaries. Therefore, having a NO_TOOLCHAIN_CONTAINER=y option to disable containerization of the raw toolchain build would enable propagating trust from a bootstrapping environment to the Azure Linux toolchain, and eventually the whole distribution.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.