[sheepdog] [PATCH v2 1/6] import debian directory maintained by debian package team
MORITA Kazutaka
morita.kazutaka at gmail.com
Sat Jul 13 16:22:57 CEST 2013
From: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
This copies the debian patches to build a deb package from
http://patch-tracker.debian.org/package/sheepdog
The changelog files are not imported since they are auto-generated by
the next patch, and the translation files are not imported since it's
difficult for our community to maintain them.
Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
debian/.gitignore | 9 +++
debian/compat | 1 +
debian/control | 29 ++++++++
debian/copyright | 35 +++++++++
debian/debian-sheepdog-default | 20 ++++++
debian/docs | 1 +
debian/gbp.conf | 8 +++
debian/rules | 63 ++++++++++++++++
debian/sheepdog.bash-completion | 1 +
debian/sheepdog.config | 19 +++++
debian/sheepdog.init | 151 +++++++++++++++++++++++++++++++++++++++
debian/sheepdog.install | 1 +
debian/sheepdog.postinst | 28 ++++++++
debian/sheepdog.postrm | 11 +++
debian/sheepdog.templates | 32 +++++++++
debian/source/format | 1 +
debian/watch | 2 +
17 files changed, 412 insertions(+)
create mode 100644 debian/.gitignore
create mode 100644 debian/compat
create mode 100644 debian/control
create mode 100644 debian/copyright
create mode 100644 debian/debian-sheepdog-default
create mode 100644 debian/docs
create mode 100644 debian/gbp.conf
create mode 100755 debian/rules
create mode 100644 debian/sheepdog.bash-completion
create mode 100644 debian/sheepdog.config
create mode 100644 debian/sheepdog.init
create mode 100644 debian/sheepdog.install
create mode 100644 debian/sheepdog.postinst
create mode 100644 debian/sheepdog.postrm
create mode 100644 debian/sheepdog.templates
create mode 100644 debian/source/format
create mode 100644 debian/watch
diff --git a/debian/.gitignore b/debian/.gitignore
new file mode 100644
index 0000000..9d54077
--- /dev/null
+++ b/debian/.gitignore
@@ -0,0 +1,9 @@
+*.substvars
+*.debhelper
+*.debhelper.log
+autoreconf.after
+autoreconf.before
+files
+sheepdog
+CHANGELOG
+changelog
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..4aedd3e
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,29 @@
+Source: sheepdog
+Section: admin
+Priority: optional
+Maintainer: PKG OpenStack <openstack-devel at lists.alioth.debian.org>
+Uploaders: YunQiang Su <wzssyqa at gmail.com>
+Build-Depends: debhelper (>= 9),
+ dh-autoreconf,
+ bash-completion,
+ pkg-config,
+ libcorosync-dev,
+ liburcu-dev,
+ libzookeeper-mt-dev [linux-any],
+ libfuse-dev,
+ po-debconf
+Standards-Version: 3.9.4
+Homepage: http://www.osrg.net/sheepdog/
+Vcs-Browser: http://git.debian.org/?p=openstack/sheepdog.git
+Vcs-Git: git://git.debian.org/openstack/sheepdog.git
+
+Package: sheepdog
+Architecture: any
+Pre-Depends: dpkg (>= 1.15.6~)
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: corosync
+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 hundred
+ nodes, and supports advanced volume management features such as snapshots,
+ cloning, and thin provisioning.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..a9af173
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,35 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Contact: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>, FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>, MORIAI Satoshi <moriai.satoshi at lab.ntt.co.jp>
+Upstream-Name: sheepdog
+Source: git://sheepdog.git.sf.net/gitroot/sheepdog/sheepdog
+
+Files: debian/*
+Copyright: 2010, Guido Günther <agx at sigxcpu.org>
+ 2012, YunQiang Su <wzssyqa at gmail.com>
+ 2012, Thomas Goirand <zigo at debian.org>
+License: GPL-2
+
+Files: *
+Copyright: 2009-2011 Nippon Telegraph and Telephone Corporation
+ With upstream authors as folow:
+ 2009-2011, MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
+ 2009-2011, FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
+ 2009-2011, MORIAI Satoshi <moriai.satoshi at lab.ntt.co.jp>
+License: GPL-2
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any later
+ version.
+ .
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
+ St, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the complete text of the GNU General Public License v2
+ (GPL) can be found in /usr/share/common-licenses/GPL-2.
diff --git a/debian/debian-sheepdog-default b/debian/debian-sheepdog-default
new file mode 100644
index 0000000..f31ae1a
--- /dev/null
+++ b/debian/debian-sheepdog-default
@@ -0,0 +1,20 @@
+# start sheepdog at boot [yes|no]
+START="yes"
+
+# Arguments to run the daemon with
+# Options:
+# -p, --port specify the TCP port on which to listen
+# -l, --loglevel specify the level of logging detail
+# -d, --debug include debug messages in the log
+# -D, --directio use direct IO when accessing the object store
+# -z, --zone specify the zone id
+# -c, --cluster specify the cluster driver
+DAEMON_ARGS=""
+
+# SHEEPDOG_PATH
+# Proper LSB systems will store sheepdog files in /var/lib/sheepdog. The init script uses this directory by default.
+# The directory must be on a filesystem with xattr support. In the case of ext3, user_xattr should be added to the
+# mount options.
+#
+# mount -o remount,user_xattr /var/lib/shepdog
+SHEEPDOG_PATH="/var/lib/sheepdog"
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..e845566
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1 @@
+README
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..a80d315
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,8 @@
+[DEFAULT]
+upstream-branch = master
+debian-branch = debian/unstable
+upstream-tag = v%(version)s
+compression = xz
+
+[git-buildpackage]
+export-dir = ../build-area/
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..d6731c7
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,63 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+DEBVERS ?= $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
+VERSION ?= $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[-].*//')
+DEBFLAVOR ?= $(shell dpkg-parsechangelog | grep -E ^Distribution: | cut -d" " -f2)
+DEBPKGNAME ?= $(shell dpkg-parsechangelog | grep -E ^Source: | cut -d" " -f2)
+UPSTREAM_GIT ?= git://github.com/collie/sheepdog.git
+GIT_TAG ?= $(shell echo v'$(VERSION)' | sed -e 's/~/_/')
+
+%:
+ dh $@ --with autoreconf
+
+override_dh_builddeb:
+ dh_builddeb -- -Zxz -z9
+
+UNAME := $(shell uname)
+ifeq ($(UNAME),Linux)
+ ZOOKEEPER=--enable-zookeeper
+endif
+
+override_dh_auto_configure:
+ dh_auto_configure -- ${ZOOKEEPER}
+
+override_dh_install:
+ dh_install
+ rm -rf debian/sheepdog/etc/init.d/
+ dh_bash-completion
+
+get-vcs-source:
+ git remote add upstream $(UPSTREAM_GIT) || true
+ git fetch upstream
+ if [ ! -f ../$(DEBPKGNAME)_$(VERSION).orig.tar.xz ] ; then \
+ git archive --prefix=$(DEBPKGNAME)-$(GIT_TAG)/ $(GIT_TAG) | xz >../$(DEBPKGNAME)_$(VERSION).orig.tar.xz ; \
+ fi
+ if [ ! -e ../build-area ] ; then mkdir ../build-area ; fi
+ if [ ! -e ../build-area ] ; then cp ../$(DEBPKGNAME)_$(VERSION).orig.tar.xz ../build-area ; fi
+ if ! git checkout master ; then \
+ echo "No upstream branch: checking out" ; \
+ git checkout -b master upstream/master ; \
+ fi
+ git checkout debian/$(DEBFLAVOR)
+
+display-po-stats:
+ cd $(CURDIR)/debian/po; for i in *.po ;do \
+ echo -n $$i": ";\
+ msgfmt -o /dev/null --statistic $$i ; \
+ done
+
+call-for-po-trans:
+ podebconf-report-po --call --withtranslators --languageteam
+
+gen-upstream-changelog:
+ git checkout master
+ git reset --hard $(GIT_TAG)
+ git log >$(CURDIR)/../CHANGELOG
+ git checkout debian/$(DEBFLAVOR)
+ mv $(CURDIR)/../CHANGELOG $(CURDIR)/debian/CHANGELOG
+ git add $(CURDIR)/debian/CHANGELOG
+ git commit -a -m "Updated upstream changelog"
+
+override_dh_installchangelogs:
+ dh_installchangelogs $(CURDIR)/debian/CHANGELOG
diff --git a/debian/sheepdog.bash-completion b/debian/sheepdog.bash-completion
new file mode 100644
index 0000000..3406bc5
--- /dev/null
+++ b/debian/sheepdog.bash-completion
@@ -0,0 +1 @@
+script/bash_completion_collie collie
diff --git a/debian/sheepdog.config b/debian/sheepdog.config
new file mode 100644
index 0000000..18e79a1
--- /dev/null
+++ b/debian/sheepdog.config
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+if [ -r /etc/default/sheepdog ] ; then
+ . /etc/default/sheepdog
+ if [ x"yes" = x"$START" ] ; then
+ db_set sheepdog/start true
+ else
+ db_set sheepdog/start false
+ fi
+ db_set sheepdog/daemon_args "$DAEMON_ARGS"
+fi
+db_input low sheepdog/start || true
+db_input medium sheepdog/daemon_args || true
+db_go || true
+
+exit 0
diff --git a/debian/sheepdog.init b/debian/sheepdog.init
new file mode 100644
index 0000000..72ac8e2
--- /dev/null
+++ b/debian/sheepdog.init
@@ -0,0 +1,151 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: sheepdog
+# Required-Start: hostname $network $remote_fs $syslog
+# Required-Stop: $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Sheepdog is a distributed storage system for KVM/QEMU.
+# Description: Sheepdog is a distributed storage system for KVM/QEMU. It provides
+# highly available block level storage volumes to virtual machines.
+# Sheepdog supports advanced volume management features such as snapshot,
+# cloning, and thin provisioning. The architecture of Sheepdog is fully
+# symmetric; there is no central node such as a meta-data server.
+### END INIT INFO
+
+# Author: YunQiang Su <wzssyqa at gmail.com>
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC=sheepdog # Introduce a short description here
+NAME=sheepdog # Introduce the short server's name here
+DAEMON=/usr/sbin/sheep # Introduce the server's location here
+DAEMON_ARGS="" # Arguments to run the daemon with
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x $DAEMON ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+#FIXME: user cannot give pidfile in /etc/default/sheepdog
+DAEMON_ARGS="$DAEMON_ARGS --pidfile $PIDFILE"
+
+if [ "$START" != "yes" ]; then
+ exit 0
+fi
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+ || return 1
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+ $DAEMON_ARGS $SHEEPDOG_PATH \
+ || return 2
+ # Add code here, if necessary, that waits for the process to be ready
+ # to handle requests from services started subsequently which depend
+ # on this one. As a last resort, sleep for some time.
+}
+
+#
+# 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 --quiet --pidfile $PIDFILE
+ RETVAL="$?"
+ return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+ #
+ # If the daemon can reload its configuration without
+ # restarting (for example, when it is sent a SIGHUP),
+ # then implement that here.
+ #
+ start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+ return 0
+}
+
+case "$1" in
+ start)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
+ do_start
+ 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
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ status)
+ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+ ;;
+ #reload|force-reload)
+ #
+ # If do_reload() is not implemented then leave this commented out
+ # and leave 'force-reload' as an alias for 'restart'.
+ #
+ #log_daemon_msg "Reloading $DESC" "$NAME"
+ #do_reload
+ #log_end_msg $?
+ #;;
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented then remove the
+ # 'force-reload' alias
+ #
+ 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|restart|reload|force-reload}" >&2
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+exit 0
diff --git a/debian/sheepdog.install b/debian/sheepdog.install
new file mode 100644
index 0000000..4a4697b
--- /dev/null
+++ b/debian/sheepdog.install
@@ -0,0 +1 @@
+debian/debian-sheepdog-default /usr/share/sheepdog
diff --git a/debian/sheepdog.postinst b/debian/sheepdog.postinst
new file mode 100644
index 0000000..f4c48a1
--- /dev/null
+++ b/debian/sheepdog.postinst
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = "configure" ] ; then
+ . /usr/share/debconf/confmodule
+ mkdir -p /var/lib/sheepdog/
+ mkdir -p /etc/default
+ if [ ! -e /etc/default/sheepdog ] ; then
+ cp /usr/share/sheepdog/debian-sheepdog-default /etc/default/sheepdog
+ fi
+ if [ -r /etc/default/sheepdog ] ; then
+ db_get sheepdog/start
+ if [ "${RET}" = "true" ] ; then
+ SERVICE_START="yes"
+ else
+ SERVICE_START="no"
+ fi
+ sed -i -e "s/^[ \t]*START=.*/START=\"$SERVICE_START\"/g" /etc/default/sheepdog
+
+ db_get sheepdog/daemon_args
+ sed -i -e "s/^[ \t]*DAEMON_ARGS=.*/DAEMON_ARGS=\"$RET\"/g" /etc/default/sheepdog
+ fi
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/sheepdog.postrm b/debian/sheepdog.postrm
new file mode 100644
index 0000000..1611169
--- /dev/null
+++ b/debian/sheepdog.postrm
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+if [ "${1}" = "purge" ] ; then
+ rm -f /etc/default/sheepdog
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/sheepdog.templates b/debian/sheepdog.templates
new file mode 100644
index 0000000..ae62db5
--- /dev/null
+++ b/debian/sheepdog.templates
@@ -0,0 +1,32 @@
+# These templates have been reviewed by the debian-l10n-english
+# team
+#
+# If modifications/additions/rewording are needed, please ask
+# debian-l10n-english at lists.debian.org for advice.
+#
+# Even minor modifications require translation updates and such
+# changes should be coordinated with translators and reviewers.
+
+Template: sheepdog/start
+Type: boolean
+Default: true
+_Description: Automatically start the sheepdog service?
+ Please choose whether the sheepdog service should start automatically
+ when the system is booted.
+
+Template: sheepdog/daemon_args
+Type: string
+Default:
+_Description: Arguments for the sheepdog daemon:
+ Please choose the command line arguments that should be passed to the
+ sheepdog daemon. If no argument is given, the default behavior is to
+ start on port 7000, using the corosync driver.
+ .
+ Available options include:
+ -p, --port specify the TCP port to listen to
+ -l, --loglevel specify the level of logging detail
+ -d, --debug include debug messages in the log
+ -D, --directio use direct I/O when accessing the object store
+ -z, --zone specify the zone ID
+ -c, --cluster specify the cluster driver
+ More information can be found in the sheep(8) manual page.
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..16e52f0
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=3
+https://github.com/collie/sheepdog/tags .*/v(.*).tar.gz
--
1.7.9.5
More information about the sheepdog
mailing list