Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Matt Turner
On Thu, Sep 13, 2018 at 5:44 PM Richard Yao  wrote:
> > On Sep 13, 2018, at 7:21 PM, Matt Turner  wrote:
> >
> > On Thu, Sep 13, 2018 at 4:13 PM Richard Yao  wrote:
> >>> On Sep 13, 2018, at 12:03 PM, Fabian Groffen  wrote:
> >>>
>  On 13-09-2018 07:36:09 -0400, Richard Yao wrote:
> 
> 
> >> On Sep 12, 2018, at 6:55 PM, Thomas Deutschmann  
> >> wrote:
> >>
> >> On 2018-09-12 16:50, Rich Freeman wrote:
> >> There is also the case where we want these warnings to block
> >> installation, because the risk of there being a problem is too great.
> >
> > I really disagree with that. So many devs have already said multiple
> > times in this thread that "-Werror" is only turning existing warnings
> > into fatal errors but "-Werror" itself doesn't add any new checks and
> > more often requires "-O3" to be useful.
>  The way that compilers work is that the warnings are generated in the 
>  front end while the optimization level affects the backend. That means 
>  that -O3 has no effect on the code that does error generation. This 
>  remark about -O3 being needed to make -Werror useful is just plain wrong.
> >>>
> >>> Huh?  -O3 enables more checks, which can generate more warnings.
> >>
> >> What checks are those? -O3 affects backend optimization while warnings are 
> >> generated by the front end. Once the immediate representation is 
> >> generated, there are no other warnings aside from those from the linker.
> >
> > https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> >
> > Search for "depend on"
> >
> > -> [...] estimated based on heuristics that depend on thelevel
> > argument and on optimization
> >
> > -> Because these warnings depend on optimization [...]
> >
> > Yes, warnings are dependent on optimization level.
>
> There are three such options. The first two are for format statements:
>
> > “When the exact number of bytes written by a format directive cannot be 
> > determined at compile-time it is estimated based on heuristics that depend 
> > on the level argument and on optimization. While enabling optimization will 
> > in most cases improve the accuracy of the warning, it may also result in 
> > false positives. “
>
> My read of this is that the warning occurs regardless of optimization level, 
> but it could somehow be improved by optimization.
>
> As for the last, it is for uninitialized variable reads. However, I think you 
> are misinterpreting the claim. The way that optimization level could affect 
> warning generation would be if the warning generation came after optimization 
> passes that could hide reads. That means that -O3 would prevent the warning.
>
> This is a really odd design decision by the GCC developers. With other 
> compilers, the separation between front end and backend is strong enough that 
> you will never have this sort of thing. It does not seem necessary to me 
> either. :/

I'm sorry, but you really don't know what you're talking about. I've
already told you once that you were just adding noise to this
conversation.



Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Georg Rudoy
On 14.09.2018 at 0:44 user Richard Yao  wrote:
> This is a really odd design decision by the GCC developers. With other 
> compilers, the separation between front end and backend is strong enough that 
> you will never have this sort of thing. It does not seem necessary to me 
> either. :/

You might be able to perform certain additional data/control flow analysis 
after things like inlining, dead code removal or devirtualization.

Moving that logic to the frontend would require essentially duplicating what's 
the optimizer's gonna do anyway, which might have negative effects on 
compilation times (both with and without optimizations) and compiler code 
maintenance.

BTW I'm not sure the separation on backend/frontend makes sense for modern C++ 
compilers. clang surely does some optimizations, and llvm (at least, in theory) 
is certainly able to find certain issues after more optimizer passes.



-- 
  Georg Rudoy




Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Richard Yao



> On Sep 13, 2018, at 7:21 PM, Matt Turner  wrote:
> 
> On Thu, Sep 13, 2018 at 4:13 PM Richard Yao  wrote:
>>> On Sep 13, 2018, at 12:03 PM, Fabian Groffen  wrote:
>>> 
 On 13-09-2018 07:36:09 -0400, Richard Yao wrote:
 
 
>> On Sep 12, 2018, at 6:55 PM, Thomas Deutschmann  
>> wrote:
>> 
>> On 2018-09-12 16:50, Rich Freeman wrote:
>> There is also the case where we want these warnings to block
>> installation, because the risk of there being a problem is too great.
> 
> I really disagree with that. So many devs have already said multiple
> times in this thread that "-Werror" is only turning existing warnings
> into fatal errors but "-Werror" itself doesn't add any new checks and
> more often requires "-O3" to be useful.
 The way that compilers work is that the warnings are generated in the 
 front end while the optimization level affects the backend. That means 
 that -O3 has no effect on the code that does error generation. This remark 
 about -O3 being needed to make -Werror useful is just plain wrong.
>>> 
>>> Huh?  -O3 enables more checks, which can generate more warnings.
>> 
>> What checks are those? -O3 affects backend optimization while warnings are 
>> generated by the front end. Once the immediate representation is generated, 
>> there are no other warnings aside from those from the linker.
> 
> https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> 
> Search for "depend on"
> 
> -> [...] estimated based on heuristics that depend on thelevel
> argument and on optimization
> 
> -> Because these warnings depend on optimization [...]
> 
> Yes, warnings are dependent on optimization level.

There are three such options. The first two are for format statements:

> “When the exact number of bytes written by a format directive cannot be 
> determined at compile-time it is estimated based on heuristics that depend on 
> the level argument and on optimization. While enabling optimization will in 
> most cases improve the accuracy of the warning, it may also result in false 
> positives. “

My read of this is that the warning occurs regardless of optimization level, 
but it could somehow be improved by optimization.

As for the last, it is for uninitialized variable reads. However, I think you 
are misinterpreting the claim. The way that optimization level could affect 
warning generation would be if the warning generation came after optimization 
passes that could hide reads. That means that -O3 would prevent the warning.

This is a really odd design decision by the GCC developers. With other 
compilers, the separation between front end and backend is strong enough that 
you will never have this sort of thing. It does not seem necessary to me 
either. :/



Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Georg Rudoy
On 13.09.2018 at 16:20 user Fabian Groffen  wrote:
>> > To illustrate harmless:
>> >   warning: this statement may fall through [-Wimplicit-fallthrough=]
>> > The warning message already has it in it that it's just a pure guess.
>>
>> One that exposed a lot of unintentional fallthoughs which were fixed
>> when reporting to upstream.
>
> Sure that's why the warning is there.  But you ignore the point that the
> same code compiled fine and ran fine for years without problems.

I have more than a few examples of my code compiling fine and running "fine"
for years (so that no observable defects were visible), yet newly introduced
warnings or static analyzer runs showed the defects that resolved actual bugs
when fixed. And, ironically, that also includes the fallthrough
warnings [1-3].

And cases of me stumbling upon some other legacy code, compiling it with a
newer compiler and going "WTF how it even managed to produce anything meaningful
at all?" are not uncommon.

Just my two C++ents here.

[1] 
https://github.com/0xd34df00d/leechcraft/commit/663b69249cd61d1cbd490a3eee7909ae26d03240
[2] 
https://github.com/0xd34df00d/leechcraft/commit/fa8ff9dc315e894fada4aaf73534bdfc15121cb3
[3] 
https://github.com/0xd34df00d/leechcraft/commit/6b26961b52b6e8277db39b084f483d1959253313


-- 
  Georg Rudoy




Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Matt Turner
On Thu, Sep 13, 2018 at 4:13 PM Richard Yao  wrote:
> > On Sep 13, 2018, at 12:03 PM, Fabian Groffen  wrote:
> >
> >> On 13-09-2018 07:36:09 -0400, Richard Yao wrote:
> >>
> >>
>  On Sep 12, 2018, at 6:55 PM, Thomas Deutschmann  
>  wrote:
> 
>  On 2018-09-12 16:50, Rich Freeman wrote:
>  There is also the case where we want these warnings to block
>  installation, because the risk of there being a problem is too great.
> >>>
> >>> I really disagree with that. So many devs have already said multiple
> >>> times in this thread that "-Werror" is only turning existing warnings
> >>> into fatal errors but "-Werror" itself doesn't add any new checks and
> >>> more often requires "-O3" to be useful.
> >> The way that compilers work is that the warnings are generated in the 
> >> front end while the optimization level affects the backend. That means 
> >> that -O3 has no effect on the code that does error generation. This remark 
> >> about -O3 being needed to make -Werror useful is just plain wrong.
> >
> > Huh?  -O3 enables more checks, which can generate more warnings.
>
> What checks are those? -O3 affects backend optimization while warnings are 
> generated by the front end. Once the immediate representation is generated, 
> there are no other warnings aside from those from the linker.

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

Search for "depend on"

-> [...] estimated based on heuristics that depend on thelevel
argument and on optimization

-> Because these warnings depend on optimization [...]

Yes, warnings are dependent on optimization level.



Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Richard Yao



> On Sep 13, 2018, at 12:03 PM, Fabian Groffen  wrote:
> 
>> On 13-09-2018 07:36:09 -0400, Richard Yao wrote:
>> 
>> 
 On Sep 12, 2018, at 6:55 PM, Thomas Deutschmann  wrote:
 
 On 2018-09-12 16:50, Rich Freeman wrote:
 There is also the case where we want these warnings to block
 installation, because the risk of there being a problem is too great.
>>> 
>>> I really disagree with that. So many devs have already said multiple
>>> times in this thread that "-Werror" is only turning existing warnings
>>> into fatal errors but "-Werror" itself doesn't add any new checks and
>>> more often requires "-O3" to be useful.
>> The way that compilers work is that the warnings are generated in the front 
>> end while the optimization level affects the backend. That means that -O3 
>> has no effect on the code that does error generation. This remark about -O3 
>> being needed to make -Werror useful is just plain wrong. 
> 
> Huh?  -O3 enables more checks, which can generate more warnings.

What checks are those? -O3 affects backend optimization while warnings are 
generated by the front end. Once the immediate representation is generated, 
there are no other warnings aside from those from the linker.
>  -O3
> isn't "needed", but if upstream is so interested in clean and correct
> code, they should've fixed all warnings in the first place and thus
> enabled all of them.  In fact, I expect every sane upstream to use "-O3
> -Wall -Werror" in one of their automated builds.  Not that this catches
> anything useful on x86{,_64} when there is for instance use of signed
> and unsigned char types, so it isn't conclusive.
> 
> The whole point in here is that -Werror doesn't add much if you care.
> The whole point why it is not desired in Gentoo is that users don't
> necessarily are developers, or even interested in fixing warnings --
> regardless whether they point to real problems or not.
> 
> If there are real problems in a package (exposed by a compiler or not)
> then this should ideally stand out during ~arch testing, or even before
> when the Gentoo maintainer examines the build (might even use -Werror
> for his own purposes).  If such code ends up in stable arch we just made
> a stabilisation mistake, or got royally messed up by upstream, depending
> how you look at it.
> 
> Fabian
> 
> -- 
> Fabian Groffen
> Gentoo on a different level




Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Sergei Trofimovich
On Tue, 11 Sep 2018 12:44:38 +0300
Alon Bar-Lev  wrote:

I'm personally in favour of not allowing -Werror
to be in build system unconditionally.

Maintainer is free to implement --enable-werror any way
it's convenient to run on their own extended sanity checks
and optionally expose it to users. Be it USE flag or
EXTRA_ECONF option.

> I would like to suggest a modify our policy with the following
> exception clause: Package maintainer may decide to keep upstream
> -Werror as long as he is willing to resolve all issues resulting from
> -Werror as if it was a blocker bug.

Do you intend to keep -Werror for case when ebuild goes
stable as well?

If you do it then what is your workflow to fix breakages
appearing in stable packages caused by minor environment
changes like toolchain tweaks?

Add another round of stabilization on each arch team? It
sounds like your default assumption that code needs to be
changed in a semantically significant way: add annotations
that might not like some toolchains, remove unused code.

Or patch package in-place without bumping? None of options
sound optimal compared to dropping -Werror.

> The package maintainer decision may be based on the package state and
> the relationship with upstream, but basically, it is his decision as
> long as issues are fixed in timely manner, it is his overhead after
> all.

I agree that maintainer's will and upstream's will should be
respected and it's not something needs to be absolutely
enforced all the time.

Personally I disagree -Werror on end-user machine is worth
it (or cppcheck, or coverity round-trip run is worth running
on user's machine unconditionally).

Unused variable is a good example of typical benign warning:
it was there all the time, it's not a new bug and does not
warrant need for an immediate fix.

Toolchain just happend to get better at control flow graph
analysis. Fix can easily wait for next release and save
everyone's time.

Not every user is willing to create bugzilla account and figure
the path of reporting the breakage. Especially if there are
many breakages like that. Getting multiple various errors is
probable if one imagines -Werror to be commonly allowed.
This is user's overhead. Not just maintainer's.

Gentoo does not normally run tests on user's systems either.
Tests are arguably a lot more precise in pointing out real
problems in software.

> ARGUMENT: If a package compiled in the past using toolchain X then it
> must continue to do so with any future toolchain.
> 
> I do not understand when "build" is the test for runtime

The argument was about "keep compiling". Runtime
behaviour is a separate issue and (in my opinion) is an
orthogonal topic.

On another note I occasionally like to build Gentoo with
clang's -Weverything (or equivalent set of gcc CFLAGS)
to get the idea if there is a good useful warning out there
to put into -Werror= list.

Explicit -Werror= list allows code not to regress. But even
that is prone to harmless infelicities in libc headers that
can't be easily fixed.

In case of opensc it just does not compile even if I pass -Wno-error:
$ CC=clang CFLAGS="-O2 -Weverything -Wno-error" emerge -v1 opensc

I don't expect 'opensc' upstream to fix this use for me
and don't see it worth reporting to bugzilla.

But maybe I'm wrong?

-- 

  Sergei



Re: [gentoo-dev] Last rites: dev-lang/solidity

2018-09-13 Thread David Haller
Hello,

On Thu, 13 Sep 2018, Michal Górny wrote:
># Michal Górny  (13 Sep 2018)
># Depends on old version of dev-libs/jsoncpp, blocking its pruning.
># Downstream maintainer is inactive to bump it.  Removal in 30 days.
>dev-lang/solidity

As per the "no -Werror" policy, the following patch to the ebuild, or
something to the same effect should be done anyway, and it compiles
without '-Werror'.


--- a/solidity-0.4.18.ebuild  2017-12-20 21:09:16.0 +0100
+++ b/solidity-0.4.18.ebuild  2018-09-13 15:59:06.584892127 +0200
@@ -28,6 +28,11 @@
"${FILESDIR}"/${P}-fix-cmake-external-jsoncpp.diff
 )
 
+src_prepare() {
+   sed -i '/add_compile_options(-Werror)/d' cmake/EthCompilerSettings.cmake
+   cmake-utils_src_prepare
+}
+
 src_configure() {
local mycmakeargs=(
"-DBoost_USE_STATIC_LIBS=off"


HTH,
-dnh

-- 
| Ceci n'est pas une pipe



[gentoo-dev] Re: Changing policy about -Werror

2018-09-13 Thread Nikos Chantziaras

On 09/09/2018 14:32, Andrew Savchenko wrote:

My point is that in *most* cases -Werror indeed should be removed,
because upstream rarely can keep up with all possible configure,
*FLAGS, compiler versions and arch combinations. But! In some cases
— especially for security oriented software — this flag may be
pertain and may be kept at maintainer's discretion.

The rationale is that -Werror usually points to dangerous
situations like uninitialized variables, pointer type mismatch or
implicit function declaration (and much more) which may lead to
serious security implications.


Not sure if user feedback is welcome or not, but consider:

A piece of security oriented software gets an update (v2) that closes a 
security hole in v1. User tries to update to v2, but the emerge fails 
because of -Werror. User stays on v1 and thus remains vulnerable.


-Werror achieved the exact opposite of what the intent was.




Re: [gentoo-dev] [PATCH 1/2] cmake-utils.eclass: Make ninja default backend in EAPI >= 7

2018-09-13 Thread Michał Górny
On Thu, 2018-09-13 at 20:55 +0200, Andreas Sturmlechner wrote:
> On Donnerstag, 13. September 2018 16:25:13 CEST Mike Gilbert wrote:
> > This may effect your plans to enable ninja by default, since it will
> > break any fortran package.
> 
> Not much concerned about that; backend default can be overridden by package, 
> should its maintainer find out it breaks by EAPI-7 bump.
> 

...and soon enough we end up tracking packages whose default backend
needed to be changed because the maintainer had to workaround bugs
in a particular ninja version.

Am I the only one who misses the times when programmers made working
software and tried to fix bugs rather than releasing whatever satisfies
some internal use case, and ignoring bugs that didn't affect it?

-- 
Best regards,
Michał Górny


signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] [PATCH 1/2] cmake-utils.eclass: Make ninja default backend in EAPI >= 7

2018-09-13 Thread Andreas Sturmlechner
On Donnerstag, 13. September 2018 16:25:13 CEST Mike Gilbert wrote:
> This may effect your plans to enable ninja by default, since it will
> break any fortran package.

Not much concerned about that; backend default can be overridden by package, 
should its maintainer find out it breaks by EAPI-7 bump.






Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Alon Bar-Lev
On Thu, Sep 13, 2018 at 7:20 PM Fabian Groffen  wrote:
> > > To illustrate harmless:
> > >   warning: this statement may fall through [-Wimplicit-fallthrough=]
> > > The warning message already has it in it that it's just a pure guess.
> >
> > One that exposed a lot of unintentional fallthoughs which were fixed
> > when reporting to upstream.
>
> Sure that's why the warning is there.  But you ignore the point that the
> same code compiled fine and ran fine for years without problems.

The fact that something is compiling and running fine meaning there
are no issues (bugs) within code?
Seriously?
Even after no-warning with multiple compiler vendors, code coverage,
unit testing, test on various of architecture developer has access to,
static code analysis and running for years, bugs are there. Any method
to help detect suspicious code, even if it produces amount of false
positive, must be embraced of those who care about quality. New
toolchains, new scanners, new architectures all can help to improve
quality to make sure great service is provided to users.

In Gentoo language, all these issues should be detected for selected
packages by non-stable users, on architecture and permutations that
upstream do not have access to, and to help upstream to filter false
positives and find the positives ones. Even one case of funding real
issue is sufficient to justify the maintenance costs, once again for
selected packages in which upstream following strict quality policy
and downstream follows. Once policy is applied, the amount of noise is
very little, toolchain evolution is not as it was 10 years ago.

Regards,
Alon



Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Fabian Groffen
On 13-09-2018 18:56:13 +0300, Alon Bar-Lev wrote:
> On Thu, Sep 13, 2018 at 6:51 PM Fabian Groffen  wrote:
> >
> > On 12-09-2018 17:46:03 -0700, Matt Turner wrote:
> > > On Wed, Sep 12, 2018 at 5:11 PM Rich Freeman  wrote:
> > > With new GCC comes new warnings, and harmless as the vast majority are
> > > they cause the build to break with Werror.
> >
> > To illustrate harmless:
> >   warning: this statement may fall through [-Wimplicit-fallthrough=]
> > The warning message already has it in it that it's just a pure guess.
> 
> One that exposed a lot of unintentional fallthoughs which were fixed
> when reporting to upstream.

Sure that's why the warning is there.  But you ignore the point that the
same code compiled fine and ran fine for years without problems.

> Once again... we should discuss to leave -Werror when policy of
> upstream to have no warnings and is maintaining that policy properly
> while we at downstream may cooperate and avoid patching upstream but
> discuss issues when found.

On a developer's system, that would be nice.

For ordinary users on the other hand:
Leaving -Werror is leaving our users alone in the dark.  Don't do that.

-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: PGP signature


[gentoo-dev] Last rites: sys-fs/bedup

2018-09-13 Thread Michał Górny
# Michał Górny  (30 Oct 2015)
# Uses unsafe ioctls that could result in data corruption. Upstream
# is working on replacing them in the wip/dedup-syscall branch.
# Keep it masked until they are done. sys-fs/duperemove is
# the suggested replacement for the meantime.
# Michał Górny  (13 Sep 2018)
# No upstream commits since 2016.  Removal in 30 days.  Bug #546144.
sys-fs/bedup

-- 
Best regards,
Michał Górny


signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Fabian Groffen
On 12-09-2018 20:09:54 -0400, Rich Freeman wrote:
> On Wed, Sep 12, 2018 at 7:32 PM Chí-Thanh Christopher Nguyễn
>  wrote:
> >
> > Alon Bar-Lev schrieb:
> > > We
> > > are unique as permutations and architectures that are used by Gentoo
> > > users are so diverse that we find issues that nobody else finds.
> >
> > This needs to be highlighted more, as it is why suggestions that the
> > maintainer can simply put -Werror back on their own system are insufficient.
> >
> 
> Wouldn't running into new runtime issues be exactly the sort of reason
> why we'd want to build with -Werror on packages where these issues are
> unacceptable?

Can you think of a way in which a new runtime issue would occur that
-Werror would have guarded?  And that issue would also get through
maintainer and ~arch testing?

Fabian

-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: PGP signature


Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Fabian Groffen
On 13-09-2018 07:36:09 -0400, Richard Yao wrote:
> 
> 
> > On Sep 12, 2018, at 6:55 PM, Thomas Deutschmann  wrote:
> > 
> >> On 2018-09-12 16:50, Rich Freeman wrote:
> >> There is also the case where we want these warnings to block
> >> installation, because the risk of there being a problem is too great.
> > 
> > I really disagree with that. So many devs have already said multiple
> > times in this thread that "-Werror" is only turning existing warnings
> > into fatal errors but "-Werror" itself doesn't add any new checks and
> > more often requires "-O3" to be useful.
> The way that compilers work is that the warnings are generated in the front 
> end while the optimization level affects the backend. That means that -O3 has 
> no effect on the code that does error generation. This remark about -O3 being 
> needed to make -Werror useful is just plain wrong. 

Huh?  -O3 enables more checks, which can generate more warnings.  -O3
isn't "needed", but if upstream is so interested in clean and correct
code, they should've fixed all warnings in the first place and thus
enabled all of them.  In fact, I expect every sane upstream to use "-O3
-Wall -Werror" in one of their automated builds.  Not that this catches
anything useful on x86{,_64} when there is for instance use of signed
and unsigned char types, so it isn't conclusive.

The whole point in here is that -Werror doesn't add much if you care.
The whole point why it is not desired in Gentoo is that users don't
necessarily are developers, or even interested in fixing warnings --
regardless whether they point to real problems or not.

If there are real problems in a package (exposed by a compiler or not)
then this should ideally stand out during ~arch testing, or even before
when the Gentoo maintainer examines the build (might even use -Werror
for his own purposes).  If such code ends up in stable arch we just made
a stabilisation mistake, or got royally messed up by upstream, depending
how you look at it.

Fabian

-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: PGP signature


Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Alon Bar-Lev
On Thu, Sep 13, 2018 at 6:51 PM Fabian Groffen  wrote:
>
> On 12-09-2018 17:46:03 -0700, Matt Turner wrote:
> > On Wed, Sep 12, 2018 at 5:11 PM Rich Freeman  wrote:
> > With new GCC comes new warnings, and harmless as the vast majority are
> > they cause the build to break with Werror.
>
> To illustrate harmless:
>   warning: this statement may fall through [-Wimplicit-fallthrough=]
> The warning message already has it in it that it's just a pure guess.

One that exposed a lot of unintentional fallthoughs which were fixed
when reporting to upstream.

Once again... we should discuss to leave -Werror when policy of
upstream to have no warnings and is maintaining that policy properly
while we at downstream may cooperate and avoid patching upstream but
discuss issues when found.



Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Fabian Groffen
On 12-09-2018 17:46:03 -0700, Matt Turner wrote:
> On Wed, Sep 12, 2018 at 5:11 PM Rich Freeman  wrote:
> >
> > On Wed, Sep 12, 2018 at 7:52 PM Matt Turner  wrote:
> > >
> > > On Wed, Sep 12, 2018 at 4:03 PM Rich Freeman  wrote:
> > > > Now, I could buy that -Werror turns NEW warnings into fatal errors,
> > > > due to the use of a newer toolchain, since upstream probably didn't
> > > > test with that toolchain and thus wouldn't have seen the warning.
> > >
> > > Yes, exactly. This is one of the major things people have said repeatedly.
> > >
> > > Werror makes moving gcc forward much more difficult.
> > >
> >
> > Sure, but wouldn't a block on newer versions of gcc cause similar headaches?
> 
> Sure...? Who is suggesting that? I'm not sure where you're going with this.
> 
> With new GCC comes new warnings, and harmless as the vast majority are
> they cause the build to break with Werror.

To illustrate harmless:
  warning: this statement may fall through [-Wimplicit-fallthrough=]
The warning message already has it in it that it's just a pure guess.


-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: PGP signature


Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Fabian Groffen
On 13-09-2018 00:55:45 +0200, Thomas Deutschmann wrote:
> Unless you can do that we don't really need to discuss this. Simply
> because everyone interested in "-Werror" *can* set that flag via CFLAGS,
> even just per package, whereas the majority, not interested in this,
> cannot do the same to filter "-Werror". Nobody advocating for "-Werror"
> replied to that fact yet.

Unfortunately adding -Werror to CFLAGS is not just possible.  Many
configure checks rely on the compiler just generating something,
ignoring warnings for various reasons.  If you add -Werror to your
CFLAGS you basically introduce breakage for some autoconf-based
packages.

What we really should be having is an easy way for post-configure CFLAGS
addition.  Just to support devs/users who insist on this for their
setups.

Fabian

-- 
Fabian Groffen
Gentoo on a different level


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH 1/2] cmake-utils.eclass: Make ninja default backend in EAPI >= 7

2018-09-13 Thread Mike Gilbert
On Thu, Jul 26, 2018 at 2:35 AM  wrote:
>
> From: David Seifert 
>
> * Using the ninja backend as a default is the only way to
>   massively improve src_compile core utilization, given that
>   it seems unlikely that CMake will ever produce non-recursive
>   Makefiles.

I just want to bring your attention to this bug comment, which would
indicate a regression in the kitware branch of ninja that I was asked
to merge by the Gentoo cmake maintainers.

https://bugs.gentoo.org/663384#c1

If this comment proves to have the right conclusion, I will likely
revert back to the vanilla upstream codebase until the kitware branch
can be fixed.

This may effect your plans to enable ninja by default, since it will
break any fortran package.



Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Ulrich Mueller
> On Thu, 13 Sep 2018, Mike  wrote:

> On 9/13/18 9:35 AM, Rich Freeman wrote:
>> What regulation?  No action was taken.
>> 
>> We can't exactly stop people from asking governance bodies to do
>> things.  At most we can say no when they ask.
>> 
>> Unless we want to make people ask if they can ask.  Now, that would
>> be regulation...  :)

> It was an attempt at a compliment of us working together.

It just didn't come across like that (at least not to me).
Never mind then.

Ulrich


signature.asc
Description: PGP signature


Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Mike


On 9/13/18 9:35 AM, Rich Freeman wrote:
> On Thu, Sep 13, 2018 at 9:29 AM Mike  wrote:
>>
>> And I apologize for writing that commit rights were requested to be
>> removed.  My mistake, bugzilla access rights were asked to be removed.
>> ...
>>
>> I'm not a fan of more and more and more regulation that I see.  Sorry if
>> you don't like that opinion.
>>
> 
> What regulation?  No action was taken.
> 
> We can't exactly stop people from asking governance bodies to do
> things.  At most we can say no when they ask.
> 
> Unless we want to make people ask if they can ask.  Now, that would be
> regulation...  :)
> 

It was an attempt at a compliment of us working together.






signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Rich Freeman
On Thu, Sep 13, 2018 at 9:29 AM Mike  wrote:
>
> And I apologize for writing that commit rights were requested to be
> removed.  My mistake, bugzilla access rights were asked to be removed.
>...
>
> I'm not a fan of more and more and more regulation that I see.  Sorry if
> you don't like that opinion.
>

What regulation?  No action was taken.

We can't exactly stop people from asking governance bodies to do
things.  At most we can say no when they ask.

Unless we want to make people ask if they can ask.  Now, that would be
regulation...  :)

-- 
Rich



Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Mike


On 9/13/18 7:25 AM, Ulrich Mueller wrote:
>> On Wed, 12 Sep 2018, Mike  wrote:
> 
>> Picking random email.
> 
>> I would like to say I'm glad we can discuss our technical differences
>> like this with both sides expressing their opinion and reasoning.
> 
>> I would hope in the future we start with this path and not with
>> disciplinary action or bugs requesting the removal of commit access.
> 
>> We're showing here we can bring up our points without handing out "QA
>> strikes" or some other type of confrontational action.
> 
> Sorry, but I am tired of that antagonising of the QA team.
> 
> There hasn't been any bug about commit access removal. And not sure what
> you mean with "QA strike", but there also wasn't any direct QA action on
> the package that triggered the current discussion. After being CCed to a
> bug, the QA team has merely pointed out to the maintainer that the
> package is not in agreement with the current policy (as it is defined in
> the devmanual).
> 
> IMHO this is the QA team's purpose. Or what would you expect us to do
> instead? Remain silent if asked by another developer to evaluate an
> issue? Then we could as well disband QA.
> 
> Also note that there are several remedies if there is disagreement
> between a maintainer and QA, like asking QA for an exception, appealing
> to the council, or changing the policy in question.
> 
> Ulrich
> 

I'm sorry you feel I am antagonizing QA. I've never had a problem with
QA, personally.

And I apologize for writing that commit rights were requested to be
removed.  My mistake, bugzilla access rights were asked to be removed.

I actually thought I was complimenting our process. Seeing people
discuss their technical differences.

I'm not a fan of more and more and more regulation that I see.  Sorry if
you don't like that opinion.

And by "QA strike", I am referring to the policy that was posted and
then rescinded.

But, this is all off-topic of this thread.









signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] acceptable alternatives to -Werror, was: Changing policy about -Werror

2018-09-13 Thread Richard Yao



> On Sep 12, 2018, at 8:23 PM, Chí-Thanh Christopher Nguyễn 
>  wrote:
> 
> Rich Freeman schrieb:
>>> Requirements:
>>> 
>>> * Do not fail to build/install when a warning is encountered
>> On a particularly critical package like a filesystem, wouldn't we want
>> to still fail to install when a warning is encountered?
> 
> Installation will proceed, but the user will get a big fat warning that the 
> sys-fs/zfs package is potentially broken.

The way that it works is that a user explicitly must enable USE=debug for 
-Werror to apply. The package itself’s use of -Werror in USE=debug does not 
prevent corruption issues so much as it detects them because the kernel code is 
built in userspace. sys-fs/zfs-kmod is what matters for this. USE=debug does 
not turn on -Werror there because we don’t inject it into the kernel build 
system. If such a bug is detected and a user proceeds to use the rebuilt kernel 
module, things could go poorly.

Anyway, I seem to have injected noise into the conversation by bringing this up 
because the discussion is whether -Werror by default should be allowed. I only 
commented because I felt that it should be an exception in the case of 
USE=debug or an explicit USE flag for Werror (e.g. USE=Werror).
> 
>> I get that users might quit if packages don't install, but I'm not
>> sure that a filesystem corruption is going to make them any happier...
> 
> If the user recognizes this as a critical package, then they can do the 
> research before deciding on whether to use the package as is, attempt to 
> downgrade, or wait until a fix is released.
> 
> 
> Best regards,
> Chí-Thanh Christopher Nguyễn
> 




Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Richard Yao



> On Sep 12, 2018, at 6:55 PM, Thomas Deutschmann  wrote:
> 
>> On 2018-09-12 16:50, Rich Freeman wrote:
>> There is also the case where we want these warnings to block
>> installation, because the risk of there being a problem is too great.
> 
> I really disagree with that. So many devs have already said multiple
> times in this thread that "-Werror" is only turning existing warnings
> into fatal errors but "-Werror" itself doesn't add any new checks and
> more often requires "-O3" to be useful.
The way that compilers work is that the warnings are generated in the front end 
while the optimization level affects the backend. That means that -O3 has no 
effect on the code that does error generation. This remark about -O3 being 
needed to make -Werror useful is just plain wrong. 
> So let's turn this around: Please show us a *real* case within Gentoo
> where "-Werror" prevented a real problem which wouldn't otherwise being
> noticed. E.g. show us a package which was merged on user's system,
> replacing a working previous version of that package causing *real*
> problems which could have been prevented if package would have set
> "-Werror".
> 
> Unless you can do that we don't really need to discuss this. Simply
> because everyone interested in "-Werror" *can* set that flag via CFLAGS,
> even just per package, whereas the majority, not interested in this,
> cannot do the same to filter "-Werror". Nobody advocating for "-Werror"
> replied to that fact yet.
> 
> 
> -- 
> Regards,
> Thomas Deutschmann / Gentoo Linux Developer
> C4DD 695F A713 8F24 2AA1 5638 5849 7EE5 1D5D 74A5
> 




Re: [gentoo-dev] Changing policy about -Werror

2018-09-13 Thread Ulrich Mueller
> On Wed, 12 Sep 2018, Mike  wrote:

> Picking random email.

> I would like to say I'm glad we can discuss our technical differences
> like this with both sides expressing their opinion and reasoning.

> I would hope in the future we start with this path and not with
> disciplinary action or bugs requesting the removal of commit access.

> We're showing here we can bring up our points without handing out "QA
> strikes" or some other type of confrontational action.

Sorry, but I am tired of that antagonising of the QA team.

There hasn't been any bug about commit access removal. And not sure what
you mean with "QA strike", but there also wasn't any direct QA action on
the package that triggered the current discussion. After being CCed to a
bug, the QA team has merely pointed out to the maintainer that the
package is not in agreement with the current policy (as it is defined in
the devmanual).

IMHO this is the QA team's purpose. Or what would you expect us to do
instead? Remain silent if asked by another developer to evaluate an
issue? Then we could as well disband QA.

Also note that there are several remedies if there is disagreement
between a maintainer and QA, like asking QA for an exception, appealing
to the council, or changing the policy in question.

Ulrich


signature.asc
Description: PGP signature


[gentoo-dev] Re: The state of libav stabilisation

2018-09-13 Thread Luca Barbato
On 12/09/2018 12:38, Andreas Sturmlechner wrote:
> Is there anyone still working on libav support? It appears to me that 
> transition[1] and stabilisation[2] trackers are stuck for a long time without 
> activity. Missing libav-12 stabilisation means that in several stable 
> packages, USE=libav is already inaccessible without manual unmasking of the 
> use flag. I am not prepared to start reverting upstream commits for  support[3].
> 
> If this is not going to change, maybe media-video/libav should be dropped to 
> ~arch. This is still better than dropping support per-package or plastering 
> package.use.stable.mask with libav entries.
> 
> [1] https://bugs.gentoo.org/show_bug.cgi?id=libav-12
> [2] https://bugs.gentoo.org/617508
> [3] https://bugs.gentoo.org/665518
> 
> 
> 

I guess nobody had time to, libav-12 is working correctly on those arches.

Thanks for reminding us.

lu



Re: [gentoo-dev] [PATCH 2/2] cmake-utils.eclass: Enable BUILD_SHARED_LIBS by default in EAPI >= 7

2018-09-13 Thread Andreas Sturmlechner
---Original Message---
On Thursday, 26 July 2018 at 08:35, s...@gentoo.org wrote:

> From: David Seifert 
> 
> * Many upstreams build static libraries by default, as this is
>   simpler for distribution. Developers can still override this
>   variable if required.
> 
>   Examples:
>   https://github.com/pezmaster31/bamtools/blob/master/CMakeLists.txt#L64
> ---
>  eclass/cmake-utils.eclass | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass
> index ed81426ddcc..f180c8c3d7d 100644
> --- a/eclass/cmake-utils.eclass
> +++ b/eclass/cmake-utils.eclass
> @@ -623,6 +623,7 @@ cmake-utils_src_configure() {
>   if [[ ${EAPI} != [56] ]]; then
>   cat >> "${common_config}" <<- _EOF_ || die
>   SET (CMAKE_INSTALL_DOCDIR 
> "${EPREFIX}/usr/share/doc/${PF}" CACHE PATH "")
> + SET (BUILD_SHARED_LIBS ON CACHE BOOLEAN "")
>   _EOF_
>   fi
>  
> -- 
> 2.18.0

works for me.





Re: [gentoo-dev] [PATCH 1/2] cmake-utils.eclass: Make ninja default backend in EAPI >= 7

2018-09-13 Thread Andreas Sturmlechner
---Original Message---
On Thursday, 26 July 2018 at 08:35, s...@gentoo.org wrote:

> From: David Seifert 
> 
> * Using the ninja backend as a default is the only way to
>   massively improve src_compile core utilization, given that
>   it seems unlikely that CMake will ever produce non-recursive
>   Makefiles.
> 
>   For a benchmark, see:
>   http://www.kaizou.org/2016/09/build-benchmark-large-c-project/
> ---
>  eclass/cmake-utils.eclass | 12 +---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass
> index e64502b3b9b..ed81426ddcc 100644
> --- a/eclass/cmake-utils.eclass
> +++ b/eclass/cmake-utils.eclass
> @@ -53,7 +53,8 @@ _CMAKE_UTILS_ECLASS=1
>  # @DESCRIPTION:
>  # Specify a makefile generator to be used by cmake.
>  # At this point only "emake" and "ninja" are supported.
> -: ${CMAKE_MAKEFILE_GENERATOR:=emake}
> +# In EAPI 7 and above, the default is set to "ninja",
> +# whereas in EAPIs below 7, it is set to "emake".
>  
>  # @ECLASS-VARIABLE: CMAKE_MIN_VERSION
>  # @DESCRIPTION:
> @@ -112,8 +113,13 @@ esac
>  inherit toolchain-funcs ninja-utils flag-o-matic multiprocessing xdg-utils
>  
>  case ${EAPI} in
> - 7) ;;
> - *) inherit eapi7-ver eutils multilib ;;
> + [56])
> + : ${CMAKE_MAKEFILE_GENERATOR:=emake}
> + inherit eapi7-ver eutils multilib
> + ;;
> + *)
> + : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
> + ;;
>  esac
>  
>  EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install
> -- 
> 2.18.0

+1 fwiw, I've been testing this in an overlay branch and it seems to work fine 
so far (no ninja related errors on those packages I rebuilt).






Re: [gentoo-dev] acceptable alternatives to -Werror, was: Changing policy about -Werror

2018-09-13 Thread Mike Auty
Hiya,

On 13/09/2018 01:23, Chí-Thanh Christopher Nguyễn wrote:
> Installation will proceed, but the user will get a big fat warning that
> the sys-fs/zfs package is potentially broken.

This seems like a sure-fire way to make users paranoid and/or
desensitized?  People will learn to ignore warnings if we make them big
red and flashing but then say they're only potential breakages (and they
subsequently discover that most everything runs fine).  If they learn to
ignore big red flashing warnings it'll be more difficult when they're
not potential breakages but actual ones we've accurately identified...

Mike  5:)



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] Last rites: dev-lang/solidity

2018-09-13 Thread Michał Górny
# Michał Górny  (13 Sep 2018)
# Depends on old version of dev-libs/jsoncpp, blocking its pruning.
# Downstream maintainer is inactive to bump it.  Removal in 30 days.
dev-lang/solidity

-- 
Best regards,
Michał Górny


signature.asc
Description: This is a digitally signed message part