xbps_transaction_shlibs: better interaction with on hold pkgs.
pkgs that are on hold mode should be ignored while collecting required shlibs (shlib-requires). Fixes #215
This commit is contained in:
parent
26b7864973
commit
c6e0af44e8
@ -82,13 +82,23 @@ collect_shlibs(struct xbps_handle *xhp, xbps_array_t pkgs, bool req)
|
|||||||
iter = xbps_array_iterator(pkgs);
|
iter = xbps_array_iterator(pkgs);
|
||||||
assert(iter);
|
assert(iter);
|
||||||
while ((obj = xbps_object_iterator_next(iter))) {
|
while ((obj = xbps_object_iterator_next(iter))) {
|
||||||
char *pkgname;
|
const char *trans = NULL;
|
||||||
|
char *pkgname = NULL;
|
||||||
|
|
||||||
if (!xbps_dictionary_get_cstring_nocopy(obj, "pkgver", &pkgver))
|
if (!xbps_dictionary_get_cstring_nocopy(obj, "pkgver", &pkgver))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pkgname = xbps_pkg_name(pkgver);
|
pkgname = xbps_pkg_name(pkgver);
|
||||||
assert(pkgname);
|
assert(pkgname);
|
||||||
|
|
||||||
|
/* ignore shlibs if pkg is on hold mode */
|
||||||
|
if (xbps_dictionary_get_cstring_nocopy(obj, "transaction", &trans)) {
|
||||||
|
if (!strcmp(trans, "hold")) {
|
||||||
|
free(pkgname);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
xbps_dictionary_set(pd, pkgname, obj);
|
xbps_dictionary_set(pd, pkgname, obj);
|
||||||
free(pkgname);
|
free(pkgname);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user