--- /dev/null
+#!/bin/sh -x
+
+set -e
+
+usage() {
+ echo "usage: $0 releasedir vers [debsubver] [dists...]"
+}
+
+releasedir=$1
+cephver=$2
+subver=$3
+shift
+shift
+shift
+dists="$*"
+
+[ -z "$releasedir" ] && echo specify releasedir && usage && exit 1
+[ -z "$cephver" ] && echo specify version && usage && exit 1
+[ -z "$subver" ] && subver=1
+[ -z "$dists" ] && dists="centos6"
+
+bindir=`dirname $0`
+echo "$bindir" | grep -v -q '^/' && bindir=`pwd`"/$bindir"
+
+rpmver="$cephver-$subver"
+
+echo rpmver $rpmver
+
+cd $releasedir/$cephver || exit 1
+
+# take note XXX debian version keeping here just in case
+echo $dists > rpm_dists
+echo $rpmver > rpm_version
+
+# Set up build area
+BUILDAREA=./rpmbuild
+mkdir -p ${BUILDAREA}/{SOURCES,SRPMS,SPECS,RPMS,BUILD}
+cp -a ceph-*.tar.bz2 ${BUILDAREA}/SOURCES/.
+
+# Build RPMs
+BUILDAREA=`readlink -fn ${BUILDAREA}` ### rpm wants absolute path
+rpmbuild -bb --define "_topdir ${BUILDAREA}" --define "_unpackaged_files_terminate_build 0" ceph.spec
+
+rm -r ceph-$cephver
+echo done
--- /dev/null
+#!/bin/sh -x
+
+set -e
+trap cleanup INT EXIT
+
+default_dists="centos6" # just 1 so far
+subversion="1" # not used so far
+gpgkey='3CF7ABC8' # ceph rpm test key
+#rhosts="localhost 192.168.106.235"
+rhosts="localhost"
+versionfile=""
+
+cleanup() {
+ [ -n "$pids" ] && kill $pids
+ rm $versionfile
+ [ -n "$vers" ] && rm -rf $releasedir/$vers
+}
+
+usage() {
+ echo "usage: $0 releasedir [dists]"
+}
+
+bindir=`dirname $0`
+releasedir=$1
+shift || true
+dists="$*"
+
+[ -z "$releasedir" ] && usage && exit 1
+[ -z "$dists" ] && dists=$default_dists
+
+versionfile=`mktemp`
+rm $releasedir/* || true
+
+$bindir/release_rpm_tarball.sh $releasedir $versionfile
+vers=`cat $versionfile`
+echo "vers = $vers"
+
+cp ceph.spec $releasedir/$vers/.
+$bindir/build_rpms.sh $releasedir $vers $subversion $dists
+
+$bindir/sign_rpms.sh $releasedir $vers $gpgkey
+
+$bindir/gen_yum_repo.sh $releasedir/$vers $gpgkey $dists
+
+# stage the results
+rpmdir=$releasedir/$vers/rpmbuild
+for dir in $dists
+do
+ distdir=$releasedir/$vers/$dir
+ mkdir -p $distdir
+ cp -a $rpmdir/RPMS/* $distdir/.
+done
+rm -rf $rpmdir
+
+# Notes: The debian version at this points run the build on several remote
+# hosts (pbuilders ?) and syncs the results back.
+# rsync -auv root@$rem:/tmp/release/$vers/\*.\{changes\,deb\} $releasedir/$vers
+# This version builds locally. We will sort out what machine we actually
+# build on later.
+
+rm $versionfile
+
+trap true INT EXIT
+
+exit 0
--- /dev/null
+#!/bin/sh
+
+#
+# Generate the files neccessary for a yum repo conf rpm.
+# Needs to be run after all the RPMs are built.
+
+usage() {
+ echo "usage: $0 releasedir keyid [repo-host]"
+}
+
+release_dir="$1"
+keyid="$2"
+repo_host="$3"
+
+[ -z "$release_dir" ] && echo specify release directory && exit 1
+#[ -z "$keyid" ] && echo specify keyid && exit 1
+
+# For testing
+[ -z "$keyid" ] && keyid=3CF7ABC8
+[ -z "$repo_host" ] && repo_host="gitbuilder-centos6-amd64"
+
+#
+RPMBUILD=$release_dir/rpmbuild
+
+# Spec File
+cat <<EOF > $RPMBUILD/SPECS/ceph-release.spec
+Name: ceph-release
+Version: 1
+Release: 0
+Summary: Ceph repository configuration
+Group: System Environment/Base
+License: GPLv2
+URL: http://download.ceph.com/pub/ceph
+Source0: RPM-GPG-KEY-CEPH
+Source1: ceph.repo
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildArch: noarch
+
+%description
+This package contains the Ceph repository GPG key as well as configuration
+for yum and up2date.
+
+%prep
+
+%setup -q -c -T
+install -pm 644 %{SOURCE0} .
+install -pm 644 %{SOURCE1} .
+
+%build
+
+%install
+rm -rf %{buildroot}
+install -Dpm 644 %{SOURCE0} \
+ %{buildroot}/%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-CEPH
+install -dm 755 %{buildroot}/%{_sysconfdir}/yum.repos.d
+install -pm 644 %{SOURCE1} \
+ %{buildroot}/%{_sysconfdir}/yum.repos.d
+
+%clean
+#rm -rf %{buildroot}
+
+%post
+
+%postun
+
+%files
+%defattr(-,root,root,-)
+#%doc GPL
+%config(noreplace) /etc/yum.repos.d/*
+/etc/pki/rpm-gpg/*
+
+%changelog
+* Tue Aug 27 2011 Gary Lowell <glowell@inktank.com> - 1-0
+- Initial Package
+EOF
+# End of ceph-release.spec file.
+
+# GPG Key
+gpg --export --armor $keyid > $RPMBUILD/SOURCES/RPM-GPG-KEY-CEPH
+chmod 644 $RPMBUILD/SOURCES/RPM-GPG-KEY-CEPH
+
+# Install ceph.repo file
+cat <<EOF > $RPMBUILD/SOURCES/ceph.repo
+[ceph]
+name=Ceph
+baseurl=http://gitbuilder-centos6-amd64.front.sepia.ceph.com/rpms/centos6/\$basearch
+failovermethod=priority
+enabled=1
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CEPH
+EOF
+# End of ceph.repo file
+
+# Build RPMs
+echo "$RPMBUILD" | grep -v -q '^/' && \
+ RPMBUILD=`readlink -fn ${RPMBUILD}` ### rpm wants absolute path
+
+rpmbuild -bb --define "_topdir ${RPMBUILD}" --define "_unpackaged_files_terminate_build 0" ${RPMBUILD}/SPECS/ceph-release.spec
+
+# Package builds as noarch, but we want to move it to x86_64 for centos.
+mv ${RPMBUILD}/RPMS/noarch/ceph*.rpm ${RPMBUILD}/RPMS/x86_64/.
+[ "$(ls -A ${RPMBUILD}/RPMS/noarch)" ] || rmdir ${RPMBUILD}/RPMS/noarch
+
+# Construct repodata
+for dir in $RPMBUILD/RPMS/*
+do
+ if [ -d $dir ] ; then
+ createrepo $dir
+ gpg --detach-sign --armor -u $keyid $dir/repodata/repomd.xml
+ fi
+done
+
+exit 0
--- /dev/null
+#!/bin/bash -x
+
+set -e
+
+usage() {
+ echo "usage: $0 releasedir [versionfile]"
+}
+
+releasedir=$1
+versionfile=$2
+
+[ -z "$releasedir" ] && echo specify releasedir && usage && exit 1
+
+if git diff --quiet ; then
+ echo repository is clean
+else
+ echo
+ echo "**** REPOSITORY IS DIRTY ****"
+ echo
+ if [ "$force" != "force" ]; then
+ echo "add 'force' argument if you really want to continue."
+ exit 1
+ fi
+ echo "forcing."
+fi
+
+cephver=`git describe | cut -c 2-`
+echo current version $cephver
+
+srcdir=`pwd`
+
+if [ -d "$releasedir/$cephver" ]; then
+ echo "$releasedir/$cephver already exists; reuse that release tarball"
+else
+ echo building tarball
+ rm ceph-*.tar.gz || true
+ rm ceph-*.tar.bz2 || true
+ make dist
+ make dist-bzip2
+
+ vers=`ls ceph-*.tar.gz | cut -c 6- | sed 's/.tar.gz//'`
+ echo tarball vers $vers
+
+ echo extracting
+ mkdir -p $releasedir/$cephver
+ cd $releasedir/$cephver
+
+ tar zxf $srcdir/ceph-$vers.tar.gz
+ [ "$vers" != "$cephver" ] && mv ceph-$vers ceph-$cephver
+
+ tar zcf ceph_$cephver.orig.tar.gz ceph-$cephver
+ cp -a ceph_$cephver.orig.tar.gz ceph-$cephver.tar.gz
+
+ # need bz2 tarball to match name in spec file
+ cp -a $srcdir/ceph-$vers.tar.bz2 .
+
+ # copy debian dir, too
+ # cp -a $srcdir/debian debian
+ # cd $srcdir
+fi
+
+if [ -n "$versionfile" ]; then
+ echo $cephver > $versionfile
+ echo "wrote $cephver to $versionfile"
+fi
+
+echo "done."
--- /dev/null
+#!/bin/bash -x
+
+set -e
+
+usage() {
+ echo "usage: $0 releasedir vers key [filetypetosign]"
+}
+
+releasedir=$1
+cephvers=$2
+keyid=$3
+what=$4
+
+[ -z "$what" ] && what="dsc changes"
+
+[ -z "$releasedir" ] && echo specify releasedir && usage && exit 1
+[ -z "$cephvers" ] && echo specify version && usage && exit 1
+[ ! -d "$releasedir/$cephvers" ] && echo missing $releasedir/$cephvers && usage && exit 1
+
+[ -z "$keyid" ] && echo specify keyid && exit 1
+
+echo version $cephvers key $keyid
+
+# Sign all the RPMs
+rpm_list=`find $releasedir/$cephvers -name "*.rpm" -print`
+rpm --addsign --define "_gpg_name $keyid" $rpm_list
+
+# Sign the repository
+#for repo in `find $releasedir/$cephvers -type d -name "repodata" -print`
+#do
+# gpg --detach-sign --armor -u $keyid $repo/repomd.xml
+#done