xbps-repo: remove-obsoletes: remove broken binpkgs (when plist cannot be internalized).

This commit is contained in:
Juan RP 2012-09-30 10:08:21 +02:00
parent 5228b3fbf3
commit 154337ceab

View File

@ -85,9 +85,15 @@ repo_remove_obsoletes(struct xbps_handle *xhp, const char *repodir)
pkgd = xbps_dictionary_metadata_plist_by_url(dp->d_name, pkgd = xbps_dictionary_metadata_plist_by_url(dp->d_name,
"./props.plist"); "./props.plist");
if (pkgd == NULL) { if (pkgd == NULL) {
fprintf(stderr, "failed to read metadata for `%s'," rv = repo_remove_pkg(repodir, arch, dp->d_name);
" skipping!\n", dp->d_name); if (rv != 0) {
continue; fprintf(stderr, "index: failed to remove "
"package `%s': %s\n", dp->d_name,
strerror(rv));
prop_object_release(pkgd);
break;
}
printf("Removed broken package `%s'.\n", dp->d_name);
} }
prop_dictionary_get_cstring_nocopy(pkgd, "pkgver", &pkgver); prop_dictionary_get_cstring_nocopy(pkgd, "pkgver", &pkgver);
prop_dictionary_get_cstring_nocopy(pkgd, "architecture", &arch); prop_dictionary_get_cstring_nocopy(pkgd, "architecture", &arch);