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

Bug#379630: circular dependencies, improved guarantees



Ian Jackson <ian@davenant.greenend.org.uk> writes:

> Package: debian-policy
>
> ,----[ § 7.2 ]
> |      In case of circular dependencies, since installation or removal order
> |      honoring the dependency order can't be established, dependency loops
> |      are broken at some random point, and some packages may not be able to
> |      rely on their dependencies being present when being installed or
> |      removed, depending on which side of the break of the circular dependcy
> |      loop they happen to be on.
> `----
>
> In fact, dpkg will try to break the cycle at a package without a
> postinst script.  And the word `random' is wrong; `arbitrary' is more
> accurate.  I suggest this wording instead:
>
>       In case of circular dependencies, since installation or removal
>       order honoring the dependency order can't be established,
>       dependency loops are broken at some arbitrary point, and some
>       packages may not be able to rely on their dependencies being
>       present when being installed or removed, depending on which side
>       of the break of the circular dependcy loop they happen to be on.
>       If one of the packages in the loop has no postinst script, then
>       the cycle will be broken at that package, so as to ensure that
>       all postinst scripts run with the dependencies properly
>       configured if this is possible.
>
> Ian.

The text should not say it is arbitrary only to revert that in the
next sentence. How about this:

      In case of circular dependencies, since installation or removal
      order honoring the dependency order can't be established,
      dependency loops are broken acording to the rule below, and some
      packages may not be able to rely on their dependencies being
      present when being installed or removed, depending on which side
      of the break of the circular dependcy loop they happen to be on.
      If one of the packages in the loop has no postinst script, then
      the cycle will be broken at that package, so as to ensure that
      all postinst scripts run with the dependencies properly
      configured if this is possible. Otherwise the brekaing point is
      arbitrary.

MfG
        Goswin



Reply to: