diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2011-12-02 15:39:29 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2011-12-02 15:39:29 +0100 |
commit | 64531446af6ffc51a4c5d13aa4047fad02ad090f (patch) | |
tree | a3655da7c362545f1ad81428cb3cab08d60615b8 | |
download | buildscripts-64531446af6ffc51a4c5d13aa4047fad02ad090f.tar.gz buildscripts-64531446af6ffc51a4c5d13aa4047fad02ad090f.tar.bz2 buildscripts-64531446af6ffc51a4c5d13aa4047fad02ad090f.zip |
Start from scratch, used X2Go's buildscripts as templates...
l--------- | bin/itzks-build+upload-all-packages | 1 | ||||
l--------- | bin/itzks-build+upload-package | 1 | ||||
-rwxr-xr-x | bin/itzks-build-all-packages | 60 | ||||
-rwxr-xr-x | bin/itzks-build-package | 238 | ||||
-rwxr-xr-x | bin/itzks-gitcreate | 15 | ||||
-rwxr-xr-x | bin/itzks-gitrevno | 28 | ||||
-rwxr-xr-x | bin/itzks-pkgneedsbuild | 47 | ||||
-rwxr-xr-x | bin/itzks-tarballrelease | 43 | ||||
-rwxr-xr-x | bin/itzks-updatebuildmain | 34 | ||||
l--------- | bin/itzks-upload-all-packages | 1 | ||||
l--------- | bin/itzks-upload-package | 1 | ||||
-rw-r--r-- | home/.dupload.conf | 37 | ||||
-rw-r--r-- | home/.pbuilderrc | 47 |
13 files changed, 553 insertions, 0 deletions
diff --git a/bin/itzks-build+upload-all-packages b/bin/itzks-build+upload-all-packages new file mode 120000 index 0000000..32133c5 --- /dev/null +++ b/bin/itzks-build+upload-all-packages @@ -0,0 +1 @@ +itzks-build-all-packages
\ No newline at end of file diff --git a/bin/itzks-build+upload-package b/bin/itzks-build+upload-package new file mode 120000 index 0000000..64ea9b4 --- /dev/null +++ b/bin/itzks-build+upload-package @@ -0,0 +1 @@ +itzks-build-package
\ No newline at end of file diff --git a/bin/itzks-build-all-packages b/bin/itzks-build-all-packages new file mode 100755 index 0000000..6342dce --- /dev/null +++ b/bin/itzks-build-all-packages @@ -0,0 +1,60 @@ +#!/bin/bash + +# Copyright (C) 2011 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> +# +# This 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 3 of the License, 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 +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +LIB_PACKAGES_NIGHTLY="\ +itzks-keyring nightly master\n +" +LIB_PACKAGES_MAIN="\ +itzks-keyring main build-main\n +" + +APP_PACKAGES_HEULER="\ +scratch nightly master\n +" +APP_PACKAGES_MAIN="\ +scratch main build-main\n +" + +COMPONENT=${1:-""} + +# build the newest code... (nightly-builds) +[ "x$COMPONENT" = "xnightly" ] || [ -z $COMPONENT ] && { + echo -e $LIB_PACKAGES_HEULER $APP_PACKAGES_HEULER | while read pkg comp checkout; do + if [ "x$(basename $0)" = "xitzks-build-all-packages" ]; then + itzks-build-package $pkg $comp $checkout + elif [ "x$(basename $0)" = "xitzks-upload-all-packages" ]; then + itzks-upload-package $pkg $comp $checkout + elif [ "x$(basename $0)" = "xitzks-build+upload-all-packages" ]; then + itzks-build-package $pkg $comp $checkout && itzks-upload-package $pkg $comp $checkout + fi + done +} + +# build all packages tagged as build-main +[ "x$COMPONENT" = "xmain" ] || [ -z $COMPONENT ] && { + echo -e $LIB_PACKAGES_MAIN $APP_PACKAGES_MAIN | while read pkg comp checkout; do + if [ "x$(basename $0)" = "xitzks-build-all-packages" ]; then + itzks-build-package $pkg $comp $checkout + elif [ "x$(basename $0)" = "xitzks-upload-all-packages" ]; then + itzks-upload-package $pkg $comp $checkout + elif [ "x$(basename $0)" = "xitzks-build+upload-all-packages" ]; then + itzks-build-package $pkg $comp $checkout && itzks-upload-package $pkg $comp $checkout + fi + done +} diff --git a/bin/itzks-build-package b/bin/itzks-build-package new file mode 100755 index 0000000..de429b3 --- /dev/null +++ b/bin/itzks-build-package @@ -0,0 +1,238 @@ +#!/bin/bash + +# Copyright (C) 2011 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> +# +# This programme 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 3 of the License, or +# (at your option) any later version. +# +# This programme 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. + +test -z $1 && { echo "usage: <itzks-git-project> {main,main/<codename>,heuler,heuler/<codename>} [<git-checkout>]"; exit -1; } + +set -ex + +set_vars() { + USE_SUDO="yes" + PDEBUILD="pdebuild --pbuilder qemubuilder" + TEMP_BASE="$HOME/tmp/" + + # first argv is the name of the Git project + PROJECT=$1 + + # grab repository component area from command line (2nd argv) or guess it + ARGV2_COMPONENT=$(echo "$2/" | cut -d"/" -f1) + ARGV2_CODENAME=$(echo "$2/" | cut -d"/" -f2) + COMPONENT=${ARGV2_COMPONENT:-${COMPONENT:-heuler}} + CODENAMES=${ARGV2_CODENAME:-${CODENAMES}} + [ -n "$ARGV2_CODENAME" ] && FORCE_BUILD=0 || FORCE_BUILD=-1 + if [ "x$COMPONENT" = "xmain" ]; then + CHECKOUT=${3:-build-main} + elif [ "x$COMPONENT" = "xnightly" ]; then + CHECKOUT=${3:-master} + DATE="~${DATE:-$(date +%Y%m%d)}" + else + echo "error: no such package component area for ITZKS packages. Aborting..." + exit -1 + fi + # the DATE might be given as ,,today'' from the command line + [ "x$DATE" = "xtoday" ] && DATE="~$(date +%Y%m%d)" + + # setting paths + PROJECT_DIR=$HOME/build/$COMPONENT/$PROJECT + DIST_SUPPORTED="debian ubuntu" + PKGDIST="$HOME/pkg-dist/$COMPONENT/$PROJECT" + + # build for other architectures than amd64/i386 + EXTRA_ARCHS="${EXTRA_ARCHS:-}" + EXTRA_ARCHS_ONLY="${EXTRA_ARCHS_ONLY:-}" + + # creating paths + mkdir -p "$TEMP_BASE" + mkdir -p $PROJECT_DIR + mkdir -p $PKGDIST + + return 0 +} + +clear_pkgdist() { + + # pkgdist directory cleanup + cat BUILDS_FOR | egrep -v '(^$|^#.*$)' | while read line; do + l_DIST=$(echo $line | cut -d":" -f1 | tr [A-Z] [a-z]) + CODENAMES=${CODENAMES:-$(echo $line | cut -d":" -f2- | tr [A-Z] [a#-z])} + echo "$DIST_SUPPORTED" | grep $l_DIST >/dev/null && { + for l_CODENAME in $CODENAMES; do + if [ "x$EXTRA_ARCHS_ONLY" = "x" ]; then + for l_ARCH in amd64 i386; do + mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_*.changes + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_*.upload + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_*.build + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_*.dsc + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_*.tar.gz + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/*.deb + done + fi + for l_EXTRA_ARCH in $EXTRA_ARCHS; do + mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_*.changes + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_*.upload + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_*.build + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_*.dsc + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_*.tar.gz + rm -f $PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/*.deb + done + done + } + done + return 0 +} + +prepare_workspace() { + # in any case remove the BUILDS_FOR file + rm -f $PROJECT_DIR/BUILDS_FOR + + # make sure our local working copy is up to date... + + if [ -d $PROJECT_DIR/.git ]; then + cd $PROJECT_DIR && git reset --hard + git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT + git pull origin $CHECKOUT + # and again, get the $CHECKOUT refspec in pure state + git reset --hard + else + cd $(dirname $PROJECT_DIR) + git clone git://code.das-netzwerkteam.de/itzks/$PROJECT.git + cd $PROJECT + git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT; + fi + cd $PROJECT_DIR + + # by default we build for all current debian versions + test -f BUILDS_FOR || cat > BUILDS_FOR <<EOF +debian: squeeze wheezy sid +#ubuntu: lucid maverick natty +EOF + return 0 +} + +build_packages() { + # use pbuilder for building all variants of this package + cat BUILDS_FOR | egrep -v '(^$|^#.*$)' | while read line; do + l_DIST=$(echo $line | cut -d":" -f1 | tr [A-Z] [a-z]) + CODENAMES=${CODENAMES:-$(echo $line | cut -d":" -f2- | tr [A-Z] [a#-z])} + echo "$DIST_SUPPORTED" | grep $l_DIST >/dev/null && { + for l_CODENAME in $CODENAMES; do + TEMP_DIR="$(mktemp -d --tmpdir=$TEMP_BASE)" + mkdir -p $TEMP_DIR/$PROJECT + git clone --local $PROJECT_DIR $TEMP_DIR/$PROJECT/ + cd $TEMP_DIR/$PROJECT + git checkout $CHECKOUT || git checkout master + GITREV=$(itzks-gitrevno) + # translate the version name for Debian releases + [ "x$l_CODENAME" = "xsid" ] && VERSION=unstable + [ "x$l_CODENAME" = "xwheezy" ] && VERSION=testing + [ "x$l_CODENAME" = "xsqueeze" ] && VERSION=stable + [ "x$l_CODENAME" = "xlenny" ] && VERSION=oldstable + + # modify the section for non-main package builds + [ "x$COMPONENT" = "xmain" ] || { + mv debian/control debian/control.tmp + cat debian/control.tmp | sed "s#Section:[\ ]*\(.*\)#Section: $COMPONENT/\1#g" > debian/control + } + + # modify changelog for this build + DEBEMAIL=git-admin@das-netzwerkteam.de DEBFULLNAME="NWT Git Administrator" dch --distribution $VERSION --force-distribution -l "+$l_CODENAME~$COMPONENT$DATE~$GITREV~build" "Auto-built $l_DIST $l_CODENAME package for packages.it-zukunft-schule.de repository." + mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/{amd64,i386} + OTHERMIRROR="deb http://packages.it-zukunft-schule.de/debian $l_CODENAME $COMPONENT" + [ "x$USE_SUDO" != "xyes" ] && { + [ "x$EXTRA_ARCHS_ONLY" = "x" ] && { + cat debian/control | egrep 'Architecture.*(all|any|amd64)' >/dev/null && { + DIST=$l_DIST CODENAME=$l_CODENAME ARCH=amd64 $PDEBUILD --auto-debsign --debsign-k F4A7678C9C6B0B2B --buildresult $PKGDIST/$l_DIST/$l_CODENAME/amd64 + } + cat debian/control | egrep 'Architecture.*(any|i386)' >/dev/null && { + DIST=$l_DIST CODENAME=$l_CODENAME ARCH=i386 $PDEBUILD --auto-debsign --debsign-k F4A7678C9C6B0B2B --buildresult $PKGDIST/$l_DIST/$l_CODENAME/i386 -- --binary-arch + } + } + for extra_arch in $EXTRA_ARCHS; do + mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/$extra_arch + cat debian/control | egrep "Architecture.*(any|$extra_arch)" >/dev/null && { + DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch $PDEBUILD --auto-debsign --debsign-k F4A7678C9C6B0B2B --buildresult $PKGDIST/$l_DIST/$l_CODENAME/$extra_arch -- --binary-arch + } + done + } + [ "x$USE_SUDO" = "xyes" ] && { + [ "x$EXTRA_ARCHS_ONLY" = "x" ] && { + cat debian/control | egrep 'Architecture.*(all|any|amd64)' >/dev/null && { + sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=amd64 OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k F4A7678C9C6B0B2B --buildresult $PKGDIST/$l_DIST/$l_CODENAME/amd64 + } + cat debian/control | egrep 'Architecture.*(any|i386)' >/dev/null && { + sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=i386 OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k F4A7678C9C6B0B2B --buildresult $PKGDIST/$l_DIST/$l_CODENAME/i386 -- --binary-arch + } + } + for extra_arch in $EXTRA_ARCHS; do + mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/$extra_arch + cat debian/control | egrep "Architecture.*(any|$extra_arch)" >/dev/null && { + sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k F4A7678C9C6B0B2B --buildresult $PKGDIST/$l_DIST/$l_CODENAME/$extra_arch -- --binary-arch + } + done + } + cd - + rm -Rf $TEMP_DIR + done + echo + } + echo + done + return 0 +} + +upload_packages() { + # dupload the new packages to the reprepro repository + cd $PKGDIST + cat $PROJECT_DIR/BUILDS_FOR | egrep -v '(^$|^#.*$)' | while read line; do + l_DIST=$(echo $line | cut -d":" -f1 | tr [A-Z] [a-z]) + CODENAMES=${CODENAMES:-$(echo $line | cut -d":" -f2- | tr [A-Z] [a#-z])} + for l_CODENAME in $CODENAMES; do + if [ "x$EXTRA_ARCHS_ONLY" = "x" ]; then + for l_ARCH in amd64 i386; do + cd $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH + ls $PROJECT_*.changes &>/dev/null && dupload --to itzks-$l_DIST-$l_CODENAME $PROJECT_*.changes + cd - + done + fi + for l_EXTRA_ARCH in $EXTRA_ARCHS; do + cd $PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH + ls $PROJECT_*.changes &>/dev/null && dupload --to itzks-$l_DIST-$l_CODENAME $PROJECT_*.changes + cd - + done + done + done + cd - + return 0 +} + +### MAIN ### +set_vars $@ && { + if [ "x$(basename $0)" = "xitzks-build-package" ] || [ "x$(basename $0)" = "xitzks-build+upload-package" ]; then + cd $PROJECT_DIR && itzks-pkgneedsbuild $CHECKOUT || [ "$FORCE_BUILD" -eq 0 ] && { + clear_pkgdist + prepare_workspace && { + build_packages + } + } + fi + if [ "x$(basename $0)" = "xitzks-upload-package" ] || [ "x$(basename $0)" = "xitzks-build+upload-package" ]; then + upload_packages + fi +} diff --git a/bin/itzks-gitcreate b/bin/itzks-gitcreate new file mode 100755 index 0000000..e64424d --- /dev/null +++ b/bin/itzks-gitcreate @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +for pkg in "$@"; do + ssh -lnwt code.das-netzwerkteam.de "cd /srv/git/code.das-netzwerkteam.de && ./setup-repository $pkg '$pkg upstream project'" + ssh -lnwt code.das-netzwerkteam.de "cd /srv/git/code.das-netzwerkteam.de && ./update-repository-posixacls $pkg" + cd "$pkg" + echo "$pkg: MASTER BRANCH" && git push ssh://nwt@code.das-netzwerkteam.de:32032/srv/git/code.das-netzwerkteam.de/$pkg master + git branch | grep upstream &>/dev/null && echo "$pkg: RELEASE BRANCH" && git push ssh://nwt@code.das-netzwerkteam.de:32032/srv/git/code.das-netzwerkteam.de/$pkg upstream + git branch | grep pristine-tar &>/dev/null && echo "$pkg: PRISTINE-TAR" && git push ssh://nwt@code.das-netzwerkteam.de:32032/srv/git/code.das-netzwerkteam.de/$pkg pristine-tar + echo "$pkg: PUSHING TAGS" && git push --tags ssh://nwt@code.das-netzwerkteam.de:32032/srv/git/code.das-netzwerkteam.de/$pkg + ssh -lnwt code.das-netzwerkteam.de "cd /srv/git/code.das-netzwerkteam.de && mv $pkg.git itzks" + cd .. +done diff --git a/bin/itzks-gitrevno b/bin/itzks-gitrevno new file mode 100755 index 0000000..2f121ff --- /dev/null +++ b/bin/itzks-gitrevno @@ -0,0 +1,28 @@ +#!/usr/bin/python + +# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> +# +# This 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 3 of the License, 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 +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + +import subprocess +_proc = subprocess.Popen('git log --no-color --date=iso', + shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) +try: + GIT_REVISION_DATE = str(len([ x for x in _proc.communicate()[0].splitlines() if x.startswith('Date:')])) +except IndexError: + GIT_REVISION_DATE = 'unknown' + +print GIT_REVISION_DATE diff --git a/bin/itzks-pkgneedsbuild b/bin/itzks-pkgneedsbuild new file mode 100755 index 0000000..2a192eb --- /dev/null +++ b/bin/itzks-pkgneedsbuild @@ -0,0 +1,47 @@ +#!/bin/bash + +# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> +# +# This 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 3 of the License, 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 +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + +set -xe + +CHECKOUT=${1:-master} + +[ -d .git ] && { + + TIMESTAMP=$(date +%s) + CURRENT_BRANCH=$(git branch | grep "*" | awk '{print $2}') + + # switch to branch given as $CHECKOUT, if it does not exist locally, create it... + git checkout $CHECKOUT &>/dev/null || git checkout -b $CHECKOUT >/dev/null + + # switch to a tmp branch... + git checkout -b tmp-$TIMESTAMP &>/dev/null + + # pull $CHECKOUT from origin into the tmp branch + LANG=en_US.UTF-8 git pull origin $CHECKOUT 2>/dev/null | egrep "^Already up-to-date.$" &>/dev/null && { + # drop the tmp branch + git checkout $CURRENT_BRANCH &>/dev/null + git branch -D tmp-$TIMESTAMP >/dev/null + exit 1 + } || { + # drop the tmp branch + git checkout $CURRENT_BRANCH &>/dev/null + git branch -D tmp-$TIMESTAMP >/dev/null + exit 0 + } +} || exit 0 diff --git a/bin/itzks-tarballrelease b/bin/itzks-tarballrelease new file mode 100755 index 0000000..1b58077 --- /dev/null +++ b/bin/itzks-tarballrelease @@ -0,0 +1,43 @@ +#!/bin/sh + +# Copyright (C) 2011 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> +# +# This is free software; you can redistribute it and/or modify +# it under the tBerms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, 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 +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +# Thanks to Jonas Smedegaard <dr@jones.dk> for inspiration... + +set -e + +RELEASE="$1" +test -n "$RELEASE" || { echo "usage: $(basename "$0") <release-version> [<checkout>]"; exit 1; } + +CHECKOUT="${2:-master}" + +PROJECT="$(basename $PWD)" +TARGETDIR=".." + +MANIFEST="$(mktemp)" +TEMP_DIR="$(mktemp -d)" + +echo $MANIFEST + +trap "rm -f \"${MANIFEST}\"; rm -rf \"${TEMP_DIR}\"" 0 +git clone . "$TEMP_DIR/${PROJECT}_$RELEASE" +( set -e; cd "$TEMP_DIR/${PROJECT}_$RELEASE/" && git checkout ${CHECKOUT} 2>/dev/null || true ) +( set -e; cd "$TEMP_DIR" && rm -Rf "${PROJECT}_$RELEASE/.git"* ) +( set -e; cd "$TEMP_DIR" && find "${PROJECT}_$RELEASE" -type f | sed 's/^\.*\/*//' | sort > "$MANIFEST" ) +mkdir -p "$TARGETDIR/_releases_/source/${PROJECT}/" +tar c -C "$TEMP_DIR" --owner 0 --group 0 --numeric-owner --no-recursion --files-from "$MANIFEST" | gzip -n > "$TARGETDIR/_releases_/source/${PROJECT}/${PROJECT}_$RELEASE.tar.gz" diff --git a/bin/itzks-updatebuildmain b/bin/itzks-updatebuildmain new file mode 100755 index 0000000..f4f4917 --- /dev/null +++ b/bin/itzks-updatebuildmain @@ -0,0 +1,34 @@ +#!/bin/bash + +# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> +# +# This 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 3 of the License, 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 +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + +set -e + +GITPROJECT=$(basename $(pwd)) +REF=$1 + +# we need to be within a working copy (base folder) and we need a <REF>!!! +test -z $1 || test -d ./.git || { + echo "usage: $(basename $0) <REF>" + echo "Call this command from within the base folder of a Git project's working copy..." + exit -1 +} + +# update the build-main branch with our newest blessed reference +git branch build-main &>/dev/null || true +git push origin $REF:build-main diff --git a/bin/itzks-upload-all-packages b/bin/itzks-upload-all-packages new file mode 120000 index 0000000..32133c5 --- /dev/null +++ b/bin/itzks-upload-all-packages @@ -0,0 +1 @@ +itzks-build-all-packages
\ No newline at end of file diff --git a/bin/itzks-upload-package b/bin/itzks-upload-package new file mode 120000 index 0000000..64ea9b4 --- /dev/null +++ b/bin/itzks-upload-package @@ -0,0 +1 @@ +itzks-build-package
\ No newline at end of file diff --git a/home/.dupload.conf b/home/.dupload.conf new file mode 100644 index 0000000..7e25854 --- /dev/null +++ b/home/.dupload.conf @@ -0,0 +1,37 @@ +package config; + +### itzks/DEBIAN +$cfg{"itzks-debian-sid"} = { + fqdn => "packages.it-zukunft-schule.de", + login => "itzks-admin", + method => "scpb", + incoming => "/srv/sites/it-zukunft-schule.de/packages/debian/incoming/sid", + queuedir => "/srv/sites/it-zukunft-schule.de/packages/debian/upload/sid", + dinstall_runs => 1, +}; +$cfg{"itzks-debian-wheezy"} = { + fqdn => "packages.it-zukunft-schule.de", + login => "itzks-admin", + method => "scpb", + incoming => "/srv/sites/it-zukunft-schule.de/packages/debian/incoming/wheezy", + queuedir => "/srv/sites/it-zukunft-schule.de/packages/debian/upload/wheezy", + dinstall_runs => 1, +}; +$cfg{"itzks-debian-squeeze"} = { + fqdn => "packages.it-zukunft-schule.de", + login => "itzks-admin", + method => "scpb", + incoming => "/srv/sites/it-zukunft-schule.de/packages/debian/incoming/squeeze", + queuedir => "/srv/sites/it-zukunft-schule.de/packages/debian/upload/squeeze", + dinstall_runs => 1, +}; +$cfg{"itzks-debian-lenny"} = { + fqdn => "packages.it-zukunft-schule.de", + login => "itzks-admin", + method => "scpb", + incoming => "/srv/sites/it-zukunft-schule.de/packages/debian/incoming/lenny", + queuedir => "/srv/sites/it-zukunft-schule.de/packages/debian/upload/lenny", + dinstall_runs => 1, +}; + +1; diff --git a/home/.pbuilderrc b/home/.pbuilderrc new file mode 100644 index 0000000..d5ff1f3 --- /dev/null +++ b/home/.pbuilderrc @@ -0,0 +1,47 @@ +#!/bin/bash + +set -x + +BASEDIRECTORY="/srv/pbuilder/cache" + +DIST=${DIST:-debian} +CODENAME=${CODENAME:-sid} +ARCH=${ARCH:-amd64} +COMPONENT="${COMPONENT:-heuler}" + +# pbuilder options +BASETGZ="$BASEDIRECTORY/base-$DIST-$CODENAME-$ARCH.tgz" +DISTRIBUTION="$CODENAME" +BUILDRESULT="$BASEDIRECTORY/$DIST-$CODENAME-$ARCH/result/" +APTCACHE="$BASEDIRECTORY/$DIST-$CODENAME-$ARCH/aptcache/" + +BUILDRESULTUID=itzks-admin +BUILDRESULTGID=itzks +# this needs to be disabled +CCACHEDIR= +APTCACHEHARDLINK="yes" +USE_DEBUILD_INTERNAL="yes" +PRESERVE_BUILDPLACE="yes" + +ARCHITECTURE="$ARCH" + +# pbuilder-uml option +UML_DISTRIBUTION="$CODENAME" + +# qemubuilder options +BASEPATH="$BASEDIRECTORY/base-$DIST-$CODENAME-$ARCH.qemu" +KERNEL_IMAGE=/srv/pbuilder/qemu-kernels/$ARCH/vmlinuz +ARCH_DISKDEVICE=sd +if [ "x$ARCH" = "xarmel" ]; then + MEMORY_MEGS=256 + INITRD="" +else + MEMORY_MEGS=512 + INITRD=/srv/pbuilder/qemu-kernels/$ARCH/initrd.img +fi + +if [ "x${DIST}" = "xubuntu" ]; then + MIRRORSITE="http://localhost:3142/ubuntu" +elif [ "x${DIST}" = "xdebian" ]; then + MIRRORSITE="http://localhost:3142/debian" +fi |