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