installdb: Fix errors when installed package info is broken
If read of metadata.xml fails, warn user and consider that package as uninstalled. BUG:COMMENT:13005
This commit is contained in:
@@ -82,7 +82,15 @@ class InstallDB(lazydb.LazyDB):
|
|||||||
|
|
||||||
def __add_to_revdeps(self, package, revdeps):
|
def __add_to_revdeps(self, package, revdeps):
|
||||||
metadata_xml = os.path.join(self.package_path(package), ctx.const.metadata_xml)
|
metadata_xml = os.path.join(self.package_path(package), ctx.const.metadata_xml)
|
||||||
meta_doc = piksemel.parse(metadata_xml)
|
try:
|
||||||
|
meta_doc = piksemel.parse(metadata_xml)
|
||||||
|
except:
|
||||||
|
# If package info is broken or not available, skip it.
|
||||||
|
ctx.ui.warning(_("Installation info for package '%s' is broken. "
|
||||||
|
"Reinstall it to fix this problem.") % package)
|
||||||
|
del self.installed_db[package]
|
||||||
|
return
|
||||||
|
|
||||||
pkg = meta_doc.getTag("Package")
|
pkg = meta_doc.getTag("Package")
|
||||||
deps = pkg.getTag('RuntimeDependencies')
|
deps = pkg.getTag('RuntimeDependencies')
|
||||||
if deps:
|
if deps:
|
||||||
|
|||||||
Reference in New Issue
Block a user