On 09/09/2018 07:32 AM, Andrew Savchenko wrote: > Hi! > > Our current -Werror policy demands unconditional removal: > https://devmanual.gentoo.org/ebuild-writing/common-mistakes/index.html#-werror-compiler-flag-not-removed > > I think this is wrong, see bugs 665464, 665538 for a recent > discussion why. > > ... I agree with the QA team on this. For the upstream maintainer, -Werror is useful and deserves to be enabled. For the end-user, on the other hand, it has no real benefit. And for users of a source-based distribution, it is actively harmful. Here are some random points:
* A -Werror failure doesn't actually prevent me from installing a package, it only prevents me from installing a package with a newer compiler (that often provides other security improvements, like Spectre mitigation). So if you're using -Werror to prevent a "vulnerable" package from being installed, it doesn't work, and can actually be harmful if it prevents me from using a better compiler. * The build failures from -Werror don't occur only with new installs. They also occur during rebuilds for things like USE changes or library ABI updates, leaving you with a broken system. * Upstream maintainers can't retroactively fix Gentoo versions. If some old version foo-1.0 builds with gcc-8.x and is stable, but then breaks with gcc-9.x due to a new warning, how is upstream going to fix that? They aren't -- and you aren't either without patching a supposedly stable package in-place. * Breakage with -Werror prevents upgrades of an already-installed package. If there's a security vulnerability in an old version and if -Werror is preventing me from upgrading (thanks to a gcc upgrade in the meantime), then you've just made things much worse. And so on.