Bug#649101: libclass-isa-perl: circular dependency hell
Dominic Hargreaves
dom at earth.li
Tue Nov 22 23:52:35 UTC 2011
On Sun, Nov 20, 2011 at 10:53:52AM +0200, Niko Tyni wrote:
> On Thu, Nov 17, 2011 at 08:02:30PM +0000, Dominic Hargreaves wrote:
> > On Thu, Nov 17, 2011 at 04:13:08PM +0100, Bill Allombert wrote:
> > > There is a circular dependency between libclass-isa-perl, libswitch-perl, perl and perl-modules:
> > >
> > > libclass-isa-perl :Depends: perl
> > > libswitch-perl :Depends: perl, perl-modules
> > > perl :Depends: perl-modules (>= 5.14.2-3)
> > > perl-modules :Depends: perl (>= 5.14.2-1), libswitch-perl, libclass-isa-perl
> > >
> > > Complex circular dependencies are known to cause problems during upgrade, so we
> > > should try to get rid of them.
> >
> > Thanks for the heads up. The Depends were added in order to produce
> > a smooth upgrade path since squeeze released with a number of packages
> > which used those modules (see #629472 for more information).
> >
> > I will think about if we can do anything to improve this. If nothing
> > else these will be removed after wheezy.
>
> It looks like libclass-isa-perl could be made to depend just on perl-base.
> The line
> use if $] >= 5.011, 'deprecate';
> would need to be patched out as if.pm is in perl-modules, but the
> functionality is not needed for 5.14 anyway.
>
> However, this is unfortunately not a general solution and doesn't work
> for libswitch-perl, which needs Filter::Util::Call from the perl package.
Probably still worth libclass-isa-perl, so I will do this.
> I expect this is not the last time this will crop up. AFAICS, whenever
> we skip past one Perl major release between Debian stable releases (which
> is going to happen again due to differences in our release schedules),
> we're going to hit this.
>
> [ When we don't skip a major Perl release, upstream's deprecation schedule
> works for us and the perl package can just Recommend the newly split
> modules instead of depending on them, avoiding the circular dependency. ]
>
> I see three options for the general case:
>
> - stick with the circular dependency for one release. This is still
> allowed by the policy after all; is there any evidence of real problems?
>
> - extend the deprecation period to match Debian release schedule: in
> this case, bundle Class::ISA and Switch in the perl 5.14 packages even
> though upstream doesn't. This would mean multiple tarballs in the
> original source. I'm not thrilled about this but it's doable.
>
> - try to get upstream to extend their deprecation period to accommodate
> "slower" distributions. Listed mostly for completeness; the discussion
> that led to the current policy was hot enough that I don't really want
> to reopen that can of worms.
Yeah, I'm not thrilled about the second two options here either.
Dominic.
--
Dominic Hargreaves | http://www.larted.org.uk/~dom/
PGP key 5178E2A5 from the.earth.li (keyserver,web,email)
More information about the pkg-perl-maintainers
mailing list