Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 541458 - paludis cannot easily upgrade (broken?) perl virtuals
Summary: paludis cannot easily upgrade (broken?) perl virtuals
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Ciaran McCreesh
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-26 18:10 UTC by Julian Ospald
Modified: 2018-09-19 11:47 UTC (History)
3 users (show)

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


Attachments
paludis-output.txt (paludis-output.txt,2.67 KB, text/plain)
2015-02-26 18:10 UTC, Julian Ospald
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Julian Ospald 2015-02-26 18:10:03 UTC
Created attachment 397568 [details]
paludis-output.txt

dev-lang/perl-5.20.1-r4         - stable, installed
virtual/perl-Digest-SHA-5.820.0 - stable, installed
virtual/perl-Digest-SHA-5.880.0 - stable
perl-core/Digest-SHA-5.820.0    - stable
perl-core/Digest-SHA-5.880.0    - unstable
(none of these are in a set, nothing depends directly on perl-core/Digest-SHA except the virtual)

So when I want to update my system, it pulls in virtual/perl-Digest-SHA-5.880.0 which has the dep-string

>    || ( =dev-lang/perl-5.20* ~perl-core/${PN#perl-}-${PV} )

Instead of choosing =dev-lang/perl-5.20* it tries to update to perl-core/Digest-SHA-5.880.0 which is in unstable arch and would need unmasking.
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2015-02-26 18:13:43 UTC
Note: perl team failed to bump virtuals when updating deps a few times. I fixed that for 5.20.2 upgrade but earlier versions may suffer similar issues.
Comment 2 Julian Ospald 2015-02-26 18:17:49 UTC
It seems that mis-syncing virtuals with their perl-core versions confuses package managers.

The questions are:
* is it PMS compatible? (I think so)
* does portage handle this similarly?
* can this be reasonably fixed on PM side?
* can the perl team make a policy that these mis-sycned ebuilds don't occur in the first place?
Comment 3 Julian Ospald 2015-02-26 18:29:57 UTC
(In reply to Julian Ospald (hasufell) from comment #0)
>
> perl-core/Digest-SHA-5.820.0    - stable

forgot to mention that this is installed as well
Comment 4 Ian Stakenvicius (RETIRED) gentoo-dev 2015-02-26 20:23:23 UTC
(In reply to Julian Ospald (hasufell) from comment #3)
> (In reply to Julian Ospald (hasufell) from comment #0)
> >
> > perl-core/Digest-SHA-5.820.0    - stable
> 
> forgot to mention that this is installed as well

That's a problem.  perl-core/* stuff that is going to handled by the dev-lang/perl package to be installed should actually be removed at some point.  There are !atom deps that help with this but they're not foolproof.  

Further, if any perl-core/* packages are in @world, then you're guaranteed to have breakage.  I don't think that is the case here though, correct?
Comment 5 Julian Ospald 2015-02-27 00:36:28 UTC
(In reply to Ian Stakenvicius from comment #4)
> (In reply to Julian Ospald (hasufell) from comment #3)
> > (In reply to Julian Ospald (hasufell) from comment #0)
> > >
> > > perl-core/Digest-SHA-5.820.0    - stable
> > 
> > forgot to mention that this is installed as well
> 
> That's a problem.  perl-core/* stuff that is going to handled by the
> dev-lang/perl package to be installed should actually be removed at some
> point.  There are !atom deps that help with this but they're not foolproof.  
> 

Well, I am not sure the depstring is to blame here. We have similar problems with haskell depstrings that sometimes are very complex || ( ) constructs. Somehow paludis seems to have trouble with that. But then again, I don't really know much about the algorithms to say something useful here.

But it at least seems to be PMS-compatible, although I'm not saying that PMS is non-broken ;)

> Further, if any perl-core/* packages are in @world, then you're guaranteed
> to have breakage.  I don't think that is the case here though, correct?

Correct.

A similar thing occurs when we have another kind of mis-sync between virtual/perl-foo and perl-core/foo, as in:

virtual/perl-Digest-SHA-5.880.0 - exists
perl-core/Digest-SHA-5.880.0    - does not exist

This has also happened in the past. I had to manually unmerge 20+ perl-core/ packages.
Comment 6 Andreas K. Hüttel archtester gentoo-dev 2015-02-27 07:39:12 UTC
(In reply to Julian Ospald (hasufell) from comment #5)

> > Further, if any perl-core/* packages are in @world, then you're guaranteed
> > to have breakage.  I don't think that is the case here though, correct?
> 
> Correct.
> 
> A similar thing occurs when we have another kind of mis-sync between
> virtual/perl-foo and perl-core/foo, as in:
> 
> virtual/perl-Digest-SHA-5.880.0 - exists
> perl-core/Digest-SHA-5.880.0    - does not exist

Incorrect.
Comment 7 Mikle Kolyada (RETIRED) archtester Gentoo Infrastructure gentoo-dev Security 2015-02-27 08:57:38 UTC
(In reply to Andreas K. Hüttel from comment #6)
> (In reply to Julian Ospald (hasufell) from comment #5)
> 
> > > Further, if any perl-core/* packages are in @world, then you're guaranteed
> > > to have breakage.  I don't think that is the case here though, correct?
> > 
> > Correct.
> > 
> > A similar thing occurs when we have another kind of mis-sync between
> > virtual/perl-foo and perl-core/foo, as in:
> > 
> > virtual/perl-Digest-SHA-5.880.0 - exists
> > perl-core/Digest-SHA-5.880.0    - does not exist
> 
> Incorrect.

++

We don't add perl-core package itself if core package just works fine in bundled perl distribution. Perl team don't see the point to do double work. When bundled module doesn't work it is another issue. I don't know how paludis handle these virtuals at all. It should not be a problem at all.
Comment 8 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-27 17:38:11 UTC
(In reply to Julian Ospald (hasufell) from comment #5)
> 
> A similar thing occurs when we have another kind of mis-sync between
> virtual/perl-foo and perl-core/foo, as in:
> 
> virtual/perl-Digest-SHA-5.880.0 - exists
> perl-core/Digest-SHA-5.880.0    - does not exist
> 
> This has also happened in the past. I had to manually unmerge 20+ perl-core/
> packages.


In that situation, then the virtual should:

- Require the perl version in the || ( ) condition.
- Request removal of all versions of perl-core/<namehere>

Portage does so gracefully by default. ( Assuming no evil packages/world depend on the perl-core/<namehere> )

Paludis tends to need a bit of a helping hand and significant use of --permit-uninstalls ( And a few other truly crazy things I've managed to (fortunately for me, unfortunately for everyone else) forget. )

However, this does very much appear to be a rephrasing of bug #421495, the visibility of which has only slightly been reduced due to greatly narrowing the number of Perl versions we have as options.

*** This bug has been marked as a duplicate of bug 421495 ***
Comment 9 Julian Ospald 2015-02-28 16:02:53 UTC
(In reply to Kent Fredric from comment #8)
> 
> *** This bug has been marked as a duplicate of bug 421495 ***

No, this is not a duplicate. In the other bug a perl team member asked for a specific bug report. Here you have one.

In addition, the perl team is in CC and not the assignee.
Comment 10 Julian Ospald 2015-02-28 16:04:48 UTC
(In reply to Andreas K. Hüttel from comment #6)
> (In reply to Julian Ospald (hasufell) from comment #5)
> 
> > > Further, if any perl-core/* packages are in @world, then you're guaranteed
> > > to have breakage.  I don't think that is the case here though, correct?
> > 
> > Correct.
> > 
> > A similar thing occurs when we have another kind of mis-sync between
> > virtual/perl-foo and perl-core/foo, as in:
> > 
> > virtual/perl-Digest-SHA-5.880.0 - exists
> > perl-core/Digest-SHA-5.880.0    - does not exist
> 
> Incorrect.

Do you have anything useful to say for the actual bug report? The thing you commented on was just a sidenote.
Comment 11 Julian Ospald 2015-03-05 02:26:32 UTC
It appears to me that this is a problem on paludis end. It has similar trouble with haskell depstrings where it picks the atom which causes the most intrusive configuration change (or even blockers) while there is an atom that doesn't require any configuration changes.
Comment 12 Mikle Kolyada (RETIRED) archtester Gentoo Infrastructure gentoo-dev Security 2018-09-19 11:47:05 UTC
Paludis has been removed from the tee.
Comment 13 Mikle Kolyada (RETIRED) archtester Gentoo Infrastructure gentoo-dev Security 2018-09-19 11:47:13 UTC
Paludis has been removed from the tee.