diff options
Diffstat (limited to 'hosts/jenkins/usr/lib')
-rwxr-xr-x | hosts/jenkins/usr/lib/pbuilder/pbuilder-satisfydepends-aptitude | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/hosts/jenkins/usr/lib/pbuilder/pbuilder-satisfydepends-aptitude b/hosts/jenkins/usr/lib/pbuilder/pbuilder-satisfydepends-aptitude new file mode 100755 index 00000000..ea24efca --- /dev/null +++ b/hosts/jenkins/usr/lib/pbuilder/pbuilder-satisfydepends-aptitude @@ -0,0 +1,103 @@ +#!/bin/bash +# pbuilder -- personal Debian package builder +# Copyright (C) 2001,2002,2003,2005-2007 Junichi Uekawa +# Copyright (C) 2007 Loïc Minier +# +# 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 +# +# module to satisfy build dependencies; aptitude flavor + +set -e + +export PBUILDER_PKGLIBDIR="${PBUILDER_PKGLIBDIR:-$PBUILDER_ROOT/usr/lib/pbuilder}" + +. "$PBUILDER_PKGLIBDIR"/pbuilder-satisfydepends-funcs + +function checkbuilddep_internal () { +# Use this function to fulfill the dependency (almost) + local ARCH=$($CHROOTEXEC dpkg-architecture -qDEB_HOST_ARCH) + local BUILD_DEP_DEB_DIR + local BUILD_DEP_DEB_CONTROL + local DEPENDS + local CONFLICTS + echo " -> Attempting to satisfy build-dependencies" + DEPENDS="$(get_build_deps | filter_arch_deps "$ARCH" | + filter_restriction_deps "$DEB_BUILD_PROFILES" )" + CONFLICTS="$(get_build_conflicts | filter_arch_deps "$ARCH" | + filter_restriction_deps "$DEB_BUILD_PROFILES" )" + echo " -> Creating pbuilder-satisfydepends-dummy package" + BUILD_DEP_DEB_DIR="/tmp/satisfydepends-aptitude" + BUILD_DEP_DEB_CONTROL="$BUILD_DEP_DEB_DIR/pbuilder-satisfydepends-dummy/DEBIAN/control" + $CHROOTEXEC mkdir -p "$BUILD_DEP_DEB_DIR/pbuilder-satisfydepends-dummy/DEBIAN/" + $CHROOTEXEC sh -c "cat >\"$BUILD_DEP_DEB_CONTROL\"" <<EOF +Package: pbuilder-satisfydepends-dummy +Version: 0.invalid.0 +Architecture: $ARCH +Maintainer: Debian Pbuilder Team <pbuilder-maint@lists.alioth.debian.org> +Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder + This package was created automatically by pbuilder to satisfy the + build-dependencies of the package being currently built. +EOF + if [ -n "$DEPENDS" ]; then + $CHROOTEXEC sh -c "echo \"Depends: $DEPENDS\" >>\"$BUILD_DEP_DEB_CONTROL\"" + fi + if [ -n "$CONFLICTS" ]; then + $CHROOTEXEC sh -c "echo \"Conflicts: $CONFLICTS\" >>\"$BUILD_DEP_DEB_CONTROL\"" + fi + $CHROOTEXEC sh -c "cat \"$BUILD_DEP_DEB_CONTROL\"" + $CHROOTEXEC sh -c "dpkg-deb -b \"$BUILD_DEP_DEB_DIR/pbuilder-satisfydepends-dummy\"" + $CHROOTEXEC dpkg \ + --force-depends \ + --force-conflicts \ + -i "$BUILD_DEP_DEB_DIR/pbuilder-satisfydepends-dummy.deb" || true + $CHROOTEXEC aptitude \ + -y \ + --without-recommends -o APT::Install-Recommends=false \ + "${APTITUDEOPT[@]}" \ + -o Aptitude::ProblemResolver::StepScore=100 \ + -o "Aptitude::ProblemResolver::Hints::KeepDummy=reject pbuilder-satisfydepends-dummy :UNINST" \ + -o Aptitude::ProblemResolver::Keep-All-Level=55000 \ + -o Aptitude::ProblemResolver::Remove-Essential-Level=maximum \ + install \ + pbuilder-satisfydepends-dummy + # check whether the aptitude's resolver kept the package + if ! $CHROOTEXEC dpkg -l pbuilder-satisfydepends-dummy 2>/dev/null | grep -q ^ii; then + echo "Aptitude couldn't satisfy the build dependencies" + exit 1 + fi + echo " -> Finished parsing the build-deps" +} + + +function print_help () { + # print out help message + cat <<EOF +pbuilder-satisfydepends -- satisfy dependencies +Copyright 2002-2007 Junichi Uekawa <dancer@debian.org> + +--help: give help +--control: specify control file (debian/control, *.dsc) +--chroot: operate inside chroot +--binary-all: include binary-all +--binary-arch: include binary-arch only +--echo: echo mode, do nothing. (--force-version required for most operation) +--force-version: skip version check. +--continue-fail: continue even when failed. + +EOF +} + +. "$PBUILDER_PKGLIBDIR"/pbuilder-satisfydepends-checkparams + |