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