From 6aad17f55cd6fa4dcab6e06fc835ddb15c80eb74 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 19:16:45 +0200 Subject: [PATCH] feat: the VMs share the host's cache for Steamify's own downloads (/var/cache/steamify: the CEC driver once for every VM, GitHub rate-limits it) --- scripts/vmbootloadertest.sh | 2 ++ scripts/vmsuite.sh | 2 ++ share/vminstall-live.sh | 2 ++ 3 files changed, 6 insertions(+) diff --git a/scripts/vmbootloadertest.sh b/scripts/vmbootloadertest.sh index 8ec2d0a..c59d04e 100755 --- a/scripts/vmbootloadertest.sh +++ b/scripts/vmbootloadertest.sh @@ -42,6 +42,7 @@ stop_vm() { local _; for _ in $(seq 30); do running || return 0; sleep 2; done pkill -f "[h]ostfwd=tcp::$VM_PORT-"; sleep 2 } +export VM_CACHE="${VM_CACHE-$HOME/vms/pkg-cache}" # 9p tag `cache`: Steamify's downloads once for every VM start_vm() { stop_vm; cp "$repo/run.sh" "$VM_DIR/run.sh"; (cd "$VM_DIR" && VM_MEM="${VM_MEM:-4G}" REPO="${REPO:-$repo/../steamify-cachyos}" setsid nohup ./run.sh --fremont > vm.log 2>&1 &); } reboot_vm() { gssh 'sudo systemctl reboot' >/dev/null 2>&1; sleep 25; waitssh; } view_start # one shared Konsole (common.sh) @@ -69,6 +70,7 @@ start_vm; waitssh || exit 1 gssh 'sudo cat /sys/class/dmi/id/product_name' 2>/dev/null step "Steamify's Steam Machine options" +gssh 'sudo mkdir -p /var/cache/steamify-pkg /var/cache/steamify; sudo mountpoint -q /var/cache/steamify-pkg || sudo mount -t 9p -o trans=virtio,version=9p2000.L cache /var/cache/steamify-pkg && { sudo mkdir -p /var/cache/steamify-pkg/steamify; sudo mount --bind /var/cache/steamify-pkg/steamify /var/cache/steamify; }' 2>/dev/null gssh 'sudo mountpoint -q /mnt || sudo mount -t 9p -o trans=virtio,version=9p2000.L repo /mnt; cd /mnt && nohup bash steamify.sh --defaults --options gaming,theme,glyphs,single,launcher,notify,vram,cec,machine,poweroff --boot gamescope > /tmp/steamify.log 2>&1 < /dev/null &' sleep 20 # [s]: the pattern must not match this ssh command itself. diff --git a/scripts/vmsuite.sh b/scripts/vmsuite.sh index 3543f76..61f67d5 100755 --- a/scripts/vmsuite.sh +++ b/scripts/vmsuite.sh @@ -74,6 +74,8 @@ for f in /etc/pacman.d/*mirrorlist*; do sudo sed -i '/krfoss/s/^Server/#Server/' sudo mkdir -p /var/cache/steamify-pkg if sudo mount -t 9p -o trans=virtio,version=9p2000.L cache /var/cache/steamify-pkg 2>/dev/null; then sudo mkdir -p /var/cache/steamify-pkg/pkg; sudo mount --bind /var/cache/steamify-pkg/pkg /var/cache/pacman/pkg + # Steamify's own downloads (the CEC driver: GitHub rate-limits it) once for every VM + sudo mkdir -p /var/cache/steamify-pkg/steamify /var/cache/steamify; sudo mount --bind /var/cache/steamify-pkg/steamify /var/cache/steamify fi pgrep -u "$USER" -x plasmashell >/dev/null && echo "Logged in to Plasma." || { echo "Plasma did not start." >&2; exit 1; } REMOTE diff --git a/share/vminstall-live.sh b/share/vminstall-live.sh index 1715a27..dfb665d 100755 --- a/share/vminstall-live.sh +++ b/share/vminstall-live.sh @@ -63,6 +63,8 @@ fi # Steamify's packages (Steam, ...) install inside the new system: same cache. if [[ -n "$CACHE" ]]; then mkdir -p /mnt/var/cache/pacman/pkg && mount --bind $CACHE/pkg /mnt/var/cache/pacman/pkg || echo "(no cache in the new system)" + # Steamify's own downloads (the CEC driver: GitHub rate-limits it) + mkdir -p $CACHE/steamify /mnt/var/cache/steamify && mount --bind $CACHE/steamify /mnt/var/cache/steamify || true fi # What Calamares does after its users step (shellprocess_steamify): Steamify's