Skip to content

bootstrap: Use freedesktop-sdk-binary-seed for bootstrap

Dor Askayo requested to merge doraskayo/binary-seed-v2 into master

From the main commit:

Use the freedesktop-sdk-binary-seed Docker image to bootstrap
freedesktop-sdk.

This removes the recursive dependency of freedesktop-sdk on its
previous versions as binary seeds for bootstrap, and from Yocto as
its original binary seed, allowing the project to be rebuilt from
scratch even if its previous versions are completely lost.

The bootstrap path and dependency graph for the project is now made
up of only three major steps:

	live-bootstrap
		-> freedesktop-sdk-binary-seed
	    		-> freedesktop-sdk

live-bootstrap is bootstrappable from very minimal binary seeds
(~1 KB, Linux kernel 2.6 and above), which means it can be recreated
from scratch as long as its source files and binary seeds remain.

freedesktop-sdk-binary-seed is bootstrappable from live-bootstrap
as its only binary dependency[0], so it too can be recreated from
scratch as long as its source files remain and live-bootstrap can be
bootstrapped.

freedesktop-sdk is now bootstrappable from freedesktop-sdk-binary-seed
as its only binary dependency[0] (aside from Rust[1]), which means it
can be recreated from scratch as long as its source files remain and
freedesktop-sdk-binary-seed (and Rust) can be bootstrapped.

Similarly, any project which makes use of freedesktop-sdk as its base
and is built from source files can too be considered bootstrappable
from it on similar terms, including GNOME OS and most Flatpak apps on
Flathub.

[0] Plus an existing system to run BuildStream, Podman, etc.
[1] Rust unfortunately requires older versions of itself in its
    bootstrap path.

freedesktop-sdk-binary-seed lives at https://gitlab.com/freedesktop-sdk/freedesktop-sdk-binary-seed.

Depends on !11755 (merged) and !11754 (merged).

Closes #340 (closed)

Edited by Dor Askayo

Merge request reports