[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: