Bug#514358: pdebuild host --debbuildopts inherited by target pbuild

TJ ubuntu at tjworld.net
Fri Feb 6 16:39:52 UTC 2009


Package: pbuilder
Version: 0.183ubuntu1
Severity: normal
Tags: patch

--- Please enter the report below this line. ---
(originally reported as
https://bugs.launchpad.net/ubuntu/+source/pbuilder/+bug/326216)

This is a latent bug, exposed when building for target releases that
have dpkg-source < v1.14.7.

The problem is that when using pdebuilder and passing --debbuildopts to
both 'sides' (host and target), the target pbuilder dpkg-source
incorrectly inherits the host --debbuildopts.

For example:

 HOST_DEB_OPTIONS="--debbuildopts -i -I"
 PBUILDER_DEB_OPTIONS="--debbuildopts -Idebian/dpkg-source.excludes"
 pdebuild --logfile $LOGNAME ${HOST_DEB_OPTIONS} -- ${PBUILDER_DEB_OPTIONS}

results in the inner dpkg-source seeing:

 dpkg-source -i -I -Idebian/dpkg-source.excludes -b kvm-83+dfsg

Which in Hardy and later isn't a problem (since -I is acceptable to
dpkg-source >= v1.14.7). However, if working on back-porting a package
to Gutsy or Feisty or Edgy the versions of dpkg-source in those releases
do not understand the -I option without a file specification
(-I<exclusion.list>).

This will cause the target pbuild to fail since the source can't be
extracted.

This wouldn't have come to light if it wasn't for my desire to back-port
some packages for use on long-lived servers that are running stable
older releases. In these cases my build_test script generates two
different sets of --debbuildopts for the host (more recent) and target
(older) dpkg-source.

The builds were failing and as can be seen in the example above it is
because the host's --debbuildopts are passing to the target.

--- System information. ---
Architecture: amd64
Kernel:       Linux 2.6.24-21-generic

Debian Release: lenny/sid
  500 hardy-updates   gb.archive.ubuntu.com 
  500 hardy-security  security.ubuntu.com 
  500 hardy-backports gb.archive.ubuntu.com 
  500 hardy           wine.budgetdedicated.com 
  500 hardy           gb.archive.ubuntu.com 
  500 hardy           archive.canonical.com 

--- Package information. ---
Depends             (Version) | Installed
=============================-+-=============
coreutils        (>= 4.5.8-1) | 6.10-3ubuntu2
debianutils       (>= 1.13.1) | 2.28.2-0ubuntu1
debootstrap                   | 1.0.9~hardy1
 OR cdebootstrap              | 
gcc                           | 4:4.2.3-1ubuntu6
wget                          | 1.10.2-3ubuntu1

--- debdiff (Ubuntu-specific changelog entry) ---
diff -Nru pbuilder-0.183ubuntu1/debian/changelog pbuilder-0.183ubuntu2/debian/changelog
--- pbuilder-0.183ubuntu1/debian/changelog	2008-11-05 15:07:42.000000000 +0000
+++ pbuilder-0.183ubuntu2/debian/changelog	2009-02-06 16:20:57.000000000 +0000
@@ -1,3 +1,9 @@
+pbuilder (0.183ubuntu2) jaunty; urgency=low
+
+  * Don't pass host --debbuildopts to target (LP: #326216)
+
+ -- TJ <ubuntu at tjworld.net>  Fri, 06 Feb 2009 16:30:00 +0000
+
 pbuilder (0.183ubuntu1) jaunty; urgency=low
 
   * Merge with Debian unstable. Remaining Ubuntu changes:
diff -Nru pbuilder-0.183ubuntu1/pdebuild pbuilder-0.183ubuntu2/pdebuild
--- pbuilder-0.183ubuntu1/pdebuild	2008-11-05 12:19:53.000000000 +0000
+++ pbuilder-0.183ubuntu2/pdebuild	2009-02-06 16:19:23.000000000 +0000
@@ -60,7 +60,7 @@
 	echo "W: Unmet build-dependency in source" >&2
     fi
     echo "dpkg-buildpackage -S -us -uc -r${BUILDSOURCEROOTCMD} $DEBBUILDOPTS" | perl -pe 's/(^|\s)-[bB](\s|$)/$1$2/g' | /bin/bash
-    ${PBUILDERROOTCMD} ${PDEBUILD_PBUILDER} --build ${EXTRA_CONFIGFILE[@]/#/--configfile } --buildresult "${BUILDRESULT}"  --debbuildopts "${DEBBUILDOPTS}" "$@"  ../"${PKG_SOURCENAME}_${PKG_VERSION}".dsc
+    ${PBUILDERROOTCMD} ${PDEBUILD_PBUILDER} --build ${EXTRA_CONFIGFILE[@]/#/--configfile } --buildresult "${BUILDRESULT}" "$@"  ../"${PKG_SOURCENAME}_${PKG_VERSION}".dsc
 fi
 
 # do signing with optional key specifier







More information about the Pbuilder-maint mailing list