#! /bin/bash # Creating the build environment with debootstrap. # pbuilder -- personal Debian package builder # Copyright (C) 2001-2003,2005-2007 Junichi Uekawa # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA set -e . /usr/lib/pbuilder/pbuilder-checkparams . /usr/lib/pbuilder/pbuilder-runhooks if [ -z "$DISTRIBUTION" ]; then DISTRIBUTION=sid fi echo "Distribution is $DISTRIBUTION." if [ "${PBUILDER_DEBUGMODE}" = "yes" ]; then TRAP="echo ignoring trap " else TRAP=trap fi # first clean it. cleanbuildplace echo "Building the build environment" mkdir -p "$BUILDPLACE" if [ ! -d "$BUILDPLACE" ]; then echo "E: Could not make directory [$BUILDPLACE]" >&2 exit 1 fi $TRAP cleanbuildplace exit echo " -> running $DEBOOTSTRAP" unset DEBOOTSTRAPSCRIPT if [ -n "$HOOKDIR" ]; then if [ -f "$HOOKDIR/$DISTRIBUTION" ]; then DEBOOTSTRAPSCRIPT=$(readlink -f "$HOOKDIR")"/$DISTRIBUTION" echo " -> Applying user distribution dist build script $DEBOOTSTRAPSCRIPT" fi fi if which "${DEBOOTSTRAP}"; then : # debootstrap exists else echo "E: ${DEBOOTSTRAP} does not exist, install or change DEBOOTSTRAP option" >&2 exit 1 fi if ! ( cd "$BUILDPLACE" && "${DEBOOTSTRAP}" "${DEBOOTSTRAPOPTS[@]}" "$DISTRIBUTION" . "$MIRRORSITE" $DEBOOTSTRAPSCRIPT ) ; then echo "pbuilder: $DEBOOTSTRAP failed" >&2 exit 1 fi echo " -> debootstrap finished" loadhooks mkdir -p "$BUILDPLACE/tmp/buildd" copy_local_configuration installaptlines executehooks "G" echo "Refreshing the base.tgz " echo " -> upgrading packages" mountproc $TRAP umountproc_cleanbuildplace_trap exit sighup $CHROOTEXEC /usr/bin/apt-get update if [ -n "$REMOVEPACKAGES" ]; then $CHROOTEXEC /usr/bin/dpkg --purge $REMOVEPACKAGES fi recover_aptcache $CHROOTEXEC /usr/bin/apt-get -y --force-yes "${FORCE_CONFNEW[@]}" dist-upgrade $CHROOTEXEC /usr/bin/apt-get -y --force-yes install build-essential dpkg-dev apt $EXTRAPACKAGES save_aptcache executehooks "E" unloadhooks umountproc $CHROOTEXEC /usr/bin/apt-get clean || true $TRAP cleanbuildplace_trap exit sighup # Internal_build_uml is set when --no-targz is set, this code is actually never called from pbuilder-user-mode-linux if [ ! "${INTERNAL_BUILD_UML}" = "yes" ]; then create_basetgz fi if [ "${PRESERVE_BUILDPLACE}" = "yes" ]; then : else cleanbuildplace fi trap exit sighup exit 0