Not sure I follow here. Chrony is default NTP implementation on Fedora
AFAIK. Not systemd-timesyncd or timedatex. Chrony does not use varlink
interface, does it?
On 21/10/2024 15:11, Michael Catanzaro wrote:
On Mon, Oct 21 2024 at 02:51:56 PM +02:00:00, Lennart Poettering
<mzerqung@xxxxxxxxxxx> wrote:
I know you don't like systemd-resolved, but maybe you can at least
acknowledge that is does exist.
The nice thing about IPC APIs is it's easy to reimplement them however
you please, similar to how elogind reimplements many systemd D-Bus
APIs. It might make more sense to stick with the systemd-resolved
varlink and D-Bus APIs that already exist, rather than create yet
another competing standard.
From what I have seen in output of:
varlinkctl introspect /run/systemd/resolve/io.systemd.Resolve
io.systemd.Resolve
Those interface takes well documented DNS protocol packet and translates
it to a different format. Okay, one does not have to understand working
with binary DNS wire format. Although they are mostly clear to me, no
comments or examples are given. Basic structure is obvious, but is there
more documentation for it?
If I have seen correctly, no parsed response presents also TTL, for
example. If my application wants to have own responses cache (like
browsers do), it should know when to refresh a record. But these
interfaces does not seem to allow that. If those structures should add
another field, it may break other applications, right? The only way
would be ResolveRecord() and decoding binary response.
Is there any way to query rpm packages for consumers of this API? Can we
tell how much applications already use these varlink APIs?
But from path /run/systemd/resolve/io.systemd.Resolve it does not seem
to be generic service API. I doubt alternate services providing
resolution should be forced to create sockets in /run/systemd/resolve
directory.
Is there any example application taking advantage of those API, which
could be given as a well implemented example?
We even have some non-DNS precedent for this. When systemd-timedated
removed support for NTP services other than systemd-timesyncd, Fedora
replaced systemd-timedated with timedatex and maintained timedatex for
several years. Then when systemd-timedated backtracked on that
decision, we switched back. Applications never noticed because the API
was the same the whole time.
My colleague from my team is maintainer of chrony package. As far as I
can tell, chrony is the default on Fedora. Not sure how exactly it
interacts with systemd-timedated. But timedatectl shows my time is
synchronized, so it somehow communicates. Even when chrony does not seem
to be implementing varlink nor DBus. This example did not help me to
understand, why is the varlink the better way.
--
Petr Menšík
Software Engineer, RHEL
Red Hat, https://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue