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='*'"