Summary: | Perl dependency handling is insane | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ciaran McCreesh <ciaran.mccreesh> |
Component: | New packages | Assignee: | Gentoo Perl team <perl> |
Status: | RESOLVED NEEDINFO | ||
Severity: | normal | CC: | hasufell, pms, Sergiy.Borodych |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Ciaran McCreesh
2012-06-16 21:42:27 UTC
Ideally, where you presently see large || ( ) groups, something like this would seem more suited: virtual/perl-Test-Simple-0.98: || ( ( >=dev-lang/perl-5.13.1 <=dev-lang/perl-5.19.3 ) perl-core/Test-Simple-0.98 ) Because thats communicating exactly the state of upstream. Test-Simple 0.98 is provided by Perl Itself versions 5.13.1 to 5.19.3 And perl-core/Test-Simple-0.98 is a fallback for cases where your perl is not between those ranges. However, we don't do it that way for some reason, though the reason is lost to me. I seem to recall there being issues where it did unexpected things with that notation, though they may be EAPI specific. Theoretically, something like: || ( ( <=dev-lang/perl-5.19.3 >=dev-lang/perl-5.13.1 ) perl-core/Test-Simple-0.98 ) would be more compatible. Not that any of the PMs doesn't work with the reversed order nowadays. But for a simple dependency resolution algos, it's better when the left-most atom limits the newest accepted version. I have no idea to which || list this refers. But seriously, we're working on simplifying things. Once Perl 5.16 is gone and EAPI=4 is gone eclasses and virtuals will become clearer to read. Meanwhile, more specific reports please. *** Bug 541458 has been marked as a duplicate of this bug. *** |