diff --git a/020_pbuilder.sh b/020_pbuilder.sh new file mode 100644 index 0000000..6550699 --- /dev/null +++ b/020_pbuilder.sh @@ -0,0 +1,167 @@ +apt-get install -y cowbuilder dh-golang ccache + +DIST=ascii +DIST=$(lsb_release --short --codename) +ARCH=$(dpkg --print-architecture) +echo "DIST: " "${DIST}" +echo "ARCH: " "${ARCH}" +DEP_DIR=/srv/pbuilder/deps +HOOK_DIR=/srv/pbuilder/hook.d + +mkdir -p ${DEP_DIR} +mkdir -p ${HOOK_DIR} + +# Should probably use a containerized reprepro FIXME +cat > /etc/pbuilderrc << 'EOF' +set -x +# this is your configuration file for pbuilder. +# the file in /usr/share/pbuilder/pbuilderrc is the default template. +# /etc/pbuilderrc is the one meant for overwriting defaults in +# the default template +# +# read pbuilderrc.5 document for notes on specific options. + +# Codenames for Debian suites according to their alias. Update these when +# needed. +UNSTABLE_CODENAME="sid" +TESTING_CODENAME="buster" +STABLE_CODENAME="stretch" +STABLE_BACKPORTS_SUITE="$STABLE_CODENAME-backports" + +UNSTABLE_DEVUAN="ceres" +TESTING_DEVUAN="beowulf" +STABLE_DEVUAN="ascii" +OLDSTABLE_DEVUAN="jessie" + +OLDSTABLE_BACKPORTS_DEVUAN="$OLDSTABLE_DEVUAN-backports" +OLDSTABLE_PROPOSED_BACKPORTS_DEVUAN="$OLDSTABLE_DEVUAN-proposed-backports" +OLDSTABLE_PROPOSED_SECURITY_DEVUAN="$OLDSTABLE_DEVUAN-propsed-security" +OLDSTABLE_PROPOSED_UPDATES_DEVUAN="$OLDSTABLE_DEVUAN-proposed-updates" +OLDSTABLE_PROPOSED_DEVUAN="$OLDSTABLE_DEVUAN-proposed" +OLDSTABLE_SECURITY_DEVUAN="$OLDSTABLE_DEVUAN-security" +OLDSTABLE_UPDATES_DEVUAN="$OLDSTABLE_DEVUAN-updates" + +STABLE_BACKPORTS_DEVUAN="$STABLE_DEVUAN-backports" +STABLE_PROPOSED_BACKPORTS_DEVUAN="$STABLE_DEVUAN-proposed-backports" +STABLE_PROPOSED_SECURITY_DEVUAN="$STABLE_DEVUAN-propsed-security" +STABLE_PROPOSED_UPDATES_DEVUAN="$STABLE_DEVUAN-proposed-updates" +STABLE_PROPOSED_DEVUAN="$STABLE_DEVUAN-proposed" +STABLE_SECURITY_DEVUAN="$STABLE_DEVUAN-security" +STABLE_UPDATES_DEVUAN="$STABLE_DEVUAN-updates" + +TESTING_PROPOSED_SECURITY_DEVUAN="$TESTING_DEVUAN-propsed-security" +TESTING_PROPOSED_UPDATES_DEVUAN="$TESTING_DEVUAN-proposed-updates" +TESTING_PROPOSED_DEVUAN="$TESTING_DEVUAN-proposed" +TESTING_SECURITY_DEVUAN="$TESTING_DEVUAN-security" +TESTING_UPDATES_DEVUAN="$TESTING_DEVUAN-updates" + +# List of Devuan suites. + +DEVUAN_SUITES=( +$UNSTABLE_DEVUAN +$TESTING_DEVUAN +$STABLE_DEVUAN + +$OLDSTABLE_BACKPORTS_DEVUAN +$OLDSTABLE_PROPOSED_BACKPORTS_DEVUAN +$OLDSTABLE_PROPOSED_SECURITY_DEVUAN +$OLDSTABLE_PROPOSED_UPDATES_DEVUAN +$OLDSTABLE_PROPOSED_DEVUAN +$OLDSTABLE_SECURITY_DEVUAN +$OLDSTABLE_UPDATES_DEVUAN + +$STABLE_BACKPORTS_DEVUAN +$STABLE_PROPOSED_BACKPORTS_DEVUAN +$STABLE_PROPOSED_SECURITY_DEVUAN +$STABLE_PROPOSED_UPDATES_DEVUAN +$STABLE_PROPOSED_DEVUAN +$STABLE_SECURITY_DEVUAN +$STABLE_UPDATES_DEVUAN + +$TESTING_PROPOSED_SECURITY_DEVUAN +$TESTING_PROPOSED_UPDATES_DEVUAN +$TESTING_PROPOSED_DEVUAN +$TESTING_SECURITY_DEVUAN +$TESTING_UPDATES_DEVUAN + "experimental" "unstable" "testing" "stable") + +# List of Debian suites. +DEBIAN_SUITES=($UNSTABLE_CODENAME $TESTING_CODENAME $STABLE_CODENAME $STABLE_BACKPORTS_SUITE + "experimental" "unstable" "testing" "stable") + +# List of Ubuntu suites. Update these when needed. +UBUNTU_SUITES=("xenial" "wily" "vivid" "utopic" "trusty") + +# Mirrors to use. Update these to your preferred mirror. +DEBIAN_MIRROR="deb.debian.org" +UBUNTU_MIRROR="mirrors.kernel.org" +DEVUAN_MIRROR="pkgmaster.devuan.org" + +# Optionally set a default distribution if none is used. Note that you can set +# your own default (i.e. ${DIST:="unstable"}). +#: ${DIST:="$(lsb_release --short --codename)"} +DIST="$(lsb_release --short --codename)" + +# Optionally set the architecture to the host architecture if none set. Note +# that you can set your own default (i.e. ${ARCH:="i386"}). +#: ${ARCH:="$(dpkg --print-architecture)"} +ARCH="$(dpkg --print-architecture)" + +echo "DIST: " "$DIST" +echo "ARCH: " "$ARCH" + +NAME="$DIST" +if [ -n "${ARCH}" ]; then + NAME="$NAME-$ARCH" + DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}") +fi + +BASETGZ="/var/cache/pbuilder/$NAME-base.tgz" +DISTRIBUTION="$DIST" +BUILDRESULT="/var/cache/pbuilder/$NAME/result/" +APTCACHE="/var/cache/pbuilder/$NAME/aptcache/" +BUILDPLACE="/var/cache/pbuilder/build/" +PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-gdebi" +CCACHEDIR=/var/cache/pbuilder/ccache + +echo "DIST: " "$DIST" +echo "ARCH: " "$ARCH" + +if $(echo ${DEVUAN_SUITES[@]} | grep -q $DIST); then + # Devuan configuration + MIRRORSITE="http://${DEVUAN_MIRROR}/merged/" + COMPONENTS="main contrib non-free" + +elif $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then + # Debian configuration + MIRRORSITE="http://$DEBIAN_MIRROR/debian/" + COMPONENTS="main contrib non-free" + if $(echo "$STABLE_CODENAME stable" | grep -q $DIST); then + OTHERMIRROR="$OTHERMIRROR | deb $MIRRORSITE $STABLE_BACKPORTS_SUITE $COMPONENTS" + fi + +elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then + # Ubuntu configuration + MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/" + COMPONENTS="main restricted universe multiverse" +else + echo "Unknown distribution: $DIST" + exit 1 +fi + +OTHERMIRROR="deb [trusted=yes] file:///srv/pbuilder/deps ./" +BINDMOUNTS=/srv/pbuilder/deps +HOOKDIR=/srv/pbuilder/hook.d +EXTRAPACKAGES="apt-utils" +EOF + +cat > ${HOOK_DIR}/D05deps << 'EOF' +#!/bin/bash +(cd /srv/pbuilder/deps; apt-ftparchive packages . > Packages) +apt-get update +EOF + +#Update cow image on changes above +#DIST=${DIST} ARCH=${ARCH} git-pbuilder create --override-config --mirror http://pkgmaster.devuan.org +DIST=${DIST} ARCH=${ARCH} git-pbuilder create +