Monorepo for Aesthetic.Computer aesthetic.computer
at main 72 lines 2.9 kB view raw
1## AC Native OS — Reproducible Build Container (make-clean) 2## 3## Usage (from repo root): 4## docker build -t ac-os-builder -f fedac/native/Dockerfile.builder . 5## docker run --rm -v $(pwd)/out:/out ac-os-builder 6## 7## The source is COPY'd into the image — no bind mounts needed. 8## Output: /out/vmlinuz + /out/build.json 9 10FROM fedora:43 11 12# ── All packages needed for ac-native + kernel build ── 13RUN dnf install -y --setopt=install_weak_deps=False \ 14 gcc ccache make cpio lz4 bc perl flex bison diffutils \ 15 elfutils-libelf-devel openssl-devel \ 16 gnu-efi-devel \ 17 curl jq git tar xz findutils pkgconf-pkg-config zstd xorriso \ 18 ca-certificates \ 19 alsa-lib-devel libdrm-devel flite-devel SDL3-devel \ 20 ffmpeg-free-devel \ 21 wpa_supplicant dhcp-client iw \ 22 iwlwifi-mvm-firmware wireless-regdb \ 23 linux-firmware linux-firmware-whence \ 24 intel-gpu-firmware \ 25 busybox mtools dosfstools hfsplus-tools hfsutils gdisk parted \ 26 mesa-libgbm mesa-libgbm-devel \ 27 mesa-libEGL mesa-libEGL-devel \ 28 mesa-libGLES mesa-libGLES-devel \ 29 mesa-dri-drivers \ 30 alsa-lib alsa-firmware alsa-ucm \ 31 openssl nodejs npm dropbear efibootmgr \ 32 sbcl \ 33 && dnf clean all && rm -rf /var/cache/dnf 34 35# ── Install Quicklisp + CL dependencies for Lisp build variant ── 36RUN mkdir -p /cache \ 37 && curl -sfo /tmp/ql.lisp https://beta.quicklisp.org/quicklisp.lisp \ 38 && sbcl --non-interactive \ 39 --load /tmp/ql.lisp \ 40 --eval '(quicklisp-quickstart:install :path "/opt/quicklisp/")' \ 41 --eval '(ql:quickload (list :cffi :bordeaux-threads :alexandria :swank))' \ 42 && rm /tmp/ql.lisp 43 44# ── Pre-download QuickJS + Linux kernel source ── 45RUN mkdir -p /cache && cd /cache \ 46 && curl -sL https://bellard.org/quickjs/quickjs-2024-01-13.tar.xz | tar xJ \ 47 && ln -sf quickjs-2024-01-13 quickjs \ 48 && curl -sL https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.19.9.tar.xz | tar xJ \ 49 && echo "=== Cached: QuickJS + Linux 6.19.9 ===" 50 51# ── Install esbuild for KidLisp bundling ── 52RUN npm install -g esbuild 53 54# ── Install Claude Code CLI (native binary) ── 55RUN curl -fsSL https://claude.ai/install.sh | bash 2>/dev/null \ 56 && CLAUDE_BIN=$(find /root/.local/share/claude/versions -type f 2>/dev/null | sort -V | tail -1) \ 57 && if [ -n "$CLAUDE_BIN" ]; then cp "$CLAUDE_BIN" /usr/local/bin/claude-native && chmod +x /usr/local/bin/claude-native; fi \ 58 || echo "Claude Code install skipped (non-fatal)" 59 60# ── Verify tools ── 61RUN gcc --version | head -1 && busybox --help >/dev/null 2>&1 && esbuild --version && echo "OK" 62 63# ── Copy source into image ── 64COPY . /repo 65 66# ── Copy build script ── 67COPY fedac/native/docker-build.sh /docker-build.sh 68RUN chmod +x /docker-build.sh 69 70ENV AC_SRC=/repo 71ENTRYPOINT ["/docker-build.sh"] 72# cache-bust 1774407968