(...) since our library dependencies are now dlopen() based they do not show up in the ELF metadata of our binaries anymore. And package managers such as dpkg/rpm generally look at that, and automatically translate those ELF dependencies into packaging dependencies.
(...) All our binaries now contain an ELF "note" describing these "weak" deps that can be processed in a similar way as regular ELF dependencies.
The format of these notes is described here:
Context
Systemd v256 is switching to use dlopen() to minimise its footprint and degrade its functionality gracefully:
https://github.com/systemd/systemd/blob/main/docs/ELF_DLOPEN_METADATA.md