]> git.proxmox.com Git - pve-sheepdog.git/commitdiff
updates for debian jessie, use systemd
authorDietmar Maurer <dietmar@proxmox.com>
Mon, 15 Jun 2015 07:29:01 +0000 (09:29 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 15 Jun 2015 07:31:54 +0000 (09:31 +0200)
debian/control
debian/patches/add-service-start-condition.patch [new file with mode: 0644]
debian/patches/cleanup-systemd-service.patch [new file with mode: 0644]
debian/patches/series
debian/patches/series~ [deleted file]
debian/patches/set-no-file-limit.patch [new file with mode: 0644]
debian/pve-sheepdog.sheepdog.default
debian/pve-sheepdog.sheepdog.init.d [deleted file]
debian/rules
debian/sheepdog-start-wrapper [new file with mode: 0644]

index 595bdaabcc75b2d05708e717fcc508d0a8a7a8be..bc03613feda854485fcb8e38e1c2d96a9a26ba8b 100644 (file)
@@ -13,13 +13,14 @@ Build-Depends: debhelper (>= 7.0.50~),
  libssl-dev,
  libfuse-dev,
  libzookeeper-mt-dev,
- yasm
+ yasm,
+ dh-systemd (>= 1.4)
 Standards-Version: 3.8.4
 Homepage: http://www.osrg.net/sheepdog/
 
 Package: pve-sheepdog
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends} corosync-pve, libzookeeper-mt2
+Depends: ${shlibs:Depends}, ${misc:Depends}, corosync-pve, libzookeeper-mt2, systemd
 Description: Distributed storage system for KVM/QEMU
  Sheepdog provides highly available block level storage volumes that can be
  attached to KVM/QEMU virtual machines. Sheepdog scales to several hundreds
diff --git a/debian/patches/add-service-start-condition.patch b/debian/patches/add-service-start-condition.patch
new file mode 100644 (file)
index 0000000..10859b0
--- /dev/null
@@ -0,0 +1,12 @@
+Index: new/script/sheepdog.service.in
+===================================================================
+--- new.orig/script/sheepdog.service.in
++++ new/script/sheepdog.service.in
+@@ -2,6 +2,7 @@
+ Description=Sheepdog QEMU/KVM Block Storage
+ After=network.target
+ Wants=syslog.target
++ConditionFileIsExecutable=/usr/sbin/sheep
+ [Service]
+ EnvironmentFile=-@SYSCONFDIR@/default/sheepdog
diff --git a/debian/patches/cleanup-systemd-service.patch b/debian/patches/cleanup-systemd-service.patch
new file mode 100644 (file)
index 0000000..df5524e
--- /dev/null
@@ -0,0 +1,16 @@
+Index: new/script/sheepdog.service.in
+===================================================================
+--- new.orig/script/sheepdog.service.in
++++ new/script/sheepdog.service.in
+@@ -4,10 +4,8 @@ After=network.target
+ Wants=syslog.target
+ [Service]
+-EnvironmentFile=-@SYSCONFDIR@/conf.d/sheepdog.conf
+-EnvironmentFile=-@SYSCONFDIR@/sysconfig/sheepdog
+ EnvironmentFile=-@SYSCONFDIR@/default/sheepdog
+-ExecStart=/bin/sh -c '@SBINDIR@/sheep --pidfile @LOCALSTATEDIR@/run/sheep.pid $(if [ -z "$SHEEP_OPTS" ]; then echo "--cluster local --log dst=syslog --upgrade @LOCALSTATEDIR@/lib/sheepdog"; else echo $SHEEP_OPTS; fi)'
++ExecStart=/usr/lib/sheepdog/sheepdog-start-wrapper
+ PIDFile=@LOCALSTATEDIR@/run/sheep.pid
+ Type=forking
+ Restart=on-abort
index 938dd0703ef5ee44b95cdae8e68913517a27d0a8..4d213d4ad7576ca9dd062e8843780379db31502e 100644 (file)
@@ -1,2 +1,5 @@
 #do-not-install-generic-init-script.patch
 simplify-log-rotation.patch
+set-no-file-limit.patch
+cleanup-systemd-service.patch
+add-service-start-condition.patch
diff --git a/debian/patches/series~ b/debian/patches/series~
deleted file mode 100644 (file)
index 232ee86..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-disable-test-suite.patch
-do-not-install-generic-init.d-script.patch
-fix-manual-path.patch
diff --git a/debian/patches/set-no-file-limit.patch b/debian/patches/set-no-file-limit.patch
new file mode 100644 (file)
index 0000000..3424951
--- /dev/null
@@ -0,0 +1,12 @@
+Index: new/script/sheepdog.service.in
+===================================================================
+--- new.orig/script/sheepdog.service.in
++++ new/script/sheepdog.service.in
+@@ -13,6 +13,7 @@ Type=forking
+ Restart=on-abort
+ StartLimitInterval=10s
+ StartLimitBurst=3
++LimitNOFILE=infinity
+ [Install]
+ WantedBy=multi-user.target
index f05e4f4a82005220723ce973158a0adb31cc3614..937059fd8dbeb09a21d25f9399caf2a8bf3d5f06 100644 (file)
@@ -1,8 +1,5 @@
-# Defaults for pve-sheepdog initscript
-# sourced by /etc/init.d/pve-sheepdog
+# Defaults for sheepdog service
 
-# start sheepdog at boot [yes|no]
-START=yes
 # sheepdog root directory
 #ROOTDIR=/var/lib/sheepdog/
 #JOURNALSIZE=256M
diff --git a/debian/pve-sheepdog.sheepdog.init.d b/debian/pve-sheepdog.sheepdog.init.d
deleted file mode 100644 (file)
index 349c481..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          sheepdog
-# Required-Start:    $network $remote_fs $syslog cman
-# Required-Stop:     $network $remote_fs $syslog cman
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Sheepdog server
-# Description:       Sheepdog server
-### END INIT INFO
-
-# Author: Proxmox Support Team <support@proxmox.com>
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="Sheepdog Server"        # Introduce a short description here
-NAME=sheepdog                 # Introduce the short server's name here
-DAEMON=/usr/sbin/sheep        # Introduce the server's location here
-SCRIPTNAME=/etc/init.d/$NAME
-PIDFILE="/var/run/sheep.pid"
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-ROOTDIR="/var/lib/sheepdog/"
-JOURNALSIZE="256M"
-DAEMON_ARGS=""
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-if [ "$START" != "yes" ]; then
-        exit 0
-fi
-
-. /lib/lsb/init-functions
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
-        mkdir -p /var/run
-
-       # Return
-       #   0 if daemon has been started
-       #   1 if daemon was already running
-       #   2 if daemon could not be started
-       ulimit -n 1024000 #avoid check_host_env(395) WARN: Allowed open files 1024 too small, suggested 1024000 warning message
-       ulimit -c unlimited #avoid check_host_env(404) Allowed core file size 0, suggested unlimited warning message
-       DAEMON_ARGS="${DAEMON_ARGS} --pidfile ${PIDFILE}"
-       DAEMON_ARGS="${DAEMON_ARGS} $ROOTDIR"
-
-       # /path/to/meta-store,/path/to/disk1{,/path/to/disk2,...}
-       for d in $ROOTDIR/disc*
-       do
-           if [ -d "$d" ]; then
-               DAEMON_ARGS="${DAEMON_ARGS},$d"
-           fi
-       done
-
-       if [ -d "$ROOTDIR/journal" ]; then
-               DAEMON_ARGS="${DAEMON_ARGS} -j dir=$ROOTDIR/journal,size=$JOURNALSIZE"
-
-       fi
-        status_of_proc -p ${PIDFILE} $DAEMON "$NAME" >/dev/null && continue
-        start-stop-daemon --start --quiet --pidfile ${PIDFILE} --exec $DAEMON -- $DAEMON_ARGS || return 2
-
-       return 0
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
-       # 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
-
-       start-stop-daemon --stop --oknodo --retry=TERM/20/KILL/5 --quiet --pidfile ${PIDFILE} --exec $DAEMON || return 2
-}
-
-case "$1" in
-    start)
-       log_daemon_msg "Starting $DESC " "$NAME"
-       do_start
-       case "$?" in
-           0|1) log_end_msg 0 ;;
-           2) log_end_msg 1 ;;
-       esac
-       ;;
-    stop)
-       log_daemon_msg "Stopping $DESC" "$NAME"
-       do_stop
-       case "$?" in
-           0|1) log_end_msg 0 ;;
-           2) log_end_msg 1 ;;
-       esac
-       
-       ;;
-    status)
-           status_of_proc -p ${PIDFILE} $DAEMON "$NAME ${dir}" || exit 1
-       ;;
-    restart|force-reload)
-       log_daemon_msg "Restarting $DESC" "$NAME"
-       do_stop
-       case "$?" in
-           0|1)
-               do_start
-               case "$?" in
-                   0) log_end_msg 0 ;;
-                   1) log_end_msg 1 ;; # Old process is still running
-                   *) log_end_msg 1 ;; # Failed to start
-               esac
-               ;;
-           *)
-               # Failed to stop
-               log_end_msg 1
-               ;;
-       esac
-       ;;
-    *)
-       echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-       exit 3
-       ;;
-esac
-
-:
-
index e569e29b2b141f529deb71482c45c54b7e8c9493..ebadc9c9cdea679c6afe7ee9e5c8ac004365b1db 100755 (executable)
@@ -5,12 +5,19 @@
 export DEB_BUILD_HARDENING=1
 
 %:
-       dh --with quilt $@ 
+       dh --with quilt,systemd $@ 
+
+override_dh_auto_install:
+       dh_auto_install
+       rm debian/pve-sheepdog/etc/init.d/sheepdog
+       rmdir debian/pve-sheepdog/etc/init.d
+       install -D -m 0755 debian/sheepdog-start-wrapper debian/pve-sheepdog/usr/lib/sheepdog/sheepdog-start-wrapper
 
 override_dh_installinit:
+       # just install install pve-sheepdog.sheepdog.default
        dh_installinit --name sheepdog
 
 override_dh_auto_configure:
        ./autogen.sh
-       dh_auto_configure -- --enable-zookeeper
+       dh_auto_configure -- --enable-zookeeper --enable-systemd
 
diff --git a/debian/sheepdog-start-wrapper b/debian/sheepdog-start-wrapper
new file mode 100644 (file)
index 0000000..8b0221e
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+DAEMON=/usr/sbin/sheep
+PIDFILE="/var/run/sheep.pid"
+
+[ -z "$ROOTDIR" ] && ROOTDIR="/var/lib/sheepdog/"
+[ -z "$JOURNALSIZE" ] && JOURNALSIZE="256M"
+[ -z "$DAEMON_ARGS" ] && DAEMON_ARGS=""
+
+DAEMON_ARGS="${DAEMON_ARGS} --pidfile ${PIDFILE}"
+DAEMON_ARGS="${DAEMON_ARGS} $ROOTDIR"
+
+# /path/to/meta-store,/path/to/disk1{,/path/to/disk2,...}
+for d in $ROOTDIR/disc*
+do
+    if [ -d "$d" ]; then
+        DAEMON_ARGS="${DAEMON_ARGS},$d"
+    fi
+done
+
+if [ -d "$ROOTDIR/journal" ]; then
+    DAEMON_ARGS="${DAEMON_ARGS} -j dir=$ROOTDIR/journal,size=$JOURNALSIZE"
+fi
+
+$DAEMON $DAEMON_ARGS