As discussed in #gentoo-dev perl upgrade breaks munin-node https://download.sumptuouscapital.com/gentoo/2016-09-munin-node.txt 00:35 <@dilfridge> K_F: could you check on one of the boxes where perl-cleaner is not running yet what the output of "equery files Module-Build" is? 00:37 <@K_F> http://bpaste.net/show/9077c8112430 00:37 <@dilfridge> yep, so Module::Build also has not been rebuilt yet. :/ 00:38 <@dilfridge> do you still have a box where you have not done the upgrade at all so far? 00:38 <@K_F> yes 00:38 <@K_F> thankfully several 00:39 <@dilfridge> "emerge -uDNptv world" output would be nice then 00:39 <@dilfridge> will be big 00:41 <@K_F> eta_sks1 ~ # emerge -uDNptv @world |& wgetpaste 00:41 <@K_F> Your paste can be seen here: http://bpaste.net/show/0dd8cf97d196 ## 00:46 <@dilfridge> K_F: on the same box, what's the content of /var/db/pkg/dev-perl/Module-Build-*/RDEPEND ? 00:46 <@K_F> dilfridge: eta_sks1 ~ # cat /var/db/pkg/dev-perl/Module-Build-*/RDEPEND |& wgetpaste 00:46 <@K_F> Your paste can be seen here: http://bpaste.net/show/a5de042c6ea2
Inserting the relevant parts of the files (or descriptions thereof) here... 1. munin was lacking a := on dev-lang/perl. This is fixed now, but is not the actual main problem. 2. > > https://download.sumptuouscapital.com/gentoo/2016-09-munin-node.txt > Rebuild of munun fails since it can't find Module::Build cd master && /usr/bin/perl Build.PL Base class package "Module::Build" is empty. (Perhaps you need to 'use' the module which defines that package first, or make that module available in @INC (@INC contains: /etc/perl /usr/local/lib64/perl5/5.22.2/x86_64-linux /usr/local/lib64/perl5/5.22.2 /usr/lib64/perl5/vendor_perl/5.22.2/x86_64-linux /usr/lib64/perl5/vendor_perl/5.22.2 /usr/local/lib64/perl5 /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/5.22.2/x86_64-linux /usr/lib64/perl5/5.22.2 .). at MasterBuilder.pm line 5. BEGIN failed--compilation aborted at MasterBuilder.pm line 5. > 00:35 <@dilfridge> K_F: could you check on one of the boxes where > perl-cleaner is > not running yet what the output of "equery files > Module-Build" > is? > 00:37 <@K_F> http://bpaste.net/show/9077c8112430 Module-Build is present but built for Perl 5.20. [...] /usr/lib64/perl5/vendor_perl/5.20.1/Module/Build.pm [...] > 00:37 <@dilfridge> yep, so Module::Build also has not been rebuilt yet. :/ > 00:38 <@dilfridge> do you still have a box where you have not done the > upgrade at > all so far? > 00:38 <@K_F> yes > 00:38 <@K_F> thankfully several > 00:39 <@dilfridge> "emerge -uDNptv world" output would be nice then > 00:39 <@dilfridge> will be big > 00:41 <@K_F> eta_sks1 ~ # emerge -uDNptv @world |& wgetpaste > 00:41 <@K_F> Your paste can be seen here: http://bpaste.net/show/0dd8cf97d196 [See attachment] This does not trigger a Module::Build rebuild at all!!! > 00:46 <@dilfridge> K_F: on the same box, what's the content of > /var/db/pkg/dev-perl/Module-Build-*/RDEPEND ? > 00:46 <@K_F> dilfridge: eta_sks1 ~ # cat > /var/db/pkg/dev-perl/Module-Build-*/RDEPEND |& wgetpaste > 00:46 <@K_F> Your paste can be seen here: http://bpaste.net/show/a5de042c6ea2 ... contains dev-lang/perl:0/5.20=[-build(-)] ...
Created attachment 446612 [details] "emerge -uDNptv world" output
So before you all go "subslots don't mean anything in DEPEND" on me, please read on first... munin DEPENDs on Module-Build Module-Build RDEPENDs on perl:= Now the Perl upgrade takes place, but it doesn't rebuild Module-Build. Maybe because Module-Build itself is only ever pulled in via DEPEND, but never via RDEPEND? Afterwards modules that := on perl are rebuilt, but the first one that needs Module-Build during build hits the installed, non-functional version and fails.
(In reply to Andreas K. Hüttel from comment #3) > So before you all go "subslots don't mean anything in DEPEND" on me, please > read on first... > > munin DEPENDs on Module-Build > Module-Build RDEPENDs on perl:= As I see it there are two things happening. munin misses a subslot operator for perl in DEPEND_COM and do dev-lang/perl[berkdb]. This causes the first breakage, which runtime stops munin-node due to missing files in the perl slot. > > Now the Perl upgrade takes place, but it doesn't rebuild Module-Build. > Maybe because Module-Build itself is only ever pulled in via DEPEND, but > never via RDEPEND? Correct, subslot operator has no use outside of RDEPEND. This is the secondary issue,
The issue here is that munin is rebuilt due to its perl:= dep, but Module-Build isn't rebuilt first, right? That is, maybe the backtrack on slot-operator rebuilds isn't taking DEPEND into account enough?
(In reply to Ian Stakenvicius from comment #5) > The issue here is that munin is rebuilt due to its perl:= dep, but > Module-Build isn't rebuilt first, right? That is, maybe the backtrack on > slot-operator rebuilds isn't taking DEPEND into account enough? As far as I can see Module-Build does not have a := on perl though.
(In reply to Kristian Fiskerstrand from comment #6) > (In reply to Ian Stakenvicius from comment #5) > > The issue here is that munin is rebuilt due to its perl:= dep, but > > Module-Build isn't rebuilt first, right? That is, maybe the backtrack on > > slot-operator rebuilds isn't taking DEPEND into account enough? > > As far as I can see Module-Build does not have a := on perl though. Everything that inherits perl-module and has EAPI=5 or newer gets a perl:= dep
(In reply to Kristian Fiskerstrand from comment #4) > (In reply to Andreas K. Hüttel from comment #3) > > So before you all go "subslots don't mean anything in DEPEND" on me, please > > read on first... > > > > munin DEPENDs on Module-Build > > Module-Build RDEPENDs on perl:= > > As I see it there are two things happening. munin misses a subslot operator > for perl in DEPEND_COM and do dev-lang/perl[berkdb]. This causes the first > breakage, which runtime stops munin-node due to missing files in the perl > slot. > Thanks dilfridge, adding the missing := in [0] seems to have fixed the issue allowing for an successful world upgrade without breaking munin (granted it should likely be revbumped, as munin currently needs manual reinstall ahead of world upgrade to update VDB) References: [0] https://gitweb.gentoo.org/repo/gentoo.git/commit/net-analyzer/munin/munin-2.0.19-r1.ebuild?id=6d97bded8a39ab0501751c5da25fd42107eb91ae
(In reply to Kristian Fiskerstrand from comment #8) > Thanks dilfridge, adding the missing := in [0] seems to have fixed the issue > allowing for an successful world upgrade without breaking munin (granted it > should likely be revbumped, as munin currently needs manual reinstall ahead > of world upgrade to update VDB) > > References: > [0] > https://gitweb.gentoo.org/repo/gentoo.git/commit/net-analyzer/munin/munin-2. > 0.19-r1.ebuild?id=6d97bded8a39ab0501751c5da25fd42107eb91ae Yeah, better revbump munin. Re-assigning to maintainer.
I've revision bumped 2.0.19-r1 to 2.0.19-r2, and 2.0.25-r1 to 2.0.25-r2: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1224f5e0fb9277af5d9aa3fc6c4deafef93ca4a1 I didn't bother with 2.1.9999 since it's masked by keywords.
(In reply to Zac Medico from comment #10) > I've revision bumped 2.0.19-r1 to 2.0.19-r2, and 2.0.25-r1 to 2.0.25-r2: > Thanks, in that case I'm closing this as resolved fixed