mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 08:41:13 -07:00
forgefirm-image: install python3-asyncio
The release image carries only the standard-library module packages its own Python recipes declare, and none of them imports asyncio, so it was left out. An extension runs on the image's interpreter and brings no standard-library module of its own: the set it may import is the set installed. Its event-stream and socket clients are written on asyncio, so the image installs python3-asyncio on purpose, with the reason in the recipe. The other modules the trim leaves out (multiprocessing, xmlrpc, the debugger, venv, ensurepip) stay out until something asks for them. Proven: an image pair built from this recipe has /usr/lib/python3.12/asyncio/__init__.py in the release rootfs, read out of the ext4 image; on the bench reference, running the dev image of that pair, python3 -c "import asyncio" succeeds. Acceptance: the change is recipe body, so it is platform content and takes the full campaign. No catalog test can hold the module itself: forgetest runs on the dev image, which installs python3-asyncio with the rest of the standard library whatever this recipe says, so the release rootfs is the thing to read, as it was here.
This commit is contained in:
@@ -18,12 +18,19 @@ DESCRIPTION = "OpenGlow/ForgeFIRM image for Glowforge"
|
||||
# removal spec is expanded when applied, so the variable, not the removal,
|
||||
# is what a requiring recipe can override). python3 is the meta-package:
|
||||
# it installs every standard-library module (tkinter, idle, 2to3, pydoc,
|
||||
# ensurepip, venv, the debugger, asyncio, multiprocessing, xmlrpc), which
|
||||
# nothing here imports. Each Python recipe declares the module packages it
|
||||
# ensurepip, venv, the debugger, multiprocessing, xmlrpc), which nothing
|
||||
# here imports. Each Python recipe declares the module packages it
|
||||
# imports (python3-core plus the few it uses), so the meta-package goes.
|
||||
FORGEFIRM_RELEASE_TRIM ?= "nano"
|
||||
IMAGE_INSTALL:remove = "python3 ${FORGEFIRM_RELEASE_TRIM}"
|
||||
|
||||
# The Python an extension can count on. An extension runs on the image's
|
||||
# interpreter and brings no standard-library module of its own, so the set
|
||||
# it may import is the set installed here: what ForgeFIRM's own Python
|
||||
# recipes pull in, plus python3-asyncio, which no ForgeFIRM program imports
|
||||
# and which an extension's event-stream and socket clients are written on.
|
||||
IMAGE_INSTALL:append = " python3-asyncio"
|
||||
|
||||
# grblhal-glowforge: the grblHAL motion controller (Grbl over TCP:23).
|
||||
# forgectrl: the ForgeFIRM machine-services daemon (HTTP :80, HTTPS :443
|
||||
# with a self-signed certificate): controller supervisor, pulse-device
|
||||
|
||||
Reference in New Issue
Block a user