From 1da1d03f8d107bff644797131bc997476d22ecc1 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Fri, 5 Jan 2018 18:08:33 +0900 Subject: DEB build script: first commit, still work in progress although functional. Signed-off-by: Michele Calgaro --- .../additional files/user_home_folder/.pbuilderrc | 149 +++++++++++++++++++++ .../usr/lib/pbuilder/hooks/D05deps | 3 + .../usr/lib/pbuilder/hooks/__template_C10shell | 7 + 3 files changed, 159 insertions(+) create mode 100644 debian/_buildscripts/local/scripts/additional files/user_home_folder/.pbuilderrc create mode 100755 debian/_buildscripts/local/scripts/additional files/usr/lib/pbuilder/hooks/D05deps create mode 100755 debian/_buildscripts/local/scripts/additional files/usr/lib/pbuilder/hooks/__template_C10shell (limited to 'debian/_buildscripts/local/scripts/additional files') diff --git a/debian/_buildscripts/local/scripts/additional files/user_home_folder/.pbuilderrc b/debian/_buildscripts/local/scripts/additional files/user_home_folder/.pbuilderrc new file mode 100644 index 000000000..cb58cb895 --- /dev/null +++ b/debian/_buildscripts/local/scripts/additional files/user_home_folder/.pbuilderrc @@ -0,0 +1,149 @@ +#!/bin/bash + +#-- get desired distribution and architecture +if [ "$DIST" = "" ]; then + DIST=$(lsb_release -cs) +fi +DISTRIBUTION=$DIST +if [ "$ARCH" = "" ]; then + ARCH=$(dpkg --print-architecture) +fi +ARCHITECTURE=$ARCH + +if [ -n "$T" ]; then + if [ "${T##*-}" = "vm" ]; then + BUILD_VM="qemu" + T=${T%-vm} + fi + if [ "${T#*@}" = "$T" ]; then + DISTRIBUTION=${T%-*} + ARCHITECTURE=${T##*-} + else + DISTRIBUTION=${T%@*} + ARCHITECTURE=${T##*@} + fi + if [ "${DISTRIBUTION##*-}" = "backports" ]; then + BACKPORTS="yes" + DISTRIBUTION=${DISTRIBUTION%-backports} + fi +fi + +BASETGZ="/var/cache/pbuilder/base-$DIST@$ARCH.tgz" + +#-- select apt components +case "$DISTRIBUTION" in + sid|buster|stretch|jessie|wheezy|squeeze|lenny|etch|sarge) + COMPONENTS="main contrib non-free" + ;; + + ceres|beowulf|ascii) + COMPONENTS="main" + DEBOOTSTRAPOPTS=(--variant=buildd --no-check-gpg) + EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring" + ;; + + bionic|artful|zesty|yakkety|xenial|wily|vivid|utopic|trusty|saucy|raring|quantal|precise|oneiric|natty|maverick|lucid) + COMPONENTS="main restricted universe multiverse" + DEBOOTSTRAPOPTS=(--variant=buildd) + ;; + + raspbian-jessie|raspbian-wheezy) + 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 + sid|buster|stretch|jessie|wheezy) + MIRRORSITE=http://deb.debian.org/debian + ;; + + squeeze|lenny|etch|sarge) + MIRRORSITE=http://archive.debian.org/debian + OTHERMIRROR="#deb http://archive.debian.org/backports.org $DISTRIBUTION-backports main contrib non-free" + ;; + + ceres|beowulf|ascii) + MIRRORSITE=http://auto.mirror.devuan.org/merged + ;; + + bionic|artful|zesty|yakkety|wily|vivid|trusty|precise) + if [ "$ARCHITECTURE" = "amd64" ] || [ "$ARCHITECTURE" = "i386" ]; then + MIRRORSITE=http://archive.ubuntu.com/ubuntu + else + MIRRORSITE=http://ports.ubuntu.com + fi + ;; + + xenial) + if [ "$ARCHITECTURE" = "amd64" ] || [ "$ARCHITECTURE" = "i386" ]; then + MIRRORSITE=http://archive.ubuntu.com/ubuntu + else + MIRRORSITE=http://ports.ubuntu.com + fi + OTHERMIRROR="deb $MIRRORSITE $DISTRIBUTION-updates $COMPONENTS" + ;; + + utopic|saucy|raring|quantal|oneiric|natty|maverick|lucid) + MIRRORSITE=http://old-releases.ubuntu.com/ubuntu + ;; + + raspbian-jessie|raspbian-wheezy) + MIRRORSITE=http://ftp.fi.muni.cz/pub/linux/raspbian/raspbian + ;; +esac + +if [ -n "${ARCH}" ]; then + NAME="$NAME-$ARCH" + DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}") +fi + +BUILDRESULT="/var/cache/pbuilder/$DISTRIBUTION/result/" + +APTCACHE="/var/cache/pbuilder/aptcache/$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 + +BUILDPLACE="/var/cache/pbuilder/build/" + +# default PKGNAME_LOGFILE +PKGNAME_LOGFILE="__build__.log" + +#-- extra options +DEBBUILDOPTS="-B" +if [ "$ARCHITECTURE" == "amd64" ]; then + DEBBUILDOPTS="-b" +fi +if [ "${DISTRIBUTION#raspbian}" != "$DISTRIBUTION" ] && [ "$ARCHITECTURE" == "armhf" ]; then + DEBBUILDOPTS="-b" + DISTRIBUTION=${DISTRIBUTION#raspbian-} +fi +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|buster|stretch|\ + ceres|beowulf|ascii|\ + bionic|artful|zesty) + PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-apt" + ;; + + jessie|wheezy|squeeze|lenny|etch|sarge|\ + raspbian-jessie|raspbian-wheezy|\ + yakkety|xenial|wily|vivid|utopic|trusty|saucy|raring|quantal|precise|oneiric|natty|maverick|lucid) + PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-aptitude" + ;; +esac diff --git a/debian/_buildscripts/local/scripts/additional files/usr/lib/pbuilder/hooks/D05deps b/debian/_buildscripts/local/scripts/additional files/usr/lib/pbuilder/hooks/D05deps new file mode 100755 index 000000000..a42f5bef0 --- /dev/null +++ b/debian/_buildscripts/local/scripts/additional files/usr/lib/pbuilder/hooks/D05deps @@ -0,0 +1,3 @@ +#!/bin/sh +(cd /var/cache/pbuilder/repo; apt-ftparchive packages . > Packages && gzip -c Packages >Packages.gz) +apt-get update diff --git a/debian/_buildscripts/local/scripts/additional files/usr/lib/pbuilder/hooks/__template_C10shell b/debian/_buildscripts/local/scripts/additional files/usr/lib/pbuilder/hooks/__template_C10shell new file mode 100755 index 000000000..3e2f1c865 --- /dev/null +++ b/debian/_buildscripts/local/scripts/additional files/usr/lib/pbuilder/hooks/__template_C10shell @@ -0,0 +1,7 @@ +#!/bin/sh +# invoke shell if build fails. + +apt-get install -y --force-yes vim less bash mc +cd /tmp/buildd/*/debian/.. +echo "Build FAILED! Invoking shell" +/bin/bash < /dev/tty > /dev/tty 2> /dev/tty -- cgit v1.2.1