4535
Comment: use variable
|
4629
use the previously defined versions
|
Deletions are marked like this. | Additions are marked like this. |
Line 26: | Line 26: |
chown -R buildd. /srv/chroot/$distribution | chown -R buildd. /srv/chroot/$distribution-$architecture-sbuild |
Line 48: | Line 48: |
sbuild-createchroot --keyring=/etc/apt/trusted.gpg --arch=$arch $dist /srv/chroot/$dist-$arch-sbuild $mirror | mirror=http://ftp.us.debian.org/debian/ sbuild-createchroot --keyring=/etc/apt/trusted.gpg --arch=$architecture $distribution /srv/chroot/$distribution-$architecture-sbuild $mirror |
This is a step by step tutorial about Build services setup for 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.
distribution=wheezy architecture=amd64 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
[wheezy] description=Debian wheezy (testing) directory=/srv/chroot/$distribution-$architecture-sbuild users=buildd groups=buildd root-groups=buildd aliases=testing,default
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 mirror=http://ftp.us.debian.org/debian/ 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 (change <distribution> to the name of the distribution you're going to build for).
usersfile=/srv/chroot/<distribution>/root/users 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> /root/users 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:
/var/lib/buildd/build/SBUILD-GIVEN-BACK
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: wheezy 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: wheezy wheezy-backports Cleanup: on_deny on_error
Create and edit options conf file:
vim options
verbose ask-passphrase basedir .
Create and edit uploaders conf file:
vim uploaders
allow * by unsigned
Then create some other files
cd ../indices touch override.wheezy.main touch override.wheezy.main.debian-installer touch override.wheezy.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 wheezy <deb filename> reprepro includedsc wheezy <dsc filename>
Example:
reprepro includedeb wheezy openssh-client_5.9p1-5_amd64.deb reprepro includedsc wheezy eglibc_2.13-32.dsc