Pretty self-explanatory really. Tried to emerge =sys-libs/glibc-2.27-r3 yesterday on a system on which I keep free of build deps. It fails complaining about bison on all arches with the following: configure: error: *** These critical programs are missing or too old: bison *** Check the INSTALL file for required versions. Emerging sys-devel/bison --oneshot lets it go through and the package builds fine. Have not tested sys-libs/glibc-2.26, so don't know if it includes the same check in its configure script. Reproducible: Always Steps to Reproduce: 1. emerge =sys-libs/glibc-2.27-r3 Actual Results: Emerge fails in configure phase. Expected Results: Emerge completes successfully. sys-devel/bison is required on amd64, armv6, armv7 at least.
Created attachment 535026 [details] emerge --info
Created attachment 535028 [details] build log
Yep, this probably shouldn't happen (and adding a dependency is wrong). Side effect of the patchset. I'll look into it.
I don't think it's accidental to require bison: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=1faaf7035cabda101e1d6653bff7a539f201db91 """ This patch fixes this by requiring "bison" being installed and by always generating intl/plural.c from intl/plural.y. """
Is there a good reason to ever regenerate that file with Bison during install time, esp in Gentoo where it could be a bootstrap condition? It seems to me we could take the opposite decision from upstream, and simply never regenerate that file, even if bison is present. That would also solve the quasi-determinism. Then all we'd have to do is have some sort of QA process where we periodically determined if building the file with bison renders any semantic change, and then ship patch updates when that is the case. Yes, I realise ultimately this is a form of "compile it before we ship it", but it might be the right choice for something like glibc.
It would require patching glibc (by undoing the change). I'd prefer upstream to provide a way to make bison optional with less pain for Gentoo.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=271a55a9f3a4576fb8fd95762d704e6310d8819d commit 271a55a9f3a4576fb8fd95762d704e6310d8819d Author: Andreas K. Hüttel <dilfridge@gentoo.org> AuthorDate: 2018-06-17 17:27:29 +0000 Commit: Andreas K. Hüttel <dilfridge@gentoo.org> CommitDate: 2018-06-17 17:27:29 +0000 sys-libs/glibc: Require bison in DEPEND Keeping the bug open until we've been talking to upstream about it. Bug: https://bugs.gentoo.org/657458 Package-Manager: Portage-2.3.40, Repoman-2.3.9 sys-libs/glibc/glibc-2.27-r4.ebuild | 1 + sys-libs/glibc/glibc-9999.ebuild | 1 + 2 files changed, 2 insertions(+)
Listed in official docs, so I dont see this go away.