Files
moho/.github/workflows
Salastil 4c6e24be9c Build the daemon where the oldest target can run it
The released daemon could not start on Ubuntu 22.04, and nothing about
the package said so.

nobilis is a native binary and glibc symbol versions only go forwards:
one built against 2.39 refuses to load on anything older. Built here on
Arch it wants GLIBC_2.39, and ubuntu-latest is 24.04, which is also
2.39 - while Ubuntu 22.04 has 2.35. So the AppImage would start, its
window would come up, and the backend would never appear. A packaging
fault wearing a runtime failure's clothes, and the least legible kind
there is.

This is separate from every other Linux problem in this area and older
than all of them: it is not the FUSE runtime, not the sandbox, not the
AppArmor profile. Those were all found and fixed while this one sat
underneath them, which is exactly why it is asserted now rather than
remembered.

So the Linux job builds on ubuntu-22.04, which sets the floor at 2.35 -
satisfied by every newer target, Debian 13 on 2.41 and Ubuntu 24.04 on
2.39 included - and a step after the build reads the symbols back and
fails the run if the floor ever rises again. The pin is the kind of
thing that gets tidied away by someone who reads `ubuntu-22.04` as
staleness rather than intent, so the check is what actually holds the
promise. When the label is retired, the replacement is a
`container: ubuntu:22.04` on a current runner, not the next label along.

The Windows job needs none of this: it cross-builds with mingw and
links no glibc at all.
2026-09-22 22:33:03 -04:00
..