From: Sage Weil Date: Tue, 8 Feb 2011 23:36:06 +0000 (-0800) Subject: initial version X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=587896463b54c74b2697ffe82fc41bcdfe83fc97;p=ceph-build.git initial version --- 587896463b54c74b2697ffe82fc41bcdfe83fc97 diff --git a/build_debs.sh b/build_debs.sh new file mode 100755 index 000000000..c5d410683 --- /dev/null +++ b/build_debs.sh @@ -0,0 +1,52 @@ +#!/bin/bash -x + +set -e + +bindir=`dirname $0` + +releasedir=$1 +pbuilddir=$2 +cephver=$3 +dists=$4 + +[ -z "$releasedir" ] && echo specify release dir && exit 1 +[ -z "$pbuilddir" ] && echo specify pbuilder image dir && exit 1 +[ -z "$cephver" ] && echo specify version && exit 1 + +echo version $cephver + + +[ -z "$dists" ] && dists=`cat $releasedir/$cephver/debian_dists` +dvers=`cat $releasedir/$cephver/debian_version` +echo deb vers $dvers +echo dists $dists + +for dist in $dists +do + pbuilder --clean + + $bindir/update_pbuilder.sh $pbuilddir $dist + + bpvers=`$bindir/gen_debian_version.sh $dvers $dist` + echo deb vers $bpvers + + echo building debs for $dist + pbuilder build \ + --binary-arch \ + --distribution $dist \ + --basetgz $pbuilddir/$dist.tgz \ + --buildresult $releasedir/$cephver \ + --debbuildopts -j`grep -c processor /proc/cpuinfo` \ + $releasedir/$cephver/ceph_$bpvers.dsc + +done + + +# do lintian checks +for dist in $dists +do + bpvers=`$bindir/gen_debian_version.sh $dvers $dist` + echo lintian checks for $bpvers + lintian --allow-root $releasedir/$cephver/*$bpvers*.deb +done + diff --git a/build_dsc.sh b/build_dsc.sh new file mode 100755 index 000000000..6ed34d652 --- /dev/null +++ b/build_dsc.sh @@ -0,0 +1,59 @@ +#!/bin/sh -x + +set -e + +releasedir=$1 +cephver=$2 +debsubver=$3 +dists=$4 + +[ -z "$releasedir" ] && echo specify releasedir && exit 1 +[ -z "$cephver" ] && echo specify version && exit 1 +[ -z "$debsubver" ] && debsubver=1 +[ -z "$dists" ] && dists="sid squeeze lenny maverick lucid" + +bindir=`dirname $0` +echo "$bindir" | grep -v -q '^/' && bindir=`pwd`"/$bindir" + +debver="$cephver-$debsubver" + +echo debver $debver + +cd $releasedir/$cephver || exit 1 + +echo "(re)extracting" + +[ -d "ceph-$cephver" ] && rm -r ceph-$cephver +tar zxvf ceph_$cephver.orig.tar.gz + +# add debian dir +echo "copying in debian/" +cp -a debian ceph-$cephver + +# take note +echo $dists > debian_dists +echo $debver > debian_version + +for dist in $dists +do + echo building $dist dsc + + bpver=`$bindir/gen_debian_version.sh $debver $dist` + + # add to changelog? + chvers=`head -1 debian/changelog | perl -ne 's/.*\(//; s/\).*//; print'` + if [ "$chvers" != "$bpver" ]; then + cd ceph-$cephver + DEBEMAIL="sage@newdream.net" dch -D $dist --force-distribution -b -v "$bpver" "$comment" + cd .. + fi + + # hack + [ "$dist" = "lenny" ] && sed -i 's/, libgoogle-perftools-dev//' ceph-$cephver/debian/control + + dpkg-source -b ceph-$cephver + +done + +rm -r ceph-$cephver +echo done diff --git a/build_snapshot.sh b/build_snapshot.sh new file mode 100755 index 000000000..87f6473db --- /dev/null +++ b/build_snapshot.sh @@ -0,0 +1,22 @@ +#!/bin/sh -x + +bindir=`dirname $0` +releasedir=$1 +pbuilddir=$2 + +[ -z "$releasedir" ] && exit 1 +[ -z "$pbuilddir" ] && exit 1 + +versionfile=`mktemp` +cleanup() { + rm $versionfile +} +trap cleanup SIGINT EXIT + +$bindir/release_tarball.sh $releasedir $versionfile dosuffix +vers=`cat $versionfile` + +$bindir/build_dsc.sh $releasedir $vers +sudo $bindir/build_debs.sh $releasedir $pbuilddir $vers +$bindir/sign_debs.sh $releasedir $vers + diff --git a/gen_debian_version.sh b/gen_debian_version.sh new file mode 100755 index 000000000..82ac05ff4 --- /dev/null +++ b/gen_debian_version.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +raw=$1 +dist=$2 + +[ "$dist" = "sid" ] && dver="$raw" +[ "$dist" = "squeeze" ] && dver="$raw~bpo60+1" +[ "$dist" = "lenny" ] && dver="$raw~bpo50+1" +[ "$dist" = "maverick" ] && dver="$raw$dist" +[ "$dist" = "lucid" ] && dver="$raw$dist" +[ "$dist" = "karmic" ] && dver="$raw$dist" + +echo $dver + diff --git a/gen_reprepro_conf.sh b/gen_reprepro_conf.sh new file mode 100755 index 000000000..f35db318c --- /dev/null +++ b/gen_reprepro_conf.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +path=$1 +comp=$2 + +dists=`cat $path/conf/dists` +components=`cat $path/conf/components` + +if [ -n "$comp" ]; then + if grep -v "\b$comp\b" $path/conf/components ; then + echo "adding component $comp" + components="$components $comp" + echo $components > $path/conf/components + fi +fi + +echo "dists $dists" +echo "components $components" + +[ -e $path/conf/distributions ] && rm $path/conf/distributions + +for dist in $dists +do + cat <> $path/conf/distributions +Codename: $dist +Suite: stable +Components: $components +Architectures: i386 amd64 source +Origin: New Dream Network +Description: Ceph distributed file system +DebIndices: Packages Release . .gz .bz2 +DscIndices: Sources Release .gz .bz2 +SignWith: 03C3951A + +EOF +done + +echo done diff --git a/push_to_repo.sh b/push_to_repo.sh new file mode 100755 index 000000000..0c2d7968b --- /dev/null +++ b/push_to_repo.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +set -e + +releasedir=$1 +repo=$2 +cephvers=$3 +component=$4 + +[ -z "$releasedir" ] && echo specify releasedir && exit 1 +[ -z "$repo" ] && echo specify reprepro dir && exit 1 +[ -z "$cephvers" ] && echo specify version && exit 1 +[ ! -d "$releasedir/$cephvers" ] && echo missing $releasedir/$cephvers && exit 1 +[ -z "$component" ] && echo "must specify repo component" && exit 1 + +bindir=`dirname $0` + +echo version $cephvers +echo component $component + +[ -z "$dists" ] && dists=`cat $releasedir/$cephvers/debian_dists` +dvers=`cat $releasedir/$cephvers/debian_version` +echo deb vers $dvers +echo dists $dists + + +for dist in $dists +do + bpvers=`$bindir/gen_debian_version.sh $dvers $dist` + echo dist $dist + echo vers $bpvers + for f in $releasedir/$cephvers/*${bpvers}_*.changes + do + echo file $f + reprepro -b $repo -C $component --ignore=wrongdistribution include $dist $f + done +done diff --git a/release_tarball.sh b/release_tarball.sh new file mode 100755 index 000000000..fafde3d34 --- /dev/null +++ b/release_tarball.sh @@ -0,0 +1,60 @@ +#!/bin/bash -x + +set -e + +vers=`grep AM_INIT_AUTOMAKE configure.ac | head -1 | cut '-d ' -f 2 | sed 's/)//'` +echo raw vers $vers + +releasedir=$1 +versionfile=$2 +suffix=$3 + +[ -z "$releasedir" ] && echo specify releasedir && 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 + +if [ -z "$suffix" ]; then + cephver="$vers" +else + gitver=`git describe | cut -c 2-` + cephver="$gitver" +fi + +echo final vers $cephver + +srcdir=`pwd` + +if [ -d "$releasedir/$cephver" ]; then + echo "$releasedir/$cephver already exists; reuse that release tarball" +else + echo building tarball + make dist + + 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 + + # copy debian dir, too + cp -a $srcdir/debian debian + cd $srcdir +fi + +echo $cephver > $versionfile + +echo "done. $cephver (written to $versionfile)" \ No newline at end of file diff --git a/sign_debs.sh b/sign_debs.sh new file mode 100755 index 000000000..0fb26647a --- /dev/null +++ b/sign_debs.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +releasedir=$1 +cephvers=$2 +keyid=$3 + +[ -z "$releasedir" ] && echo specify releasedir && exit 1 +[ -z "$cephvers" ] && echo specify version && exit 1 +[ ! -d "$releasedir/$cephvers" ] && echo missing $releasedir/$cephvers && exit 1 + +[ -z "$keyid" ] && keyid="03C3951A" + +echo version $cephvers + +yes | debsign -k$keyid $releasedir/$cephvers/*.{changes,dsc} diff --git a/update_pbuilder.sh b/update_pbuilder.sh new file mode 100755 index 000000000..30083dfa1 --- /dev/null +++ b/update_pbuilder.sh @@ -0,0 +1,40 @@ +#!/bin/sh -x + +basedir=$1 +dists=$2 + +[ ! -d "$basedir" ] && echo specify dir for pbuilder images && exit 1 +[ -z "$dists" ] && dists="sid squeeze lenny maverick lucid" + +for dist in $dists +do + os="debian" + [ "$dist" == "maverick" ] && os="ubuntu" + [ "$dist" == "lucid" ] && os="ubuntu" + + if [ $os = "debian" ]; then + mirror="http://http.us.debian.org/debian" + othermirror="" + else + mirror="" + othermirror="deb http://archive.ubuntu.com/ubuntu $dist main restricted universe multiverse" + fi + + pbuilder --clean + + if [ -e $basedir/$dist.tgz ]; then + echo updating $dist base.tgz + savelog -l -n $basedir/$dist.tgz + cp $basedir/$dist.tgz.0 $basedir/$dist.tgz + pbuilder update \ + --basetgz $basedir/$dist.tgz \ + --distribution $dist + else + echo building $dist base.tgz + pbuilder create \ + --basetgz $basedir/$dist.tgz \ + --distribution $dist \ + --mirror "$mirror" \ + --othermirror "$othermirror" + fi +done \ No newline at end of file