Something is killing my Koji build

Michael Schwendt mschwendt at gmail.com
Sat Jan 12 18:54:47 UTC 2013


On Sat, 12 Jan 2013 12:52:26 -0500, Simo Sorce wrote:

> On Sat, 2013-01-12 at 18:14 +0100, Kevin Kofler wrote:
> > Ralf Corsepius wrote:
> > > Well, I am very opposed to silent makerules.
> > 
> > I like them. :-) By the way, CMake has had them for way longer than the 
> > autotools and they have always been the default in CMake (but we default RPM 
> > builds (and only RPM builds, in the %cmake and %cmake_kde4 RPM macros) to 
> > enable verbose mode by default now).
> > 
> > > All silent-makerules are doing is to span a hidden mine-field of bugs to
> > > trap users into.
> > > 
> > > E.g. are you sure your include paths and the defines your packages are
> > > using are correct? With silent makerules, you and your users won't
> > > notice them being wrong - building only appears to be working, while you
> > > package actually is totally misconfigured.

+1

Verbose build output is useful and convenient.

This is experienced regularly in Fedora Package Review Requests. Examples:
rpmlint detects "debuginfo without sources", but due to non-verbose build
output one cannot see what compiler flags are used actually or whether a
file gets stripped. Same for the linker flags. In other cases, there are
wrong preprocessor definitions, wrong file/directory paths entering the
builds, wrong header/library search path options, overridden optimization
flags, explicitly linked static libs, …

> > Those automatically generated compiler command lines tend to be very long, I 
> > doubt most developers actually read them, ever. All they do is burying 
> > important warnings (e.g. "cast to pointer from integer of different size") 
> > under a flood of non-error/warning lines, thus increasing the chance of the 
> > warnings getting missed. In fact, I dislike even the fact that we're 
> > required to use verbose mode for package builds, exactly for that reason. It 
> > makes build.log a lot larger (multiple MiB!) and a lot less useful.
> 
> +1
> verbose mode should be used only when debugging a build privately

It depends on how much is printed for a non-verbose build. If there's a
compiler/linker error, just terminating with "failed" or "error" is
inconvenient and not useful, because the packager would need to increase
verbosity for another test-build, even if just temporarily, and having to
do something like that repeatedly makes it a tedious task.

Imagine you've prepared a package "privately" (i.e. locally), but in the
official Fedora Build System it fails. Perhaps due to breakage in some of
the build requirements, such as a pkgconfig file (or a generic foo-config
script) adding libs that don't work. The build.log is not helpful, if the
details are missing.

-- 
Fedora release 18 (Spherical Cow) - Linux 3.7.1-5.fc18.x86_64
loadavg: 0.07 0.08 0.06


More information about the devel mailing list