|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# general options
|
|
|
|
BUILDPLACE="/var/cache/pbuilder/build/"
|
|
|
|
USEPROC=yes
|
|
|
|
USEDEVPTS=yes
|
|
|
|
USEDEVFS=no
|
|
|
|
|
|
|
|
# the username and ID used by pbuilder, inside chroot. Needs fakeroot, really
|
|
|
|
BUILDUSERID=1234
|
|
|
|
BUILDUSERNAME=pbuilder
|
|
|
|
|
|
|
|
# make debconf not interact with user
|
|
|
|
export DEBIAN_FRONTEND="noninteractive"
|
|
|
|
DEBEMAIL=""
|
|
|
|
|
|
|
|
# for pbuilder debuild (sudo -E keeps the environment as-is)
|
|
|
|
BUILDSOURCEROOTCMD="fakeroot"
|
|
|
|
PBUILDERROOTCMD="sudo -E"
|
|
|
|
|
|
|
|
# this is necessary for running 'apt-ftparchive' in a hook script if required
|
|
|
|
EXTRAPACKAGES="$EXTRAPACKAGES apt-utils"
|
|
|
|
|
|
|
|
#APT configuration files directory
|
|
|
|
APTCONFDIR=""
|
|
|
|
|
|
|
|
# Set the PATH to be used inside pbuilder
|
|
|
|
export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
|
|
|
|
# Shell to be used inside pbuilder by commands like 'su'
|
|
|
|
export SHELL=/bin/bash
|
|
|
|
|
|
|
|
# default PKGNAME_LOGFILE
|
|
|
|
PKGNAME_LOGFILE="__build__.log"
|
|
|
|
|
|
|
|
#-- get desired distribution and architecture
|
|
|
|
DISTRIBUTION="$DISTRO_NAME"
|
|
|
|
[[ "$DISTRO" = "" ]] && DISTRO=$(lsb_release -is | sed -e 's/\(.*\)/\L\1/')
|
|
|
|
[[ "$DISTRIBUTION" = "" ]] && DISTRIBUTION=$(lsb_release -cs | sed -e 's/\(.*\)/\L\1/')
|
|
|
|
[[ "$ARCHITECTURE" = "" ]] && ARCHITECTURE=$(dpkg --print-architecture)
|
|
|
|
|
|
|
|
BASETGZ="/var/cache/pbuilder/base-$DISTRIBUTION@$ARCHITECTURE.tgz"
|
|
|
|
|
|
|
|
#-- select apt components
|
|
|
|
case "$DISTRIBUTION" in
|
|
|
|
# debian
|
|
|
|
jessie)
|
|
|
|
if [[ "$DISTRO" = "devuan" ]]; then
|
|
|
|
COMPONENTS="main"
|
|
|
|
DEBOOTSTRAPOPTS=(--variant=buildd --no-check-gpg)
|
|
|
|
EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring"
|
|
|
|
else
|
|
|
|
COMPONENTS="main contrib non-free"
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
sid|bullseye|buster|stretch|wheezy)
|
|
|
|
COMPONENTS="main contrib non-free"
|
|
|
|
;;
|
|
|
|
|
|
|
|
# devuan
|
|
|
|
ceres|chimaera|beowulf|ascii)
|
|
|
|
COMPONENTS="main"
|
|
|
|
DEBOOTSTRAPOPTS=(--variant=buildd --no-check-gpg)
|
|
|
|
EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring"
|
|
|
|
;;
|
|
|
|
|
|
|
|
# ubuntu
|
|
|
|
groovy|focal|eoan|disco|bionic|xenial|trusty)
|
|
|
|
COMPONENTS="main restricted universe multiverse"
|
|
|
|
DEBOOTSTRAPOPTS=(--variant=buildd)
|
|
|
|
;;
|
|
|
|
|
|
|
|
# raspbian
|
|
|
|
raspbian-bullseye|raspbian-buster|raspbian-stretch|raspbian-jessie)
|
|
|
|
COMPONENTS="main contrib non-free"
|
|
|
|
DEBOOTSTRAPOPTS=(--variant=buildd --no-check-gpg)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
EXTRAPACKAGES="$EXTRAPACKAGES fakeroot apt-transport-https ca-certificates"
|
|
|
|
|
|
|
|
#-- select base apt sources
|
|
|
|
case "$DISTRIBUTION" in
|
|
|
|
# debian
|
|
|
|
sid|bullseye|buster|stretch)
|
|
|
|
MIRRORSITE=http://deb.debian.org/debian
|
|
|
|
;;
|
|
|
|
|
|
|
|
jessie)
|
|
|
|
if [[ "$DISTRO" = "devuan" ]]; then
|
|
|
|
MIRRORSITE=http://auto.mirror.devuan.org/merged
|
|
|
|
else
|
|
|
|
MIRRORSITE=http://deb.debian.org/debian
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
wheezy)
|
|
|
|
MIRRORSITE=http://archive.debian.org/debian
|
|
|
|
;;
|
|
|
|
|
|
|
|
# devuan
|
|
|
|
ceres|chimaera|beowulf|ascii)
|
|
|
|
MIRRORSITE=http://auto.mirror.devuan.org/merged
|
|
|
|
;;
|
|
|
|
|
|
|
|
# ubuntu
|
|
|
|
groovy|focal|eoan|disco|bionic|xenial|trusty)
|
|
|
|
if [ "$ARCHITECTURE" = "amd64" ] || [ "$ARCHITECTURE" = "i386" ]; then
|
|
|
|
MIRRORSITE=http://archive.ubuntu.com/ubuntu
|
|
|
|
else
|
|
|
|
MIRRORSITE=http://ports.ubuntu.com
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
# raspbian
|
|
|
|
raspbian-bullseye|raspbian-buster|raspbian-stretch|raspbian-jessie)
|
|
|
|
MIRRORSITE=http://ftp.fi.muni.cz/pub/linux/raspbian/raspbian
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
if [ -n "${ARCHITECTURE}" ]; then
|
|
|
|
NAME="$NAME-$ARCHITECTURE"
|
|
|
|
DEBOOTSTRAPOPTS=("--arch" "$ARCHITECTURE" "${DEBOOTSTRAPOPTS[@]}")
|
|
|
|
fi
|
|
|
|
|
|
|
|
BUILDRESULT="/var/cache/pbuilder/$DISTRO-$DISTRIBUTION/result/"
|
|
|
|
|
|
|
|
APTCACHE="/var/cache/pbuilder/aptcache/$DISTRO-$DISTRIBUTION/"
|
|
|
|
if [ -n "$APTCACHE" ] && [ ! -d "$APTCACHE" ]; then
|
|
|
|
mkdir $APTCACHE
|
|
|
|
fi
|
|
|
|
if [ -z "$(stat -L --print "%d\n" $APTCACHE/. /var/cache/pbuilder/build/. | uniq -d)" ]; then
|
|
|
|
# apt cache for build on tmpfs is managed by hook scripts
|
|
|
|
BINDMOUNTS="${BINDMOUNTS} ${APTCACHE}"
|
|
|
|
APTCACHEHARDLINK=no
|
|
|
|
APTCACHE=""
|
|
|
|
fi
|
|
|
|
|
|
|
|
#-- extra options
|
|
|
|
DEBBUILDOPTS="-b"
|
|
|
|
|
|
|
|
if [ -z "$DEB_SIGN_KEYID" ]; then
|
|
|
|
AUTO_DEBSIGN=${AUTO_DEBSIGN:-no}
|
|
|
|
fi
|
|
|
|
|
|
|
|
#-- choose dependency solver
|
|
|
|
#-- apt is better if target distribution contains apt >= 1.4~beta3
|
|
|
|
#-- aptitude is better if target distribution contains apt < 1.4~beta3
|
|
|
|
case "$DISTRIBUTION" in
|
|
|
|
sid|bullseye|buster|stretch|\
|
|
|
|
ceres|chimaera|beowulf|ascii|\
|
|
|
|
raspbian-bullseye|raspbian-buster|raspbian-stretch|\
|
|
|
|
groovy|focal|eoan|disco|bionic)
|
|
|
|
PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-apt"
|
|
|
|
;;
|
|
|
|
|
|
|
|
jessie|wheezy|\
|
|
|
|
raspbian-jessie|\
|
|
|
|
xenial|trusty)
|
|
|
|
PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-aptitude"
|
|
|
|
;;
|
|
|
|
esac
|