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

Re: perl versioned Provides in sid again



On Tue, 08 Jan 2019 00:37:05 +0000, Dominic Hargreaves wrote:

> > > There are two modifications that could be made to the logic for
> > > constructing depends relating to dual lived modules:
> > > 
> > > 1) remove the alternate depends on perl when a versioned dep is needed
> > > 2) always depend on the virtual package name, regardless of whether a
> > >    version is needed
> > > 
> > > 2) is appealing because it removes the special casing completely, but
> > > would probably make quite a few fields longer. Maybe with automated
> > > tooling this is okay, though.
> > 
> > I'm afraid I still don't understand the options, or more exactly
> > option 2.
> > Option 1 is, I guess, Niko's example from above.
> 
> Yes, option 1 is for versioned deps on dual lived modules to drop
> the perl alternative.

Ok.
 
> > Would option 2 then
> > be just 'libfoo-bar-perl'? If so I'd say yes, that was the idea IMO
> > (unless Foo::Bar is included in the oldest perl version in the
> > archive). How would this make "a few fields longer"?
> 
> Not quite. My phrasing was a bit unclear, but I meant that we'd have
> all dual lived module dependencies declared in debian/control
> even though they are already satisfied by a dependency on perl.

Ah, I see.

> That would increase the size of the dependencies on almost every
> module package, but would remove the need for any special casing
> in tools constructing Depends lines programmatically, including
> for changes over the lifecycle of the package because, for example,
> a module is added or removed from the dual lived packages list.

Ok, that would have saved us from adding libmodule-build-perl to
dozens (hundreds?) of packages, when Module::Build was removed from
core.
 
> In my proposal 2), looking at META.json:
> "runtime" : {
>          "requires" : {
>             "Carp" : "0",
>             "DBD::SQLite" : "1.54",
>             "DBI" : "1.627",
>             "File::Spec::Functions" : "0",
>             "File::Temp" : "0",
>             "Mojolicious" : "7.32",
>             "SQL::Abstract" : "1.81",
>             "Scalar::Util" : "0",
>             "URI" : "1.69",
>             "URI::db" : "0.15",
>             "URI::file" : "4.21",
>             "perl" : "5.010001"
>          }
> ...
> 
> we'd also add
> libfile-temp-perl and libscalar-list-utils-perl to the list
> (having previously added Provides for all of the dual lived modules
> in the perl distribution).

Hm, interesting. And in a way attractive.

That would e.g. we'd have to add libtest-simple-perl to about all
packages …

Bringing our dependencies closer to META.* also sounds nice; but this
will still be no 1:1 mapping if we "only" take dual-lifed modules. In
the example about Carp and File::Spec::Functions are still
unaccounted for, unless src:perl starts to Provide virtual packages
for all the included modules …


So, yeah, I'm not sure :)


Cheers,
gregor

-- 
 .''`.  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
   `-   NP: Bruce Springsteen & The E Street Band: Atlantic City

Attachment: signature.asc
Description: Digital Signature


Reply to: