Initial import from admin sys repository
This commit is contained in:
commit
9c261143b1
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
|
||||||
|
all: install
|
||||||
|
|
||||||
|
install:
|
||||||
|
apt-get install pbuilder devscripts debhelper cowbuilder git dput fakeroot sudo
|
||||||
|
if ! getent passwd eobuilder > /dev/null 2>&1; then useradd eobuilder --home-dir /var/lib/eobuilder --create-home; fi
|
||||||
|
su eobuilder -p -c "cp pbuilderrc /var/lib/eobuilder/.pbuilderrc"
|
||||||
|
su eobuilder -p -c "cp dput.cf /var/lib/eobuilder/.dput.cf"
|
||||||
|
su eobuilder -p -c "cp gitconfig /var/lib/eobuilder/.gitconfig"
|
||||||
|
cp eobuilder /usr/local/bin
|
||||||
|
|
||||||
|
chroots:
|
||||||
|
if [ ! -d /var/cache/pbuilder/squeeze-i386 ]; then \
|
||||||
|
mkdir /var/cache/pbuilder/squeeze-i386; \
|
||||||
|
cowbuilder --create --basepath /var/cache/pbuilder/squeeze-i386/base.cow --distribution squeeze --debootstrapopts --arch --debootstrapopts i386; \
|
||||||
|
fi
|
||||||
|
if [ ! -d /var/cache/pbuilder/squeeze-amd64 ]; then \
|
||||||
|
mkdir /var/cache/pbuilder/squeeze-amd64; \
|
||||||
|
cowbuilder --create --basepath /var/cache/pbuilder/squeeze-amd64/base.cow --distribution squeeze --debootstrapopts --arch --debootstrapopts amd64; \
|
||||||
|
fi
|
||||||
|
if [ ! -d /var/cache/pbuilder/wheezy-i386 ]; then \
|
||||||
|
mkdir /var/cache/pbuilder/wheezy-i386; \
|
||||||
|
cowbuilder --create --basepath /var/cache/pbuilder/wheezy-i386/base.cow --distribution wheezy --debootstrapopts --arch --debootstrapopts i386; \
|
||||||
|
fi
|
||||||
|
if [ ! -d /var/cache/pbuilder/wheezy-amd64 ]; then \
|
||||||
|
mkdir /var/cache/pbuilder/wheezy-amd64; \
|
||||||
|
cowbuilder --create --basepath /var/cache/pbuilder/wheezy-amd64/base.cow --distribution wheezy --debootstrapopts --arch --debootstrapopts amd64; \
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
=======
|
||||||
|
README
|
||||||
|
=======
|
||||||
|
|
||||||
|
Requirments
|
||||||
|
------------
|
||||||
|
|
||||||
|
Use must use a Debian OS. You need to install make.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
Install eobuilder::
|
||||||
|
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
Install chroots (if you want i386 - amd64 wheezy and squeeze)::
|
||||||
|
|
||||||
|
sudo make chroots
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Generate a ssh key for eobuilder or use an existing one.
|
||||||
|
Configure your Debian repository to allow this key.
|
||||||
|
|
||||||
|
You need to add thes line into your sudoers::
|
||||||
|
|
||||||
|
eobuilder ALL= SETENV:NOPASSWD:/usr/sbin/cowbuilder
|
||||||
|
|
||||||
|
Quick start
|
||||||
|
------------
|
||||||
|
|
||||||
|
Example with python-entrouvert::
|
||||||
|
|
||||||
|
sudo -u eobuilder eobuilder python-entrouvert squeeze
|
|
@ -0,0 +1,9 @@
|
||||||
|
[squeeze-experimental]
|
||||||
|
method = scp
|
||||||
|
fqdn = deb.entrouvert.org
|
||||||
|
incoming = /var/vhosts/deb.entrouvert.org/incoming/squeeze-experimental
|
||||||
|
|
||||||
|
[wheezy-experimental]
|
||||||
|
method = scp
|
||||||
|
fqdn = deb.entrouvert.org
|
||||||
|
incoming = /var/vhosts/deb.entrouvert.org/incoming/wheezy-experimental
|
|
@ -0,0 +1,122 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
USAGE="""Usage: $0 GIT_REPOSITORY_NAME DISTRIBUTION [ARCHITECTURE]\n
|
||||||
|
\n
|
||||||
|
GIT_REPOSITORY_NAME: respository name without .git\n
|
||||||
|
DISTRIBUTION: Debian distroibution like : squeeze, wheezy, ...\n
|
||||||
|
ARCHITECTURE: amd64 or i368 (Default: amd64)"""
|
||||||
|
|
||||||
|
GIT_REPOSITORY_URL="git+ssh://git@repos.entrouvert.org"
|
||||||
|
GIT_PATH="/var/lib/eobuilder/git"
|
||||||
|
PBUILDER_RESULT="/var/lib/eobuilder/results"
|
||||||
|
|
||||||
|
|
||||||
|
error()
|
||||||
|
{
|
||||||
|
echo $1 >& 2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -lt 2 ]; then
|
||||||
|
error "$USAGE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(whoami)" != "eobuilder" ]; then
|
||||||
|
error "You must run be eobuilder to launch this script"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
GIT_NAME=$1
|
||||||
|
DIST=$2
|
||||||
|
if [ "$3" ]; then
|
||||||
|
ARCH=$3
|
||||||
|
else
|
||||||
|
ARCH="amd64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $GIT_PATH ]; then
|
||||||
|
mkdir $GIT_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
PBUILDER_PROJECT_RESULT="${PBUILDER_RESULT}/${DIST}-${ARCH}/"
|
||||||
|
PROJECT_NAME=$GIT_NAME
|
||||||
|
BUILD_DIR="/var/tmp/$PROJECT_NAME"
|
||||||
|
GIT_PROJECT_PATH="$GIT_PATH/$GIT_NAME"
|
||||||
|
|
||||||
|
echo "+ Cloning git repository"
|
||||||
|
if [ ! -d $GIT_PROJECT_PATH ]; then
|
||||||
|
echo "+ git clone $GIT_REPOSITORY_URL/$GIT_NAME.git"
|
||||||
|
cd $GIT_PATH
|
||||||
|
git clone $GIT_REPOSITORY_URL/$GIT_NAME.git
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "+ Updating git repository and parsing configuration ..."
|
||||||
|
cd $GIT_PROJECT_PATH
|
||||||
|
git checkout master
|
||||||
|
git pull
|
||||||
|
VERSION=`git describe | tr - . | sed 's/^v//'`
|
||||||
|
COMMIT_NUMBER=`git log -n1 | grep 'commit' | sed 's/commit\s*//'`
|
||||||
|
|
||||||
|
git checkout debian
|
||||||
|
git pull
|
||||||
|
PACKAGE_NAME=`cat debian/control | sed 's/^Source\s*:\s*//; t; d'`
|
||||||
|
LAST_DEBIAN_PACKAGE_VERSION=`dpkg-parsechangelog | sed 's/^Version: //; t; d'`
|
||||||
|
LAST_DEBIAN_INC=`echo $LAST_DEBIAN_PACKAGE_VERSION | cut -d '-' -f2`
|
||||||
|
LAST_VERSION=`echo $LAST_DEBIAN_PACKAGE_VERSION | cut -d '-' -f1`
|
||||||
|
|
||||||
|
# Find and increment Debian version number
|
||||||
|
if [ "$LAST_VERSION" = "$VERSION" ]; then
|
||||||
|
INC_VERSION=$(($LAST_DEBIAN_INC + 1))
|
||||||
|
else
|
||||||
|
INC_VERSION=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PACKAGE_VERSION="$VERSION-$INC_VERSION"
|
||||||
|
|
||||||
|
echo "+ Generating sdist ..."
|
||||||
|
git checkout master
|
||||||
|
python setup.py sdist --formats=bztar
|
||||||
|
|
||||||
|
echo "+ Prepararing debian build ($PACKAGE_NAME $PACKAGE_VERSION) ..."
|
||||||
|
git checkout debian
|
||||||
|
mkdir -p $BUILD_DIR
|
||||||
|
echo $GIT_PROJECT_PATH/dist/$PROJECT_NAME-$VERSION.tar.bz2
|
||||||
|
mv $GIT_PROJECT_PATH/dist/$PROJECT_NAME-$VERSION.tar.bz2 /var/tmp/$PROJECT_NAME/${PACKAGE_NAME}_${VERSION}.orig.tar.bz2
|
||||||
|
cd $BUILD_DIR
|
||||||
|
tar xfvj ${PACKAGE_NAME}_${VERSION}.orig.tar.bz2
|
||||||
|
cp -r $GIT_PROJECT_PATH/debian $BUILD_DIR/$PROJECT_NAME-$VERSION
|
||||||
|
cd $PROJECT_NAME-$VERSION
|
||||||
|
|
||||||
|
echo """${PACKAGE_NAME} (${PACKAGE_VERSION}) ${DIST}; urgency=low
|
||||||
|
|
||||||
|
* Automatic version : commit ${COMMIT_NUMBER}
|
||||||
|
|
||||||
|
-- Jérôme Schneider <info@entrouvert.com> `date -R`
|
||||||
|
"" " > debian/new_changelog
|
||||||
|
|
||||||
|
cat debian/changelog >> debian/new_changelog
|
||||||
|
mv debian/new_changelog debian/changelog
|
||||||
|
|
||||||
|
|
||||||
|
echo "+ Building package ..."
|
||||||
|
if [ ! -d $PBUILDER_PROJECT_RESULT ]; then
|
||||||
|
mkdir -p $PBUILDER_PROJECT_RESULT
|
||||||
|
fi
|
||||||
|
|
||||||
|
DIST=$DIST ARCH=$ARCH pdebuild
|
||||||
|
|
||||||
|
echo "+ Commit changelog"
|
||||||
|
cd $GIT_PROJECT_PATH
|
||||||
|
git checkout debian
|
||||||
|
git commit debian/changelog -m 'Automatic: new debian package'
|
||||||
|
|
||||||
|
echo "+ Sending package ..."
|
||||||
|
cd $PBUILDER_PROJECT_RESULT
|
||||||
|
dput -u $DIST-experimental ${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCH}.changes
|
||||||
|
|
||||||
|
echo "+ Cleanning ..."
|
||||||
|
if [ "$PROJECT_NAME" ]; then
|
||||||
|
rm -rf $BUILD_DIR
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,120 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
USAGE="""Usage: $0 GIT_REPOSITORY_NAME DISTRIBUTION [ARCHITECTURE]\n
|
||||||
|
\n
|
||||||
|
GIT_REPOSITORY_NAME: respository name without .git\n
|
||||||
|
DISTRIBUTION: Debian distroibution like : squeeze, wheezy, ...\n
|
||||||
|
ARCHITECTURE: amd64 or i368 (Default: amd64)"""
|
||||||
|
|
||||||
|
GIT_REPOSITORY_URL="git+ssh://git@repos.entrouvert.org"
|
||||||
|
GIT_PATH="/var/lib/eobuilder/git"
|
||||||
|
PBUILDER_RESULT="/var/lib/eobuilder/results"
|
||||||
|
|
||||||
|
|
||||||
|
error()
|
||||||
|
{
|
||||||
|
echo $1 >& 2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -lt 2 ]; then
|
||||||
|
error "$USAGE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(whoami)" != "eobuilder" ]; then
|
||||||
|
error "You must run be eobuilder to launch this script"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
GIT_NAME=$1
|
||||||
|
DIST=$2
|
||||||
|
if [ "$3" ]; then
|
||||||
|
ARCH=$3
|
||||||
|
else
|
||||||
|
ARCH="amd64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $GIT_PATH ]; then
|
||||||
|
mkdir $GIT_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
PBUILDER_PROJECT_RESULT="${PBUILDER_RESULT}/${DIST}-${ARCH}/"
|
||||||
|
PROJECT_NAME=$GIT_NAME
|
||||||
|
BUILD_DIR="/var/tmp/$PROJECT_NAME"
|
||||||
|
GIT_PROJECT_PATH="$GIT_PATH/$GIT_NAME"
|
||||||
|
|
||||||
|
echo "+ Cloning git repository"
|
||||||
|
if [ ! -d $GIT_PROJECT_PATH ]; then
|
||||||
|
echo "+ git clone $GIT_REPOSITORY_URL/$GIT_NAME.git"
|
||||||
|
cd $GIT_PATH
|
||||||
|
git clone $GIT_REPOSITORY_URL/$GIT_NAME.git
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "+ Updating git repository and parsing configuration ..."
|
||||||
|
cd $GIT_PROJECT_PATH
|
||||||
|
git checkout master
|
||||||
|
git pull
|
||||||
|
VERSION=`git describe | tr - . | sed 's/^v//'`
|
||||||
|
COMMIT_NUMBER=`git log -n1 | grep 'commit' | sed 's/commit\s*//'`
|
||||||
|
|
||||||
|
git checkout debian
|
||||||
|
PACKAGE_NAME=`cat debian/control | sed 's/^Source\s*:\s*//; t; d'`
|
||||||
|
LAST_DEBIAN_PACKAGE_VERSION=`dpkg-parsechangelog | sed 's/^Version: //; t; d'`
|
||||||
|
LAST_DEBIAN_INC=`echo $LAST_DEBIAN_PACKAGE_VERSION | cut -d '-' -f2`
|
||||||
|
LAST_VERSION=`echo $LAST_DEBIAN_PACKAGE_VERSION | cut -d '-' -f1`
|
||||||
|
|
||||||
|
# Find and increment Debian version number
|
||||||
|
if [ "$LAST_VERSION" = "$VERSION" ]; then
|
||||||
|
INC_VERSION=$(($LAST_DEBIAN_INC + 1))
|
||||||
|
else
|
||||||
|
INC_VERSION=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PACKAGE_VERSION="$VERSION-$INC_VERSION"
|
||||||
|
|
||||||
|
echo "+ Generating sdist ..."
|
||||||
|
git checkout master
|
||||||
|
python setup.py sdist --formats=bztar
|
||||||
|
|
||||||
|
echo "+ Prepararing debian build ($PACKAGE_NAME $PACKAGE_VERSION) ..."
|
||||||
|
git checkout debian
|
||||||
|
mkdir -p $BUILD_DIR
|
||||||
|
echo $GIT_PROJECT_PATH/dist/$PROJECT_NAME-$VERSION.tar.bz2
|
||||||
|
mv $GIT_PROJECT_PATH/dist/$PROJECT_NAME-$VERSION.tar.bz2 /var/tmp/$PROJECT_NAME/${PACKAGE_NAME}_${VERSION}.orig.tar.bz2
|
||||||
|
cd $BUILD_DIR
|
||||||
|
tar xfvj ${PACKAGE_NAME}_${VERSION}.orig.tar.bz2
|
||||||
|
cp -r $GIT_PROJECT_PATH/debian $BUILD_DIR/$PROJECT_NAME-$VERSION
|
||||||
|
cd $PROJECT_NAME-$VERSION
|
||||||
|
|
||||||
|
echo """${PACKAGE_NAME} (${PACKAGE_VERSION}) ${DIST}; urgency=low
|
||||||
|
|
||||||
|
* Automatic version : commit ${COMMIT_NUMBER}
|
||||||
|
|
||||||
|
-- Jérôme Schneider <info@entrouvert.com> `date -R`
|
||||||
|
"" " > debian/new_changelog
|
||||||
|
|
||||||
|
cat debian/changelog >> debian/new_changelog
|
||||||
|
mv debian/new_changelog debian/changelog
|
||||||
|
|
||||||
|
|
||||||
|
echo "+ Building package ..."
|
||||||
|
if [ ! -d $PBUILDER_PROJECT_RESULT ]; then
|
||||||
|
mkdir -p $PBUILDER_PROJECT_RESULT
|
||||||
|
fi
|
||||||
|
pdebuild
|
||||||
|
|
||||||
|
echo "+ Commit changelog"
|
||||||
|
cd $GIT_PROJECT_PATH
|
||||||
|
git checkout debian
|
||||||
|
git commit debian/changelog -m 'Automatic: new debian package'
|
||||||
|
|
||||||
|
echo "+ Sending package ..."
|
||||||
|
cd $PBUILDER_PROJECT_RESULT
|
||||||
|
dput -u $DIST-experimental ${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCH}.changes
|
||||||
|
|
||||||
|
echo "+ Cleanning ..."
|
||||||
|
if [ "$PROJECT_NAME" ]; then
|
||||||
|
rm -rf $BUILD_DIR
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[core]
|
||||||
|
excludesfile = "/var/lib/eobuilder/.gitignore"
|
||||||
|
|
||||||
|
[user]
|
||||||
|
name = EO builder bot
|
||||||
|
email = admin@entrouvert.com
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
# Codenames for Debian suites according to their alias. Update these when
|
||||||
|
# needed.
|
||||||
|
UNSTABLE_CODENAME="sid"
|
||||||
|
TESTING_CODENAME="jessie"
|
||||||
|
STABLE_CODENAME="wheezy"
|
||||||
|
OLDSTABLE_CODENAME="squeeze"
|
||||||
|
STABLE_BACKPORTS_SUITE="$STABLE_CODENAME-backports"
|
||||||
|
|
||||||
|
# Use cowbuilder
|
||||||
|
PDEBUILD_PBUILDER="cowbuilder"
|
||||||
|
|
||||||
|
# List of Debian suites.
|
||||||
|
DEBIAN_SUITES=($UNSTABLE_CODENAME $TESTING_CODENAME $STABLE_CODENAME $OLDSTABLE_CODENAME
|
||||||
|
"unstable" "testing" "stable" "oldstable")
|
||||||
|
|
||||||
|
# List of Ubuntu suites. Update these when needed.
|
||||||
|
UBUNTU_SUITES=("natty" "maverick" "lucid" "karmic" "jaunty" "hardy")
|
||||||
|
|
||||||
|
# Mirrors to use. Update these to your preferred mirror.
|
||||||
|
MIRRORSITE=http://ftp.fr.debian.org/debian
|
||||||
|
DEBIAN_MIRROR="ftp.fr.debian.org"
|
||||||
|
UBUNTU_MIRROR="ftp.ubuntu.com"
|
||||||
|
|
||||||
|
# Optionally use the changelog of a package to determine the suite to use if
|
||||||
|
# none set.
|
||||||
|
if [ -z "${DIST}" ] && [ -r "debian/changelog" ]; then
|
||||||
|
DIST=$(dpkg-parsechangelog | awk '/^Distribution: / {print $2}')
|
||||||
|
# Use the unstable suite for certain suite values.
|
||||||
|
if $(echo "experimental UNRELEASED" | grep -q $DIST); then
|
||||||
|
DIST="$UNSTABLE_CODENAME"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Optionally set a default distribution if none is used. Note that you can set
|
||||||
|
# your own default (i.e. ${DIST:="unstable"}).
|
||||||
|
: ${DIST:="$(lsb_release --short --codename)"}
|
||||||
|
|
||||||
|
# Optionally change Debian release states in $DIST to their names.
|
||||||
|
case "$DIST" in
|
||||||
|
unstable)
|
||||||
|
DIST="$UNSTABLE_CODENAME"
|
||||||
|
;;
|
||||||
|
testing)
|
||||||
|
DIST="$TESTING_CODENAME"
|
||||||
|
;;
|
||||||
|
stable)
|
||||||
|
DIST="$STABLE_CODENAME"
|
||||||
|
;;
|
||||||
|
oldstable)
|
||||||
|
DIST="$OLDSTABLE_CODENAME"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Optionally set the architecture to the host architecture if none set. Note
|
||||||
|
# that you can set your own default (i.e. ${ARCH:="i386"}).
|
||||||
|
: ${ARCH:="$(dpkg --print-architecture)"}
|
||||||
|
|
||||||
|
NAME="$DIST"
|
||||||
|
if [ -n "${ARCH}" ]; then
|
||||||
|
NAME="$NAME-$ARCH"
|
||||||
|
DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}")
|
||||||
|
fi
|
||||||
|
#BASETGZ="/var/cache/pbuilder/$NAME-base.tgz"
|
||||||
|
# Optionally, set BASEPATH (and not BASETGZ) if using cowbuilder
|
||||||
|
BASEPATH="/var/cache/pbuilder/$NAME/base.cow/"
|
||||||
|
DISTRIBUTION="$DIST"
|
||||||
|
BUILDRESULT="/var/lib/eobuilder/results/$NAME/"
|
||||||
|
APTCACHE="/var/cache/pbuilder/$NAME/aptcache/"
|
||||||
|
BUILDPLACE="/var/cache/pbuilder/build"
|
||||||
|
|
||||||
|
|
||||||
|
BUILDUSERNAME="eobuilder"
|
||||||
|
|
||||||
|
OTHERMIRROR="deb http://$DEBIAN_MIRROR/debian $DIST-backports main | deb http://deb.entrouvert.org/ $DIST-experimental main"
|
||||||
|
|
||||||
|
if $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then
|
||||||
|
# Debian configuration
|
||||||
|
MIRRORSITE="http://$DEBIAN_MIRROR/debian/"
|
||||||
|
COMPONENTS="main contrib non-free"
|
||||||
|
DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/debian-archive-keyring.gpg")
|
||||||
|
|
||||||
|
elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then
|
||||||
|
# Ubuntu configuration
|
||||||
|
MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/"
|
||||||
|
COMPONENTS="main restricted universe multiverse"
|
||||||
|
DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg")
|
||||||
|
else
|
||||||
|
echo "Unknown distribution: $DIST"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in New Issue