2020/11/14 08:05 1/3 Install sbuild + initial setup
This setup was guided by the following page: http://wiki.debian.org/sbuild?rev=19
(Since then, that Debian wiki page evolved, update my be need on our side…)
Install sbuild + initial setup
apt-get install sbuild
user=neyron
sbuild-adduser $user
# this needs "entropy"... Do weird things and think different, waiting for it to complete... sbuild-update --keygen
# share the deb archives among schroots... echo /var/cache/apt/archives /var/cache/apt/archives none rw,bind 0 0 >>/etc/schroot/sbuild/fstab
# create a fake disk and format it as btrfs (btrfs is still experimental...) dd if=/dev/zero of=/home/schroot-btrfs bs=1M count=1 seek=$((20 * 1024 -1 )) losetup /dev/loop0 schroot-btrfs mkfs.btrfs /dev/loop0 losetup -d /dev/loop0
# setup the mount of our btrfs disk in /src/chroot mkdir -p /srv/chroot cat <
Create a schroot
# set the Debian distribution: sid, wheezy, squeeze... distribution=sid # set the architecture: amd64, i386... architecture=amd64 # set the debian mirror to use mirror=http://ftp2.fr.debian.org/debian
# create the sub-volume for this schroot btrfs subvolume create /srv/chroot/$distribution-$architecture-sbuild
# create the schroot
OAR - https://kameleon.imag.fr/ Last update: 2020/09/28 15:30 wiki:sbuild-debian https://kameleon.imag.fr/wiki:sbuild-debian
sbuild-createchroot --arch=$architecture $distribution /srv/chroot/$distribution-$architecture-sbuild $mirror
# modify the schroot config to say it's btrfs ! mkdir -p /srv/chroot/snapshots sed -i "s,type=directory,type=btrfs-snapshot,; /directory=/ d" /etc/schroot/chroot.d/$distribution-$architecture-sbuild* cat >>/etc/schroot/chroot.d/$distribution-$architecture-sbuild* < # example of result: cat /etc/schroot/chroot.d/sid-amd64-sbuild-9MUbaK [sid-amd64-sbuild] type=btrfs-snapshot description=Debian sid/amd64 autobuilder groups=root,sbuild root-groups=root,sbuild profile=sbuild btrfs-source-subvolume=/srv/chroot/sid-amd64-sbuild btrfs-snapshot-directory=/srv/chroot/snapshots source-root-groups=root,sbuild,admin Create a schroot for crossbuilding for another arch First install the latest version of qemu_user_static (e.g. from sid). # set the Debian distribution: buster (sid does not work) distribution=buster # set the architecture: amd64, i386... architecture=arm64 #or ppc64el # set the debian mirror to use mirror=http://ftp2.fr.debian.org/debian # create the sub-volume for this schroot btrfs subvolume create /srv/chroot/$distribution-$architecture-sbuild sbuild-createchroot --debootstrap=qemu-debootstrap --arch=$architecture $distribution /srv/chroot/$distribution-$architecture-sbuild $mirror Then see above to finish (switch to btrfs…). In case of problems, hopefully this page may help: https://danielstender.com/blog/qemu-ppc64el-trouble/ (vanished) https://web.archive.org/web/20161119015128/http://www.danielstender.com/blog/qemu-ppc64 el-trouble.html (archive) https://kameleon.imag.fr/ Printed on 2020/11/14 08:05 2020/11/14 08:05 3/3 Install sbuild + initial setup Using the schroots! See your schroot: schroot -c chroot:* are stateless chroot, everything is lost once a session is ended source:* are the bases for the chroot, modification (upgrades, etc) are persistant see schroot manual Using sbuild sbuild is to build Debian packages. See debian packaging. Examples: # build a package in a schroot sbuild -As -d sid --arch amd64 oar_2.5.3-1.dsc # upgrade a schroot sbuild-update -ugd sid More info: see sbuild manual From: https://kameleon.imag.fr/ - OAR Permanent link: https://kameleon.imag.fr/wiki:sbuild-debian Last update: 2020/09/28 15:30 OAR - https://kameleon.imag.fr/