Igor Pechtchanski wrote:
Circular dependencies are not bugs.
Well, there are two types of circular dependencies, and they're only a problem in one of these instances.
Circular dependencies of packages in operation is not a problem. That is, you can say that there is Package A which uses facilities in Package B, and vice versa, and this is not a problem. These two packages simply have be installed together or uninstalled together to avoid a dependency problem.
Circular dependencies during the [un]installation process _is_ a problem. This is where we get the old problem of cygwin.dll or bash being removed during an upgrade before all the uninstall scripts for other packages are run. This requires a different dependency tree than required to solve the above problem.
The distinction is this: it can't be said that 'man' requires /bin/sh in operation, but its uninstall script does. We shouldn't demand that bash be installed along with man, because any of several packages can provide /bin/sh. But if bash is the one providing /bin/sh on your system, it has to be removed after man during an upgrade where both packages have been updated.