It works just like Conflicts. This is correct since dselect only deals
with packages being installed, removed or placed on hold.
+2008-03-09 Ian Jackson <ian@davenant.greenend.org.uk>
+
+ * dselect/pkgdepcon.cc (packagelist::resolvedepcon): Move dep_breaks
+ case after dep_conflicts so that it falls through.
+ (packagelist::deppossatisfied): Handle dep_breaks in the same way as
+ dep_conflicts.
+
2008-03-09 Ian Jackson <ian@davenant.greenend.org.uk>
* dselect/pkgdepcon.cc (packagelist::deppossatisfied): The new rule
Thanks to Sean Finney.
* Correct broken dselect logic for self-conflicting packages.
Thanks to Ian Jackson.
+ * Implement 'Breaks' properly in dselect. Closes: #448946
+ Thanks to Ian Jackson.
[ Raphael Hertzog ]
* Add a warning displayed by dpkg-genchanges if the current version is
case dep_provides:
case dep_replaces:
- case dep_breaks: /* FIXME: implement Breaks */
return 0;
case dep_enhances:
return r ? 2 : 0;
case dep_conflicts:
+ case dep_breaks:
if (depdebug && debug)
fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): conflict\n",
would= 0;
}
- if (possi->up->type == dep_conflicts
+ if ((possi->up->type == dep_conflicts || possi->up->type == dep_breaks)
? possi->up->up != possi->ed && would != 0
: would > 0) {
// If it's to be installed or left installed, then either it's of