--- image-store-proxy-1.0.orig/debian/watch +++ image-store-proxy-1.0/debian/watch @@ -0,0 +1,4 @@ +# See uscan(1) for format +# Compulsory line, this is a version 3 file +version=3 +http://launchpad.net/image-store-proxy/+download .*/image-store-proxy-([0-9.]+)\.tar\.gz --- image-store-proxy-1.0.orig/debian/copyright +++ image-store-proxy-1.0/debian/copyright @@ -0,0 +1,40 @@ +This package was debianized by Mathias Gug on +Mon, 14 Sep 2009 11:35:57 -0400. + +It was downloaded from https://launchpad.net/image-store-proxy/+download + +Upstream Authors: + + Gustavo Niemeyer + Sidnei da Silva + +Copyright: + + Copyright 2009 Canonical Ltd. + +License: + + # This program is free software: you can redistribute it and/or modify it + # under the terms of the GNU General Public License version 3, as published + # by the Free Software Foundation. + # + # This program is distributed in the hope that it will be useful, but + # WITHOUT ANY WARRANTY; without even the implied warranties of + # MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . + # + +The Debian packaging is: + + Copyright 2009 Canonical Ltd. + +and is licensed under the GPL version 3, +see `/usr/share/common-licenses/GPL-3'. + +============================== +imagestore/lib/tests/mocker.py +Copyright: Copyright (c) 2007 Gustavo Niemeyer +License: Mocker is available under the same license as Python itself. --- image-store-proxy-1.0.orig/debian/python-image-store-proxy.image-store-proxy.init +++ image-store-proxy-1.0/debian/python-image-store-proxy.image-store-proxy.init @@ -0,0 +1,309 @@ +#!/bin/sh +# +# image-proxy-store init.d script. +# +# Copyright (c) 2007 Javier Fernandez-Sanguino +# Copyright 2009 Canonical Ltd. - Mathias Gug +# +# This is free software; you may 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, +# or (at your option) any later version. +# +# This 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 with +# the Debian operating system, in /usr/share/common-licenses/GPL; if +# not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA +# +### BEGIN INIT INFO +# Provides: image-store-proxy +# Required-Start: $network $local_fs +# Required-Stop: +# Should-Start: $named +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Image Store Proxy for the Canonical Image Store +# Description: The Image Store Proxy sits in the middle of three +# entities: the Eucalyptus Image Store UI, +# the Eucalyptus S3 and EC2 APIs, and the upstream +# Canonical Image Store API. It performs searches, +# queries and emits commands for image downloading +# from the Canonical Image Store and installation in +# the local Eucalyptus installation. +### END INIT INFO + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +DAEMON=/usr/bin/image-store-proxy # Introduce the server's location here +NAME=image-store-proxy # Introduce the short server's name here +DESC="Image Store Proxy" # Introduce a short description here +LOGDIR=/var/log/image-store-proxy # Log directory to use + +PIDFILE=/var/run/$NAME.pid + +test -x $DAEMON || exit 0 + +. /lib/lsb/init-functions + +# Default options, these can be overriden by the information +# at /etc/default/$NAME +DAEMON_OPTS="" # Additional options given to the server + +DIETIME=10 # Time to wait for the server to die, in seconds + # If this value is set too low you might not + # let some servers to die gracefully and + # 'restart' will not work + +STARTTIME=1 # Time to wait for the server to start, in seconds + # If this value is set each time the server is + # started (on start or restart) the script will + # stall to try to determine if it is running + # If it is not set and the server takes time + # to setup a pid file the log message might + # be a false positive (says it did not start + # when it actually did) + +LOGFILE=$LOGDIR/$NAME.log # Server logfile +DAEMONUSER=eucalyptus # Users to run the daemons as. If this value + # is set start-stop-daemon will chuid the server + +# Include defaults if available +if [ -f /etc/default/$NAME ] ; then + . /etc/default/$NAME +fi + +# Use this if you want the user to explicitly set 'RUN' in +# /etc/default/ +#if [ "x$RUN" != "xyes" ] ; then +# log_failure_msg "$NAME disabled, please adjust the configuration to your needs " +# log_failure_msg "and then set RUN to 'yes' in /etc/default/$NAME to enable it." +# exit 1 +#fi + +DAEMON_OPTS="--log-file ${LOGFILE} ${DAEMON_OPTS}" + +# Check that the user exists (if we set a user) +# Does the user exist? +if [ -n "$DAEMONUSER" ] ; then + if getent passwd | grep -q "^$DAEMONUSER:"; then + # Obtain the uid and gid + DAEMONUID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $3}'` + DAEMONGID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $4}'` + else + log_failure_msg "The user $DAEMONUSER, required to run $NAME does not exist." + exit 1 + fi +fi + + +set -e + +running_pid() { +# Check if a given process pid's cmdline matches a given name + pid=$1 + name=$2 + [ -z "$pid" ] && return 1 + [ ! -d /proc/$pid ] && return 1 + # image-store-proxy is a python script - the exectable is python + # while the daemon name (image-store-proxy) is the first argument + cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 2 | tail -n 1 |cut -d : -f 2` + # Is this the expected server + [ "$cmd" != "$name" ] && return 1 + return 0 +} + +running() { +# Check if the process is running looking at /proc +# (works for all users) + + # No pidfile, probably no daemon present + [ ! -f "$PIDFILE" ] && return 1 + pid=`cat $PIDFILE` + running_pid $pid $DAEMON || return 1 + return 0 +} + +start_server() { +# Start the process using the wrapper + # Need to use the background/make-pidfile options as image-store-proxy + # doesn't daemonize. + if [ -z "$DAEMONUSER" ] ; then + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --oknodo --background --make-pidfile \ + --startas $DAEMON -- $DAEMON_OPTS + errcode=$? + else +# if we are using a daemonuser then change the user id + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --oknodo --background --make-pidfile \ + --chuid $DAEMONUSER \ + --startas $DAEMON -- $DAEMON_OPTS + errcode=$? + fi + return $errcode +} + +stop_server() { +# Stop the process using the wrapper + if [ -z "$DAEMONUSER" ] ; then + killproc -p $PIDFILE $DAEMON + errcode=$? + else +# if we are using a daemonuser then look for process that match + start-stop-daemon --stop --quiet --pidfile $PIDFILE \ + --user $DAEMONUSER \ + --startas $DAEMON + errcode=$? + fi + # Explicilty delete the pidfile as neither start-stop-daemon nor + # image-store-proxy removes it. + rm -f ${PIDFILE} + return $errcode +} + +reload_server() { + [ ! -f "$PIDFILE" ] && return 1 + pid=pidofproc $PIDFILE # This is the daemon's pid + # Send a SIGHUP + /bin/kill -1 $pid + return $? +} + +force_stop() { +# Force the process to die killing it manually + [ ! -e "$PIDFILE" ] && return + if running ; then + /bin/kill -15 $pid + # Is it really dead? + sleep "$DIETIME"s + if running ; then + /bin/kill -9 $pid + sleep "$DIETIME"s + if running ; then + echo "Cannot kill $NAME (pid=$pid)!" + exit 1 + fi + fi + fi + rm -f $PIDFILE +} + + +case "$1" in + start) + log_daemon_msg "Starting $DESC " "$NAME" + # Check if it's running first + if running ; then + log_progress_msg "apparently already running" + log_end_msg 0 + exit 0 + fi + if start_server ; then + # NOTE: Some servers might die some time after they start, + # this code will detect this issue if STARTTIME is set + # to a reasonable value + [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time + if running ; then + # It's ok, the server started and is running + log_end_msg 0 + else + # It is not running after we did start + log_end_msg 1 + fi + else + # Either we could not start it + log_end_msg 1 + fi + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + if running ; then + # Only stop the server if we see it running + errcode=0 + stop_server || errcode=$? + log_end_msg $errcode + else + # If it's not running don't do anything + log_progress_msg "apparently not running" + log_end_msg 0 + exit 0 + fi + ;; + force-stop) + # First try to stop gracefully the program + $0 stop + if running; then + # If it's still running try to kill it more forcefully + log_daemon_msg "Stopping (force) $DESC" "$NAME" + errcode=0 + force_stop || errcode=$? + log_end_msg $errcode + fi + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + errcode=0 + stop_server || errcode=$? + # Wait some sensible amount, some server need this + [ -n "$DIETIME" ] && sleep $DIETIME + start_server || errcode=$? + [ -n "$STARTTIME" ] && sleep $STARTTIME + running || errcode=$? + log_end_msg $errcode + ;; + status) + + log_daemon_msg "Checking status of $DESC" "$NAME" + if running ; then + log_progress_msg "running" + log_end_msg 0 + else + log_progress_msg "apparently not running" + log_end_msg 1 + exit 1 + fi + ;; + # Use this if the daemon cannot reload + reload) + log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon" + log_warning_msg "cannot re-read the config file (use restart)." + ;; + # And this if it cann + #reload) + # + # If the daemon can reload its config files on the fly + # for example by sending it SIGHUP, do it here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this a do-nothing entry. + # + # log_daemon_msg "Reloading $DESC configuration files" "$NAME" + # if running ; then + # reload_server + # if ! running ; then + # Process died after we tried to reload + # log_progress_msg "died on reload" + # log_end_msg 1 + # exit 1 + # fi + # else + # log_progress_msg "server is not running" + # log_end_msg 1 + # exit 1 + # fi + #;; + + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 --- image-store-proxy-1.0.orig/debian/python-image-store-proxy.image-store-proxy.default +++ image-store-proxy-1.0/debian/python-image-store-proxy.image-store-proxy.default @@ -0,0 +1,10 @@ +# Defaults for image-store-proxy initscript +# sourced by /etc/init.d/image-store-proxy +# installed at /etc/default/image-store-proxy by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +# Additional options that are passed to the Daemon. +DAEMON_OPTS="" --- image-store-proxy-1.0.orig/debian/python-image-store-proxy.postrm +++ image-store-proxy-1.0/debian/python-image-store-proxy.postrm @@ -0,0 +1,42 @@ +#!/bin/sh +# postrm script for image-store-proxy +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + purge) + rm -rf /var/lib/image-store-proxy/* + rm -f /var/log/image-store-proxy/image-store-proxy.log* + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- image-store-proxy-1.0.orig/debian/control +++ image-store-proxy-1.0/debian/control @@ -0,0 +1,24 @@ +Source: image-store-proxy +Section: python +Priority: extra +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Mathias Gug +Build-Depends: cdbs, debhelper (>= 7), patchutils, + python-setuptools, python-central, python-dev, + python-twisted-web, python-gobject, python-pycurl +Standards-Version: 3.8.3 +Homepage: https://launchpad.net/image-store-proxy/ +XS-Python-Version: current + +Package: python-image-store-proxy +Architecture: all +XB-Python-Version: ${python:Versions} +Depends: ${shlibs:Depends}, ${misc:Depends}, + ${python:Depends}, python-twisted-web, python-gobject, python-pycurl, + eucalyptus-common, gnupg +Description: Image Store Proxy for the Canonical Image Store + The Image Store Proxy sits in the middle of three entities: the + Eucalyptus Image Store UI, the Eucalyptus S3 and EC2 APIs, and + the upstream Canonical Image Store API. It performs searches, queries and + emits commands for image downloading from the Canonical Image Store and + installation in the local Eucalyptus installation. --- image-store-proxy-1.0.orig/debian/python-image-store-proxy.postinst +++ image-store-proxy-1.0/debian/python-image-store-proxy.postinst @@ -0,0 +1,52 @@ +#!/bin/sh +# postinst script for image-store-proxy +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + # Change the ownership of relevant directories since image-store-proxy + # needs to run under the eucalyptus account + if [ -z "$2" ]; then + chown eucalyptus:eucalyptus /var/log/image-store-proxy/ + chown eucalyptus:eucalyptus /var/lib/image-store-proxy/ + fi + # Import image-store-proxy gpg key + if dpkg --compare-versions "$2" lt "1.0-0ubuntu1"; then + gpg --batch --no-default-keyring --no-tty \ + --homedir /var/lib/image-store-proxy/ \ + --keyring /var/lib/image-store-proxy/keyring.gpg \ + --import /usr/share/image-store-proxy/image-store-key.asc + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- image-store-proxy-1.0.orig/debian/changelog +++ image-store-proxy-1.0/debian/changelog @@ -0,0 +1,26 @@ +image-store-proxy (1.0-0ubuntu1) karmic; urgency=low + + * New upsream release (LP: #434185) + + Enable image signature checking. Add gnupg dependency. Import image + store GPG armored key in its keyring at install time. + + Renable all tests. + * Set STARTTIME to 1 second to avoid false start failure report from the + init script (LP: #433863). + + -- Mathias Gug Wed, 23 Sep 2009 20:17:44 -0400 + +image-store-proxy (0.9.1-0ubuntu2) karmic; urgency=low + + * Enable tests during build process (LP: #431063). + + disable testFormatting test as it fails due to a timezone issue. + * Build for current instead of all python versions. + * Enable cdbs simple patch system. + * Add python-gobject as a dependency. + + -- Mathias Gug Fri, 18 Sep 2009 17:13:58 -0400 + +image-store-proxy (0.9.1-0ubuntu1) karmic; urgency=low + + * Initial release (LP: #423865) + + -- Mathias Gug Mon, 14 Sep 2009 17:14:22 -0400 --- image-store-proxy-1.0.orig/debian/compat +++ image-store-proxy-1.0/debian/compat @@ -0,0 +1 @@ +7 --- image-store-proxy-1.0.orig/debian/pycompat +++ image-store-proxy-1.0/debian/pycompat @@ -0,0 +1 @@ +2 --- image-store-proxy-1.0.orig/debian/docs +++ image-store-proxy-1.0/debian/docs @@ -0,0 +1,2 @@ +README +TODO --- image-store-proxy-1.0.orig/debian/python-image-store-proxy.dirs +++ image-store-proxy-1.0/debian/python-image-store-proxy.dirs @@ -0,0 +1,3 @@ +/var/lib/image-store-proxy +/var/log/image-store-proxy +/usr/share/image-store-proxy --- image-store-proxy-1.0.orig/debian/rules +++ image-store-proxy-1.0/debian/rules @@ -0,0 +1,21 @@ +#!/usr/bin/make -f + +DEB_PYTHON_SYSTEM := pycentral +export DH_PYCENTRAL=include-links + +DEB_DH_INSTALLINIT_ARGS := --name image-store-proxy +DEB_DH_INSTALLLOGROTATE_ARGS := --name image-store-proxy + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/python-distutils.mk +include /usr/share/cdbs/1/rules/simple-patchsys.mk + +# Run the tests after the module has been built +build/python-image-store-proxy:: + for l in $(CURDIR)/$(DEB_BUILDDIR)/build/lib.*; do \ + cd $$l \ + && PYTHONPATH="." trial -r glib2 imagestore \ + && rm -rf _trial_temp/; done + +install/python-image-store-proxy:: + install $(CURDIR)/image-store-key.asc $(CURDIR)/debian/python-image-store-proxy/usr/share/image-store-proxy/ --- image-store-proxy-1.0.orig/debian/python-image-store-proxy.image-store-proxy.logrotate +++ image-store-proxy-1.0/debian/python-image-store-proxy.image-store-proxy.logrotate @@ -0,0 +1,9 @@ +/var/log/image-store-proxy/*.log { + rotate 12 + weekly + compress + create + postrotate + /etc/init.d/image-store-proxy force-reload + endscript +}