archived: replaced by noctix
This repository has been archived on 2026-11-08. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Shell 55.1%
  • Python 44.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Michał 6646dd32ee
xbps: embed musl binaries, park glibc originals; telemetry off in ISO builds
- 16 bin/ xbps wrappers resolve via readlink -f into musl/{bin,lib}
  (new wrappers: alternatives, checkvers, dgraph, fbulk, uchroot, uunshare)
- glibc originals parked in bin-glibc/
- distros/base.py _run sets XBPS_TELEMETRY=no so ISO package installs
  never ping pkgs.euri-linux.pl (host wrappers keep manual pings working)
2026-10-05 21:17:42 +02:00
euri_mklive xbps: embed musl binaries, park glibc originals; telemetry off in ISO builds 2026-10-05 21:17:42 +02:00
examples quick/custom commands, artix-style YAML flattening, repo cache + key preseed, greetd/sway setup, initramfs, attest; URLs → euri-linux.pl 2026-09-29 16:10:01 +02:00
LICENSES fix licenses: XBPS is BSD-2-Clause, Pacman is ISC, not all GPL-2.0 2026-08-26 19:14:37 +02:00
.gitignore fix: syntax errors in all backends, wrong import path, entry point 2026-08-26 20:39:42 +02:00
installer.sh installer: install dialog into rootfs, add Userland step (GNU default; BSD coming soon in Beta) 2026-09-29 20:02:36 +02:00
LICENSE add GPL-2.0 license 2026-08-26 19:03:51 +02:00
pyproject.toml v0.4.0: horizon distro option, recommended=horizon, no forced branding in custom 2026-08-27 21:54:36 +02:00
README.md horizon: dinit services, pkg manager binaries, GPL-2.0 licenses 2026-08-26 19:12:09 +02:00

euri-mklive

universal CLI iso builder. any distro, from any distro.

build a debian iso on arch. an arch iso on fedora. an artix iso on ubuntu. doesn't matter.

what's included in the ISO

every ISO ships with:

  • all package manager binaries (xbps, pacman, apt, dnf, apk, dpkg — whichever the distro uses)
  • GPL-2.0 license files for each package manager (see LICENSES/)
  • the packages you specified in your config
  • a working bootloader (GRUB)

you can use the shipped package managers offline to install/upgrade/remove packages without an internet connection, as long as you have a local repo.

install

pip install .
# or
pipx install .

usage

# see what's supported
euri-mklive supported

# build from a config
euri-mklive build my-config.yaml -o ./output

config

yaml config that defines everything:

distro: artix          # debian | ubuntu | arch | artix | void | alpine | fedora
arch: x86_64
init: dinit            # dinit | openrc | runit | s6

hostname: mydistro

iso:
  name: My Distro
  version: "1.0"
  label: MYDISTRO

users:
  - name: user
    shell: /bin/bash
    groups: [wheel]

packages:
  - linux
  - plasma-desktop
  - nano
  - git

services:
  - connmand
  - sddm

supported distros

distro bootstrap tool init systems package manager
debian debootstrap systemd apt/dpkg
ubuntu debootstrap systemd apt/dpkg
arch pacstrap systemd pacman
artix basestrap openrc, runit, s6, dinit pacman
void xbps-install runit, dinit xbps
alpine apk openrc apk
fedora dnf systemd dnf

how it works

  1. reads your yaml config
  2. bootstraps the target distro into a temporary rootfs
  3. installs your packages + ensures package manager binaries are present
  4. configures users, services, hostname
  5. installs the bootloader (GRUB)
  6. copies package manager binaries + GPL-2.0 licenses into ISO
  7. squashes the rootfs into a bootable ISO
  8. done.

licenses

see LICENSES/ for the full GPL-2.0 text for each package manager shipped.

license

euri-mklive itself is GPL-2.0. see LICENSE.