Bug 1381249

Summary: Consider adding --disable-silent-rules to %configure
Product: [Fedora] Fedora Reporter: Jason Tibbitts <j>
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: ignatenko, kardos.lubos, novyjindrich, packaging-team-maint, pknirsch, pmatilai
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-10-03 14:21:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Jason Tibbitts 2016-10-03 13:45:42 UTC
In Fedora, we really do want maximum build verbosity by default, because the build artifacts generally can't be examined directly and build logs are often the only reasonable way for the packager (or anyone else) to see what's happened during the build process.

Someone recently filed a request against the Fedora packaging macros asking that V=1 be added to %make_build.  I would think that would be reasonably safe but there was a comment that it would be better to tell the configure script to be verbose instead using "--disable-silent-rules".

Of course, both of those macros come directly from RPM and not any of the *-rpm-macros or *-rpm-config packages and I certainly don't want to go patching RPM myself, so I figured I'd pass this up to you folks.  Please consider adding this or something like it.  If it turns out that there's no safe/compatible way to enable additional build verbosity then I understand completely.

Comment 1 Igor Gnatenko 2016-10-03 13:50:33 UTC
actually problem here is that some hand-written `./configure` will fail on this (I guess package "pseudo" was in my case).

Comment 2 Jason Tibbitts 2016-10-03 13:56:32 UTC
That's possible, though I don't think anyone ever promised that %configure would never use autoconf-supported arguments outside of a particular limited set.  It's never been safe (or, really, acceptable) to use %configure for something that's not autoconf.

My main concern would be for ancient configure scripts; I honestly do not know how they would react, or how long this option has been supported.  Those have long been a problem in any case.

In either of these situations, the result would simply be build failures.  An easy workaround would be for a separate macro which could be used to control inclusion of the flag.

Comment 3 Panu Matilainen 2016-10-03 14:01:04 UTC
%configure is only intended for use with autoconf configure really, using it for anything else is just feeling lucky. However this has been tried before.

From redhat-rpm-config:
commit 8174ec3d109bbc61874d83b4fc77f19f2b76b05b
Author: Colin Walters <walters>
Date:   Tue Aug 9 10:42:06 2011 -0400

    macros: Globally add --disable-silent-rules to configure
    
    Various projects have been adding AM_SILENT_RULES from Automake to
    their Makefiles for "developer convenience"; the goal being that they
    see warnings more easily.
    
    Now really the right way to do this is to have a make wrapper (or an IDE)
    that knows how to filter out warnings, but let's leave that aside for now.
    
    But for debugging builds, we really need the full log data.  Being
    able to see exactly how e.g. libtool is being run helps a lot for
    debugging link problems as an example.

[fast-forward a few months]

commit 36225c3b7cda2f84793515d11f8df9c30b3bb3f2
Author: Dennis Gilmore <dennis.us>
Date:   Wed Nov 9 07:27:37 2011 -0600

    Revert "macros: Globally add --disable-silent-rules to configure"
    
    This reverts commit 8174ec3d109bbc61874d83b4fc77f19f2b76b05b.
    
    remove patch that forces --disable-silent-rules to configure it breaks anything set to not ignore unknown configure options

Comment 4 Jason Tibbitts 2016-10-03 14:08:48 UTC
Heh.  Well, it could be time to revisit that.  With a macro to easily disable it, and some side tag rebuilds, it wouldn't be too hard to shake out the failures and fix them up.

Also, I am a bit confused about how that's in redhat-rpm-config; I was pretty sure the %configure macro is in /usr/lib/rpm/macros, which is part of rpm.  Has that macro moved around?  Not having to involve the rpm package itself in something like this is always a good thing; the packing committee will make changes to the various macros packages but I know I don't want to poke at rpm directly.

Comment 5 Jason Tibbitts 2016-10-03 14:21:47 UTC
Well indeed I am being done; redhat-rpm-config does include its own %configure definition.  I had no idea; I thought it tried not to conflict with what RPM provided.  I guess I filed this against the wrong package, then.  Sorry for the trouble.

Comment 6 Panu Matilainen 2016-10-03 14:39:10 UTC
These things are like pendulum, one year people want to pull everything into distro specific packages and the next year they try to move it all into rpm again. Etc.

Bottom line is that there's no single right or wrong. The %configure in redhat-rpm-config contains things that wouldn't be acceptable in upstream rpm, but for things that make sense universally (ie outside Fedora/RHEL) we want to keep rpm's %configure in sync for the benefit of other distros etc.

Comment 7 Jason Tibbitts 2016-10-04 19:27:35 UTC
Just for the record, I went ahead and added (in redhat-rpm-config) a conditional inclusion of --disable-silent-rules in the options passed to the configure script.  If %_configure_disable_silent_rules is defined, then that option will be passed.  I didn't define it by default, of course, so currently there's zero change in functionality.  The end result is that it can now be turned on with the flick of a switch (if FPC decides it wants to) and can be easily turned off by individual packages.  Or a packager can turn it on now if they want to.

I do wish we had some idea of just what it broke when it was reverted the last time, but eventually I'll do some complete Fedora rebuilds and get that all figured out.