On Feb 25, 2006, at 9:48 AM, David R. Morrison wrote:
However, there are some pairs of packages (dclib0 and valknut come to mind) which have been set up so that one depends on a precise version of another. It seems to me that these would be completely impossible to update with the strict checking you are discussing, right?

There are actually two solutions for tightly-bound packages like this.

1. If we tell dpkg to install both of them at the same time (dpkg -i foo.deb bar.deb), then everything's great. Fink usually does this if they're "relatives", such as a parent and its splitoff, or two splitoffs of the same parent.

2. Even if we don't tell dpkg to install both at once, the SysState algorithm will figure things out in the simple cases, when upgrading the depender fixes things. For example, say you have foo-shlibs-1.0-1 and foo-dev-1.0-1 installed with the usual Depends: foo-shlibs (= 1.0-1). If you try to install foo-shlibs-2.0-1, SysState will figure out that foo-dev needs to be upgraded as well.

Another thought about this. It should be possible to run SysState *before* building something, to determine what the state will be after the current package is built and installed. That way we could detect in advance that there was going to be a problem, and possibly treat it like a Buildconflicts (i.e., remove something in advance of building the package, possibly putting it back afterwards).

This isn't possible in all cases. With AutoShlibDeps (or whatever it's called), we don't actually *know* what the dependencies will be until we're done building something.

Dave

Attachment: PGP.sig
Description: This is a digitally signed message part

Reply via email to