On Wed, 2008-04-30 at 12:53 -0400, Joey Hess wrote:
> Neil Williams wrote:
> > emdebian-tools scripts have begun failing constantly due to a bug in
> > Debhelper::Dh_Lib which tries to write debhelper.log files all over the
> > build:
> > 
> > $ find debian -name "*.log"
> > debian/gcc-4.3.debhelper.log
> > debian/gcc-4.3-base.debhelper.log
> > debian/gcc-4.3-multilib.debhelper.log
> > debian/gcc-4.3-hppa64.debhelper.log
> > debian/gcc-4.3-spu.debhelper.log
> > debian/g++-4.3-spu.debhelper.log
> 
> If you're building binary packages with all those names, that is working as
> it's supposed to.

That's a shame - I'll need to disable those logs then. This is certainly
not what I want from Debhelper::Dh_Lib.

> > emdebuild: failed to write to debian/debhelper.log: No such file or
> > directory
> 
> You're running a program that uses Dh_Lib, in a PWD that does not
> include a debian/ directory?

Yes - the program needs to manipulate patch files and other metadata
that exists outside the package build directory (package_version/debian
exists but may be ../../../foo/bar/package/trunk/package_version/debian)
and where the program works at the point when it exits should be of no
concern to debhelper - it may be inside a chroot for some processes,
some outside. Why should debhelper get involved with that?

e.g. this is an autobuilder environment - it iterates through some 200
packages in multiple build directories within an overall build tree - a
distribution-wide cross-build.

The other problem is that Debhelper::Dh_Lib cannot even be certain that
it is putting the log file in the right debian/ directory, even if one
exists - the autobuilder may have moved on to another package or 10
before it exits. Trapping exit errors in a module is, IMHO, less than
ideal.

The autobuilder uses the exit value of the build tool to log errors and
tag packages as needing more work. The log code in Debhelper::Dh_Lib
changes the exit value and doubles my workload because the wrong
packages get tagged.

Please reset the log behaviour so that it is, by default, off and only
enabled by specific executables, not modules. There could be a variety
of multi-build scripts out there that will break in this way.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/


Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to