Differences between revisions 27 and 28
Revision 27 as of 2012-07-20 16:08:05
Size: 4692
Editor: ?Sylvestre Ledru
Revision 28 as of 2012-07-20 16:10:27
Size: 4680
Editor: ?Sylvestre Ledru
Deletions are marked like this. Additions are marked like this.
Line 178: Line 178:
reprepro includedeb wheezy <deb filename>
reprepro includedsc wheezy <dsc filename>
reprepro includedeb sid <deb filename>
reprepro includedsc sid <dsc filename>
Line 184: Line 184:
reprepro includedeb wheezy openssh-client_5.9p1-5_amd64.deb
reprepro includedsc wheezy eglibc_2.13-32.dsc
reprepro includedeb sid openssh-client_5.9p1-5_amd64.deb
reprepro includedsc sid eglibc_2.13-32.dsc

This is a step by step tutorial about Build services setup for Wanna-build.

Translation(s): none

(!) ?Discussion

This tutorial follows the installation of Wanna Build.

Setup Buildd and Sbuild

Install of buildd

0. Installing sbuild In order to build packages, buildd uses sbuild so the first thing we're going to do is install sbuild and its dependencies.

apt-get install sbuild schroot debootstrap buildd

sbuild uses schroot to build packages. We'll create a directory for it and configure sbuild to use it.


mkdir -p /srv/chroot/$distribution-$architecture-sbuild
debootstrap $distribution /srv/chroot/$distribution-$architecture-sbuild
chown -R buildd. /srv/chroot/$distribution-$architecture-sbuild

Lets configure the chroot:

vim /etc/schroot/schroot.conf

echo "
description=Debian sid (unstable)
" >> /etc/schroot/schroot.conf

Configuring sbuild is explained here: http://wiki.debian.org/sbuild

vim /etc/sbuild/sbuild.conf

# Need at least sbuild v0.60.6
sbuild-update --keygen
sbuild-createchroot --keyring=/etc/apt/trusted.gpg --arch=$architecture $distribution /srv/chroot/$distribution-$architecture-sbuild $mirror

vim /etc/fstab
mount -a

We'll now configure the schroot environment. We'll create two users and edit the sources.list file.

echo "#\!/bin/sh" > "$usersfile"
echo "groupadd -g $(id -g buildd) buildd" >> "$usersfile"
echo "useradd -u $(id -u buildd) -g $(id -g buildd) buildd" >> "$usersfile"
echo "groupadd -g $(id -g sbuild) sbuild" >> "$usersfile"
echo "useradd -u $(id -u sbuild) -g $(id -g sbuild) sbuild" >> "$usersfile"
chmod a+x "$usersfile"

chroot /srv/chroot/$distribution-$architecture-sbuild/
vim /etc/apt/sources.list

1. Disabling sbuild environment filters

vim /usr/share/perl5/Sbuild/Chroot.pm 

2. Install buildd and sudo

apt-get install buildd sudo

3. Patching buildd # patch buildd.patch

This file:


contains packages that will be skipped because the've already failed. There are cases in which you may want to edit or delete it.

Entropy tip If while generating gpg-key there's not enough entropy, here's a command that can be useful for generating entropy:

find /usr /var /tmp /opt -type f -print0 | xargs -0 cat > /dev/null

Setup reprepro for local repository

0. Installing reprepro

apt-get install reprepro

1. Creating directories for the repository

mkdir -p /org/ftp.debian.org/ftp/apt/
cd /org/ftp.debian.org/ftp/apt/
mkdir conf dists incoming indices logs pool project

2. Configuring reprepro

cd /org/ftp.debian.org/ftp/apt/conf/
vim distributions

Origin: Alexander Pashaliyski
Label: Alexander Pashaliyski
Codename: sid
Architectures: i386 amd64 source
Components: main
Description: Alexander Pashaliyski APT Repository
SignWith: yes

Create and edit incoming conf file:

vim incoming

Name: default
IncomingDir: incoming
TempDir: /tmp
Allow: sid
Cleanup: on_deny on_error

Create and edit options conf file:

vim options

basedir .

Create and edit uploaders conf file:

vim uploaders

allow * by unsigned

Then create some other files

cd ../indices
touch override.sid.main
touch override.sid.main.debian-installer
touch override.sid.main.src
cd ..

3. Generating gpg key

gpg --gen-key

4. Export the repository

reprepro -vb /org/ftp.debian.org/ftp/apt export

5. Adding packages to the repository To add a package to the repository, use one of these commands (replace <...> with the name of your package):

reprepro includedeb sid <deb filename>
reprepro includedsc sid <dsc filename>


reprepro includedeb sid openssh-client_5.9p1-5_amd64.deb
reprepro includedsc sid eglibc_2.13-32.dsc