#!/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
BUILDSOURCEROOTCMD=""
BUILDUSERNAME=""
BUILDUSERID=""


# 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
	sid|bookwork|bullseye|buster|stretch)
		COMPONENTS="main contrib non-free"
		;;

  # devuan
	ceres|daedalus|chimaera|beowulf|ascii)
		COMPONENTS="main"
		DEBOOTSTRAPOPTS=(--variant=buildd --no-check-gpg)
		EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring"
		;;

  # ubuntu
	kinetic|jammy|impish|hirsute|focal|bionic|xenial)
		COMPONENTS="main restricted universe multiverse"
		DEBOOTSTRAPOPTS=(--variant=buildd)
		;;

  # raspbian
	raspbian-bookworm|raspbian-bullseye|raspbian-buster|raspbian-stretch)
		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|bookwork|bullseye|buster|stretch)
		MIRRORSITE=http://deb.debian.org/debian
		;;

  # devuan
	ceres|daedalus|chimaera|beowulf|ascii)
		MIRRORSITE=http://auto.mirror.devuan.org/merged
		;;

  # ubuntu
	kinetic|jammy|impish|hirsute|focal|bionic|xenial)
		if [ "$ARCHITECTURE" = "amd64" ] || [ "$ARCHITECTURE" = "i386" ]; then
			MIRRORSITE=http://archive.ubuntu.com/ubuntu
		else
			MIRRORSITE=http://ports.ubuntu.com
		fi
		;;

  # raspbian
	raspbian-bookworm|raspbian-bullseye|raspbian-buster|raspbian-stretch)
		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|bookwork|bullseye|buster|stretch|\
  ceres|daedalus|chimaera|beowulf|ascii|\
  raspbian-bookworm|raspbian-bullseye|raspbian-buster|raspbian-stretch|\
	kinetic|jammy|impish|hirsute|focal|bionic)
    PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-apt"
    ;;

  xenial)
    PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-aptitude"
    ;;
esac

