On Mon, Sep 10, 2018 at 01:51:15PM -0700, Matt Turner wrote: > On Mon, Sep 10, 2018 at 1:34 PM Chí-Thanh Christopher Nguyễn > <chith...@gentoo.org> wrote: > > > > Jason Zaman schrieb: > > >> No. With -Werror, upstream indicates that if a warning occurs, the build > > >> should fail and the resulting code not be installed on user systems. > > >> > > >> Instead, someone knowledgeable should look at the situation *first* and > > >> determine whether it is a bogus warning, a trivial issue, or something > > >> which > > >> warrants further attention. > > >> > > >> I have long disagreed with QA policy on this, and think that ebuilds > > >> should > > >> respect upstream here. Of course giving users the ability to override. > > > > > > I disagree. -Werror means that upstream wants it to build without > > > warnings on their distro with their version of the compiler with their > > > versions of all the libraries. > > > > It means, upstream wants it to build without warnings everywhere. And if a > > warning occurs (due to change in compiler, libraries, architecture, etc.), > > have a developer look at it first before installing the code on user > > systems. > > This sounds good in theory, but I think it's pretty well established > that in practice this isn't effective and instead is a large waste of > time. In fact, the foundational premise that it's possible to build > without warnings everywhere is simply wrong. > > Consider again the bug that started this. The maintainer had not built > this configuration. None of the arch teams had built this > configuration until I did for the last architecture Cc'd. The patch > committed doesn't change anything installed on the system, if not for > Werror preventing the code from building.
Replying to a somewhat random post. There are two separate things here that people are discussing here but are not the same thing. 1) We want to know when a package has terrible warnings when installing it so we can report upstream and know that something might have gone wrong. 2) There are a lot of spurious warnings that are worthless and would just annoy *everyone*. They are still legit warnings so its not like they should go away but they should not break the build. -Werror trips up on both of these which is why everyone dislikes it. We want to inform people about only 1) not 2). The solution to this is https://gitweb.gentoo.org/proj/portage.git/tree/bin/install-qa-check.d/90gcc-warnings (There is also an equivalent clang-warnings check too). These spit out "QA Notice: Package triggers severe warnings which indicate that it may exhibit random runtime failures." and a huge list of them. These are a focused list of the worst warnings that should be fixed first before all the others. If your goal is to improve the quality of code in general this qa-check is much better than using Werror on everything. Stick this in your make.conf: PORTAGE_ELOG_SYSTEM="echo save" PORTAGE_ELOG_CLASSES="warn error log qa" I'm pretty sure toralf's tinderbox already has these enabled but all devs should too. -- Jason