Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 594294 - net-analyzer/munin: Missing subslot operator for dev-lang/perl
Summary: net-analyzer/munin: Missing subslot operator for dev-lang/perl
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Sysadmin Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-18 22:51 UTC by Kristian Fiskerstrand (RETIRED)
Modified: 2016-09-19 17:09 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
"emerge -uDNptv world" output (kf-emerge.log,23.35 KB, text/plain)
2016-09-19 11:09 UTC, Andreas K. Hüttel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kristian Fiskerstrand (RETIRED) gentoo-dev 2016-09-18 22:51:41 UTC
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
Comment 1 Andreas K. Hüttel archtester gentoo-dev 2016-09-19 11:08:33 UTC
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(-)] ...
Comment 2 Andreas K. Hüttel archtester gentoo-dev 2016-09-19 11:09:22 UTC
Created attachment 446612 [details]
"emerge -uDNptv world" output
Comment 3 Andreas K. Hüttel archtester gentoo-dev 2016-09-19 11:47:44 UTC
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.
Comment 4 Kristian Fiskerstrand (RETIRED) gentoo-dev 2016-09-19 11:54:21 UTC
(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,
Comment 5 Ian Stakenvicius (RETIRED) gentoo-dev 2016-09-19 11:59:17 UTC
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?
Comment 6 Kristian Fiskerstrand (RETIRED) gentoo-dev 2016-09-19 12:16:15 UTC
(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.
Comment 7 Ian Stakenvicius (RETIRED) gentoo-dev 2016-09-19 13:23:16 UTC
(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
Comment 8 Kristian Fiskerstrand (RETIRED) gentoo-dev 2016-09-19 16:05:15 UTC
(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
Comment 9 Zac Medico gentoo-dev 2016-09-19 16:49:19 UTC
(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.
Comment 10 Zac Medico gentoo-dev 2016-09-19 17:03:10 UTC
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.
Comment 11 Kristian Fiskerstrand (RETIRED) gentoo-dev 2016-09-19 17:09:34 UTC
(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