Package: ntp
Version: 1:4.2.8p7+dfsg-3

While these days the systemd based timesync* tools are doing most of the
work there is still a lot of buzz around the automated ntpdate on ifup
being good/bad for various reasons.

I'll try to to summarize the outcome of multiple discussions and bugs
around this that I recently passed and propose a solution.

- I've seen various reports of ntpdate syncing too much or time changes due
to that annoying people.
- but then there are different user scenarios so some want and others won't
"autoupdate" feature on ifup
- the ones that want it disabled are usually only "inconvenience issues"
like too much calls, but also cases like "know it will hang", so could I
disable it in advance
- the ones require the updates are mostly having more severe issues (like
breaking authentication due to time being off afterwards)

We should try to create a solution for both parties to be able to config
the system to their way.
So lets keep the default to sync (as it seems the more critical way), but
provide a way to disable it via the config files.

Doing it via an environment variable also allows to "overwrite" it in ifup
calls like
  DISABLE_NTPDATE=1 ifup eth0

The config file has to be read in ntpdate-debian if the variable is not set.

Then just a simple check for that variable in the script to exit if
disabled:
[ "${DISABLE_NTPDATE:-0}" != "0" ] && exit 0

So the behavior would be like:
1. default it is running on ifup
2. one could set a different default in the config file
3. one can overwrite whatever was set via an environment variable

Attached is a suggestion in form of a patch how to achieve that.



Kind Regards,
Christian
diff --git a/ntp-4.2.8p7+dfsg/debian/ntpdate-debian b/ntp-4.2.8p7+dfsg/debian/ntpdate-debian
index 4f5b17b..b00678d 100644
--- a/ntp-4.2.8p7+dfsg/debian/ntpdate-debian
+++ b/ntp-4.2.8p7+dfsg/debian/ntpdate-debian
@@ -6,6 +6,8 @@ if [ -r /etc/default/ntpdate ]; then
 	. /etc/default/ntpdate
 fi
 
+[ "${DISABLE_NTPDATE:-0}" != "0" -o "${NTPDATE_IFUP_DISABLE}" != "0" ] && exit 0
+
 if [ "$NTPDATE_USE_NTP_CONF" = yes ]; then
 	for f in /etc/ntp.conf /etc/openntpd/ntpd.conf; do
 		if [ -r "$f" ]; then
diff --git a/ntp-4.2.8p7+dfsg/debian/ntpdate.default b/ntp-4.2.8p7+dfsg/debian/ntpdate.default
index 3241694..0b53a2f 100644
--- a/ntp-4.2.8p7+dfsg/debian/ntpdate.default
+++ b/ntp-4.2.8p7+dfsg/debian/ntpdate.default
@@ -5,6 +5,11 @@
 # so you only have to keep it in one place.
 NTPDATE_USE_NTP_CONF=yes
 
+# Set to 1 to disable the automated ntpdate-debian call triggered on ifup
+# Even if kept at 0 an individual call to ifup can be disabled via the
+# environment variable DISABLE_NTPDATE=1
+NTPDATE_IFUP_DISABLE="0"
+
 # List of NTP servers to use  (Separate multiple servers with spaces.)
 # Not used if NTPDATE_USE_NTP_CONF is yes.
 NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"

Reply via email to