From 260f466400d50cccf7b44c20257f349b952346da Mon Sep 17 00:00:00 2001 From: ScottW514 Date: Fri, 18 Sep 2026 18:40:19 -0400 Subject: [PATCH] release.sh: no slot size gate on the dev path, which is SD-only check_size guards the 200 MiB eMMC slot. The dev path called it against the release rootfs until 88ec984 switched that path to the dev image, and the call was left in place: the dev rootfs is about 368 MiB - forgetest and the bench tools - so release.sh --dev has died on "too close to the 200 MiB slot" ever since, which is why no forgefirm-dev.fw exists anywhere in the tree. The gate is not the real limit. A 368 MiB rootfs cannot be raw_written into a 200 MiB slot at all, so the dev image is never installed into one: it runs from an SD card, which the boot selector already carries as a first-class location and which the bench has always used. The comment says so, and the gate now applies to the release rootfs alone, which is what it was written for. The dev rootfs has been this size in every archived build back to 20260911172215 (386,465,792 bytes then, 386,727,936 today), so nothing here is a regression - the gate simply outlived the image it was guarding. --- scripts/release.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/release.sh b/scripts/release.sh index 9d0db1b..082e684 100644 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -145,11 +145,16 @@ if [ "$MODE" = "dev" ]; then build_images resolve_ext4 # The dev archive carries the dev image (forgetest, the bench tools), not - # the release rootfs: what the panel's upload path installs on the bench - # is what the bench runs. + # the release rootfs: what the bench installs is what the bench runs. + # + # No size gate here. The dev rootfs is about 368 MiB - forgetest and the + # bench tools - so it does not fit a 200 MiB eMMC slot and is never + # installed into one. It goes on an SD card, which the boot selector + # carries as a first-class location, either as the .wic.gz written to the + # card or by pointing fwup at the card rather than a slot. check_size + # guards the slot, so it applies to the release rootfs alone. EXT4="${EXT4/forgefirm-image-glowforge/forgefirm-image-dev-glowforge}" [ -f "$EXT4" ] || die "dev rootfs not found: $EXT4" - check_size REL=$(sed -n 's/^FORGEFIRM_RELEASE ?= "\(.*\)"/\1/p' "$RELEASE_INC") DEVVER="v${REL}-dev-$(date +%Y%m%d%H%M%S)" OUT="$DEPLOY/forgefirm-dev.fw"