Without these the live system has no mirrors configured and pacman
refuses to sync. Uses geo.mirror.pkgbuild.com as primary with
kernel.org, rackspace, and MIT as fallbacks.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Menu and launcher fallback pointed to alacritty/firefox/rigel/quill
which are not in the live ISO. Switch to xterm (already installed),
pcmanfm and mousepad (now added to packages). Also add arandr for
display settings.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Also add all OrionOS binaries to file_permissions so archiso sets 755
on them in the squashfs (fixes Permission denied from xinitrc).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Without this, pacstrap locks root's password by default and the live
ISO is unbootable/unloggable-into.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
getarg's trailing-= convention varies by mkinitcpio version and was
returning empty even when archisosearchuuid was present in cmdline.
Parse /proc/cmdline directly in ash — no external tools, no version
sensitivity.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Syslinux passes archisolabel= not archisosearchuuid= (UUID is only in
systemd-boot entries). Add blkid label lookup as fallback so both boot
paths work.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
run_latehook fires after mkinitcpio already attempts to mount root= (empty),
which fails. Switch to run_hook() setting mount_handler=archiso_mount_handler
so mkinitcpio calls our handler instead of the default block-device mount.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Current archiso package does not install initcpio hook files (confirmed:
find /usr -path */initcpio/hooks/archiso returns nothing). Write the hook
and its mkinitcpio install script directly into the profile airootfs so
COPY carries them into the image without any package dependency.
Hook finds ISO by archisosearchuuid= kernel param, waits up to 30s for
the device to appear via blkid, mounts iso9660→squashfs→overlay onto
/new_root. mkinitcpio detects /new_root is already mounted and succeeds.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The releng syslinux.cfg references UI .c32 modules that may not load,
causing syslinux to fall back without archisolabel= in the kernel cmdline
so the archiso initrd hook scans for an empty device label and sets root=''.
- Write our own minimal syslinux.cfg using %INSTALL_DIR%/%ARCHISO_LABEL%
placeholders; Dockerfile now only copies .c32 binaries from releng
- Add squashfs and overlay to mkinitcpio MODULES explicitly
- Remove microcode hook (no intel-ucode/amd-ucode packages installed)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mkinitcpio runs inside the airootfs chroot, so the archiso hook files
(/usr/lib/initcpio/hooks/archiso) must be installed there. Without this
the hook has no device-scanning logic and boots to an empty root mount.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Disable pacman alpm sandbox in Dockerfile (seccomp blocks it in BuildKit)
- Move mkarchiso from RUN to CMD so it runs with --privileged at docker run time
- Fix output path: mkarchiso now writes to /dist (matches volume mount)
- Add syslinux + imlib2 to Docker build packages and live ISO package list
- Copy syslinux/ and efiboot/ boot configs from archiso releng into profile
- Switch deprecated UEFI grub bootmodes to uefi-x64.systemd-boot
- Fix wrong package names: libpam→pam, light→brightnessctl, remove pkexec
- Set SigLevel=Never and hardcode reliable mirrors in profile pacman.conf
- Add mkinitcpio.conf with archiso hook so initrd can mount the live squashfs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>