From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-dev+bounces-85936-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 42157138334 for <garchives@archives.gentoo.org>; Thu, 13 Sep 2018 21:35:03 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C6226E0A04; Thu, 13 Sep 2018 21:34:59 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 4FAA7E09F2 for <gentoo-dev@lists.gentoo.org>; Thu, 13 Sep 2018 21:34:58 +0000 (UTC) Received: from sf (trofi-1-pt.tunnel.tserv1.lon2.ipv6.he.net [IPv6:2001:470:1f1c:a0f::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: slyfox) by smtp.gentoo.org (Postfix) with ESMTPSA id 6FEA2335C58; Thu, 13 Sep 2018 21:34:55 +0000 (UTC) Date: Thu, 13 Sep 2018 22:34:51 +0100 From: Sergei Trofimovich <slyfox@gentoo.org> To: Alon Bar-Lev <alonbl@gentoo.org> Cc: gentoo-dev@lists.gentoo.org Subject: Re: [gentoo-dev] Changing policy about -Werror Message-ID: <20180913223451.03b7d65e@sf> In-Reply-To: <CAOazyz1W0i10R=BTZhpR+ss3n8rrxPPVyEMnrdeKdJ6VLaxT5Q@mail.gmail.com> References: <20180909143221.21d784d02f51623e8c57c545@gentoo.org> <3585947.ej1ZtV7eBo@porto> <CAOazyz1W0i10R=BTZhpR+ss3n8rrxPPVyEMnrdeKdJ6VLaxT5Q@mail.gmail.com> X-Mailer: Claws Mail 3.17.1 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Precedence: bulk List-Post: <mailto:gentoo-dev@lists.gentoo.org> List-Help: <mailto:gentoo-dev+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-dev+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-dev+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-dev.gentoo.org> X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Archives-Salt: acb207c4-96e7-4da5-a3c6-ac0973dfa0ff X-Archives-Hash: 0cf6ed7a3ff275ff1d93618036469fb7 On Tue, 11 Sep 2018 12:44:38 +0300 Alon Bar-Lev <alonbl@gentoo.org> 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