ohhhhhhhhhhh (exclude linux-extra-rootfs.img build artifact)

This commit is contained in:
Linehu
2026-10-01 23:13:42 +08:00
parent 737a2cb0db
commit 1074962546
533 changed files with 133239 additions and 5460 deletions
+28 -1
View File
@@ -25,7 +25,9 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
OUTPUT_DIR="$PROJECT_ROOT/SYSTEM/boot"
OUTPUT_IMG="$OUTPUT_DIR/linux-rootfs.img"
IMG_SIZE_MB=${IMG_SIZE_MB:-512}
# 768MB leaves room for distro CPython + stdlib on the virtio-blk rootfs.
IMG_SIZE_MB=${IMG_SIZE_MB:-768}
ARCH_INSTALL_PYTHON="${ARCH_INSTALL_PYTHON:-1}"
# Work on native Linux FS for speed (NOT /mnt/d which is 9p — extremely slow).
WORK_DIR="${ARCH_ROOTFS_WORK:-/root/arch_rootfs_work}"
@@ -284,6 +286,31 @@ else
echo "[arch-rootfs] WARNING: daemon source not found at $DAEMON_SRC"
fi
# 7.6 Distro CPython for guest userspace (Track C). Keep interpreter and
# stdlib from the same Arch packages; do not overlay SYSTEM/lib libpython.
if [ "$ARCH_INSTALL_PYTHON" = "1" ]; then
echo "[arch-rootfs] Installing Arch CPython into staging rootfs..."
mkdir -p "$ROOTFS_DIR"/{dev,proc,sys,tmp}
mount --bind /dev "$ROOTFS_DIR/dev" 2>/dev/null || true
mount --bind /proc "$ROOTFS_DIR/proc" 2>/dev/null || true
mount --bind /sys "$ROOTFS_DIR/sys" 2>/dev/null || true
printf 'nameserver 1.1.1.1\n' > "$ROOTFS_DIR/tmp/resolv.conf"
if chroot "$ROOTFS_DIR" /usr/bin/pacman -Sy --noconfirm && \
chroot "$ROOTFS_DIR" /usr/bin/pacman -S --noconfirm python; then
mkdir -p "$ROOTFS_DIR/usr/local/share/deshab/python"
if [ -f "$PROJECT_ROOT/SYSTEM/user/python/hello.py" ]; then
install -m 0644 "$PROJECT_ROOT/SYSTEM/user/python/hello.py" \
"$ROOTFS_DIR/usr/local/share/deshab/python/hello.py"
fi
echo "[arch-rootfs] python: $(chroot "$ROOTFS_DIR" /usr/bin/python3 --version 2>/dev/null || true)"
else
echo "[arch-rootfs] WARNING: python install failed (network or pacman)"
fi
umount "$ROOTFS_DIR/dev" 2>/dev/null || true
umount "$ROOTFS_DIR/proc" 2>/dev/null || true
umount "$ROOTFS_DIR/sys" 2>/dev/null || true
fi
# 8. Create ext4 image on native FS, populate, then copy to /mnt/d.
echo "[arch-rootfs] Creating ext4 image (${IMG_SIZE_MB}MB) on native FS..."
NATIVE_IMG="$WORK_DIR/linux-rootfs.img"