Add 4 configurable profiles (stable-cinnamon, stable-niri,
mainline-cinnamon, mainline-niri) with a single unified build
entry point.
- iso/build.sh: replaces build-iso.sh / build-live-iso.sh /
build-niri-live-iso.sh; accepts --profile and --type flags
- iso/_inner-build-unified.sh: replaces the three _inner-build-*.sh
scripts; branches on BUILD_TYPE / DESKTOP / KERNEL_PKG env vars
- config/profiles/stable-niri/: new — linux (k6) + niri/Wayland/noctalia
- config/profiles/mainline-cinnamon/: new — linux-mainline (k7) + Cinnamon/X11
- config/profiles/mainline-niri/packages.live.list: symlink added
- config/profiles/stable-cinnamon/packages.live.list: symlink added
- Makefile: PROFILE variable (default stable-cinnamon), shellcheck updated
- installer/install.sh: respects DEFAULT_PROFILE env (set by live ISO)
- tests/run-qemu-test.sh: passes PROFILE through to build and overlay
Live ISOs embed the installer pre-configured for the same profile
they were built with (DEFAULT_PROFILE in /etc/profile.d/).
- Add nvidia/nvidia-dkms/nvidia-libs-32bit/nvidia-vaapi-driver to niri
live and installed profiles; wireless-regdb and sof-firmware to all
profiles (fixes regulatory.db and SOF firmware dmesg errors)
- iso/postsetup-nvidia.sh: new mklive -x hook that re-runs dracut inside
the rootfs chroot after the overlay is applied; ensures the squashfs
initramfs includes nvidia.ko and omits nouveau.ko at build time —
no driver install needed at runtime (fixes /run tmpfs overflow that was
killing wireplumber by corrupting D-Bus sockets)
- Both ISO inner build scripts gain -x postsetup-nvidia.sh and the nonfree
repo flag so nvidia packages resolve correctly
- niri config: wireplumber started via supervisor loop (waits for PipeWire
socket, auto-restarts on crash) replacing the one-shot exec — survives
any D-Bus or pipewire disruption
- build-niri-live-iso.sh: NVIDIA modprobe blacklist-nouveau.conf,
btusb-quirks.conf, modules-load.d/nvidia.conf, dracut/10-nvidia.conf,
Xorg intel/nvidia configs, prime-run helper, elogind run script loop
guard, timezone Europe/Zurich overlay, updated BOOT_CMDLINE
- build-live-iso.sh: same NVIDIA + timezone + sound udev rule overlays;
live-setup.sh timezone and audio group fix
- installer/lib/grub.sh: GRUB_CMDLINE_LINUX_DEFAULT gains
nvidia-drm.modeset=1 rd.driver.blacklist=nouveau btusb.enable_autosuspend=0
- installer/lib/postinstall.sh: configure_nvidia_prime() adds
blacklist-nouveau.conf, btusb-quirks.conf, dracut omit_drivers nouveau,
modules-load.d with all four nvidia modules
Installs /usr/local/bin/git-askpass (uses zenity or qarma) and sets
core.askPass in /etc/gitconfig. Git now pops a GUI dialog for username/
password instead of trying to open /dev/tty, which fails in headless
contexts (scripts, Claude Code terminal).
Adds zenity to live desktop package lists for both niri and cinnamon profiles.
Propagated to: both live ISO builders and the installer postinstall.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Prevents git from trying to open /dev/tty for password prompts in
environments without a controlling terminal (live ISO, scripts, Claude Code).
Credentials stored once in ~/.git-credentials and reused automatically.
Applied to: both live ISO include overlays and the installer target system.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Store ownership: chown -R 1000:1000 at Docker build time (not runtime)
so the live user can create lock files without flooding the tmpfs overlay
- nix.conf: add build-users-group= to force single-user mode and avoid
daemon connection attempts (xbps nix-daemon v2.30.2 incompatible with
pre-baked nix v2.34.6)
- profile.d: export NIX_REMOTE=local and NIXPKGS_ALLOW_UNFREE=1; wrap nix()
to append --impure so flake installs work without extra flags
- Skel: add ~/.config/nixpkgs/config.nix with allowUnfree=true
- postinstall.sh: fix daemon socket path (/nix/var/nix/...), write
~/.config/nixpkgs/config.nix for installed user
- first-login.sh: add NIX_REMOTE=local alongside NIXPKGS_ALLOW_UNFREE=1
- Remove nix-daemon from live ISO services (wrong version for pre-baked client)
- Misc: bluetooth group, package list reorg, skip vscode install for niri profile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- iso/build-live-iso.sh: copy install.sh+lib/ to /usr/local/lib/void-installer/,
config+profiles to /usr/local/share/installer/, bake secrets.env as
/etc/installer-secrets.env, add 'Install Void Linux' .desktop launcher
(opens alacritty+sudo), create /usr/local/bin/void-install wrapper
- installer/first-login.sh: skip nix profile add when /nix has <4GB free
(live tmpfs overlay fills up with ~3-4GB of nix packages); packages are
installed on first login after the system is installed instead
getent blocks indefinitely when the nameserver is unreachable (QEMU 10.0.2.3,
or any network where DNS responds slowly). Replace with curl --connect-timeout 3
which has a hard 3s per-attempt timeout and is independent of the NSS stack.
- first-login.sh: remove nix-env --switch-profile (caused .nix-profile->
.nix-profile circular symlink, breaking all nix profile commands and
causing ELOOP on any exec via nix PATH including xz/tar/node)
- first-login.sh: add circular symlink guard before nix profile add
- first-login.sh: nix profile install -> nix profile add (deprecated alias)
- live-setup.sh: strip mdns from nsswitch.conf hosts line at boot (no
libnss_mdns/Avahi in live; caused first-login DNS hang)
- docs/LIVE_ISO.md: document all three issues and their fixes