This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the instantOS ISO build repository - tools for creating a live installation ISO for instantOS, an Arch Linux derivative distribution. The project uses archiso as the underlying build system but with significant customizations for the instantOS experience.
./build.shThis script:
- Requires running on an instantOS installation (or Arch/Manjaro with
instantinstall archiso) - Uses the system's archiso installation from
/usr/share/archiso/configs/releng/ - Builds to
./build/directory by default (configurable viaISO_BUILDenv var) - Produces final ISO in
build/iso/
- Clones and manages dependencies: instantARCH, instantOS, liveutils, instantLOGO repositories
- Copies upstream archiso releng profile to temp directory
- Applies instantOS customizations:
- Adds instantOS repository to pacman.conf
- Appends package lists from instantARCH
- Sets up syslinux bootloader with custom branding
- Copies live assets (wallpapers, splash screen)
- Executes deprecated
customize_airootfs.shin chroot for live environment setup - Runs
mkarchisoto generate final ISO
The build system relies on the deprecated customize_airootfs.sh script (removed in archiso v60) which runs in a chroot environment to:
- Create user
instantoswith passwordinstantos - Setup LightDM autologin
- Configure sudo access
- Apply instantOS theming and dotfiles
- Install development tools via external scripts
A comprehensive migration strategy exists to modernize the build process:
- Move from dynamic chroot scripts to static file overlays
- Use modern archiso features (pacman hooks, declarative configs)
- Maintain upstream compatibility by patching releng profile dynamically
- Preserve all existing functionality while improving maintainability
Main build orchestrator that handles:
- Dependency management via
ensurerepo()function - Package list aggregation from multiple sources
- Bootloader customization (syslinux splash, timeout)
- Asset management (wallpapers, logos)
Contains static files that get copied to the live environment:
root/customize_airootfs.sh- deprecated chroot customization scriptetc/instantos/- version and configuration filesusr/- overlay for system files
Bootloader configuration and assets:
- Custom splash.png branding
- Modified timeout settings (100 instead of default)
The build process dynamically fetches and integrates:
- instantARCH: Installation framework and package definitions
- instantOS: Main distribution configuration and theming
- liveutils: Live environment assets and wallpapers
- instantLOGO: Branding assets for bootloader
- Must run on instantOS installation or compatible Arch-based system
- Requires
instantinstall archisofor archiso dependencies - Needs internet access for git repository cloning
- Requires sudo privileges for
mkarchisoexecution
- Test builds should be done in a clean environment
- The
build/directory is completely removed before each build - Workspace is cached in
build/workspace/for faster subsequent builds
- Uses deprecated archiso chroot scripts
- Fragile dependency on external git repositories
- Limited error handling for network issues
- Hard-coded repository URLs and configurations
build.sh- Main build script (136 lines)airootfs/root/customize_airootfs.sh- Deprecated live environment setupplan.md- Comprehensive migration strategy documentationsyslinux/splash.png- Bootloader branding asset