From 7ca1c0f9361fc671fee06605b4e7addd91190f9f Mon Sep 17 00:00:00 2001 From: ScottW514 Date: Mon, 24 Aug 2026 16:06:37 -0400 Subject: [PATCH] images: the release trim is a variable the dev image blanks Removal specs accumulate and apply after every append, so a dev-recipe IMAGE_INSTALL:remove could not give nano back. The release recipe now removes ${FORGEFIRM_RELEASE_TRIM} (default nano) and the dev recipe sets it empty; the spec expands when it is applied. No catalog consequence: image composition only. --- .../recipes-forgefirm/images/forgefirm-image-dev.bb | 10 +++++----- .../recipes-forgefirm/images/forgefirm-image.bb | 11 +++++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/meta-forgefirm/recipes-forgefirm/images/forgefirm-image-dev.bb b/meta-forgefirm/recipes-forgefirm/images/forgefirm-image-dev.bb index 69f7e87..ede7b5f 100644 --- a/meta-forgefirm/recipes-forgefirm/images/forgefirm-image-dev.bb +++ b/meta-forgefirm/recipes-forgefirm/images/forgefirm-image-dev.bb @@ -14,11 +14,11 @@ IMAGE_INSTALL += " \ htop \ " -# The release recipe removes nano from the shared base list (bench -# convenience, 8.7 MB with libmagic). A removal applies after every append, -# so the dev image re-sets the removal list to keep nano instead of adding -# it back. -IMAGE_INSTALL:remove = "gfui-client" +# The release recipe trims nano from the shared base list (bench +# convenience, 8.7 MB with libmagic); the dev image keeps it. Removal specs +# accumulate and apply after every append, so the variable inside the +# release recipe's spec is what gets blanked here. +FORGEFIRM_RELEASE_TRIM = "" # debug-tweaks (passwordless root, root SSH login) belongs ONLY to the dev # image - never the release image. It lives here, not in the shared kas diff --git a/meta-forgefirm/recipes-forgefirm/images/forgefirm-image.bb b/meta-forgefirm/recipes-forgefirm/images/forgefirm-image.bb index 6587d3e..ee5d96d 100644 --- a/meta-forgefirm/recipes-forgefirm/images/forgefirm-image.bb +++ b/meta-forgefirm/recipes-forgefirm/images/forgefirm-image.bb @@ -10,10 +10,13 @@ DESCRIPTION = "OpenGlow/ForgeFIRM image for Glowforge" # (gfui-client connects to Glowforge's servers). Removing it here (override # only; the shared glowforge-image base is untouched) also sidesteps its # do_package failure. Its role is filled locally by forgectrl and the -# controllers below. nano is a bench convenience (the dev image keeps it); -# on the release rootfs it costs 8.7 MB, most of it libmagic and its -# database, which nothing else here uses. -IMAGE_INSTALL:remove = "gfui-client nano" +# controllers below. nano is a bench convenience: on the release rootfs it +# costs 8.7 MB, most of it libmagic and its database, which nothing else +# here uses. The dev image blanks FORGEFIRM_RELEASE_TRIM to keep it (a +# removal spec is expanded when applied, so the variable, not the removal, +# is what a requiring recipe can override). +FORGEFIRM_RELEASE_TRIM ?= "nano" +IMAGE_INSTALL:remove = "gfui-client ${FORGEFIRM_RELEASE_TRIM}" # grblhal-glowforge: the grblHAL motion controller (Grbl over TCP:23). # forgectrl: the ForgeFIRM machine-services daemon (HTTP :8080): controller