Re: pbuilder and scons
On Tue, Dec 13, 2005 at 08:29:19AM -0500, Roberto C. Sanchez wrote:
> Claudio Moratti wrote:
> > Hi *!
> > I'm working on a package that uses scons...
> > everything goes fine but I find one problem: in order to clean the sources,
> > debian/rules calls
> > /usr/bin/scons -c
> > but pbuilder don't try to install the Unmet build dependencies before the
> > "clean"...
> > I read, in Debian Policy Manual, that:
> > "Build-Depends, Build-Conflicts
> > The Build-Depends and Build-Conflicts fields must be satisfied when any of
> > the following targets is invoked: build, clean, binary, binary-arch,
> > build-arch, build-indep and binary-indep."
> > Is it a bug?
> > cheers
> >>>full log
> > # pdebuild-etch
> > W: /root/.pbuilderrc does not exist
> > dpkg-checkbuilddeps: Unmet build dependencies: scons kdelibs4-dev
> > W: Unmet build-dependency in source
> > dpkg-buildpackage: source package is kleansweep
> > dpkg-buildpackage: source version is 0.2.1-2
> > dpkg-buildpackage: source changed by Claudio Moratti <firstname.lastname@example.org>
> > fakeroot debian/rules clean
> > dh_testdir
> > dh_testroot
> > rm -f build-stamp
> > rm -f config.sub
> > rm -f config.guess
> > #-/usr/bin/make distclean
> > /usr/bin/scons -c
> > make: /usr/bin/scons: Command not found
> > make: *** [clean-patched] Error 127
> > <<
> Interesting. I know that in the past, when building packages that use
> cdbs, I have had to install it on my host system. If cdbs is not
> installed, the clean does not finish. I think that this is because
> pbuilder will call clean on the host machine so that it can take a clean
> source archive into the chroot. Maybe try installing scons on your host
My understanding is this. Usually, packages are built by
dpkg-buildpackage, or some such frontend like debuild.
One comes to expect that after building a package, ../diff.gz is up to
date, and that it is safe to cd ../; rm -fr ./package-version/.
If pbuilder were to use the exising ../diff.gz, then changes to the
source since the last non-chrooted build would not be used during the
So, pbuilder *could* cp -r ../package-version/ to the chroot, but then
the user might become confused, "causing" dataloss. This requires
building the source package outside of the chroot, which requires
running the clean target. So the build deps on the host machine
should be met in order to use pbuilder. Its seen above as warning,
because its not guaranteed to cause a failed build (but a failed
build may, in fact *was*, caused by missing packages).