#995213 chrony: Unable to mix chrony and ntp together.

Package:
chrony
Source:
chrony
Description:
Versatile implementation of the Network Time Protocol
Submitter:
Steve Egbert
Date:
2021-09-27 23:39:04 UTC
Severity:
normal
#995213#5
Date:
2021-09-27 23:35:01 UTC
From:
To:
Dear Maintainer,

I have a use case for running both ntp and chrony packages.
The Debian APT is using 'Conflicts: time-daemon' in chrony and ntp packages.
We cannot EVER install both packages due to this 'Conflicts' metatag.

My use case here:
* ntp is the upstream interface and is using its own encryption.
* chrony is the downstream broadcasting NTP protocol and is using its own
  encryption.
* systemd-timesyncd does not support encryption (v247), so it got ignored.

Nothing we can do would allow the installation of both packages.

ALTERNATIVE APPROACH
--------------------
One thing that MAY work for all is to split out the packages into

* ntp-client-only (which has the APT 'Conflict: chrony, systemd-timesyncd'
* ntp-server-client (has the APT 'Conflict: ntp-client-only'
* chrony-client-only (which has the APT 'Conflict: ntp, systemd-timesyncd'
* chrony-server-client (which has the APT 'Conflict: chrony-client-only'


Suggessted *-client-only settings
---------------------------------
Only the *-client-only package would have the default
settings for desktop, dynamic IP interface, et. al.

These *-client-only packages would have THE apt metatag setting
of covering old naming-convention packages
with 'Conflicts: [chrony|ntp|systemd-timesyncd]'


Suggested *-server-client settings
----------------------------------
The *-server-client would have its config files be configured
as 'client-only' but allows for drop-in config settings into
their respective drop-in include directory.

Might even have a dpkg-[p]reconfigure script for additional
info for being in server mode (such as interface/subnet).


Interaction between *-client-only/*-server-client packages
----------------------------------------------------------
Of course, this *-server-client package class would NOT be
deleting any config files that it did NOT install, thus
enabling customization to be left behind and untouch.

We could even make the *-client-only be dominate and 'blow-away'
settings (ok, not that drastic, just simply rename away
with *.dpkg filetype) on these drop-in config files.

And APT 'Conflicts:' shall not be used by any *-server-client package.


Interaction between *-server-client and systemd-timesyncd
---------------------------------------------------------
Well, systemd-timesyncd is only good for client-side.
We ought to be able to support this new 'Conflicts: *-client-only' still.

No need to remove systemd-timesyncd if one of the *-server-client
got installed.  Admin would just need to be smart about how to
set both package classes together.


Summary
-------
Yeah, it's a bit heady.  Not sure why we went down this
'Conflicts:' route for time-daemon packages.

I can see the need to meet ease of use for the desktop
community, but certinaly not at a heavy cost toward the
server community.