From 4790115455ca3bc04250a260c4767737b7f751f7 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 29 Sep 2015 22:54:41 +0100 Subject: [PATCH] Use /run/dnsmasq instead of /var/run/dnsmasq in Debian package. --- debian/changelog | 2 ++ debian/dnsmasq-base.postinst | 6 +++--- debian/dnsmasq-base.postrm | 2 +- debian/init | 38 ++++++++++++++++++------------------ debian/postinst | 2 +- debian/resolvconf | 2 +- debian/rules | 1 - debian/systemd.service | 2 +- 8 files changed, 28 insertions(+), 27 deletions(-) diff --git a/debian/changelog b/debian/changelog index 99c03833..e7274060 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ dnsmasq (2.76-1) unstable; urgency=low * New upstream. (closes: #798586) + * Use /run/dnsmasq directly, rather than relying on link from /var/run + to avoid problems before /var is mounted. (closes: #800351) -- Simon Kelley Thur, 10 Sep 2015 23:07:21 +0000 diff --git a/debian/dnsmasq-base.postinst b/debian/dnsmasq-base.postinst index 4f025ca2..50b148eb 100644 --- a/debian/dnsmasq-base.postinst +++ b/debian/dnsmasq-base.postinst @@ -17,8 +17,8 @@ if [ "$1" = "configure" ]; then # dnsmasq-base, but it's much easier to create it here so that # we don't have synchronisation issues with the creation of the # dnsmasq user. - if [ ! -d /var/run/dnsmasq ]; then - mkdir /var/run/dnsmasq - chown dnsmasq:nogroup /var/run/dnsmasq + if [ ! -d /run/dnsmasq ]; then + mkdir /run/dnsmasq + chown dnsmasq:nogroup /run/dnsmasq fi fi diff --git a/debian/dnsmasq-base.postrm b/debian/dnsmasq-base.postrm index 950a9ffa..98b10a4d 100644 --- a/debian/dnsmasq-base.postrm +++ b/debian/dnsmasq-base.postrm @@ -7,5 +7,5 @@ if [ purge = "$1" ]; then else echo >&2 "not removing dnsmasq system account because deluser command was not found" fi - rm -rf /var/run/dnsmasq + rm -rf /run/dnsmasq fi diff --git a/debian/init b/debian/init index dc45d38b..6afe1916 100644 --- a/debian/init +++ b/debian/init @@ -81,7 +81,7 @@ if [ ! "$RESOLV_CONF" ] && [ "$IGNORE_RESOLVCONF" != "yes" ] && [ -x /sbin/resolvconf ] then - RESOLV_CONF=/var/run/dnsmasq/resolv.conf + RESOLV_CONF=/run/dnsmasq/resolv.conf fi for INTERFACE in $DNSMASQ_INTERFACE; do @@ -121,16 +121,16 @@ start() # 1 if daemon was already running # 2 if daemon could not be started - # /var/run may be volatile, so we need to ensure that - # /var/run/dnsmasq exists here as well as in postinst - if [ ! -d /var/run/dnsmasq ]; then - mkdir /var/run/dnsmasq || return 2 - chown dnsmasq:nogroup /var/run/dnsmasq || return 2 + # /run may be volatile, so we need to ensure that + # /run/dnsmasq exists here as well as in postinst + if [ ! -d /run/dnsmasq ]; then + mkdir /run/dnsmasq || return 2 + chown dnsmasq:nogroup /run/dnsmasq || return 2 fi - start-stop-daemon --start --quiet --pidfile /var/run/dnsmasq/$NAME.pid --exec $DAEMON --test > /dev/null || return 1 - start-stop-daemon --start --quiet --pidfile /var/run/dnsmasq/$NAME.pid --exec $DAEMON -- \ - -x /var/run/dnsmasq/$NAME.pid \ + start-stop-daemon --start --quiet --pidfile /run/dnsmasq/$NAME.pid --exec $DAEMON --test > /dev/null || return 1 + start-stop-daemon --start --quiet --pidfile /run/dnsmasq/$NAME.pid --exec $DAEMON -- \ + -x /run/dnsmasq/$NAME.pid \ ${MAILHOSTNAME:+ -m $MAILHOSTNAME} \ ${MAILTARGET:+ -t $MAILTARGET} \ ${DNSMASQ_USER:+ -u $DNSMASQ_USER} \ @@ -167,7 +167,7 @@ stop() # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /var/run/dnsmasq/$NAME.pid --name $NAME + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /run/dnsmasq/$NAME.pid --name $NAME } stop_resolvconf() @@ -185,9 +185,9 @@ status() # 1 if daemon is dead and pid file exists # 3 if daemon is not running # 4 if daemon status is unknown - start-stop-daemon --start --quiet --pidfile /var/run/dnsmasq/$NAME.pid --exec $DAEMON --test > /dev/null + start-stop-daemon --start --quiet --pidfile /run/dnsmasq/$NAME.pid --exec $DAEMON --test > /dev/null case "$?" in - 0) [ -e "/var/run/dnsmasq/$NAME.pid" ] && return 1 ; return 3 ;; + 0) [ -e "/run/dnsmasq/$NAME.pid" ] && return 1 ; return 3 ;; 1) return 0 ;; *) return 4 ;; esac @@ -278,7 +278,7 @@ case "$1" in esac ;; dump-stats) - kill -s USR1 `cat /var/run/dnsmasq/$NAME.pid` + kill -s USR1 `cat /run/dnsmasq/$NAME.pid` ;; systemd-start-resolvconf) start_resolvconf @@ -287,13 +287,13 @@ case "$1" in stop_resolvconf ;; systemd-exec) -# /var/run may be volatile, so we need to ensure that - # /var/run/dnsmasq exists here as well as in postinst - if [ ! -d /var/run/dnsmasq ]; then - mkdir /var/run/dnsmasq || return 2 - chown dnsmasq:nogroup /var/run/dnsmasq || return 2 +# /run may be volatile, so we need to ensure that + # /run/dnsmasq exists here as well as in postinst + if [ ! -d /run/dnsmasq ]; then + mkdir /run/dnsmasq || return 2 + chown dnsmasq:nogroup /run/dnsmasq || return 2 fi - exec $DAEMON -x /var/run/dnsmasq/$NAME.pid \ + exec $DAEMON -x /run/dnsmasq/$NAME.pid \ ${MAILHOSTNAME:+ -m $MAILHOSTNAME} \ ${MAILTARGET:+ -t $MAILTARGET} \ ${DNSMASQ_USER:+ -u $DNSMASQ_USER} \ diff --git a/debian/postinst b/debian/postinst index 1d18c599..155d3253 100644 --- a/debian/postinst +++ b/debian/postinst @@ -21,7 +21,7 @@ if [ -x /etc/init.d/dnsmasq ]; then update-rc.d dnsmasq defaults 15 85 >/dev/null if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then - if [ -e /var/run/dnsmasq/dnsmasq.pid ]; then + if [ -e /run/dnsmasq/dnsmasq.pid ]; then ACTION=restart else ACTION=start diff --git a/debian/resolvconf b/debian/resolvconf index c15cb29e..4418eabc 100644 --- a/debian/resolvconf +++ b/debian/resolvconf @@ -13,7 +13,7 @@ set -e -RUN_DIR="/var/run/dnsmasq" +RUN_DIR="/run/dnsmasq" RSLVRLIST_FILE="${RUN_DIR}/resolv.conf" TMP_FILE="${RSLVRLIST_FILE}_new.$$" MY_NAME_FOR_RESOLVCONF="dnsmasq" diff --git a/debian/rules b/debian/rules index 74012ddf..8612092c 100755 --- a/debian/rules +++ b/debian/rules @@ -134,7 +134,6 @@ binary-arch: checkroot -d debian/base/etc/dbus-1/system.d \ -d debian/base/usr/share/doc/$(package) \ -d debian/base/usr/share/doc/$(package)/examples \ - -d debian/base/var/run \ -d debian/base/usr/share/$(package) \ -d debian/base/var/lib/misc make $(TARGET) PREFIX=/usr DESTDIR=`pwd`/debian/base CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(DEB_COPTS)" CC=gcc diff --git a/debian/systemd.service b/debian/systemd.service index 790c41fc..40b8d27c 100644 --- a/debian/systemd.service +++ b/debian/systemd.service @@ -4,7 +4,7 @@ Requires=network.target [Service] Type=forking -PIDFile=/var/run/dnsmasq/dnsmasq.pid +PIDFile=/run/dnsmasq/dnsmasq.pid # Test the config file and refuse starting if it is not valid. ExecStartPre=/usr/sbin/dnsmasq --test