Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 429308 (verbose_build)

Summary: [tracker] ebuilds not forcing verbose build
Product: Quality Assurance Reporter: Julian Ospald <hasufell>
Component: TrackersAssignee: Gentoo Quality Assurance Team <qa>
Status: CONFIRMED ---    
Severity: normal CC: siarhei.siamashka
Priority: Normal Keywords: Tracker
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://devmanual.gentoo.org/ebuild-writing/common-mistakes/index.html
See Also: https://bugs.gentoo.org/show_bug.cgi?id=384193
https://bugs.gentoo.org/show_bug.cgi?id=379497
https://bugs.gentoo.org/show_bug.cgi?id=429744
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 430082, 429310, 429312, 429314, 429332, 429414, 429730, 429740, 429782, 429784, 429798, 429824, 429828, 429830, 429838, 429840, 429844, 429846, 429848, 429852, 429854, 429858, 429860, 429862, 429864, 429866, 429870, 429872, 429874, 429876, 429878, 429880, 429882, 429884, 429886, 429888, 429890, 429892, 429894, 429896, 429898, 429900, 429904, 430084, 430578, 437874, 437904, 437906, 437908, 438020, 438036, 438256, 438258, 439048, 439666, 439668, 441842, 441854, 442496, 442592, 442696, 443000, 443084, 443124, 443128, 443130, 443132, 443142, 443158, 443300, 443302, 443304, 443306, 443308, 443310, 443312, 443314, 443316, 443320, 443322, 443324, 443326, 443328, 443330, 443332, 443334, 443336, 443338, 443340, 443342, 443344, 443346, 443348, 443350, 443352, 443354, 443356, 443358, 443360, 443362, 443364, 443366, 443368, 443370, 443372, 443374, 443376, 443378, 443380, 443382, 443384, 443386, 443388, 443390, 443392, 443394, 443396, 443398, 443400, 443402, 443404, 443406, 443408, 443410, 443412, 443414, 444226, 444230, 444276, 444346, 444358, 444370, 444562, 444674, 444702, 444704, 444706, 444708, 444722, 444870, 445108, 445388, 445520, 445522, 445530, 445600, 445696, 446398, 446400, 447234, 447318, 447488, 447696, 447806, 447830, 447930, 448140, 448196, 448548, 448552, 448572, 448578, 448674, 449016, 449222, 449516, 450014, 450302, 450876, 451208, 451820, 452854, 453356, 453632, 453968, 453972, 454590, 455028, 456146, 456640, 456858, 458008, 458012, 460180, 461692, 461858, 461906, 462084, 462320, 466808, 466898, 467178, 467218, 467984, 475994, 477678, 486454, 486464, 486466, 504704, 505188, 508176, 563916, 578960, 589866, 590712, 590920, 653922    
Bug Blocks:    

Description Julian Ospald 2012-08-01 08:29:26 UTC
Build log should _always_ be verbose. This is not about build output which is controled by --quiet-build.

Reasons:
1. I want to see what happens. The build system might ignore CFLAGS, LDFLAGS (-Wl,--hash-style=gnu is not default) or add other random things.
2. When I ask someone in #gentoo to show me the build log I have to tell him he gotta recompile with EXTRA_ECONF="--disable-silent-rules" or whatever, because I often cannot help with non-verbose build log.
The same goes for attached build logs on bugzie.

Solution:
1. When using cmake just make sure to call "cmake-utils_src_compile", because CMAKE_VERBOSE is ON by default. For games ebuilds you have to overwrite src_compile function with this, because otherwise base_src_compile will be carried out.
2. For autotools based build systems add --disable-silent-rules to econf.
3. Custom Makefiles might need a patch.
Comment 1 Julian Ospald 2012-08-01 11:13:23 UTC
Reason 3: some QA checks might depend on verbose build log and are not yet implemented therefor.
Comment 3 Julian Ospald 2012-08-08 20:16:23 UTC
Solution 2 is not obsolete and the portage fix has been reverted until we get some council decision on this.
Comment 4 Julian Ospald 2012-09-28 12:25:53 UTC
note for autotools based build systems:
--disable-silent-rules is now part of econf in EAPI=5
Comment 5 Sergei Trofimovich (RETIRED) gentoo-dev 2012-11-09 21:35:36 UTC
Interesting. I always want to see verbose build log disabled :]

I'd appreciate an output for mc-9999 or xmms2-9999 in human-readable
form, not those pages of the same flags to notice newly popped suspictions
on my platform (-Werror is too harsh though)

  [CC] foo.o
    Here go only warnings reported by compiler and
    not 8 lines of include directories and unrelated -Woptions

What is the generic way to actually disable that verbose output for a
single run for a random package?

For xmms2 (waf based) case verbose build log will look rather weird
(i did run ./waf configure, thus varuables are used by default, not gentoo-ish):

  [ 40/348] c: src/plugins/vocoder/pvocoder.c -> _build_/src/plugins/vocoder/pvocoder.c.1.o
00:19:29 runner ['/usr/bin/gcc', '-g', '-O0', '-Wall', '-Wempty-body', '-Wformat=2', '-Wformat-nonliteral', '-Wformat-security', '-Wignored-qualifiers', '-Wmissing-prototypes', '-Wstrict-prototypes', '-Wtype-limits', '-Wwrite-strings', '-Wno-format-extra-args', '-Wno-format-zero-length', '-fdiagnostics-show-option', '-Werror=implicit-function-declaration', '-fPIC', '-I/tmp/portage/media-sound/xmms2-0.8-r1/work/xmms2-0.8DrO_o/_build_', '-I/tmp/portage/media-sound/xmms2-0.8-r1/work/xmms2-0.8DrO_o', '-I/tmp/portage/media-sound/xmms2-0.8-r1/work/xmms2-0.8DrO_o/_build_/src/include', '-I/tmp/portage/media-sound/xmms2-0.8-r1/work/xmms2-0.8DrO_o/src/include', '-I/usr/include/glib-2.0', '-I/usr/lib64/glib-2.0/include', '../src/plugins/vocoder/pvocoder.c', '-c', '-o', 'src/plugins/vocoder/pvocoder.c.1.o']

I don't expect any sane QA on such output.
QA-wise inserting canary into CFLAGS (like -frecord-gcc-switches)
or setting proper $CC to do the checks sounds more reliable.
Comment 6 Matt Turner gentoo-dev 2012-11-15 18:53:40 UTC
Wow what an amazing waste of time. Why didn't you file a single bug for the xorg-2 eclass, wait for it to get fixed, and then see what problems were left before filing 110 identical bugs?

Really fricking stupid. The original reporter needs to use his automated filing tool to automatically close these bugs too. I don't want anyone else wasting their time closing 100+ duplicates.
Comment 7 Julian Ospald 2012-11-15 18:58:49 UTC
I suggest to only file bugs for non-standard build systems or directly for an eclass.

EAPI-controlled build systems (econf) will migrate slowly over time, cause we have the fix in EAPI-5.
Eclass-controlled build systems (such as cmake) can be solved on an eclass level.


Custom Makefiles often need a patch and it's a good thing to report them.
Comment 8 Julian Ospald 2012-11-23 18:06:52 UTC
the devmanual has been patched to reflect the input of the dev community

http://git.overlays.gentoo.org/gitweb/?p=proj/devmanual.git;a=commit;h=b373edb4fbb2f619b0f153985a9e1b5d8c8f3220

to rephrase this a bit:

Bugs should be filed...
* if the build system does not use econf or something conrollable by an eclass (such as cmake or games). Otherwise we assume that ebuilds migrate to EAPI=5 over time which solves this anyway.
* for the eclass that controls the build system (e.g. cmake) or the package in another way (e.g. games.eclass or gnome2.eclass)
* for a single ebuild if there are no solutions above ebuild-level