From ed12a3efbff032f6d1ad2b538b8921b9202b53da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20A=C5=9F=C4=B1c=C4=B1?= Date: Thu, 20 May 2010 07:23:07 +0000 Subject: [PATCH] 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 --- pisi/db/installdb.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pisi/db/installdb.py b/pisi/db/installdb.py index 02b0f7d0..ec36cc9e 100644 --- a/pisi/db/installdb.py +++ b/pisi/db/installdb.py @@ -82,7 +82,15 @@ class InstallDB(lazydb.LazyDB): def __add_to_revdeps(self, package, revdeps): 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") deps = pkg.getTag('RuntimeDependencies') if deps: