astra-1680-deepx: build deepx-qt-example as sysext only - #34
Merged
Merged
Conversation
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>
Avocado References — Build Check
Totals: 1 ✅ passed · 0 ❌ failed Per-reference logs: workflow run |
lee-reinhardt
requested changes
Sep 22, 2026
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>
lee-reinhardt
requested changes
Sep 22, 2026
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>
lee-reinhardt
approved these changes
Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #31
Description
CI job
astra-1680-deepxfails building thedeepx-qt-exampleextension:enable_serviceslistsqt-deepx-example.service, but no such unit exists under/etc/systemd/systemor/usr/lib/systemd/systemin 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.shwrites the unit into/usr/lib/systemd/systemat package-install time, which only populates the sysext sysroot - there's nooverlay:directory for this extension, so the confext build's sysroot never gets the unit and itsenable_servicescheck fails.Every other extension in this repo that uses
enable_servicespairs it with anoverlay:directory shipping the unit statically.nvidia-deepstream'svision-appextension has the identical shape (packages +enable_services, no static/etccontent) and solves it by pinningtypes: [sysext]instead of adding an overlay - this change follows that precedent.Acceptance criteria
deepx-qt-examplebuilds only as a sysext; the confext build (which never had the unit) is no longer attempted.astra-1680-deepxjob passes.Implementation notes
Fixes
avocado-linux/references@main::astra-1680-deepx::(CI break, tracked viadevtool ci-watch).Fix: added
types: [sysext]to thedeepx-qt-exampleextension block inastra-1680-deepx/avocado.yaml.Not verified by a local build -
avocado buildneeds 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 workingvision-appprecedent innvidia-deepstream/avocado.yaml, not a reproduced-and-rerun verification.Sibling risk, not fixed here:
deepx-rtin the same file has the identical shape -enable_services: [dxrt.service], unit installed dynamically, notypespin, no overlay. It didn't surface in this CI run becausedeepx-driver/deepx-models/deepx-qt-examplesort alphabetically ahead of it and the run stopped atdeepx-qt-example. Worth checking once this lands and CI reachesdeepx-rt.