Adapting Sirius to another distro
Sirius doesn’t hardcode LuminusOS anywhere. What image gets installed, how the
disk gets partitioned, and how the installer is branded are all controlled by
one config file: /etc/sirius/distro.toml. A distro packaging Sirius ships
its own copy of this file.
Reference
Section titled “Reference”[bootc]image = "ghcr.io/example/os:latest"# Optional bootc install controls:# target_imgref = "ghcr.io/example/os:latest"# enforce_sigpolicy = false# kargs = ["rhgb", "quiet"]# args = ["--skip-fetch-check"]
[disk]repart_dir = "/usr/share/sirius/repart.d"
# Optional: up to three link cards shown on the install progress page# [[bento]]# title = "Welcome to Example OS"# desc = "Learn more about the project"# link = "https://example.com"# icon = "explore-symbolic"
# Optional: welcome-page branding. `logo` (image path) wins over `icon` (themed icon name).# [branding]# name = "Example OS"# logo = "/usr/share/sirius/logo.png"# icon = "starred-symbolic"# welcome_button = "Install {name}"# welcome_banner = "/usr/share/sirius/welcome-banner.png"[bootc] image: the container imagebootc installdeploys. Required.target_imgref,enforce_sigpolicy,kargs,args: passed through tobootc installfor cases where the deployed image reference differs from the source image, signature policy needs relaxing, or you need extra kernel/install arguments.[disk] repart_dir: where Sirius looks for the partition layout, see below.[[bento]]: up to three optional link cards shown on the install progress page (title, description, link, icon).[branding]: the welcome page’s identity.namefeeds{name}templates;logo(an image path) takes priority overicon(a themed icon name);welcome_buttonis the action’s label template;welcome_banneris the large artwork shown on the welcome page.
Partition layout: repart.d
Section titled “Partition layout: repart.d”repart_dir points at a directory of systemd-repart partition-definition
.conf files. These define the layout Sirius’s automatic partitioning mode
creates (see Storage). LuminusOS ships two, as an example
to build from: 10-esp.conf (the EFI system partition) and 20-root.conf
(the root partition).
Runtime requirements
Section titled “Runtime requirements”Sirius expects these tools to be present on the live/target system:
systemd-repartbootccryptsetup(for encrypted installs)pkexec/ polkitmountlsblkudisks2NetworkManager
Two more are easy to miss because they are not linked libraries:
glibc-all-langpacks— the language page lists the locales installed on the system; images shipping only the C locales leave it nearly empty.bubblewrap— sandboxes the glycin decoder that renders the time zone map; without it the map area stays blank.
A polkit authentication agent needs to be running in the session (or a polkit
rule granting the io.sirius.Installer.run-playbook action outright),
otherwise pkexec fails. See Troubleshooting.