diff --git a/pisi/atomicoperations.py b/pisi/atomicoperations.py index 08d4abd3..4c8b7a0a 100644 --- a/pisi/atomicoperations.py +++ b/pisi/atomicoperations.py @@ -107,6 +107,7 @@ class Install(AtomicOperation): self.extract_install() self.store_pisi_files() self.update_environment() + self.update_info() self.register_comar() self.postinstall() @@ -329,6 +330,11 @@ class Install(AtomicOperation): # installed packages ctx.packagedb.add_package(self.pkginfo, pisi.itembyrepodb.installed, txn=txn) + def update_info(self): + for x in self.files.list: + if x.type == 'info': + os.system('install-info /%s /usr/share/info/dir' % x.path) + def update_environment(self): # check if we have any shared objects or anything under # /etc/env.d @@ -391,7 +397,7 @@ class Remove(AtomicOperation): self.check_dependencies() self.run_preremove() - + self.update_info() for fileinfo in self.files.list: self.remove_file(fileinfo) @@ -475,6 +481,12 @@ class Remove(AtomicOperation): ctx.filesdb.remove_files(self.files, txn) pisi.packagedb.remove_tracking_package(self.package_name, txn) + def update_info(self): + for x in self.files.list: + if x.type == 'info': + os.system('install-info --delete /%s /usr/share/info/dir ' % x.path) + + def remove_single(package_name): Remove(package_name).run() diff --git a/pisi/build.py b/pisi/build.py index 6e9f8552..1cd44a14 100644 --- a/pisi/build.py +++ b/pisi/build.py @@ -342,6 +342,10 @@ class Builder: # install function is mandatory! self.run_action_function(ctx.const.install_func, True) self.set_state("installaction") + + infodir = join(self.pkg_install_dir(), '/usr/share/info/dir') + if os.path.exists(infodir): + os.unlink(infodir) def get_abandoned_files(self): # return the files those are not collected from the install dir