]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-build.git/commitdiff
initial version
authorSage Weil <sage@newdream.net>
Tue, 8 Feb 2011 23:36:06 +0000 (15:36 -0800)
committerSage Weil <sage@newdream.net>
Tue, 8 Feb 2011 23:36:06 +0000 (15:36 -0800)
build_debs.sh [new file with mode: 0755]
build_dsc.sh [new file with mode: 0755]
build_snapshot.sh [new file with mode: 0755]
gen_debian_version.sh [new file with mode: 0755]
gen_reprepro_conf.sh [new file with mode: 0755]
push_to_repo.sh [new file with mode: 0755]
release_tarball.sh [new file with mode: 0755]
sign_debs.sh [new file with mode: 0755]
update_pbuilder.sh [new file with mode: 0755]

diff --git a/build_debs.sh b/build_debs.sh
new file mode 100755 (executable)
index 0000000..c5d4106
--- /dev/null
@@ -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 (executable)
index 0000000..6ed34d6
--- /dev/null
@@ -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 (executable)
index 0000000..87f6473
--- /dev/null
@@ -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 (executable)
index 0000000..82ac05f
--- /dev/null
@@ -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 (executable)
index 0000000..f35db31
--- /dev/null
@@ -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 <<EOF >> $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 (executable)
index 0000000..0c2d796
--- /dev/null
@@ -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 (executable)
index 0000000..fafde3d
--- /dev/null
@@ -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 (executable)
index 0000000..0fb2664
--- /dev/null
@@ -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 (executable)
index 0000000..30083df
--- /dev/null
@@ -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