novolis-os / runtime-surface.md
Runtime surface
Minimal Debian runtime images
dotnetlinuxdebianruntimenovolis
Map of Novolis library layers to OS packages. Pure managed stacks need only the .NET runtime.
| Layer / stack | OS packages | Manifest |
|---|---|---|
| Math, Physics, Simulation, Gaming (managed) | .NET 10 runtime tarball (dotnet-runtime-10.0 pin) | dotnet.txt |
| ICU / globalization | libicu76 | base.txt |
| TLS | libssl3t64, ca-certificates, zlib1g | base.txt |
| Avalonia / Skia | fontconfig, freetype, X11/xcb, Wayland client, libxkbcommon0, fonts | ui-graphics.txt |
| Avalonia 3D / Silk OpenGL / Raylib | Mesa EGL/GL/GLES, libdrm2, libgbm1, libdecor-0-0 | ui-graphics.txt |
| Raylib / game audio | libasound2t64 | audio-alsa.txt |
| Appliance display | cage, seatd, linux-image-amd64, systemd | appliance.txt |
Explicitly not provided
| Need | Why absent |
|---|---|
| .NET SDK | Runtime image only |
| PulseAudio / PipeWire | ALSA is enough for Raylib; keeps the graph small |
| Desktop environment | Apps own their windows; cage covers kiosk VM |
| Windows-only voice / Inno | Host those on Windows; not Linux OS scope |
Adding a package
- Confirm a Novolis library fails without it (document the failure).
- Add the exact Debian package name to the right
manifests/*.txt. - Update this table.
- Run
Verify-PackageBudget.ps1— stay under budget and clear ofexcludes.txt.