[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