summaryrefslogtreecommitdiffstats
path: root/debian/postinst
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/postinst80
1 files changed, 80 insertions, 0 deletions
diff --git a/debian/postinst b/debian/postinst
new file mode 100644
index 0000000..8a00a77
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,80 @@
+#!/bin/sh
+# postinst script for chrony
+#
+# see: dh_installdeb(1)
+
+set -e
+
+
+# targets: configure|abort-upgrade|abort-remove|abort-deconfigure
+
+case "$1" in
+ configure)
+
+ adduser --force-badname \
+ --system \
+ --group \
+ --quiet \
+ --gecos "Chrony daemon" \
+ --home /var/lib/chrony \
+ --no-create-home _chrony
+
+ if command -v ucf >/dev/null
+ then
+ ucf --three-way /usr/share/chrony/chrony.conf /etc/chrony/chrony.conf
+ ucf --three-way /usr/share/chrony/chrony.keys /etc/chrony/chrony.keys
+ if [ -x "$(command -v ucfr)" ]; then
+ ucfr chrony /etc/chrony/chrony.conf
+ ucfr chrony /etc/chrony/chrony.keys
+ fi
+ fi
+
+ # Change the user and group ownership of "/var/l{ib,og}/chrony" iif
+ # the chronyd's configuration does not contain the "user" directive.
+ # Also, update these directories' mode bits to 0750 to follow upstream.
+ #
+ # We must also ensure that chronyd can read /etc/chrony/chrony.keys
+ # after dropping root privileges.
+ if ! chronyd -p | grep -q "^user"; then
+ for d in /var/lib/chrony /var/log/chrony /etc/chrony/chrony.keys; do
+ if ! dpkg-statoverride --list "$d" >/dev/null; then
+ if [ "$d" = "/etc/chrony/chrony.keys" ]; then
+ dpkg-statoverride --update --add root _chrony 0640 "$d"
+ else
+ dpkg-statoverride --update --add _chrony _chrony 0750 "$d"
+ fi
+ fi
+ done
+ fi
+
+ if [ -n "$2" ] && dpkg --compare-versions "$2" lt 4.0~pre4-1; then
+ # Migrate NTP sources obtained from DHCP to /run/chrony-dhcp
+ mkdir -p /run/chrony-dhcp
+ for file in $(find /var/lib/dhcp/ -type f -name "chrony.servers.*"); do
+ sed 's/.*/server &/' < "$file" > /run/chrony-dhcp/"${file##*servers.}.sources"
+ done
+
+ # Remove the staled PID file resulting from migrating its path from
+ # /run to /run/chrony/. Overriding dh_installinit and
+ # dh_systemd_start to use the --no-restart-after-upgrade option
+ # was a possibility but chronyd would have been down even longer
+ # during the upgrade.
+ rm -f /run/chronyd.pid
+ fi
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0