public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] RFC: masking old versions of sys-devel/gcc
@ 2017-04-23 12:35 Michał Górny
  2017-04-24 16:01 ` William Hubbs
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Michał Górny @ 2017-04-23 12:35 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2549 bytes --]

Hi,

I'm thinking of masking old versions of sys-devel/gcc, in particular
older than the 4.9 branch.


The problem
===========

Gentoo users still sometimes try to build new packages with old gcc
versions which inevitably fails, either due to bugs or missing features
in the old versions of gcc. The most relevant example is C++ packages
requiring support for C++11 which is obviously missing from old gcc
versions.

I think this mostly affects old installations where sysadmins fail to
update and/or switch gcc before starting system upgrades. While I don't
think it's a major issue anymore, some developers still try to make
their ebuilds more complex to account for that.

Most of the time fixing the support for old gcc is out of the question.
In that case, developers add checks for appropriately new gcc version
(which may randomly fail with clang) and/or features. While this solves
the immediate problem, it causes unnecessary complexity. With EAPI 5,
the proper way of checking this involves running pkg_pretend() -- which
causes a major slowdown for the package manager.

Nowadays a great number of packages requires C++11. Adding pkg_pretend()
check for every single one of them is both a lot of work
and a significant slowdown to support outdated systems. Or rather, to
replace a error from the build system with early error from ebuild.
Worse than that, developers sometimes deploy different kinds of checks,
some of which are buggy.


My solution
===========

I think there is no point in having explicit support for ancient gcc
versions these days. However, I admit that some specific developers
and users may have a need for them. Therefore, I think the best way
forward would be to keep them in ::gentoo but p.mask with
an explanatory message.

The most important goal of having the packages masked is that it would
cause Portage to verbosely complain whenever the users have it
installed. With appropriate comment (displayed by Portage), we could
clearly inform users that they need to upgrade gcc and switch to a new
version to ensure that majority of packages work.

We would also clearly indicate that we no longer support the old
versions and do not have to explicitly indicate this non-support via
explicit version checks in ebuilds.

At the same time, users who really need those versions could unmask them
on their own responsibility and knowing the implications of setting them
as system-wide compilers.


What do you think?

-- 
Best regards,
Michał Górny

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 963 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-04-27 22:56 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-23 12:35 [gentoo-dev] RFC: masking old versions of sys-devel/gcc Michał Górny
2017-04-24 16:01 ` William Hubbs
2017-04-24 17:59   ` Guilherme Amadio
2017-04-25 16:26     ` William Hubbs
2017-04-25 16:44       ` Guilherme Amadio
2017-04-25 18:38         ` Francesco Riosa
2017-04-25 22:26 ` Andreas K. Huettel
2017-04-26  0:37   ` Francesco Riosa
2017-04-26  9:32     ` Andreas K. Huettel
2017-04-26 14:59       ` Mike Gilbert
2017-04-27  2:08       ` Walter Dnes
2017-04-27 15:27   ` William Hubbs
2017-04-27 22:56     ` Andrew Savchenko
2017-04-26  9:42 ` Chí-Thanh Christopher Nguyễn
2017-04-26 12:22   ` Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox