Skip to content

astra-1680-deepx: build deepx-qt-example as sysext only - #34

Merged
jetm merged 3 commits into
mainfrom
work-stick-2026-09-17/fix-astra-1680-deepx
Sep 23, 2026
Merged

jetm merged 3 commits into
mainfrom
work-stick-2026-09-17/fix-astra-1680-deepx

Conversation

@jetm

@jetm jetm commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Closes #31

Description

CI job astra-1680-deepx fails building the deepx-qt-example extension: enable_services lists qt-deepx-example.service, but no such unit exists under /etc/systemd/system or /usr/lib/systemd/system in the extension's sysroot.

The extension declares no types, so it defaults to building both a sysext and a confext image. files/dx-qt-example-install.sh writes the unit into /usr/lib/systemd/system at package-install time, which only populates the sysext sysroot - there's no overlay: directory for this extension, so the confext build's sysroot never gets the unit and its enable_services check fails.

Every other extension in this repo that uses enable_services pairs it with an overlay: directory shipping the unit statically. nvidia-deepstream's vision-app extension has the identical shape (packages + enable_services, no static /etc content) and solves it by pinning types: [sysext] instead of adding an overlay - this change follows that precedent.

Acceptance criteria

  • deepx-qt-example builds only as a sysext; the confext build (which never had the unit) is no longer attempted.
  • CI's astra-1680-deepx job passes.

Implementation notes

Fixes avocado-linux/references@main::astra-1680-deepx:: (CI break, tracked via devtool ci-watch).

Fix: added types: [sysext] to the deepx-qt-example extension block in astra-1680-deepx/avocado.yaml.

Not verified by a local build - avocado build needs the containerized SDK toolchain and target feeds, out of scope for this environment. The fix is a structural inference from the error message plus the working vision-app precedent in nvidia-deepstream/avocado.yaml, not a reproduced-and-rerun verification.

Sibling risk, not fixed here: deepx-rt in the same file has the identical shape - enable_services: [dxrt.service], unit installed dynamically, no types pin, no overlay. It didn't surface in this CI run because deepx-driver/deepx-models/deepx-qt-example sort alphabetically ahead of it and the run stopped at deepx-qt-example. Worth checking once this lands and CI reaches deepx-rt.

avocado build failed with "enable_services lists qt-deepx-example.service,
but no such unit exists in the extension sysroot ... under
/etc/systemd/system or /usr/lib/systemd/system." The extension has no
`types` set, so it defaults to building both a sysext and a confext image.
Its systemd unit is written into /usr/lib/systemd/system by
dx-qt-example-install.sh at package-install time, which only populates the
sysext sysroot - the confext build has no packages step and nothing shipped
via an `overlay:` directory, so its own sysroot never gets the unit and the
enable_services check on the confext build fails.

The extension carries no /etc-only content, so a confext build serves no
purpose here. Pin `types: [sysext]`, the same way vision-app does in
nvidia-deepstream/avocado.yaml, so only the sysext (which does have the
unit) gets built and checked.

Signed-off-by: Javier Tia <javier@peridio.com>
@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Avocado References — Build Check

Reference Target install build Result
astra-1680-deepx grinn-astra-1680-sbc ✅ ✅ PASS

Totals: 1 ✅ passed · 0 ❌ failed

Per-reference logs: workflow run

Comment thread astra-1680-deepx/avocado.yaml
Pinning deepx-qt-example to sysext-only fixed the CI build but left
enable_services declaring qt-deepx-example.service with nothing behind
it: avocado-cli's service-linking step, which parses [Install] and
creates the WantedBy/RequiredBy symlinks, only runs on the confext
sysroot, and confext never executes the packages install script below
(sysext's install path) - it only merges an overlay:. So the unit
stayed declared and the sysext install script's "not found; skipping
service installation" warning kept firing on every build regardless of
which types the extension carried.

Restore confext alongside sysext and add overlay: files/overlay
carrying the actual qt-deepx-example.service unit, so enable_services
has a real file to validate and link. The unit's After/PartOf=weston
matches the on_merge comment already documenting that relationship;
the Wayland environment and wait-for-socket ExecStartPre mirror the
other weston-hosted demos in this repo (rzv2n-drpai-yolo, imx8mp-npu-*)
since no Qt-specific example exists here to copy from - XDG_RUNTIME_DIR
and the socket wait are unverified against this board's actual weston
UID and are worth confirming on hardware.

The reference's own .gitignore blocked this from ever being shippable:
its bare `qt*` pattern, meant for dx-qt-example-compile.sh's scratch
clone of the qt-deepx-example source tree, also matched the unit's
basename anywhere in the tree, so `files/overlay/.../qt-deepx-example.service`
was silently excluded from every git add. Narrowed with a `files/overlay/**`
negation rather than re-scoping `qt*` itself, to avoid changing what it
ignores for the scratch clone.

Signed-off-by: Javier Tia <javier@peridio.com>
@jetm
jetm requested a review from lee-reinhardt September 22, 2026 17:08
Comment thread astra-1680-deepx/files/overlay/usr/lib/systemd/system/qt-deepx-example.service Outdated
qt-deepx-example.service waited on /run/user/0/wayland-1 and exported
XDG_RUNTIME_DIR=/run/user/0, but this extension's own weston-kiosk.conf
drop-in moves weston's runtime dir to /run/weston to avoid logind
cleaning up /run/user/0 out from under the compositor's socket. The
ExecStartPre wait therefore blocked on a path the compositor never
creates, and QT_QPA_PLATFORM=wayland would have connected to nothing.

Match the client's runtime dir to the compositor's, the same way
rzv2n-drpai-yolo.service (whose wait loop this unit's comment already
credits) matches its own weston drop-in's /run/user/970.

Signed-off-by: Javier Tia <javier@peridio.com>
@jetm
jetm requested a review from lee-reinhardt September 22, 2026 22:30
@jetm
jetm merged commit 5501585 into main Sep 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI break: astra-1680-deepx - avocado build

2 participants