diff --git a/NEWS b/NEWS index b64a122f..fa661a71 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,8 @@ xbps-0.21 (???): + * libxbps: ignore packages conflicting themselves, which can happen with + virtual packages. + * xbps-query(8): fix issue #3 from github "xbps-query -o only works for installed packages". diff --git a/lib/package_conflicts.c b/lib/package_conflicts.c index dd076777..658fdd6f 100644 --- a/lib/package_conflicts.c +++ b/lib/package_conflicts.c @@ -63,6 +63,9 @@ xbps_pkg_find_conflicts(struct xbps_handle *xhp, (pkgd = xbps_pkgdb_get_virtualpkg(xhp, cfpkg))) { prop_dictionary_get_cstring_nocopy(pkgd, "pkgver", &pkgver); + if (strcmp(pkgver, repopkgver)) + continue; + xbps_dbg_printf(xhp, "found conflicting installed " "pkg %s with pkg in transaction %s\n", pkgver, repopkgver); @@ -79,6 +82,9 @@ xbps_pkg_find_conflicts(struct xbps_handle *xhp, (pkgd = xbps_find_virtualpkg_in_array(xhp, unsorted, cfpkg))) { prop_dictionary_get_cstring_nocopy(pkgd, "pkgver", &pkgver); + if (strcmp(pkgver, repopkgver)) + continue; + xbps_dbg_printf(xhp, "found conflicting pkgs in " "transaction %s <-> %s\n", pkgver, repopkgver); buf = xbps_xasprintf("%s conflicts with "