$ melo --version

keltOS

A source-based GNU/Linux distribution, written from scratch in Go.

design stage arm64 + x86_64 source-based written in Go

keltOS is a source-based GNU/Linux distribution written from scratch in Go. Packages are built from source on the target machine, described by recipes that read like configuration rather than shell scripts.

It is a spiritual successor to Hadron GNU/Linux, a Turkish distribution that went quiet in 2014. Hadron had one genuinely good idea — build recipes as declarative Python-syntax modules instead of bash ebuilds — and it deserves to outlive the codebase it was trapped in. keltOS shares none of that code. It carries the idea forward on a new package manager, melo, and a recipe format designed for it from the first line.

This site is early. So is everything else.

Principles

Recipes, not shell scripts

A package is a small declarative module with optional build stages — not a thousand lines of bash you have to read to know what it does.

One static binary

melo is being written as a single Go executable, so nothing needs to exist in the base system just to let the package manager run.

Parallel from the start

The dependency graph is resolved up front, so independent packages build concurrently rather than one at a time.

Roadmap

  • active Designing the recipe format and the build DSL — what a package declaration looks like, and what melo hands it.
  • next melo's build pipeline: fetch, verify, extract, run the stages, install to a staging root, check for collisions, merge.
  • next Dependency resolution — the part a package manager most easily gets subtly wrong.
  • next Bootstrap a modern toolchain and define the base system set.
  • next First boot — arm64 natively, x86_64 alongside it.
  • later Namespace and Landlock sandboxing, binary package cache, a real repository format.

What a package should look like

A keltOS recipe is meant to be a declarative module, not a shell script — read in one sitting, with real control flow where a build needs it and no arbitrary access to the system where it doesn't. This is the shape being designed toward:

name    = "zlib"
version = "1.3.1"
summary = "Compression library implementing the deflate method"
source  = "https://zlib.net/$name-$version.tar.gz"
arch    = ["arm64", "amd64"]

depends = ["sys-libs/glibc"]

def configure():
    run("./configure", "--prefix=/usr", "--libdir=/usr/lib")

def install():
    make("install", destdir = True)
    docs("README", "ChangeLog", "doc/algorithm.txt")

// design sketch — the format is not settled, and melo does not run it yet