Hi I revisited this; $DEBIAN_CONTROL is either the .dsc or the control file; I copied it into the chroot with the attached patch.
I think we want to prefer the gdebi outside of the chroot instead of installing one in the chroot, but I'm not sure whether we want to support both cases, will check with other pbuilder maints. Thanks On Fri, Jun 27, 2008, Loïc Minier wrote: > Hi Michael, > > I had a look in pbuilder's git, and it looks like it's using the > control file, not the .dsc file: > INSTALL=$($CHROOTEXEC /usr/bin/gdebi --quiet --apt-line $DEBIAN_CONTROL) > odly it's the same in the hardy and intrepid pbuilders: > INSTALL=$(/usr/bin/gdebi --quiet --apt-line --root $CHROOT > $DEBIAN_CONTROL) > > [ DEBIAN_CONTROL is only defined to debian/control, so I'm a bit > surprized about Debian #472407 which fails with: > > gdebi error, file not found: ../mythplugins_0.21-0.4.dsc > perhaps an older implementation? ] > > I'm surprized it works at all in Ubuntu with the control file, I > discovered that control files were not properly parsed in gdebi (see > the commits I made for 0.3.12, r197 and 198) when wrapped over multiple > lines. Perhaps there's a flow in my logic if it works for you: I don't > quite understand how changing between inside and outside the chroot > helps with locating a .dsc file when I see debian/control hardcoded. > > > I simply don't know what to do with the proposed pbuilder patch to run > gdebi outside the chroot from there. > > Cheers, > -- > Loïc Minier > > > -- Loïc Minier
>From 070f8c798b9b2d98ef98a8407b8812ce9ab745ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <l...@dooz.org> Date: Sat, 12 Dec 2009 15:10:02 +0100 Subject: [PATCH] Copy .dsc in chroot before calling gdebi; #472407 Copy .dsc in chroot before calling gdebi; closes: #472407 --- pbuilder-satisfydepends-gdebi | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/pbuilder-satisfydepends-gdebi b/pbuilder-satisfydepends-gdebi index 6e3ae06..de33455 100644 --- a/pbuilder-satisfydepends-gdebi +++ b/pbuilder-satisfydepends-gdebi @@ -23,6 +23,9 @@ set -e function checkbuilddep_internal () { + local BUILD_DEP_DEB_DIR=/tmp/satisfydepends-gdebi + local BUILD_DEP_DEB_CONTROL="$BUILD_DEP_DEB_DIR/`basename "$DEBIAN_CONTROL"`" + $CHROOTEXEC apt-get -y --force-yes install gdebi-core NO_RECOMMENDS="" if VERSION=$($CHROOTEXEC /usr/bin/gdebi --version 2>/dev/null); then @@ -31,7 +34,10 @@ function checkbuilddep_internal () { fi fi - INSTALL=$($CHROOTEXEC /usr/bin/gdebi --quiet --apt-line $NO_RECOMMENDS $DEBIAN_CONTROL) + $CHROOTEXEC mkdir -p "$BUILD_DEP_DEB_DIR" + cat "$DEBIAN_CONTROL" | $CHROOTEXEC sh -c "cat >\"$BUILD_DEP_DEB_CONTROL\"" + + INSTALL=$($CHROOTEXEC /usr/bin/gdebi --quiet --apt-line $NO_RECOMMENDS $BUILD_DEP_DEB_CONTROL) $CHROOTEXEC /usr/bin/apt-get install -y --force-yes $INSTALL } -- 1.6.5