Main | Debian Package Building   


Building Debian packages with Cowbuilder

# Creating a new cowbuilder chroot
mkdir /deb-chroots
mkdir /deb-chroots/cow-result
cowbuilder --create --distribution sid --architecture amd64 --basepath /deb-chroots/amd64-sid-base.cow/

# Build source Debian package to prepare to build with cowbuilder
debuild -S -us -uc

# Build Debian package using cowbuilder
cowbuilder --build dcc_1.3.42-5.dsc --basepath /deb-chroots/amd64-sid-base.cow/ --buildresult /deb-chroots/cow-result/

# Build Debian package using cowbuilder, but build binary packages only (do this for additional architectures)
cowbuilder --build dcc_1.3.42-5.dsc --debbuildopts="-b" --basepath /deb-chroots/i386-sid-base.cow/ --buildresult /deb-chroots/cow-result/

# Creating a new cowbuilder chroot but with a foreign architecture (building is as normal)
# Note: requires installing qemu-user-static
cowbuilder --create --basepath /deb-chroots/armf-wheezy-base.cow \
--distribution wheezy --extrapackages eatmydata --architecture armhf \
--debootstrap qemu-debootstrap --debootstrapopts --variant=buildd

Building with sbuild

# Create new sbuild schroot
sbuild-createchroot --arch amd64 sid /deb-chroots/amd64-sid-base.sbuild http://ftp.uni-kl.de/debian/
#Note: this then seems to get referred to via "--chroot=sid-amd64-sbuild"

# Create new sbuild schroot, but to a tarball
sbuild-createchroot --make-sbuild-tarball=/deb-chroots/amd64-sid-sbuild.tar.gz sid `mktemp -d` http://mirror.dc15.debconf.org/debian
# Edit /etc/schroot/chroot.d/sid-amd64-sbuild-5NRQPX to contain:
[sid-amd64-sbuild]
type=file
description=Debian sid/amd64 autobuilder
file=/deb-chroots/amd64-sid-sbuild.tar.gz
source-root-groups=root,sbuild
groups=root,sbuild
root-groups=root,sbuild
profile=sbuild

# Update the schroot manually (usually not necessary?)
sbuild-update --upgrade sid-amd64-sbuild

# Build Debian package using sbuild
time nice sbuild --arch=amd64 --dist=sid --chroot=sid-amd64-sbuild avahi_0.6.31-5.dsc

Preparing upload

debsign dcc-1.3.42-5_amd64.changes
changestool dcc-1.3.42-5_amd64.changes updatechecksums
reprepro includedsc sid dcc_1.3.42-5.dsc
reprepro include sid dcc-1.3.42-5_amd64.changes

# Check to make sure package got added to reprepro repository
reprepro list sid

August 21, 2015, at 09:47 AM