+2008-03-09 Ian Jackson <ian@davenant.greenend.org.uk>
+
+ * dselect/pkgdepcon.cc (packagelist::deppossatisfied): The new rule
+ is that a Conflicts is violated if the target package is installed
+ or to be error-preserved ie would_like_to_install() != 0 - except
+ that we disregard packages which directly Conflict with themselves.
+
2008-03-07 Raphael Hertzog <hertzog@debian.org>
* scripts/Dpkg/Fields.pm: Import Dpkg::Gettext since we use _g().
package when debsig-verify is installed. Closes: #311843
* Fix some small memory leaks. Closes: #469520
Thanks to Sean Finney.
+ * Correct broken dselect logic for self-conflicting packages.
+ Thanks to Ian Jackson.
[ Raphael Hertzog ]
* Add a warning displayed by dpkg-genchanges if the current version is
}
int packagelist::deppossatisfied(deppossi *possi, perpackagestate **fixbyupgrade) {
+ // `satisfied' here for Conflicts and Breaks means that the
+ // restriction is violated ie that the target package is wanted
int would;
pkginfo::pkgwant want= pkginfo::want_purge;
would= 0;
}
- if (!(possi->up->type == dep_conflicts && possi->up->up == possi->ed) &&
- possi->up->type == dep_conflicts ? (would != 0) : (would > 0)) {
+ if (possi->up->type == dep_conflicts
+ ? possi->up->up != possi->ed && would != 0
+ : would > 0) {
// If it's to be installed or left installed, then either it's of
// the right version, and therefore OK, or a version must have
// been specified, in which case we don't need to look at the rest