Commit d4a893eb authored by Junichi Uekawa's avatar Junichi Uekawa

python-apt/gdebi based pbuilder-satisfydepends-gdebi (closes: #453388)

From: Michael Vogt <mvo@ubuntu.com>

In Ubuntu, we've applied the attached patch to achieve the following:

    * Makefile:
      - Addded pbuilder-satisfydepends-gdebi
    * pbuilder-buildpackage-funcs:
      - always pass --chroot to the pbuilder-satisfydepends (needed for
        pbuilder-satisfydepends-gdebi)
    * pbuilder-satisfydepends-gdebi:
      - added alternative b-d resolver

pbuilder-satisfydepends-gdebi is a build-dependencies resolver based
on gdebi (that in turn uses python-apt/libapt). It is fast and does
not need to build a dummy package. It should behave exactly like
apt-get build-dep $pkg

It used to be more interessting because of the speed gain when
pbuilder-satisfydepends-classic was the default. You probably want to
add a recommends or suggests for gdebi too (if you like the patch
method).

Modified by dancerj: --chroot is given before --chrootexec so that
cowdancer can continue to work.
parent 9f0f8b76
......@@ -15,6 +15,7 @@ SHELLCODES=pbuilder-buildpackage \
pbuilder-modules \
pbuilder-runhooks \
pbuilder-satisfydepends-classic \
pbuilder-satisfydepends-gdebi \
pbuilder-satisfydepends-funcs \
pbuilder-satisfydepends-checkparams \
pbuilder-satisfydepends-aptitude \
......@@ -81,6 +82,7 @@ install:
#install aptitude as the default satisfydepends
$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-aptitude $(DESTDIR)/usr/lib/pbuilder/pbuilder-satisfydepends
$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-classic $(DESTDIR)/usr/lib/pbuilder/
$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-gdebi $(DESTDIR)/usr/lib/pbuilder/
$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-aptitude $(DESTDIR)/usr/lib/pbuilder/
$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-experimental $(DESTDIR)/usr/lib/pbuilder/
$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-checkparams $(DESTDIR)/usr/lib/pbuilder/
......
......@@ -37,7 +37,7 @@ function checkbuilddep () {
yes) BUILDOPT="--binary-arch";;
*) ;;
esac
if "$PBUILDERSATISFYDEPENDSCMD" --control "$1" --internal-chrootexec "${CHROOTEXEC}" "${BUILDOPT}" ; then
if "$PBUILDERSATISFYDEPENDSCMD" --control "$1" --chroot "${BUILDPLACE}" --internal-chrootexec "${CHROOTEXEC}" "${BUILDOPT}" ; then
:
else
# If asked to preserve the build place, and pbuilder-satisfydepends
......
#!/bin/bash
# pbuilder -- personal Debian package builder
# Copyright (C) 2001,2002,2003,2005-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
#
# module to satisfy dependency using gdebi
# AUTHOR: Michael Vogt <mvogt@acm.org>
set -e
DEBIAN_CONTROL=debian/control
CHROOT=""
CHROOTEXEC=""
BD_REGEXP="build-(depends|depends-indep)"
BC_REGEXP="build-(conflicts|conflicts-indep)"
FORCEVERSION=""
CONTINUE_FAIL="no"
while [ -n "$1" ]; do
case "$1" in
--control|-c)
DEBIAN_CONTROL="$2"
shift; shift
;;
--chroot)
CHROOT="$2"
CHROOTEXEC="chroot $2 "
shift; shift
;;
--internal-chrootexec)
CHROOTEXEC="$2"
shift; shift
;;
--binary-all)
BD_REGEXP='build-(depends|depends-indep)'
BC_REGEXP='build-(conflicts|conflicts-indep)'
shift
;;
--binary-arch)
BD_REGEXP='build-depends'
BC_REGEXP='build-conflicts'
shift
;;
--echo)
CHROOTEXEC="echo $CHROOTEXEC"
shift
;;
--continue-fail)
CONTINUE_FAIL="yes"
shift
;;
--force-version)
FORCEVERSION="yes"
shift;
;;
--help|-h|*)
print_help
exit 1
;;
esac
done
INSTALL=$(/usr/bin/gdebi --quiet --apt-line --root $CHROOT $DEBIAN_CONTROL)
$CHROOTEXEC /usr/bin/apt-get install -y $INSTALL
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment