#! /bin/bash # this is sourced from pbuilder packages to process the optional parameters. # pbuilder -- personal Debian package builder # Copyright (C) 2001-2006 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 # This code is called for pbuilder and pbuilder inside pbuilder-uml; # pbuilder-uml calls uml-checkparams. . /usr/lib/pbuilder/pbuilder-loadconfig . /usr/lib/pbuilder/pbuilder-modules #default value for this option is !empty! INTERNAL_BUILD_UML="" CHROOTEXEC="" OVERRIDE_APTLINES="no" BINARY_ARCH="no" PBUILDER_BUILD_LOGFILE= USE_PKGNAME_LOGFILE="" PRESERVE_BUILDPLACE="no" unset EXTRA_CONFIGFILE || true PBUILDER_DEBUGMODE= SAVE_AFTER_LOGIN= AUTOCLEANAPTCACHE= #option for user-mode-linux only. IGNORE_UMOUNT="" while [ -n "$1" ]; do case "$1" in --basetgz) if [ "${PBCURRENTCOMMANDLINEOPERATION}" = 'create' ]; then touch "$2"; fi if [ ! -f "$2" ]; then echo "E: File $2 does not exist" >&2 exit 1 fi BASETGZ=$(readlink -f "$2"); shift; shift; ;; --buildplace) if [ ! -d "$2" ] ; then echo "E: Directory $2 does not exist" >&2 exit 1 fi BUILDPLACE=$(readlink -f "$2"); shift; shift; ;; --mirror) MIRRORSITE="$2"; shift; shift; ;; --othermirror) OTHERMIRROR="$2"; shift; shift; ;; --http-proxy) export http_proxy="$2"; shift; shift; ;; --distribution) DISTRIBUTION="$2"; shift; shift; ;; --buildresult) if [ -n "$2" ]; then if [ -d "$2" ]; then BUILDRESULT=$(readlink -f "$2"); else BUILDRESULT="$2" echo "W: Build-result Directory $2 does not exist" >&2 # warn, but make it progress. fi else BUILDRESULT= fi shift; shift; ;; --aptcache) if [ -n "$2" ]; then if [ -d "$2" ]; then APTCACHE=$(readlink -f "$2"); else echo "E: Directory $2 does not exist" >&2 exit 1 fi else APTCACHE= fi shift; shift; ;; --autocleanaptcache) AUTOCLEANAPTCACHE=yes shift; ;; --removepackages) REMOVEPACKAGES="$2"; shift; shift; ;; --configfile) if [ ! -f "$2" ]; then echo "E: Config file $2 does not exist" >&2 exit 1 fi . "$2"; EXTRA_CONFIGFILE[${#EXTRA_CONFIGFILE[@]}]="$2"; shift; shift; ;; --extrapackages) EXTRAPACKAGES="$2"; shift; shift; ;; --hookdir) HOOKDIR="$2"; shift; shift; ;; --debemail) DEBEMAIL="$2"; shift; shift; ;; --debbuildopts) DEBBUILDOPTS="$2"; shift; shift; ;; --logfile) echo " -> Logging to $2" exec > "$2"; exec 2>&1 PBUILDER_BUILD_LOGFILE=$(readlink -f "$2") shift; shift; ;; --pkgname-logfile) USE_PKGNAME_LOGFILE="yes" shift; ;; --aptconfdir) APTCONFDIR="$2"; shift; shift; ;; --timeout) TIMEOUT_TIME="$2" shift; shift; ;; --help) showhelp ;; --override-config) OVERRIDE_APTLINES="yes" shift; ;; --binary-arch) BINARY_ARCH="yes" DEBBUILDOPTS="${DEBBUILDOPTS} -B" shift; ;; --preserve-buildplace) PRESERVE_BUILDPLACE="yes" shift; ;; --bindmounts) BINDMOUNTS="${BINDMOUNTS} $2" shift; shift; ;; --debootstrapopts) # specify this option to set --variant=buildd value to debootstrap DEBOOTSTRAPOPTS[${#DEBOOTSTRAPOPTS[@]}]="$2"; shift; shift; ;; --debootstrap) # Use this option to specify cdebootstrap DEBOOTSTRAP="$2"; shift; shift; ;; --save-after-login|--save-after-exec) SAVE_AFTER_LOGIN=yes; shift; ;; ## internal options. --internal-chrootexec) # specify custom chrootexec function -- this is internal debugging function CHROOTEXEC="$2" shift; shift; ;; --debug) PBUILDER_DEBUGMODE=yes set -x shift; ;; --no-targz) # specify this option if I am running in no-targz mode echo " -> Running in no-targz mode" INTERNAL_BUILD_UML="yes" shift; ;; --internal-build-uml) # specify this option if I am running inside UML. echo " -> Running in pbuilder-user-mode-linux mode" INTERNAL_BUILD_UML="yes" IGNORE_UMOUNT="yes" shift; ;; --) # end of processing for this shift; break; ;; --*) echo "Error: Unknown option [$1] was specified " >&2 exit 1; ;; *) break; ;; esac done BUILDPLACE=${BUILDPLACE?"Build root directory is not defined"} # the default is to add a PID in the buildplace specified in the config file. BASEBUILDPLACE="$BUILDPLACE" if [ "${INTERNAL_BUILD_UML}" != "yes" -a "${PRESERVE_BUILDPLACE}" != "yes" ]; then BUILDPLACE="$BUILDPLACE/$$" fi if [ -z "${CHROOTEXEC}" ]; then CHROOTEXEC="chroot $BUILDPLACE " fi # handle 'experimental' specially. -- required for raw pbuilder (create/update) only. if [ "$DISTRIBUTION" = "experimental" ]; then DISTRIBUTION="sid" EXPERIMENTAL="true" else EXPERIMENTAL= fi case "$PBCURRENTCOMMANDLINEOPERATION" in login|execute|pdebuild) # don't do anything if it is "login", or pdebuild ;; *) # line from kobras@debian.org if [ "$DEBIAN_FRONTEND" = "noninteractive" -o "$DEBIAN_FRONTEND" = "Noninteractive" ]; then exec < /dev/null # set variables used in the upgrade option. FORCE_CONFNEW[0]='-o' FORCE_CONFNEW[1]='DPkg::Options::=--force-confnew' else unset FORCE_CONFNEW || true fi ;; esac