emerge/portage can't handle the case where the "ithreads" use flag on perl is enabled when using getbinpkg in FEATURES. The reason is that getbinpkg does not see a use flag change on the module itself and installs the binary version of the module (which goes to a different install location on non-threaded perl opposed to perl with ithreads enabled). If perl then searches for the module it cannot find it. It should have been installed not from source. To fix this we either need some global use flag on all affected perl modules (so binpkg sees a change in flags) or some way to permanently exclude all dev-perl and virtual/perl-* packages from a build which is not supported by emerge afaik Reproducible: Always Steps to Reproduce: 1. enable getbinpkg on FEATURES or EMERGE_DEFAULT_OPTS in /etc/portage/make.conf 2. enable "ithreads" use flag on perl and emerge it 3. try to install any binary perl package (for example XML::Parser) which install in wrong location Actual Results: all binary perl packages are not compatible with ithreads use-flag on perl and getbinpkg. It breaks the system Expected Results: Some way that perl-modules are excluded from getbinpkg if ithreads is enabled.
This is a frustrating one because it mostly doesn't matter for source builds (we warn the user on dev-lang/perl changing flags and then that's good enough really), but for binpkgs, you could have contaminated your cache and not realise until a while after. I agree this makes it more pressing. If we can't fix bug 680496 any time soon, I tthink a global USE or something would be better than nothing.
(In reply to Sam James from comment #1) > This is a frustrating one because it mostly doesn't matter for source builds > (we warn the user on dev-lang/perl changing flags and then that's good > enough really), but for binpkgs, you could have contaminated your cache and > not realise until a while after. > > I agree this makes it more pressing. If we can't fix bug 680496 any time > soon, I tthink a global USE or something would be better than nothing. My suggestion would be a USE_EXPAND PERL_FEATURES="debug ithreads quadmath" which is auto-added by the eclass, and adds the corresponding runtime/buildtime dependency on perl ... i.e. perl_features_quadmath => require dev-lang/perl[quadmath] and so on
https://github.com/gentoo/gentoo/pull/36349 ^ Ongoing work here...
commit 210cf01585ee780b4c075624006e900f4c404224 Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Tue May 7 09:53:36 2024 +0200 dev-lang/perl: slow down warning countdown Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit 0f6f8b61641a0035680ab5858e5d47cd2b3c53b2 Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Wed May 1 20:36:29 2024 +1100 profiles: use.mask perl_features_debug Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit fc4b35b62d9846c2f5c157225cb35f295badf73a Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Mon Apr 22 11:57:53 2024 +1100 perl-module.eclass: Implement dependency on PERL_FEATURES Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit 47bd83af8cd0b0bdb60995e40417f3d5660e1c7d Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Sun Apr 21 23:10:00 2024 +1100 www-apache/mod_perl: Port to PERL_FEATURES Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit be340afd975a309999d17ecd648e07f377487953 Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Sun Apr 21 23:04:17 2024 +1100 virtual/perl-threads: Port to PERL_FEATURES Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit bb01d60a9212281ed6bdb95e1f5ddc8ffda35e00 Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Sun Apr 21 23:01:35 2024 +1100 net-analyzer/snortalog: Port to PERL_FEATURES Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit 0dabc18c770a8efa5c9a40dce6a81c35e870aca8 Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Sun Apr 21 22:29:13 2024 +1100 media-sound/cantata: Port to PERL_FEATURES Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit b94387ffaef892cfe3551d871decf34d0e6b8635 Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Sun Apr 21 22:26:08 2024 +1100 app-metrics/collectd: Port to PERL_FEATURES Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit ae758a36dbb676619430a911300ba32f5f13e286 Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Sun Apr 21 22:21:55 2024 +1100 app-editors/padre: Port to PERL_FEATURES Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit 85e6571079557aa9d8ee6971ef3e09028f3137ed Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Fri Apr 19 22:59:07 2024 +1100 dev-lang/perl: Migrate to PERL_FEATURES Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> and commit 9b2a821e455c662000a56f630fd0c38b397e7cb8 (HEAD -> master, origin/master, origin/HEAD) Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Tue May 7 11:32:25 2024 +0200 2024-05-07-perl rev. 2: fix posted date Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> commit 4b348e89b0b705b97c0582eeca0bab2435c4d778 Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Tue May 7 09:50:54 2024 +0200 Add 2024-05-07-perl-features-use-expand Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>