Package: krb5-kdc
Version: 1.12.1
Severity: normal
Tags: patch

Dear Maintainer,

krb5-kdc package does not supply init scripts for kpropd. The attached patch
adds a script and a systemd unit file and updates the package to install those
files. They are not activated using update-rc.d intentionally, since kpropd
should only run on secondary KDCs.

-- System Information:
Debian Release: 8.0
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/3 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
-- 
Vorstandsvorsitzender/Chairman of the board of management:
Gerd-Lothar Leonhart
Vorstand/Board of Management:
Dr. Bernd Finkbeiner, Michael Heinrichs, Dr. Arno Steitz
Vorsitzender des Aufsichtsrats/
Chairman of the Supervisory Board:
Philippe Miltin
Sitz/Registered Office: Tuebingen
Registergericht/Registration Court: Stuttgart
Registernummer/Commercial Register No.: HRB 382196
>From 41af73e0a20232955586a43f4d63eb8f49f72a30 Mon Sep 17 00:00:00 2001
From: Mark Proehl <[email protected]>
Date: Tue, 13 Jan 2015 14:34:50 +0100
Subject: [PATCH 1/2] Add kpropd init scripts

---
 debian/krb5-kdc.install    |   2 +
 debian/krb5-kpropd.init    | 127 +++++++++++++++++++++++++++++++++++++++++++++
 debian/krb5-kpropd.service |  14 +++++
 debian/rules               |   5 +-
 4 files changed, 147 insertions(+), 1 deletion(-)
 create mode 100755 debian/krb5-kpropd.init
 create mode 100644 debian/krb5-kpropd.service

diff --git a/debian/krb5-kdc.install b/debian/krb5-kdc.install
index 93aecc4..0660c9f 100644
--- a/debian/krb5-kdc.install
+++ b/debian/krb5-kdc.install
@@ -8,3 +8,5 @@ usr/sbin/krb5kdc
 usr/share/man/man8/krb5kdc.8
 usr/share/man/man5/kdc.conf.5
 usr/lib/*/krb5/plugins/kdb/db2.so
+lib/systemd/system/krb5-kpropd.service
+etc/init.d/krb5-kpropd
diff --git a/debian/krb5-kpropd.init b/debian/krb5-kpropd.init
new file mode 100755
index 0000000..4098a19
--- /dev/null
+++ b/debian/krb5-kpropd.init
@@ -0,0 +1,127 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:             krb5-kpropd
+# Required-Start:       $local_fs $remote_fs $network $syslog
+# Required-Stop:        $local_fs $remote_fs $network $syslog
+# X-Start-Before: $x-display-manager                                          
+# Default-Start:        2 3 4 5
+# Default-Stop:         0 1 6
+# Short-Description:    MIT Kerberos slave KDC update server
+# Description:          Starts, stops, or restarts the MIT Kerberos slave KDC
+#                       update server
+### END INIT INFO
+
+# Author: Sam Hartman <[email protected]>
+# Author: Russ Allbery <[email protected]>
+#
+# Based on the /etc/init.d/skeleton template as found in initscripts version
+# 2.86.ds1-15.
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+DESC="Kerberos slave KDC update server"
+NAME=kpropd
+DAEMON=/usr/sbin/$NAME
+DAEMON_ARGS=""
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/kpropd
+
+# Exit if the package is not installed.
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration if it is present.
+[ -r /etc/default/kpropd ] && . /etc/default/kpropd
+
+# Get the setting of VERBOSE and other rcS variables.
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+
+# Define LSB log functions (requires lsb-base >= 3.0-6).
+. /lib/lsb/init-functions
+
+
+# Return
+#   0 if daemon has been started
+#   1 if daemon was already running
+#   2 if daemon could not be started
+do_start_kpropd()
+{
+    start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON --name $NAME --test \
+        > /dev/null || return 1
+    start-stop-daemon --start --quiet --make-pidfile --background --pidfile $PIDFILE --startas $DAEMON --name $NAME \
+        -- -D $DAEMON_ARGS || return 2
+}
+
+
+# Return
+#   0 if daemon has been stopped
+#   1 if daemon was already stopped
+#   2 if daemon could not be stopped
+#   other if a failure occurred
+do_stop_kpropd()
+{
+    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+    RETVAL="$?"
+    [ "$RETVAL" = 2 ] && return 2
+    rm -f $PIDFILE
+    return "$RETVAL"
+}
+
+
+case "$1" in 
+  start)
+    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+    do_start_kpropd
+    case "$?" in
+      0|1)
+            [ "$VERBOSE" != no ] && log_end_msg 0
+        ;;
+      2)
+        [ "$VERBOSE" != no ] && log_end_msg 1
+        ;;
+    esac
+    ;;
+
+  stop)
+    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+    do_stop_kpropd
+    case "$?" in
+      0|1)
+        [ "$VERBOSE" != no ] && log_progress_msg "krb524d"
+        ;;
+      2)
+        [ "$VERBOSE" != no ] && log_end_msg 1
+        ;;
+    esac
+    ;;
+
+  restart|force-reload)
+    log_daemon_msg "Restarting $DESC" "$NAME"
+    do_stop_kpropd
+    case "$?" in
+      0|1)
+        do_start_kpropd
+        case "$?" in
+          0)
+	  log_end_msg 0
+	  ;;
+          1|2)
+            log_end_msg 1
+            ;;
+        esac
+        ;;
+      *)
+        log_end_msg 1
+        ;;
+    esac
+    ;;
+
+  status)
+    status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
+    ;;
+
+  *)
+    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
+    exit 3
+    ;;
+esac
+
+:
diff --git a/debian/krb5-kpropd.service b/debian/krb5-kpropd.service
new file mode 100644
index 0000000..88eea12
--- /dev/null
+++ b/debian/krb5-kpropd.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Kerberos 5 slave KDC update server
+
+[Service]
+ExecReload=/bin/kill -HUP $MAINPID
+EnvironmentFile=-/etc/default/krb5-kpropd
+ExecStart=/usr/sbin/kpropd -D $DAEMON_ARGS
+InaccessibleDirectories=/etc/ssh /etc/ssl/private  /root
+ReadOnlyDirectories=/
+ReadWriteDirectories=/var/tmp /tmp /var/lib/krb5kdc /var/run /run
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/rules b/debian/rules
index e02a5e8..456a60b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -116,6 +116,9 @@ install: build-arch
 	install -d $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/krb5 $(CURDIR)/debian/tmp/etc/insserv/overrides
 	install -m644 debian/krb5-kdc-ldap.insserv-override debian/tmp/etc/insserv/overrides/krb5-kdc
 	install -m644 $(CURDIR)/debian/README.mech.d $(CURDIR)/debian/libgssapi-krb5-2/etc/gss/mech.d/README
+	install -d -m755 $(CURDIR)/debian/tmp/lib/systemd/system $(CURDIR)/debian/tmp/etc/init.d
+	install -m755 $(CURDIR)/debian/krb5-kpropd.service $(CURDIR)/debian/tmp/lib/systemd/system/krb5-kpropd.service
+	install -m755 $(CURDIR)/debian/krb5-kpropd.init $(CURDIR)/debian/tmp/etc/init.d/krb5-kpropd
 	mv $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libkdb_ldap* \
 	    $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/krb5/
 	rm -f $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/krb5/libkdb_ldap*.so
@@ -187,7 +190,7 @@ binary-arch: build-arch install
 	dh_installdocs
 	dh_installdebconf
 	DH_OPTIONS= dh_installinit -pkrb5-kdc --error-handler=init_error -- defaults 18 18 
-		DH_OPTIONS= dh_installinit -pkrb5-admin-server -- defaults 18 18 
+	DH_OPTIONS= dh_installinit -pkrb5-admin-server -- defaults 18 18 
 	dh_systemd_enable
 	dh_lintian
 	set -e ; for pkg in $(LIB_PACKAGES) ; do \
-- 
2.1.4

Reply via email to