From a04cd3d53df54b080ea49a0264fef22899f28917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Sat, 10 Feb 2007 22:08:43 +0000 Subject: [PATCH] do not include conflicted packages into index --- pisi/component.py | 2 ++ pisi/index.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pisi/component.py b/pisi/component.py index 22778a5c..9b1ea73f 100644 --- a/pisi/component.py +++ b/pisi/component.py @@ -21,6 +21,7 @@ import pisi.pxml.autoxml as autoxml import pisi.lockeddbshelve as shelve from pisi.itembyrepodb import ItemByRepoDB import pisi.itembyrepodb as itembyrepodb +from pisi.conflict import Conflict class Error(pisi.Error): pass @@ -43,6 +44,7 @@ class Distribution(xmlfile.XmlFile): t_BinaryName = [autoxml.Text, autoxml.optional] # name of repository (binary distro) t_Architecture = [autoxml.Text, autoxml.optional] # architecture identifier + t_Conflicts = [ [Conflict], autoxml.optional, "Conflicts/Package"] class Component(xmlfile.XmlFile): "representation for component declarations" diff --git a/pisi/index.py b/pisi/index.py index 2c435ee6..dd2b2d0b 100644 --- a/pisi/index.py +++ b/pisi/index.py @@ -104,9 +104,15 @@ class Index(XmlFile): if fn == 'distribution.xml': self.add_distro(os.path.join(root, fn)) + conflicts_list = [] + for i in self.distribution.conflicts: + conflicts_list.append("%s" % i) + for pkg in util.filter_latest_packages(packages): - ctx.ui.info(_('Adding %s to package index') % pkg) - self.add_package(pkg, deltas, repo_uri) + pkg_name = util.parse_package_name(os.path.basename(pkg))[0] + if pkg_name not in conflicts_list: + ctx.ui.info(_('Adding %s to package index') % pkg) + self.add_package(pkg, deltas, repo_uri) def update_db(self, repo, txn = None): # FIXME: updating db takes too much time. So a notify mechanism is used to inform the status