Commit Graph
132 Commits
Author SHA1 Message Date
Ryan Hughes c50d0bc299 Unify ISO install orchestration
Drive installs through the common ISO pipeline, carry install intent in configurator JSON, and finalize Limine boot setup from the ISO.
2026-05-25 12:50:31 -04:00
Ryan Hughes c7b8d4b584 builder: prune stale offline package versions 2026-05-23 13:08:15 -04:00
Ryan Hughes 38f56103e1 builder: add debug install instrumentation 2026-05-23 12:45:12 -04:00
Ryan Hughes ca55321621 installer: animate dashboard and finish screens 2026-05-22 19:20:03 -04:00
Ryan Hughes 3420bc9aa8 builder: include omarchy-nvim in local package builds 2026-05-22 10:46:56 -04:00
Ryan Hughes f8010a355a Rebuild offline repo db from scratch each run
repo-add --new skips updating entries that are already in the db, so when
the omarchy-* packages are rebuilt in place (new content, same filename,
because pkgver is constant) the persistent cache's offline.db.tar.gz
kept the OLD size/checksum entries. Pacman then read the stale db size
and rejected the new file with 'Exceeded the maximum allowed file size'.

Delete the db files and let repo-add regenerate them fresh — slower but
deterministic, and 'offline.db.tar.gz' is small to rebuild even for the
full ~600 package set.
2026-05-21 00:28:32 -04:00
Ryan Hughes ca2b58fa4d Install omarchy-installer + omarchy-settings into the live ISO
Two motivations:

1. Plymouth: the omarchy plymouth theme + /etc/plymouth/plymouthd.conf
   ship from omarchy-settings (theme at /usr/share/plymouth/themes/omarchy,
   plymouthd.conf via the package's post_install etc-overrides hook).
   Without omarchy-settings on the live ISO, mkarchiso builds the initrd
   with plymouth pointing at the default theme instead of Omarchy's. Now
   it picks up the Omarchy theme on boot like the installed system does.

2. Drops the .pkg.tar.zst extraction hack in .automated_script.sh:
   OMARCHY_PATH=/usr/share/omarchy is the real package install path, so
   use_omarchy_helpers no longer needs to bsdtar pieces out of the
   offline mirror into /tmp/omarchy-iso.
2026-05-21 00:13:05 -04:00
Ryan Hughes a74d20f8fb build-omarchy-packages.sh: pass --nodeps to makepkg
We're not installing the deps in the build container — just producing
.pkg.tar.zst files that pacman will resolve against the offline mirror
on the target. Installing limine-mkinitcpio-hook into the build
container also fires its pacman hook that errors about a missing ESP.
2026-05-20 21:42:22 -04:00
Ryan Hughes 1224531ce1 Add the [omarchy] repo to the build container's pacman.conf
makepkg in build-omarchy-packages.sh installs runtime build deps via
pacman, which uses the container's /etc/pacman.conf. That config only
had core/extra/multilib by default, so deps that live in the omarchy
repo (limine-snapper-sync, limine-mkinitcpio-hook) failed to resolve.

Append the [omarchy] block from the channel-specific online config to
/etc/pacman.conf right after omarchy-keyring is installed.
2026-05-20 21:39:58 -04:00
Ryan Hughes 8b0fd93011 chown the package build dir to the builder user
makepkg runs as the builder user and needs to write PKGDEST. /tmp/omarchy-pkg-build
is created by root, so without an explicit chown the build aborts with
'You do not have write permission for the directory $PKGDEST'.
2026-05-20 21:38:09 -04:00
Ryan Hughes b34f53629d Validate --local-source paths before any sudo work
Also includes the build-iso.sh cleanup that I prepared earlier but
forgot to stage (replacing the inline ugly $(...) conditional pipe
with a normal if/then-fi block).
2026-05-20 21:36:31 -04:00
Ryan Hughes b8df9d3f50 Make --local-source the opt-in; default to network omarchy mirror
The previous version made the local build the only path. Convention is
the opposite: omarchy-iso-make pulls released omarchy* packages from
the omacom-pkgs.org mirror by default, and only builds from local
checkouts when explicitly asked via --local-source.

- bin/omarchy-iso-make: only mount /omarchy-installer + /omarchy-pkgs
  when --local-source is set. Default has neither mount.
- builder/build-iso.sh: skip build-omarchy-packages.sh when no local
  source. Don't filter the omarchy* names out of the pacman -Syw list
  in network mode (so they get downloaded from the mirror). With
  --local-source, the four package names are stripped after assembly
  so we don't re-fetch what we just built.
- For the package-list source: with /omarchy-installer mounted, read
  omarchy-base.packages from the checkout. Without it, briefly pull
  the published omarchy package, extract the .packages files from it
  to /tmp, and use those.
2026-05-20 21:34:49 -04:00
Ryan Hughes 9f4e5feef0 Refactor ISO build for the package-backed install flow
The ISO no longer carries a cp -r'd copy of the omarchy git checkout
into /root/omarchy and the target /home/$user/.local/share/omarchy.
Instead it builds omarchy-installer + omarchy-settings + omarchy +
omarchy-limine from mounted source trees (${OMARCHY_INSTALLER_PATH:-
../omarchy-installer} and ${OMARCHY_PKGS_PATH:-../omarchy-pkgs}),
drops them in the offline mirror, and pacstraps omarchy-installer
during the target install — which deps-in the other three.

- builder/build-omarchy-packages.sh: new. Builds the four packages
  inside the ISO build container using each PKGBUILD's OMARCHY_SRC
  override (introduced in Chunk 2). Creates a 'builder' user because
  makepkg refuses to run as root. Drops the resulting .pkg.tar.zst
  files into the offline-mirror directory.

- builder/build-iso.sh: drop the git clone / -v omarchy mount path;
  call build-omarchy-packages.sh first; filter out the locally-built
  package names from the rest-of-mirror download so we don't try to
  fetch them from the network mirror.

- configs/airootfs/root/.automated_script.sh: replace the install_omarchy
  cp-and-source dance with 'arch-chroot pacman -S omarchy-installer'
  followed by 'OMARCHY_INSTALL_MODE=offline omarchy-install'. Drop the
  big chown/chmod block that was setting up the cloned tree.
  use_omarchy_helpers extracts the installer's helpers/ tree directly
  from the offline-mirror's omarchy-installer-*.pkg.tar.zst so the live
  ISO has access to gum-styled logging before pacstrap.

- bin/omarchy-iso-make: always mount omarchy-installer and omarchy-pkgs
  (paths configurable via OMARCHY_INSTALLER_PATH / OMARCHY_PKGS_PATH;
  default to ../omarchy-installer and ../omarchy-pkgs). --local-source
  is now a back-compat no-op.
2026-05-20 21:29:40 -04:00
David Heinemeier Hansson 6c00d03272 Do a more thorough job at scrubbing the install disk
So we don't fail on past installations of linux
2026-05-07 14:26:59 +02:00
David Heinemeier Hansson 7b42d8011e Preload the signing key 2026-05-01 19:32:06 +02:00
Ryan Hughes 83a54e7fd5 Use offline for boot 2026-02-19 12:15:39 -05:00
David Heinemeier Hansson fba9fb3758 Use correct pacman conf 2026-02-19 12:44:56 +01:00
David Heinemeier Hansson 5ba771dc1b Prepare for making RC ISOs 2026-02-04 18:17:10 +01:00
David Heinemeier Hansson 54991588e9 Make the mirror available during install 2026-01-07 20:13:20 +01:00
David Heinemeier Hansson a202c81a0c Allow ISOs to be build against the edge mirror/package repository 2026-01-05 15:31:30 +01:00
David Heinemeier Hansson 4188411b9b This might already have been removed upstream 2025-12-15 08:55:35 -08:00
David Heinemeier Hansson 872c8fb03f Allow building the ISO from local source and replace dev build binstub with --dev 2025-11-11 08:47:04 +01:00
Ryan Hughes 09913880e6 Add omarchy-keyring and keys 2025-10-27 17:04:20 -04:00
Ryan Hughes 18f728a42e Add node package to install by default 2025-10-18 14:28:52 -04:00
Ryan Hughes 8f844655b7 Fix ownership issues 2025-10-08 20:42:06 -04:00
Ryan Hughes 5b9bf620ff Use grub 2025-09-21 23:47:05 -04:00
Ryan Hughes e50bad3672 Add alsa-firmware 2025-09-20 15:36:06 -04:00
David Heinemeier Hansson b5fbc6fc4e Remove precompiled Ruby for now 2025-09-17 14:20:44 +02:00
Ryan Hughes 0638855a5b Change ISO kernel to T2 patched for E2E support 2025-09-14 14:36:26 -04:00
David Heinemeier Hansson 2e0c4e55d6 Unnecessary packages for archinstall as we use it 2025-09-13 21:19:52 +02:00
David Heinemeier Hansson a5884b546f Revert the package setup for a second 2025-09-13 19:32:10 +02:00
David Heinemeier Hansson c018159aa5 Slim down the build script 2025-09-13 19:08:28 +02:00
David Heinemeier Hansson 7f83f7488d We are not using tte up front any more 2025-09-13 18:48:15 +02:00
David Heinemeier Hansson 045db5b028 Inline the configurator 2025-09-13 18:39:45 +02:00
David Heinemeier Hansson 2427a177f5 Yank out the online builder option
Offline is the way
2025-09-13 18:23:31 +02:00
David Heinemeier Hansson 8c92fdd0e0 No need for nesting 2025-09-13 16:54:45 +02:00
David Heinemeier Hansson 62c47b06f4 We have built it now, so who cares 2025-09-13 16:54:34 +02:00
Ryan Hughes 03cab0e23e Cleanup 2025-09-12 00:49:36 -04:00
Ryan Hughes 657011cc20 Unify builds 2025-09-12 00:48:58 -04:00
Ryan Hughes d2d4fb2989 Remove debug code 2025-09-12 00:48:50 -04:00
Ryan Hughes 5697987277 Add plymouth splash to ISO 2025-09-12 00:48:50 -04:00
Ryan Hughes 0128542255 Revert "Eliminate duplicate trap"
This reverts commit dd32200181ef6a5688fcb5ed11bec12c060a1c90.
2025-09-12 00:48:50 -04:00
Ryan Hughes 362ffe3298 Eliminate duplicate trap 2025-09-12 00:48:50 -04:00
Ryan Hughes ea707f677d Rearrange and simplify ISO setup 2025-09-12 00:48:41 -04:00
Ryan Hughes a534205c19 Set OMARCHY_OFFLINE_INSTALL 2025-09-12 00:48:41 -04:00
Ryan Hughes b3309808eb Fix cloning to include more than 1 branch 2025-09-12 00:48:41 -04:00
Ryan Hughes 228ba9e010 Apply all patches 2025-09-12 00:48:41 -04:00
Ryan Hughes 14c6ac2cc5 Revert "Add plymouth"
This reverts commit d9c5b96ca5a1249d0b41fbd3447b418e1558e369.
2025-09-12 00:48:41 -04:00
Ryan Hughes 00dd4b22ae Add new packages for v2.1.1 2025-09-12 00:48:41 -04:00
Ryan Hughes c1197a3f58 Add plymouth 2025-09-12 00:48:41 -04:00