Complete archiso/Calamares profile scaffold (iso/)
- Calamares modules: unpackfs (clone), partition/mount/fstab (btrfs subvols), bootloader (systemd-boot + quiet splash), packages (strip live), services (greetd), shellprocess (snapper, flathub, strip-live), branding (Fuji) - bootstrap-profile.sh: releng base + linux-zen swap + overlay our deltas - BUILD.md: build steps, decisions, and honest open items (needs build-test) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
---
|
||||
componentName: tanin
|
||||
welcomeStyleCalamares: true
|
||||
windowExpanding: normal
|
||||
|
||||
strings:
|
||||
productName: TANINUX
|
||||
shortProductName: TANINUX
|
||||
version: camel
|
||||
shortVersion: camel
|
||||
versionedName: TANINUX (camel)
|
||||
shortVersionedName: TANINUX
|
||||
bootloaderEntryName: TANINUX
|
||||
productUrl: https://taninux.kgva.ch
|
||||
supportUrl: https://git.openbureau.ch/karim/taninux
|
||||
|
||||
# Fuji palette for the installer sidebar (matches the desktop).
|
||||
style:
|
||||
sidebarBackground: "#0f0f0f"
|
||||
sidebarText: "#f0f0f0"
|
||||
sidebarTextSelect: "#a39ec4"
|
||||
sidebarTextHighlight: "#a39ec4"
|
||||
|
||||
# TODO: add productLogo (logo.png) + a slideshow (show.qml) for polish.
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
efiBootLoader: "systemd-boot"
|
||||
kernel: "/vmlinuz-linux-zen"
|
||||
img: "/initramfs-linux-zen.img"
|
||||
fallback: "/initramfs-linux-zen-fallback.img"
|
||||
timeout: "3"
|
||||
# Plymouth splash + quiet boot on the installed system.
|
||||
kernelParams: [ "quiet", "splash", "rw" ]
|
||||
installEFIFallback: true
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
mountOptions:
|
||||
default: defaults,noatime
|
||||
btrfs: defaults,noatime,compress=zstd,space_cache=v2
|
||||
efi: defaults,noatime,umask=0077
|
||||
ssdExtraMountOptions:
|
||||
btrfs: ssd,discard=async
|
||||
crypttabOptions: luks
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
# Snapper-friendly Btrfs subvolume layout (@ root + @snapshots at /.snapshots).
|
||||
extraMounts:
|
||||
- device: proc
|
||||
fs: proc
|
||||
mountPoint: /proc
|
||||
- device: sys
|
||||
fs: sysfs
|
||||
mountPoint: /sys
|
||||
- device: /dev
|
||||
mountPoint: /dev
|
||||
options: bind
|
||||
- device: tmpfs
|
||||
fs: tmpfs
|
||||
mountPoint: /run
|
||||
- device: /run/udev
|
||||
mountPoint: /run/udev
|
||||
options: bind
|
||||
|
||||
mountOptions:
|
||||
- mountPoint: /
|
||||
options: defaults,noatime
|
||||
- mountPoint: "*"
|
||||
filesystem: btrfs
|
||||
options: defaults,noatime,compress=zstd
|
||||
|
||||
btrfsSubvolumes:
|
||||
- mountPoint: /
|
||||
subvolume: /@
|
||||
- mountPoint: /home
|
||||
subvolume: /@home
|
||||
- mountPoint: /var/cache
|
||||
subvolume: /@cache
|
||||
- mountPoint: /var/log
|
||||
subvolume: /@log
|
||||
- mountPoint: /.snapshots
|
||||
subvolume: /@snapshots
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
backend: pacman
|
||||
pacman:
|
||||
num_retries: 3
|
||||
disable_download_timeout: true
|
||||
needed_only: false
|
||||
operations:
|
||||
# Strip the live-only installer from the installed target. Everything else was
|
||||
# cloned by unpackfs.
|
||||
- try_remove:
|
||||
- calamares
|
||||
- cage
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
efiSystemPartition: "/boot" # systemd-boot wants the ESP at /boot
|
||||
efiSystemPartitionSize: 1024M
|
||||
userSwapChoices: [ none, small, suspend ]
|
||||
drawNestedPartitions: true
|
||||
alwaysShowPartitionLabels: true
|
||||
allowManualPartitioning: true
|
||||
initialPartitioningChoice: erase
|
||||
initialSwapChoice: none
|
||||
defaultFileSystemType: "btrfs"
|
||||
availableFileSystemTypes: [ "btrfs", "ext4" ]
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
services:
|
||||
- name: greetd # the TANINUX login (tanin-greet) — its config is already
|
||||
mandatory: false # in place from the tanin-greet package scriptlet
|
||||
- name: NetworkManager
|
||||
mandatory: false
|
||||
- name: snapper-cleanup.timer
|
||||
mandatory: false
|
||||
- name: snapper-timeline.timer
|
||||
mandatory: false
|
||||
targets:
|
||||
- name: graphical
|
||||
mandatory: true
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
dontChroot: false
|
||||
timeout: 30
|
||||
script:
|
||||
- "flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo"
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
dontChroot: false
|
||||
timeout: 120
|
||||
# Best-effort snapper setup on the Btrfs target. The @snapshots subvolume is
|
||||
# already mounted at /.snapshots (see mount.conf); snapper's own create-config
|
||||
# can conflict with a pre-existing /.snapshots, so this is tolerant.
|
||||
# snap-pac then auto-snapshots before/after each pacman transaction.
|
||||
script:
|
||||
- command: "snapper --no-dbus -c root create-config / || true"
|
||||
timeout: 60
|
||||
- "snapper --no-dbus -c root set-config NUMBER_LIMIT=10 NUMBER_LIMIT_IMPORTANT=5 TIMELINE_CREATE=no || true"
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
dontChroot: false
|
||||
timeout: 30
|
||||
# Remove the live-only installer bits from the installed target so it boots the
|
||||
# desktop (greetd) instead of auto-launching Calamares.
|
||||
script:
|
||||
- "rm -f /etc/systemd/system/getty@tty1.service.d/autologin.conf"
|
||||
- "rmdir --ignore-fail-on-non-empty /etc/systemd/system/getty@tty1.service.d 2>/dev/null || true"
|
||||
- "rm -f /root/.bash_profile"
|
||||
- "rm -f /usr/local/bin/tanin-installer"
|
||||
- "systemctl set-default graphical.target"
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# Clone the live squashfs onto the target. Path matches install_dir=tanin,
|
||||
# arch=x86_64, airootfs_image_type=squashfs (see profiledef.sh).
|
||||
unpack:
|
||||
- source: "/run/archiso/bootmnt/tanin/x86_64/airootfs.sfs"
|
||||
sourcefs: "squashfs"
|
||||
destination: ""
|
||||
Regular → Executable
Regular → Executable
Reference in New Issue
Block a user