New issue by pullmoll on void-packages repository https://github.com/void-linux/void-packages/issues/22389 Description: This is a request for comments for an idea which came to me when I had to deal with the inevitable mess of dependency cycles which `avahi` creates by its sole appearance in package's makedepends. The idea is basically to invent an `avahi-stub` package which implements the interface(s) of `avahi-libs-devel` but, instead of depending on everything that `avahi` depends upon, depends on nothing else. The stub library (or libraries) would then, at runtime, try to `dlopen(3)` the actual `libavahi-client.so.3`, `libavahi-common.so.3`, and `libavahi-core.so.7` libraries and resolve their functions to store them in the stub's function pointers. If a user (like me) chose not to install `avahi` at all, these functions pointers would be NULL and the stub functions would return the corresponding error codes and perhaps set `errno = ENOSYS` or whatever. If OTOH the `avahi` package is installed, the stub would resolve the functions and then forward to them, adding one layer of call/return. I don't know if anyone else already tried such a thing, whether it is at all possible, or if there are reasons why this cannot work in principle, that's why I ask here. I'd love to be able to bootstrap and build up a Void repository without taking hours or days of manually tuning the package building process to avoid `avahi` here and `pulseaudio` there when building temporary packages to resolve the depedency cycles ... etc. pp. Should this idea work, every package now depending on `avahi-libs-devel` would then depend on `avahi-stub-devel` and the bootstrap and repository build-up should work without human intervention.