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