Summary
Two installer quality-of-life improvements that should land together:
1. Hostname configuration
The installer should let the user set the system hostname before installation begins, similar to how other distro installers work. The hostname should be applied to the installed root (not the live session).
Implementation:
- Add the existing
VanillaHostname view to the install flow in window.py (between disk selection and confirm)
- In install mode,
hostname.py's finish() stores install_hostname on the window instead of calling backend.set_hostname() (which would set the live system hostname)
- Show the chosen hostname on the confirmation screen
- Pass hostname as an argument to
install-to-disk, which writes it to /etc/hostname in the installed root after bootc install completes
2. Pre-install system Flatpaks
During installation, Flatpaks are not available on the freshly installed system until the user logs in and they are pulled from the internet. We should pre-install the system Flatpaks into the live ISO's Flatpak installation, then copy them over to the installed system during the install-to-disk process — similar to how bluefin-lts does it in the bootc-isos repo.
Implementation:
- Add
flatpak install calls for desired system apps in live-iso/common/src/build.sh at build time
- In
tunaos_first_setup/scripts/install-to-disk: after bootc install to-disk completes, mount the installed root and rsync/cp -a /var/lib/flatpak into it
- For the fast path (
bootc install to-disk --wipe) the disk needs to be re-mounted after install to do this copy
- The bluefin-lts PR to the bootc-isos repo is the reference implementation for this approach
- Flatpaks to include: should match the system Flatpaks defined in the tunaOS image recipes (e.g.
image.toml/Containerfiles)
Related files
tuna-os/first-setup: window.py, views/hostname.py, views/install_confirm.py, views/install_progress.py, scripts/install-to-disk
live-iso/common/src/build.sh (Flatpak pre-install)
Summary
Two installer quality-of-life improvements that should land together:
1. Hostname configuration
The installer should let the user set the system hostname before installation begins, similar to how other distro installers work. The hostname should be applied to the installed root (not the live session).
Implementation:
VanillaHostnameview to the install flow inwindow.py(between disk selection and confirm)hostname.py'sfinish()storesinstall_hostnameon the window instead of callingbackend.set_hostname()(which would set the live system hostname)install-to-disk, which writes it to/etc/hostnamein the installed root afterbootc installcompletes2. Pre-install system Flatpaks
During installation, Flatpaks are not available on the freshly installed system until the user logs in and they are pulled from the internet. We should pre-install the system Flatpaks into the live ISO's Flatpak installation, then copy them over to the installed system during the
install-to-diskprocess — similar to how bluefin-lts does it in the bootc-isos repo.Implementation:
flatpak installcalls for desired system apps inlive-iso/common/src/build.shat build timetunaos_first_setup/scripts/install-to-disk: afterbootc install to-diskcompletes, mount the installed root andrsync/cp -a/var/lib/flatpakinto itbootc install to-disk --wipe) the disk needs to be re-mounted after install to do this copyimage.toml/Containerfiles)Related files
tuna-os/first-setup:window.py,views/hostname.py,views/install_confirm.py,views/install_progress.py,scripts/install-to-disklive-iso/common/src/build.sh(Flatpak pre-install)