Summary
singularity-desktop cannot be configured on aarch64 as of d642160. meson setup fails before any compilation:
subprojects/singularity-gestures/meson.build:30:6: ERROR: Include dir runtime/include does not exist.
This is not architecture-specific in itself — the directory is absent on any
clean checkout — but the mechanism that populates it is x86-64 only, so arm64
has no way forward.
Why the directory is missing
singularity-gestures (51da49b) declares:
inc = include_directories('include', 'src', 'runtime/include')
but runtime/ contains exactly one tracked file:
$ git ls-files runtime/
runtime/.gitignore
$ cat runtime/.gitignore
*.so
*.task
*.onnx
include/
include/ is gitignored, so runtime/include is never in a checkout. It is
produced by scripts/bootstrap-runtime.sh, which downloads MediaPipe and ONNX
Runtime at build time.
Why arm64 cannot run that bootstrap
scripts/bootstrap-runtime.sh has no architecture detection at all — grep -c uname returns 0 — and hardcodes an x86-64 tarball:
"https://github.com/microsoft/onnxruntime/releases/download/v$onnx_version/onnxruntime-linux-x64-$onnx_version.tgz"
with onnx_dir="$download_dir/onnxruntime-linux-x64-$onnx_version". On aarch64
this fetches binaries for the wrong architecture. (I have not run it there —
the hardcoded -x64 URL and the absence of any arch branch are what I am
reporting, not a measured failure of the download itself.)
Upstream does publish onnxruntime-linux-aarch64-*.tgz for the same releases.
Why it blocks the whole tree
meson.build:13 pulls the subproject in unconditionally:
subproject('singularity-gestures')
There is no meson option to disable it (meson_options.txt has only
installer), so the failure is not confined to the gestures feature — the
entire desktop fails to configure.
Suggested fixes, roughly in order of effort
- Select the ONNX Runtime tarball by
uname -m, mapping aarch64 to the
onnxruntime-linux-aarch64-* release asset.
- Add a meson option (say
gestures, defaulting to enabled) so a platform
without the runtime can still build the desktop. This alone would unblock
arm64 even without (1).
- Have
meson.build fail with a clear message pointing at
scripts/bootstrap-runtime.sh when runtime/include is absent — the
current error names a missing directory without saying it is generated.
Environment
singularity-desktop d642160, singularity-gestures 51da49b
- aarch64 (CIX Sky1), Debian trixie build container
- meson/ninja from the distro; all other subprojects configure fine once this
one is skipped
Workaround in use
Dropping the subproject('singularity-gestures') line from meson.build in
our build staging copy. That is a local build workaround, not a fix, and it
disables the gesture features entirely.
Summary
singularity-desktopcannot be configured on aarch64 as ofd642160.meson setupfails before any compilation:This is not architecture-specific in itself — the directory is absent on any
clean checkout — but the mechanism that populates it is x86-64 only, so arm64
has no way forward.
Why the directory is missing
singularity-gestures(51da49b) declares:but
runtime/contains exactly one tracked file:include/is gitignored, soruntime/includeis never in a checkout. It isproduced by
scripts/bootstrap-runtime.sh, which downloads MediaPipe and ONNXRuntime at build time.
Why arm64 cannot run that bootstrap
scripts/bootstrap-runtime.shhas no architecture detection at all —grep -c unamereturns 0 — and hardcodes an x86-64 tarball:"https://github.com/microsoft/onnxruntime/releases/download/v$onnx_version/onnxruntime-linux-x64-$onnx_version.tgz"with
onnx_dir="$download_dir/onnxruntime-linux-x64-$onnx_version". On aarch64this fetches binaries for the wrong architecture. (I have not run it there —
the hardcoded
-x64URL and the absence of any arch branch are what I amreporting, not a measured failure of the download itself.)
Upstream does publish
onnxruntime-linux-aarch64-*.tgzfor the same releases.Why it blocks the whole tree
meson.build:13pulls the subproject in unconditionally:There is no meson option to disable it (
meson_options.txthas onlyinstaller), so the failure is not confined to the gestures feature — theentire desktop fails to configure.
Suggested fixes, roughly in order of effort
uname -m, mappingaarch64to theonnxruntime-linux-aarch64-*release asset.gestures, defaulting to enabled) so a platformwithout the runtime can still build the desktop. This alone would unblock
arm64 even without (1).
meson.buildfail with a clear message pointing atscripts/bootstrap-runtime.shwhenruntime/includeis absent — thecurrent error names a missing directory without saying it is generated.
Environment
singularity-desktopd642160,singularity-gestures51da49bone is skipped
Workaround in use
Dropping the
subproject('singularity-gestures')line frommeson.buildinour build staging copy. That is a local build workaround, not a fix, and it
disables the gesture features entirely.