Contents
Intro
This is *MY* setup, and how I use sbuild, git-buildpackage and so on. Feel free to re-use, as I wrote it to share with others, however, this is in no way a source of truth.
Install needed packages
apt-get install sbuild devscripts git-buildpackage quilt openstack-pkg-tools
Tweak build software options
Setup sbuild
sbuild-createchroot --include=eatmydata,ccache bullseye /var/lib/sbuild/bullseye http://mirror.infomaniak.com/debian
/etc/fstab
none /var/lib/schroot/session tmpfs uid=root,gid=root,mode=0755 0 0 none /var/lib/schroot/union/overlay tmpfs rw,nodev,nosuid,size=8G 0 0 none /var/lib/schroot/union/underlay tmpfs rw,nodev,nosuid,size=8G 0 0
~/.gbp.conf
[DEFAULT] #builder = sbuild --source-only-changes builder = sbuild --source-only-changes --extra-repository="deb http://bullseye-victoria.debian.net/debian bullseye-victoria-backports main" --extra-repository="deb http://bullseye-victoria.debian.net/debian bullseye-victoria-backports-nochange main" cleaner = /bin/true ignore-branch = True pristine-tar = False no-create-orig = True [buildpackage] export-dir = ../build-area/ [dch] git-log = --first-parent id-length = 7 meta = True meta-closes = Closes|LP full = True
~/.sbuildrc
$build_arch_all = 1;
$build_source = 1;
#$run_piuparts = 1;
$run_autopkgtest = 1;
$autopkgtest_root_args = '';
$autopkgtest_opts = [ '--apt-upgrade', '--', 'schroot', '%r-%a-sbuild', ];
# Build the image with:
# autopkgtest-build-qemu unstable autopkgtest-unstable.img
#$autopkgtest_opts = [ '--', 'autopkgtest-virt-qemu', '/home/zigo/autopkgtest-unstable.img' ];
#$ENV{'DEB_BUILD_OPTIONS'} = 'parallel=12';
#$distribution = 'bionic';
#$distribution = 'wheezy';
#$distribution = 'wheezy-backports';
#$distribution = 'jessie';
#$distribution = 'jessie-mitaka';
#$distribution = 'jessie-backports';
#$distribution = 'jessie-proposed-updates';
#$distribution = 'jessie-security';
#$distribution = 'stretch';
#$distribution = 'stretch-backports';
#$distribution = 'stretch-security';
#$distribution = 'stretch-proposed-updates';
$distribution = 'unstable';
#$distribution = 'bookworm';
#$distribution = 'bullseye';
#$distribution = 'bullseye-security';
#$distribution = 'bullseye-backports';
#$distribution = 'squeeze';
#$distribution = 'buster';
#$distribution = 'buster-security';
#$distribution = 'buster-backports';
#$piuparts_opts = ['--schroot', 'buster-amd64-sbuild'];
#$distribution = 'experimental';
#$distribution = 'trusty';
#$distribution = 'xenial';
#$distribution = 'artful';
#$distribution = 'hirsute';
$run_lintian = 1;
$key_id = 'A0B1A9F3508956130E7A425CD416AD15AC6B43FE';
# Don't sign packages:
#$pgp_options = '-us -uc';
$clean_source = 0;
### PUIPARTS STUFF ###
$run_piuparts = 0;
#$piuparts_opts = ['--schroot', 'unstable-amd64-sbuild', '--no-eatmydata'];
# This checks the clean target of a package build
$external_commands = {
"starting-build-commands" => [
'bash -c \'find %SBUILD_PKGBUILD_DIR -print0 |
sort -z |
while read -d $\'\\\'\'\0\'\\\'\' file; do
echo -n "$(stat -c "%n %F %%s" "${file}") "
if [ -f "${file}" ]; then
sha256sum "${file}" |
cut -d " " -f 1
else
echo
fi
done > /tmp/file-list.pre-build\'',
'sed -i \'s/directory 12288/directory 4096/\' /tmp/file-list.pre-build',
'sed -i \'s/directory 16384/directory 4096/\' /tmp/file-list.pre-build',
'sed -i \'s/directory 20480/directory 4096/\' /tmp/file-list.pre-build'
],
"chroot-cleanup-commands" => [
'cd %SBUILD_PKGBUILD_DIR && ./debian/rules clean',
'bash -c \'find %SBUILD_PKGBUILD_DIR -print0 |
sort -z |
while read -d $\'\\\'\'\0\'\\\'\' file; do
echo -n "$(stat -c "%n %F %%s" "${file}") "
if [ -f "${file}" ]; then
sha256sum "${file}" |
cut -d " " -f 1
else
echo
fi
done > /tmp/file-list.post-build\'',
'sed -i \'s/directory 12288/directory 4096/\' /tmp/file-list.post-build',
'sed -i \'s/directory 16384/directory 4096/\' /tmp/file-list.post-build',
'sed -i \'s/directory 20480/directory 4096/\' /tmp/file-list.post-build',
'diff -u /tmp/file-list.pre-build /tmp/file-list.post-build'
]
};
# Disable the above if the package doesn't clean properly and that's not fixable
$external_commands = {};
# don't remove this, Perl needs it:
1;
/etc/schroot/chroot.d/bullseye-amd64-sbuild-MaScMK
description=Debian bullseye/amd64 autobuilder groups=root,sbuild root-groups=root,sbuild profile=sbuild type=directory directory=/var/lib/sbuild/bullseye union-type=overlay command-prefix=/var/cache/ccache-sbuild/sbuild-setup,eatmydata
/var/cache/ccache-sbuild/sbuild-setup
export CCACHE_DIR=/var/cache/ccache-sbuild export CCACHE_UMASK=002 export CCACHE_COMPRESS=1 unset CCACHE_HARDLINK export PATH="/usr/lib/ccache:$PATH" exec "$@"
also should be in /var/lib/sbuild/unstable/var/cache/ccache-sbuild/sbuild-setup and must be chmod +x
~/.bashrc
export DEBFULLNAME="Thomas Goirand" export DEBEMAIL="zigo@debian.org" export DEBSIGN_KEYID='A0B1A9F3508956130E7A425CD416AD15AC6B43FE!' export DEB_SIGN_KEYID='A0B1A9F3508956130E7A425CD416AD15AC6B43FE!' export EMAIL="zigo@debian.org" export FROM="zigo@debian.org" export from="zigo@debian.org" export QUILT_PATCHES=debian/patches export SALSA_TOKEN=<YOUR-SALSA-TOKEN-HERE> alias debchk="debcheckout -a --git-track='*'"
