diff --git a/pisi/atomicoperations.py b/pisi/atomicoperations.py index 1745d6b7..cf54e3c6 100644 --- a/pisi/atomicoperations.py +++ b/pisi/atomicoperations.py @@ -240,15 +240,19 @@ class Install(AtomicOperation): self.config_later = False if ctx.comar: import pisi.comariface - ctx.ui.notify(pisi.ui.configuring, package = self.pkginfo, files = self.files) - pisi.comariface.post_install( - self.pkginfo.name, - self.metadata.package.providesComar, - self.package.comar_dir(), - os.path.join(self.package.pkg_dir(), ctx.const.metadata_xml), - os.path.join(self.package.pkg_dir(), ctx.const.files_xml), - ) - ctx.ui.notify(pisi.ui.configured, package = self.pkginfo, files = self.files) + try: + ctx.ui.notify(pisi.ui.configuring, package = self.pkginfo, files = self.files) + pisi.comariface.post_install( + self.pkginfo.name, + self.metadata.package.providesComar, + self.package.comar_dir(), + os.path.join(self.package.pkg_dir(), ctx.const.metadata_xml), + os.path.join(self.package.pkg_dir(), ctx.const.files_xml), + ) + ctx.ui.notify(pisi.ui.configured, package = self.pkginfo, files = self.files) + except pisi.comariface.Error: + ctx.ui.warning(_('%s configuration failed.') % self.pkginfo.name) + self.config_later = True else: self.config_later = True diff --git a/pisi/installdb.py b/pisi/installdb.py index 369cdca2..9e36be74 100644 --- a/pisi/installdb.py +++ b/pisi/installdb.py @@ -189,6 +189,8 @@ class InstallDB: info = self.d.get(pkg, txn) info.state = 'r' self.d.put(pkg, info, txn) + if self.dp.has_key(pkg): + self.dp.delete(pkg, txn) self.d.txn_proc(proc, txn) def purge(self, pkg, txn = None):