Bug#752989: libio-callback-perl: FTBFS with Perl 5.20: alternative dependencies

Niko Tyni ntyni at debian.org
Wed Jul 2 19:02:32 UTC 2014


On Wed, Jul 02, 2014 at 07:49:12PM +0200, gregor herrmann wrote:
> On Wed, 02 Jul 2014 14:26:09 +0200, Jonas Smedegaard wrote:

> >   Build-Depends: perl (>= 5.17.1~) | libmodule-build-perl (>= 0.400000), libmodule-build-perl
> > 
> > That declaration relies on the assumption that any system with a new 
> > enough perl will also have a new enough libmodule-build-perl - either 
> > provided by perl(-modules) or standalone.  Is that safe to assume?

> I think it is safe now [0], as we have:
> perl-module 5.20.0-1
> Breaks: libmodule-build-perl (<< 0.420500)
> and no Provides, so the single 'libmodule-build-perl' can only be the
> real package, and must be >= 0.420500.

Sure.
 
> For a future perl-modules 5.22, if the Breaks is kept, everything
> should be fine. If the Breaks is dropped there is indeed a loophole
> (for versions >= 0.420500), if I'm seeing this correctly.

I expect to drop the Breaks will be dropped when Module::Build is dropped.
Their purpose is to prevent an older separate package overriding a newer
one in the Perl core.

I don't understand the "(for versions >= 0.420500)" part above. Surely
any Module::Build version >= 0.420500 is fine? Did you mean
"(for versions <= 0.400000)"?

I suppose a direct partial upgrade from for instance Debian squeeze (with
libmodule-build-perl 0.360700-1) or Ubuntu 12.04 ( libmodule-build-perl
0.380000-2) to a future release could theoretically result in a system
with an old libmodule-build-perl but a new perl and erroneously satisfy
the dependency. I don't think we really need to worry about this, but
it is indeed a sort of loophole.

> > I believe this more strict declaration covers that cornercase:
> > 
> >   Build-Depends: perl (>= 5.17.1~) | libmodule-build-perl (>= 0.400000), libmodule-build-perl (>= 0.400000) | perl (<< 5.21~)
> 
> (I guess I'd still go for a plain 'libmodule-build-perl (>= 0.400000)'.
> If only to save us all from further headaches :))

I agree a plain libmodule-build-perl (>= 0.400000) is a good way
forward. It's a bit suboptimal for backporting as it unnecessarily pulls
in the separate package on older systems, but should still work. And
it's simple and the right thing for >= 5.20.

Just beware that lintian will probably spit out some
'versioned-dependency-satisfied-by-perl' tags until somebody gets around
to fixing it.
-- 
Niko



More information about the pkg-perl-maintainers mailing list