Re: perl versioned Provides in sid again
On Tue, 11 Dec 2018 08:48:31 +0100, Dominique Dumont wrote:
> On Friday, 7 December 2018 16:55:55 CET Niko Tyni wrote:
> > No immediate action is required from packages affected by this change,
> > but they can now gradually start moving from the current idiom
> > Depends: perl (>= x) | libfoo-bar-perl (>= y)
> > to just the 'libfoo-bar-perl (>= y)' part. This will need some changes
> > to lintian recommendations as well.
>
> I'm afraid a dual dependency must stay until either:
>
> - libfoo-bar-perl (>= y) is satisfied by the modules shipped
> with perl >= 5.28.1-3
> - the version requirement of libfoo-bar-perl is irrelevant because even old-
> stable ships with libfoo-bar-perl (>= y)
>
> Otherwise we might break backports.
Hm … I don't think this is entirely correct. Let's take an example
and check all options:
libmoose-perl needs List::Util 1.45 which is in perl core
since 5.25.1.
1) With alternative dependencies:
Build-Depends: perl (>= 5.25.1) | libscalar-list-utils-perl (>= 1:1.45)
Depends: perl (>= 5.25.1) | libscalar-list-utils-perl (>= 1:1.45)
1a) in unstable
We have perl 5.28.1, so at buildtime and runtime perl is new
enough, no separate package is installed, and List::Util comes
from perl.
1b) in backports
The build will fail on the buildds, as sbuild there only looks at
the first alternative and we only have 5.24.1 there. So the order
of the depenencies has to be reversed, and then the separate
libscalar-list-utils-perl package [0] is installed, and List::Util
comes from there.
When building with cowbuilder or sbuild with a different
configuration, and at runtime, the second alternative, i.e. the
separate libscalar-list-utils-perl is installed, and List::Util
comes from there.
2) With only libscalar-list-utils-perl
Build-Depends: libscalar-list-utils-perl (>= 1:1.45)
Depends: libscalar-list-utils-perl (>= 1:1.45)
1a) in unstable
perl-base provides libscalar-list-utils-perl (= 1:1.50), so both
at buildtime and runtime no separate package is installed, and
List::Util comes from perl.
1b) in backports
Both at build and runtime, the libscalar-list-utils-perl from
stable gets installed, and List::Utils is taken from there.
So unless I'm missing something (and I'm sure Niko or others will
correct me), rewriting the alternatives dependencies doesn't only not
break backports, it even makes them easier as it saves the
re-ordering step.
(And of course "libscalar-list-utils-perl (>= 1:1.45)" / "List::Util
1.45" must be available in the respective suite, either as/in its own
package or provided by perl-base / shipped in perl-base. But that's
not new or surprising :))
Cheers,
gregor
[0]
stable has libscalar-list-utils-perl 1:1.47-1 so this actually works
without backporting it :)
--
.''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
: :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
`. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
`- BOFH excuse #186: permission denied
Reply to: