Files
euri-mklive/README.md
T
c-ludenberg 97331b1449 horizon: dinit services, pkg manager binaries, GPL-2.0 licenses
- real dinit service files (connmand, sddm, ntpd, chrony, sshd)
- void backend properly swaps runit for dinit with service definitions
- ISO generation finds kernel/initrd, builds proper GRUB config
- ship all package manager binaries in ISO for offline use
- LICENSES/ directory with proper GPL-2.0 plain text for xbps, pacman, apt, dnf, apk, dpkg
- backends explicitly install their own package managers
- README updated with binary inclusion and license info
2026-08-26 19:12:09 +02:00

2.2 KiB

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.