Mercurial > gub
changeset 3212:fea96d37fc43
Introduce conflicts, to enable saner solution than cross-prefix hack.
author | Jan Nieuwenhuizen <janneke@gnu.org> |
---|---|
date | Wed, 18 Apr 2007 21:13:01 +0200 |
parents | 5c30b3109df5 |
children | 6087406ff8f4 |
files | gub-builder.py lib/gub.py |
diffstat | 2 files changed, 18 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/gub-builder.py Wed Apr 18 21:12:18 2007 +0200 +++ b/gub-builder.py Wed Apr 18 21:13:01 2007 +0200 @@ -258,6 +258,9 @@ for p in spec.get_packages (): name = p.name () if not manager.is_installed (name): + if spec.get_conflict_dict ().has_key (name): + for c in spec.get_conflict_dict ()[name].split (): + manager.uninstall (c) manager.unregister_package_dict (p.name ()) manager.register_package_dict (p.dict ()) manager.install_package (p.name ())
--- a/lib/gub.py Wed Apr 18 21:12:18 2007 +0200 +++ b/lib/gub.py Wed Apr 18 21:13:01 2007 +0200 @@ -18,23 +18,19 @@ self._os_interface = os_interface self._file_specs = [] self._dependencies = [] + self._conflicts = [] def set_dict (self, dict, sub_name): self._dict = dict.copy () self._dict['sub_name'] = sub_name - if sub_name: sub_name = '-' + sub_name - s = ('%(name)s' % dict) + sub_name - self._dict['split_name'] = s - self._dict['split_ball'] = ('%(gub_uploads)s/%(split_name)s%(ball_suffix)s.%(platform)s.gup') % self._dict self._dict['split_hdr'] = ('%(gub_uploads)s/%(split_name)s%(vc_branch_suffix)s.%(platform)s.hdr') % self._dict - - deps = ';'.join (self._dependencies) - self._dict['dependencies_string'] = deps + self._dict['conflicts_string'] = ';'.join (self._conflicts) + self._dict['dependencies_string'] = ';'.join (self._dependencies) def expand (self, s): return s % self._dict @@ -103,9 +99,12 @@ def get_repodir (self): return self.settings.downloads + '/' + self.name () + def get_conflict_dict (self): + """subpackage -> list of confict dict.""" + return {'': [], 'devel': [], 'doc': [], 'runtime': []} + def get_dependency_dict (self): """subpackage -> list of dependency dict.""" - # FIMXE: '' always depends on runtime? return {'': [], 'devel': [], 'doc': [], 'runtime': []} @@ -243,7 +242,7 @@ ## distcc during configure. c = 'DISTCC_HOSTS="%s" %s' % (self.settings.native_distcc_hosts, c) c = 'PATH="%(native_distcc_bindir)s:$PATH" ' + c - elif self.settings.cpu_count_str <> '1': + elif self.settings.cpu_count_str != '1': job_spec += ' -j%s ' % self.settings.cpu_count_str c += job_spec @@ -487,6 +486,7 @@ ps = [] + conflict_dict = self.get_conflict_dict () dep_dict = self.get_dependency_dict () descr_dict = self.description_dict () category_dict = self.category_dict () @@ -501,11 +501,14 @@ p._file_specs = filespecs p.set_dict (self.get_substitution_dict (), sub) + conflict_str = ';'.join (conflict_dict.get (sub, [])) + if p._dict.has_key ('conflicts_string'): + conflict_str = p._dict['conflicts_string'] + ';' + conflict_str + p._dict['conflicts_string'] = conflict_str + dep_str = ';'.join (dep_dict.get (sub, [])) if p._dict.has_key ('dependencies_string'): - dep_str = p._dict['dependencies_string'] + ';' + dep_str - - + dep_str = p._dict['dependencies_string'] + ';' + dep_str p._dict['dependencies_string'] = dep_str ## FIXME make generic: use cross.get_subpackage_dict_methods () or similar.