Re: Perl depenancy loop
On 7 Mar 1998, Manoj Srivastava wrote:
> Hi,
>
> pkg-order special cases stuff like the typical case of
> pkg and pkg-dev going from libc5 to libc6
>
> CASE I
> a) a package (Y) to be installed conflicts with a package X << version a
> b) pkg X version a is installed
> c) pkg a is to be upgraded to version b
> d) pkg Y depends on pkg X version b
> The most common case is solved by upgrading package X before
> upgrading Y first
Okay, after much toiling and fiddling it does this, intrinsicly, it is not
a special case. I think this case gets taken care of when the reverse
depends and reverse provide depends are scanned during the installation
ordering. I'm not sure - it's complex!
> CASE II
> That fails in the case of perl, where the dependency d is
> replaced by:
> e) pkg X version b depends on Y
>
> You are right, it can only be done as:
> dpkg -i --auto-deconfigure perl-base_*.deb || true
> dpkg -i perl_*.deb || true
> dpkg --pending --configure
I would -MUCH- rather forbid circular conflicts+predepends loops, circular
depends loops are okay but conflicts+predepends are deadly. If perl is
just doing this for no real hard reason then the package should be
changed.
> If we can handle case I correctly, we have to identify and
> isolate any instances of CASE II
> So, for all packages to be installed, if there is a conflict
> against an installed package; and the conflict is related to a
> version number such that the conflict is (<, <<, or <= version a,),
> and if the conflicted with package is to be upgraded in this install,
> then; if the new version of the conflicted with package depends on
> the original package (the one with the conflict), then mark the
> remove and two upgrades to be handled specially in the breaks
> section.
Erm, I have learned this is a simplistic view. The conflicts+predepends
loop can come about indirectly through provides, older versions and can
be longer than two packages - AFAIK it is -very- hard to detect and
resolve all cases. We can trap the single case you describe but ...
Deity as an upgrade tool is useless so long as this is unresolved :<
Jason
Who is immensly pleased that the ordering code is actually pretending to
work now.
Reply to: