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.