Breaks
Status
Created: 2005-07-17 by ScottJamesRemnant
Status: DevelopmentProposal
Details
The basic idea is that, roughly, Breaks is to Conflicts as Depends is to Pre-Depends. Conflicts requires that the conflicted-against package isn't even unpacked when the conflictor is unpacked, while Breaks allows the two packages to coexist on the system but (with --auto-deconfigure) deconfigures one of them. Breaks would be appropriate in cases where
Conflicts: foo (<< some-version)
is currently used to indicate that foo needs to be upgraded to some-version or newer in order to work with the conflictor.
This is much more important when using the traditional dselect methods than when using apt, which goes to a lot of extra effort to do upgrades in an order that requires only one run. Even so, the use of Conflicts everywhere makes the system as a whole quite brittle, and has made upgrade ordering painful for a long time now (Ian told me that dselect methods originally weren't supposed to have to do any ordering at all apart from a simple Pre-Depends check); it's an obvious missing feature in our dependency system. It's probably not top of our list of things to do, but we should certainly not forget it.