From a8b91fbb43c2bf4c25410279a3472c674d2c3344 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 22 Jul 2009 18:26:52 +0000 Subject: Bug #270040 - Make repoman parse the categories file from the overlay. svn path=/main/trunk/; revision=13850 --- bin/repoman | 8 ++++++++ pym/portage/dbapi/porttree.py | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/bin/repoman b/bin/repoman index c8f32f4a4..97f24ccd2 100755 --- a/bin/repoman +++ b/bin/repoman @@ -513,6 +513,14 @@ logging.info('Setting paths:') logging.info('PORTDIR = "' + portdir + '"') logging.info('PORTDIR_OVERLAY = "%s"' % env['PORTDIR_OVERLAY']) +categories = [] +for path in set([portdir, portdir_overlay]): + categories.extend(portage.util.grabfile( + os.path.join(path, 'profiles', 'categories'))) +repoman_settings.categories = tuple(sorted( + portage.util.stack_lists([categories], incremental=1))) +del categories + portdb.mysettings = repoman_settings root_config = RootConfig(repoman_settings, trees[root], None) # We really only need to cache the metadata that's necessary for visibility diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index 1fd593811..9f427a148 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -124,6 +124,10 @@ class portdbapi(dbapi): "Define self.settings as an alias for self.mysettings, " + \ "for conformity with other dbapi classes.") + @property + def _categories(self): + return self.settings.categories + def __init__(self, porttree_root, mysettings=None): portdbapi.portdbapi_instances.append(self) @@ -133,7 +137,7 @@ class portdbapi(dbapi): else: from portage import settings self.mysettings = config(clone=settings) - self._categories = self.mysettings.categories + # This is strictly for use in aux_get() doebuild calls when metadata # is generated by the depend phase. It's safest to use a clone for # this purpose because doebuild makes many changes to the config -- cgit v1.2.3-1-g7c22