Skip to content

List of distributions that can be bootstrapped from source

Notifications You must be signed in to change notification settings

streaksu/bootstrappable-distros

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 

Repository files navigation

Bootstrappable Distros

It's always felt a bit odd to me when we call a distro "open source". With open source apps like Firefox or MariaDB, I can start with a only a compiler and some source, run a build, and end up running the app. But if I want to run an open source distro like Debian, the only way is to download hundreds of megs of binary Debian packages! Why can't I just build it from source, like I can with apps?

This is my list of distros that can be bootstrapped from source, starting from an entirely different operating system. You might use them for preventing Trusting Trust attacks, or proving provenance, or porting to new architectures. See the Bootstrappable Builds project for more.

Distros

Fully bootstrappable distros

These distros are fully bootstrappable, according to my particular criteria for what counts. Each link explains more details about the distro, and shows how I reproduced the bootstrap myself.

Best case: Normal distros one might run on a desktop, with thousands of modern packages that can be easily installed, and no special bootstrap requirements:

Targeted mainly at embedded systems or containers, but can bootstrap, run on normal computers, and self-build packages:

Very limited package set:

Other limitations:

  • Chimera Linux - Only bootstrappable from a handful of musl distros
  • Gnome OS - Immutable distro, can't install packages in normal ways. Can build certain flatpaks
  • Linux From Scratch - Added software must be built by hand, though with guidance
  • stagex - Targeted at containers, needs some extra work to be bootable on hardware. Only 400 packages.

Honorable mentions

These systems are similar to bootstrappable distros, or are good efforts towards one, but don't fully meet my criteria.

Can bootstrap, has dev tools, but no package management:

Can bootstrap, but no working dev tools in target:

Can bootstrap a package manager and a toolchain, but not a bootable OS:

Has a documented bootstrap procedure, but I wasn't able to get it working:

An effort in the right direction, but not eligible:

  • Alpine Linux - Seems to require starting on Alpine
  • arch-cross-bootstrap (upstream) and Arch boostrap32 (upstream) - Both require already running an Arch-based distro (on another architecture). Also untouched in 7 years.
  • Debian rebootstrap (upstream) - Requires already running Debian (on another architecture)
  • EasyOS - Uses many binary components packages.
  • Funtoo Evolved Bootstrap (upstream) - Worked as of 2024, but the repo required to bootstrap was taken down
  • GoboALFS (upstream) - Untouched in 8 years, doesn't seem to work
  • Slackware - Uses several binary packages. Also broken bootstrap.
  • Spack - Not a bootable distro. Also broken bootstrap.
  • tinycore compiler (upstream) - Incomplete project

To investigate

Any more ideas? Open an issue or a PR!

What counts?

What distros count as "bootstrappable"? There's many criteria you could use, relating to reproducible builds, or the minimal size of binaries required, etc.

For my purposes, I'm considering as "bootstrappable" any distro (the "target-distro") that can be built from a different "build-distro", without downloading the target-distro's binary packages.

Requirements:

  • Build requirements
    • I must be able to start by running a totally different build-distro. A different version or architecture of the same target-distro isn't good enough.
    • All software comprising the new distro must be built locally. No downloading of ISOs, or binary packages for the target-distro, the way debootstrap or pacstrap work.
  • Distro runtime requirements
    • I should end up running a full target-distro, on a real computer or virtual machine. Not a chroot or container.
    • The resulting distro should feel like a normal installation of the target-distro, not some weird franken-distro with bits of the build-distro hanging around.
    • The distro should be able to run on real hardware. No hobby OSes that can only run in emulators.
    • The target distro should have at least some amount of maintenance. If there haven't been updates in five years, I'll probably skip it.
  • Adding software
    • There should be a supported way to install more software, even if it's binary-only.
    • There should be a compiler that can build more software. Self-hosting is ideal. Purely embedded distros, Android, or demos don't fit the goals of this list.

Limits I allow on bootstrappability:

  • It's ok if I need to install binary packages for the build-distro only, eg: to install a compiler.
  • It's ok if only certain build-distros are usable, eg: if they must be using a certain libc, or a certain architecture.
  • It's ok to use binary bootstrap compilers for software that is typically built that way, like Rust or OpenJDK.
  • It's ok if the target-distro is not a source-based distro, and typically uses binary packages, as long as it has dev tools. Installing further software from source could be considered a solved problem with tools like pkgsrc, Gentoo Prefix or Nix.

Other preferences:

  • Where possible, I build in a container or VM to be certain exactly what dependencies are needed.
  • Where possible, I create a bootable image, to show that it's realistic to install on a new system.

Similar projects

License

© 2025 by Dave Vasilevsky, licensed under CC BY 4.0

About

List of distributions that can be bootstrapped from source

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scheme 100.0%