diff --git a/NEWS b/NEWS index 01d5e9f7..6faed3f6 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,9 @@ xbps-0.26 (???): + * Fixed #14 from github: "Removing recursively does not respect manual installation + mode for dependencies". See https://github.com/xtraeme/xbps/issues/14 + for more information. + * Removed "PackagesOnHold" from xbps.conf. This has been replaced by a new mode in xbps-pkgdb(8): diff --git a/lib/package_orphans.c b/lib/package_orphans.c index e80913df..4df40483 100644 --- a/lib/package_orphans.c +++ b/lib/package_orphans.c @@ -120,8 +120,6 @@ xbps_find_pkg_orphans(struct xbps_handle *xhp, xbps_array_t orphans_user) find_orphans: for (i = 0; i < xbps_array_count(array); i++) { pkgd = xbps_array_get(array, i); - xbps_dictionary_get_cstring_nocopy(pkgd, "pkgver", &curpkgver); - rdeps = xbps_dictionary_get(pkgd, "run_depends"); for (x = 0; x < xbps_array_count(rdeps); x++) { cnt = 0; @@ -139,8 +137,11 @@ find_orphans: } if (cnt == reqbycnt) { deppkgd = xbps_pkgdb_get_pkg(xhp, deppkgver); - if (!xbps_find_pkg_in_array(array, deppkgver)) - xbps_array_add(array, deppkgd); + if (!xbps_find_pkg_in_array(array, deppkgver)) { + xbps_dictionary_get_bool(deppkgd, "automatic-install", &automatic); + if (automatic) + xbps_array_add(array, deppkgd); + } } } }