[Pbuilder-maint] Bug#453388: [patch] python-apt/gdebi based pbuilder-satisfydepends-gdebi

Michael Vogt mvo at ubuntu.com
Thu Nov 29 10:02:57 UTC 2007


Package: pbuilder
Version: 0.176
Severity: wishlist
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu hardy ubuntu-patch



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).

Cheers,
 Michael

-- System Information:
Debian Release: lenny/sid
Architecture: i386 (i686)

Kernel: Linux 2.6.22-14-generic (SMP w/2 CPU cores)
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8)
-------------- next part --------------
diff -Nru /tmp/crxVOuiO91/pbuilder-0.176/Makefile /tmp/xxAodyeuYX/pbuilder-0.176ubuntu1/Makefile
--- /tmp/crxVOuiO91/pbuilder-0.176/Makefile	2007-10-15 01:23:22.000000000 +0200
+++ /tmp/xxAodyeuYX/pbuilder-0.176ubuntu1/Makefile	2007-11-25 10:34:26.000000000 +0100
@@ -15,6 +15,7 @@
 	pbuilder-modules \
 	pbuilder-runhooks \
 	pbuilder-satisfydepends-classic \
+	pbuilder-satisfydepends-gdebi \
 	pbuilder-satisfydepends-funcs \
 	pbuilder-satisfydepends-checkparams \
 	pbuilder-satisfydepends-aptitude \
@@ -81,6 +82,7 @@
 	#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/
diff -Nru /tmp/crxVOuiO91/pbuilder-0.176/pbuilder-buildpackage-funcs /tmp/xxAodyeuYX/pbuilder-0.176ubuntu1/pbuilder-buildpackage-funcs
--- /tmp/crxVOuiO91/pbuilder-0.176/pbuilder-buildpackage-funcs	2007-05-28 13:44:48.000000000 +0200
+++ /tmp/xxAodyeuYX/pbuilder-0.176ubuntu1/pbuilder-buildpackage-funcs	2007-11-25 10:34:26.000000000 +0100
@@ -37,7 +37,7 @@
 	yes) BUILDOPT="--binary-arch";;
 	*) ;;
     esac
-    if "$PBUILDERSATISFYDEPENDSCMD" --control "$1" --internal-chrootexec "${CHROOTEXEC}" "${BUILDOPT}" ; then
+    if "$PBUILDERSATISFYDEPENDSCMD" --control "$1" --internal-chrootexec "${CHROOTEXEC}" --chroot "${BUILDPLACE}" "${BUILDOPT}" ; then
 	:
     else
     # If asked to preserve the build place, and pbuilder-satisfydepends
diff -Nru /tmp/crxVOuiO91/pbuilder-0.176/pbuilder-satisfydepends-gdebi /tmp/xxAodyeuYX/pbuilder-0.176ubuntu1/pbuilder-satisfydepends-gdebi
--- /tmp/crxVOuiO91/pbuilder-0.176/pbuilder-satisfydepends-gdebi	1970-01-01 01:00:00.000000000 +0100
+++ /tmp/xxAodyeuYX/pbuilder-0.176ubuntu1/pbuilder-satisfydepends-gdebi	2007-10-27 23:19:42.000000000 +0200
@@ -0,0 +1,80 @@
+#!/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 at 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


More information about the Pbuilder-maint mailing list