name: mjdev-package-dependencies
Goal: a user who gets a package and installs it must be able to use the app on any machine — the package pulls or carries everything it needs. Never ship a package that silently misses a runtime dependency (that is what black-screened fresh installs).
For each distributable, put runtime dependencies where that format resolves them:
| Format | Dependency mechanism (preferred) | If not possible → bundle |
|---|---|---|
| .deb | Depends: (+ Recommends:) in DEBIAN/control → apt resolves |
ship the lib in the package + ldconfig/rpath |
| .rpm | Requires: tags → dnf/zypper resolve |
ship the lib in the package |
| AppImage | none — bundle everything in the AppDir (that's the point of AppImage) | (always bundle) |
| .exe/.msi | installer prerequisites / bundled redistributables | bundle DLLs next to the exe |
| .dmg/.pkg | macOS frameworks / @rpath |
bundle dylibs in the .app |
| flatpak | runtime + extensions in the manifest | bundle in the sandbox |
| .apk | gradle deps compiled in (self-contained) | (always self-contained) |
Prefer the native dependency system (smaller package, shared/updated libs). Only bundle when the format has no resolver (AppImage) or the dep is unavailable / ABI-pinned on the target distro.
Keep the dependency list in one place (the version catalog: app-compositor-runtime-deps) and
feed every packager + installer + ISO from it. Don't copy the list into each packaging step.
mjdevc) + mjdev-session
wayland-sessions entry, and the app runs as the session shell. THESE need the wayland
runtime stack (libwlroots/xwayland/mesa/seatd) declared/bundled — a clean/console box has no
compositor. The desktop session is Linux-only.PackageFullDebTask (buildSrc) injects compositor + session and appends the wayland
runtime stack to Depends (from the catalog), so apt install ./mjdev-desktop.deb pulls
libwlroots/xwayland/mesa/seatd on a clean console Linux.Requires: (rpm rebuild) — TODO.buildAll (and the GitHub Actions release) must emit ALL formats — the more platforms the better.