Bug#1091864: tech-ctte: Avahi and systemd-resolved cannot a run mDNS responder at the same time
Sam Hartman
hartmans at debian.org
Thu Jan 23 18:35:41 GMT 2025
>>>>> "Helmut" == Helmut Grohne <helmut at subdivi.de> writes:
Helmut> Hi Sam and others, thanks for shifting the perspective.
Helmut> On Thu, Jan 16, 2025 at 09:49:41AM -0700, Sam Hartman wrote:
>> It also seems like the TC has the option of providing policy
>> here, for example policy on what the default MDNS implementation
>> is in Debian or policy on how services can interact that gives
>> guidance on the interaction between packages like avahi-daemon
>> and systemd-resolved.
Helmut> I'm not sure how such policy would help resolve the
Helmut> conflict. Given reverse dependencies of popular packages,
Helmut> avahi-daemon is the de-facto default implementation, but
Helmut> does that preclude resolved from performing resolving in the
Helmut> absence of avahi-daemon (as requested by Luca)?
Helmut> Would you have an idea of what kind of policy could be
Helmut> enacted and how it would help resolve the conflict?
"Debian's policy on mdns implementations:
The default mdns implementation for Debian trixie is avahi-daemon. Other
packages must not provide an mdns resolver or publisher in their
default configuration."
I think that's probably a bad policy, but it seems fairly clear that if
Debian through the TC were to adopt such a policy it's clear that
systemd would be responsible for turning off mdns either at compile time
or through the default config files.
Assuming we thought that disabling systemd-resolved's MDNS support was
the right answer even if avahi-daemon is not installed, we could come up
with something better worded than what I propose above.
If we think it is reasonable for systemd-resolved to provide MDNS
resolution when avahi-daemon is not installed, we could write a policy
that said avahi-daemon is our preferred implementation. Then we could
talk about how other implementations figure out whether they are the
most preferred implementation on the system and what their behavior
should be if they determine that they are not the most preferred
implementation on the system. (I'm imagining such a policy might push
the systemd maintainers toward a generator that generated runtime config
to turn off MDNS when avahi-daemon is installed, although I think you
could also write policy that pushed toward avahi-daemon generating a
drop-in.
I don't think thinking about this in terms of policy magically solves
anything on the technical level. I think it might be a superior way to
phrase things at a political level:
* The TC could be ruling on things like what our default
implementation is and on how packages handling the same interface
should interact. These matters truly do cross package boundaries and
if you phrase things that way it becomes obvious that the TC is
resolving a cross-package issue rather than stepping on a maintainer's
toes.
* You can phrase things in such a way that we (and our users) get a
decision even if the TC cannot come to a super majority. The TC would
need to at least come to a majority decision, but that may be easier.
* Things are not phrased in terms of overriding maintainers. Even that
can have some value depending on the personalities.
More information about the Pkg-systemd-maintainers
mailing list