2026-07-29 13:57:49 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# KAMOS build script — runs once at image build time (not on user machines).
|
|
|
|
|
set -euxo pipefail
|
|
|
|
|
|
|
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
### 1. Branding: rename the OS to KAMOS
|
|
|
|
|
### (NAME/PRETTY_NAME only — ID/VERSION stay untouched so Bazzite
|
|
|
|
|
### and Fedora tooling keeps working)
|
|
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
sed -i 's/^NAME=.*/NAME="KAMOS"/' /usr/lib/os-release
|
|
|
|
|
sed -i 's/^PRETTY_NAME=.*/PRETTY_NAME="KAMOS (Gaming Edition)"/' /usr/lib/os-release
|
|
|
|
|
|
|
|
|
|
### ---------------------------------------------------------------
|
2026-07-29 15:33:51 +00:00
|
|
|
### 2. System packages from build_files/packages.list
|
|
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
PKGS=$(sed -e 's/#.*//' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' \
|
|
|
|
|
/tmp/build_files/packages.list | grep -v '^$' || true)
|
|
|
|
|
if [ -n "$PKGS" ]; then
|
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
|
dnf5 -y install $PKGS
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
### 3. Wallpaper branding: replace every stock wallpaper image with
|
|
|
|
|
### the KAMOS one so the desktop defaults to KAMOS artwork
|
|
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
WALL=/usr/share/backgrounds/kamos/kamos-default.png
|
|
|
|
|
if [ -f "$WALL" ]; then
|
|
|
|
|
find /usr/share/wallpapers /usr/share/backgrounds \
|
|
|
|
|
-type f \( -name '*.png' -o -name '*.jpg' -o -name '*.jpeg' \) \
|
|
|
|
|
! -path '*/kamos/*' -print0 2>/dev/null |
|
|
|
|
|
while IFS= read -r -d '' img; do
|
|
|
|
|
cp -f "$WALL" "$img"
|
|
|
|
|
done
|
|
|
|
|
fi
|
2026-07-29 13:57:49 +00:00
|
|
|
|
2026-07-29 15:33:51 +00:00
|
|
|
### ---------------------------------------------------------------
|
2026-07-29 15:43:52 +00:00
|
|
|
### 4. Boot splash: KAMOS penguin as Plymouth watermark
|
|
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
MARK=/usr/share/kamos/plymouth-watermark.png
|
|
|
|
|
if [ -f "$MARK" ]; then
|
|
|
|
|
for theme in spinner bgrt; do
|
|
|
|
|
tdir=/usr/share/plymouth/themes/$theme
|
|
|
|
|
[ -d "$tdir" ] && cp -f "$MARK" "$tdir/watermark.png"
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
### 5. First-boot Flatpak apps (list: /usr/share/kamos/flatpaks.list)
|
2026-07-29 15:33:51 +00:00
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
chmod +x /usr/libexec/kamos-install-flatpaks
|
|
|
|
|
systemctl enable kamos-flatpaks.service
|
2026-07-29 13:57:49 +00:00
|
|
|
|
|
|
|
|
### ---------------------------------------------------------------
|
2026-08-01 12:00:21 +00:00
|
|
|
### 6. Disable repos with missing GPG keys (breaks ISO depsolve;
|
|
|
|
|
### harmless for users — OS updates come via the container image)
|
|
|
|
|
### ---------------------------------------------------------------
|
2026-08-01 12:57:30 +00:00
|
|
|
# Deterministic: drop ALL inherited repo files (terra etc. ship broken
|
|
|
|
|
# GPG key references that abort the ISO depsolve) and provide a single
|
|
|
|
|
# clean Fedora config — all the installer build needs.
|
|
|
|
|
rm -f /etc/yum.repos.d/*.repo
|
|
|
|
|
cat > /etc/yum.repos.d/fedora.repo <<'EOF'
|
|
|
|
|
[fedora]
|
|
|
|
|
name=Fedora $releasever
|
|
|
|
|
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
|
|
|
|
|
enabled=1
|
|
|
|
|
gpgcheck=0
|
|
|
|
|
|
|
|
|
|
[updates]
|
|
|
|
|
name=Fedora $releasever updates
|
|
|
|
|
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
|
|
|
|
|
enabled=1
|
|
|
|
|
gpgcheck=0
|
|
|
|
|
EOF
|
2026-08-01 12:42:52 +00:00
|
|
|
echo "=== KAMOS repo check: remaining repo files ==="
|
|
|
|
|
ls -la /etc/yum.repos.d/
|
2026-08-01 12:57:30 +00:00
|
|
|
cat /etc/yum.repos.d/fedora.repo
|
2026-08-01 12:42:52 +00:00
|
|
|
echo "=== end repo check ==="
|
2026-08-01 12:00:21 +00:00
|
|
|
|
|
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
### 7. System defaults
|
2026-07-29 13:57:49 +00:00
|
|
|
### ---------------------------------------------------------------
|
|
|
|
|
# Enable weekly automatic OS updates (staged, applied on reboot)
|
|
|
|
|
systemctl enable rpm-ostreed-automatic.timer || true
|
|
|
|
|
|
|
|
|
|
echo "KAMOS build complete."
|