libxbps: when resolving deps, ignore all of them that depend on the origin pkg.
This commit is contained in:
parent
178a6b58ae
commit
2b5d3bb8f4
3
NEWS
3
NEWS
@ -1,5 +1,8 @@
|
|||||||
xbps-0.21 (???):
|
xbps-0.21 (???):
|
||||||
|
|
||||||
|
* libxbps: when resolving deps in transaction, ignore incorrect ones;
|
||||||
|
for example a package might be depending on itself thru virtual packages.
|
||||||
|
|
||||||
* configure: don't link to libs in PREFIX/lib blindly; figure out
|
* configure: don't link to libs in PREFIX/lib blindly; figure out
|
||||||
sysroot dir with gcc compiler and use this for headers/libs.
|
sysroot dir with gcc compiler and use this for headers/libs.
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@
|
|||||||
*/
|
*/
|
||||||
#define XBPS_PKGINDEX_VERSION "1.6"
|
#define XBPS_PKGINDEX_VERSION "1.6"
|
||||||
|
|
||||||
#define XBPS_API_VERSION "20130207"
|
#define XBPS_API_VERSION "20130207-1"
|
||||||
|
|
||||||
#ifndef XBPS_VERSION
|
#ifndef XBPS_VERSION
|
||||||
#define XBPS_VERSION "UNSET"
|
#define XBPS_VERSION "UNSET"
|
||||||
|
@ -158,7 +158,7 @@ find_repo_deps(struct xbps_handle *xhp,
|
|||||||
prop_array_t curpkgrdeps;
|
prop_array_t curpkgrdeps;
|
||||||
pkg_state_t state;
|
pkg_state_t state;
|
||||||
size_t x;
|
size_t x;
|
||||||
const char *reqpkg, *pkgver_q, *reason = NULL;
|
const char *reqpkg, *reqpkgname, *pkgver_q, *reason = NULL;
|
||||||
char *pkgname;
|
char *pkgname;
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
|
|
||||||
@ -317,6 +317,22 @@ find_repo_deps(struct xbps_handle *xhp,
|
|||||||
}
|
}
|
||||||
prop_dictionary_get_cstring_nocopy(curpkgd,
|
prop_dictionary_get_cstring_nocopy(curpkgd,
|
||||||
"pkgver", &pkgver_q);
|
"pkgver", &pkgver_q);
|
||||||
|
prop_dictionary_get_cstring_nocopy(curpkgd,
|
||||||
|
"pkgname", &reqpkgname);
|
||||||
|
/*
|
||||||
|
* Check dependency validity.
|
||||||
|
*/
|
||||||
|
pkgname = xbps_pkg_name(curpkg);
|
||||||
|
assert(pkgname);
|
||||||
|
if (strcmp(pkgname, reqpkgname) == 0) {
|
||||||
|
xbps_dbg_printf_append(xhp, "[ignoring wrong dependency "
|
||||||
|
"%s (depends on itself)]\n",
|
||||||
|
reqpkg);
|
||||||
|
free(pkgname);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
free(pkgname);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if package has matched conflicts.
|
* Check if package has matched conflicts.
|
||||||
*/
|
*/
|
||||||
|
@ -205,9 +205,14 @@ again:
|
|||||||
rv = EINVAL;
|
rv = EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if ((xbps_match_virtual_pkg_in_dict(curpkgd, str, true)) ||
|
||||||
|
(xbps_match_virtual_pkg_in_dict(curpkgd, str, false))) {
|
||||||
|
xbps_dbg_printf_append(xhp, "ignore wrong "
|
||||||
|
"dependency %s (depends on itself)\n", str);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
prop_dictionary_get_cstring_nocopy(curpkgd,
|
prop_dictionary_get_cstring_nocopy(curpkgd,
|
||||||
"transaction", &tract);
|
"transaction", &tract);
|
||||||
|
|
||||||
lpd = pkgdep_alloc(curpkgd, str);
|
lpd = pkgdep_alloc(curpkgd, str);
|
||||||
|
|
||||||
if (pdn == NULL) {
|
if (pdn == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user