Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

Dockerfile: fix Quicklisp install (remove broken first-try path)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+33 -56
+4 -8
fedac/native/Dockerfile.builder
··· 32 32 && dnf clean all && rm -rf /var/cache/dnf 33 33 34 34 # ── Install Quicklisp + CL dependencies for Lisp build variant ── 35 - RUN sbcl --non-interactive \ 36 - --eval '(require :asdf)' \ 37 - --eval '(load (make-pathname :name "quicklisp" :type "lisp" :defaults (merge-pathnames "quicklisp/" (user-homedir-pathname))))' \ 38 - 2>/dev/null || \ 39 - (curl -sfo /tmp/ql.lisp https://beta.quicklisp.org/quicklisp.lisp && \ 40 - sbcl --non-interactive \ 35 + RUN curl -sfo /tmp/ql.lisp https://beta.quicklisp.org/quicklisp.lisp \ 36 + && sbcl --non-interactive \ 41 37 --load /tmp/ql.lisp \ 42 38 --eval '(quicklisp-quickstart:install :path "/opt/quicklisp/")' \ 43 39 --eval '(ql:quickload (list :cffi :bordeaux-threads :alexandria))' \ 44 - --eval '(sb-ext:save-lisp-and-die "/cache/sbcl-ql.core" :purify t)' && \ 45 - rm /tmp/ql.lisp) 40 + --eval '(sb-ext:save-lisp-and-die "/cache/sbcl-ql.core" :purify t)' \ 41 + && rm /tmp/ql.lisp 46 42 47 43 # ── Pre-download QuickJS + Linux kernel source ── 48 44 RUN mkdir -p /cache && cd /cache \
+27 -46
fedac/native/initramfs/init
··· 1 1 #!/bin/sh 2 - # AC Native OS init — DRM direct boot, cage transition happens in userspace 2 + # AC Native OS init — DRM direct boot with crash recovery 3 3 4 4 mount -t proc proc /proc 2>/dev/null 5 5 mount -t sysfs sysfs /sys 2>/dev/null ··· 9 9 mount -t tmpfs tmpfs /dev/shm 2>/dev/null 10 10 mount -t tmpfs tmpfs /tmp 2>/dev/null 11 11 mount -t tmpfs tmpfs /run 2>/dev/null 12 - mount -t tracefs tracefs /sys/kernel/tracing 2>/dev/null 13 - mount -t debugfs debugfs /sys/kernel/debug 2>/dev/null 14 12 mount -t efivarfs efivarfs /sys/firmware/efi/efivars 2>/dev/null 15 13 16 - # Restore baked credentials from initramfs rootfs (before tmpfs hid them) 17 - # The build bakes Claude creds at /tmp/.claude/ but tmpfs mount hides them. 18 - # Copy from the initramfs backup location instead. 19 - # Restore baked files from initramfs rootfs (tmpfs mount hid them) 20 - if [ -f /claude-creds.json ]; then 21 - mkdir -p /tmp/.claude 22 - cp /claude-creds.json /tmp/.claude/.credentials.json 23 - cp /claude-state.json /tmp/.claude.json 2>/dev/null 24 - # Seed Claude Code settings — suppresses "installMethod native" startup warning 25 - printf '{\n "permissions": {\n "allow": ["Bash(*)", "Read(*)", "Write(*)", "Edit(*)", "Glob(*)", "Grep(*)", "WebFetch(*)", "WebSearch(*)"]\n },\n "autoUpdates": false,\n "installMethod": "native"\n}\n' > /tmp/.claude/settings.json 26 - fi 27 - # CLAUDE.md working directory for Claude Code 28 - if [ -d /tmp/ac ]; then 29 - # Already baked at /tmp/ac/CLAUDE.md — just needs to survive tmpfs 30 - true 31 - else 32 - mkdir -p /tmp/ac 33 - fi 34 - # Copy CLAUDE.md from initramfs if it was baked there 35 - [ -f /device-claude.md ] && { mkdir -p /tmp/ac; cp /device-claude.md /tmp/ac/CLAUDE.md 2>/dev/null; } 36 - 37 - # Log to /tmp (ac-native copies to USB) 38 - ilog() { echo "ac-init: $*" >> /tmp/ac-init.log 2>/dev/null; } 39 - ilog "start" 40 - 41 14 # zram swap 42 15 modprobe zram 2>/dev/null 43 16 echo 1G > /sys/block/zram0/disksize 2>/dev/null && mkswap /dev/zram0 >/dev/null 2>&1 && swapon /dev/zram0 2>/dev/null ··· 45 18 # Loopback 46 19 ip link set lo up 2>/dev/null 47 20 48 - export PATH="/bin:/sbin:/usr/bin:/usr/sbin" 49 - export SSL_CERT_FILE="/etc/pki/tls/certs/ca-bundle.crt" 50 - export CURL_CA_BUNDLE="/etc/pki/tls/certs/ca-bundle.crt" 51 - export SSL_CERT_DIR="/etc/ssl/certs" 21 + # Restore baked Claude credentials (tmpfs mount hid the originals) 22 + if [ -f /claude-creds.json ]; then 23 + mkdir -p /tmp/.claude 24 + cp /claude-creds.json /tmp/.claude/.credentials.json 25 + cp /claude-state.json /tmp/.claude.json 2>/dev/null 26 + printf '{"permissions":{"allow":["Bash(*)","Read(*)","Write(*)","Edit(*)","Glob(*)","Grep(*)","WebFetch(*)","WebSearch(*)"]},"autoUpdates":false,"installMethod":"native"}\n' > /tmp/.claude/settings.json 27 + fi 28 + mkdir -p /tmp/ac 29 + [ -f /device-claude.md ] && cp /device-claude.md /tmp/ac/CLAUDE.md 2>/dev/null 30 + [ -f /device-score.md ] && cp /device-score.md /tmp/ac/SCORE.md 2>/dev/null 52 31 53 - # /etc/group and /etc/passwd needed by seatd (started later by ac-native) 32 + # /etc/group and /etc/passwd needed by seatd 54 33 echo "root:x:0:" > /etc/group 55 34 echo "root:x:0:root" > /etc/passwd 56 35 36 + # Wait for GPU (up to 3 seconds) 37 + i=0 38 + while [ ! -e /dev/dri/card0 ] && [ ! -e /dev/dri/card1 ] && [ ! -e /dev/fb0 ] && [ $i -lt 300 ]; do 39 + usleep 10000 2>/dev/null || sleep 1 40 + i=$((i+1)) 41 + done 42 + 57 43 # Performance governor 58 44 for g in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do 59 - echo performance > "$g" 2>/dev/null 45 + echo performance > "$g" 2>/dev/null 60 46 done 61 47 62 - ilog "start-ac-native" 48 + export PATH="/bin:/sbin:/usr/bin:/usr/sbin" 49 + export SSL_CERT_FILE="/etc/pki/tls/certs/ca-bundle.crt" 50 + export CURL_CA_BUNDLE="/etc/pki/tls/certs/ca-bundle.crt" 51 + export SSL_CERT_DIR="/etc/ssl/certs" 63 52 64 - # Run ac-native in a loop — if it crashes, show red screen + restart 53 + # Run ac-native in a loop — if it crashes, restart; if clean exit, shutdown 65 54 CRASH_COUNT=0 66 55 while true; do 67 56 /ac-native /piece.mjs 68 57 EXIT_CODE=$? 69 58 70 - # Clean exit (0) = shutdown requested — don't restart 59 + # Clean exit (0) = shutdown requested 71 60 if [ "$EXIT_CODE" = "0" ]; then 72 - ilog "ac-native exited cleanly — shutting down" 73 61 sync 74 62 poweroff -f 2>/dev/null || reboot -f 2>/dev/null 75 63 sleep 10 ··· 77 65 fi 78 66 79 67 CRASH_COUNT=$((CRASH_COUNT + 1)) 80 - ilog "ac-native crashed with code $EXIT_CODE (crash #$CRASH_COUNT)" 81 68 82 - # Write crash info to USB if mounted 83 - if [ -d /mnt/usb ]; then 84 - echo "crash #$CRASH_COUNT exit=$EXIT_CODE time=$(date +%s 2>/dev/null || echo ?)" >> /mnt/usb/crash.log 85 - fi 86 - 87 - # Flash screen red via framebuffer (if available) 69 + # Flash screen red via framebuffer 88 70 if [ -c /dev/fb0 ]; then 89 71 dd if=/dev/zero bs=4096 count=512 2>/dev/null | tr '\0' '\377' > /dev/fb0 2>/dev/null 90 72 fi 91 73 92 74 sleep 2 93 - ilog "restarting ac-native..." 94 75 done
+2 -2
fedac/native/kernel/config-minimal
··· 1156 1156 CONFIG_FW_LOADER=y 1157 1157 CONFIG_FW_LOADER_PAGED_BUF=y 1158 1158 CONFIG_FW_LOADER_SYSFS=y 1159 - CONFIG_EXTRA_FIRMWARE="" 1160 - CONFIG_EXTRA_FIRMWARE_DIR="" 1159 + CONFIG_EXTRA_FIRMWARE="i915/glk_dmc_ver1_04.bin i915/kbl_dmc_ver1_04.bin iwlwifi-9260-th-b0-jf-b0-46.ucode iwlwifi-cc-a0-77.ucode iwlwifi-QuZ-a0-hr-b0-77.ucode iwlwifi-QuZ-a0-jf-b0-77.ucode" 1160 + CONFIG_EXTRA_FIRMWARE_DIR="/workspaces/aesthetic-computer/fedac/native/build/firmware" 1161 1161 CONFIG_FW_LOADER_USER_HELPER=y 1162 1162 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set 1163 1163 CONFIG_FW_LOADER_COMPRESS=y