Public Alpha 0.5.0
Back to docs

Calamares Integration

Calamares is used for package-based installation. It partitions and mounts the target disk, then DevelOS runs pacstrap with the same installed-system package manifest used by the CLI installer.

Package Flow

Calamares is installed only into the live ISO through archiso/packages.live.x86_64. It should stay out of archiso/packages.installed.x86_64 so live-only installer tools are not installed onto the final system.

Package Build Hook

scripts/build-packages.sh builds all local DevelOS packages. For develos-installer, it copies archiso/packages.installed.x86_64 into usr/share/develos/packages.installed.x86_64 so Calamares and the CLI installer share one installed package list.

Main Config Package

packages/develos-calamares-config/ owns the DevelOS Calamares config, helper script, branding, and live-user polkit rule. The install hook copies config from /usr/share/develos/calamares/etc/calamares/ into /etc/calamares/.

Install Sequence

settings.conf defines the flow: partition, mount, shellprocess, machineid, fstab, locale, keyboard, localecfg, users, displaymanager, networkcfg, hwclock, and umount. There is no unpackfs step because DevelOS installs packages instead of copying the live ISO squashfs.

Pacstrap Helper

/usr/lib/develos/calamares-pacstrap is called by theshellprocess module. It reads the installed package manifest, runs pacstrap -K, copies the local DevelOS repo and pacman config into the target, installs GRUB, and enables NetworkManager.service and ly@tty1.service.

Module Notes

  • bootloader.conf documents GRUB/EFI behavior, though GRUB is currently installed by the helper.
  • displaymanager.conf points the installed system at ly.
  • locale.conf sets the default region and timezone shown in the UI.
  • partition.conf controls partition UI behavior and uses /boot/efi for EFI.
  • users.conf sets default groups, including wheel.

Branding And Polkit

Branding files live under the DevelOS Calamares branding directory and provide the installer name, colors, icon, logo, and slideshow. The polkit rule lets the live user devel run Calamares through pkexec without broadening access to arbitrary commands.

Testing

Phase 1 checks that the UI launches:

./scripts/build-iso.sh
./scripts/run-qemu.sh output/<iso-name>.iso
pkexec /usr/bin/calamares

Phase 2 performs a full install test:

./scripts/run-qemu-install.sh output/<iso-name>.iso vm/develos.qcow2