From 73e2b690e1e98a6390e04ad2026f89944ee3c521 Mon Sep 17 00:00:00 2001 From: dequis Date: Mon, 2 Jan 2017 03:39:00 -0300 Subject: debian: add preinst script for a smoother transition to systemd units This fixes an issue when upgrading from an initscripts based release like 3.4.2 to the current version, in which the old daemon is still running when systemd tries to start it, so it fails to start due to bind and fails to stop because it doesn't use pidfiles. To get around this, the preinst script kills the initscripts-started daemon the first time when upgrading from something old enough, using the pidfile. --- debian/bitlbee-common.preinst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 debian/bitlbee-common.preinst (limited to 'debian/bitlbee-common.preinst') diff --git a/debian/bitlbee-common.preinst b/debian/bitlbee-common.preinst new file mode 100644 index 00000000..ad4b5a79 --- /dev/null +++ b/debian/bitlbee-common.preinst @@ -0,0 +1,20 @@ +#!/bin/sh + +set -e + +NAME=bitlbee +PIDFILE=/var/run/$NAME.pid + +# git revision 7949d5a introduced dh_systemd. +DH_SYSTEMD_REV="3.4.2+20160612+master+41-g7949d5a-git" + +# if upgrading from something older (including 3.4.2), kill the old daemon. +# do this just once, this time, to allow systemd to manage it. +if [ "$1" = 'upgrade' ]; then + if dpkg --compare-versions $2 lt $DH_SYSTEMD_REV; then + # we may not have init scripts here + start-stop-daemon --oknodo --stop --quiet --pidfile $PIDFILE --name $NAME + fi +fi + +#DEBHELPER# -- cgit v1.2.3