From 6cbf093f8e18bf00497382f6d1f995648a7ab34f Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Tue, 18 Dec 2012 15:57:09 -0600 Subject: [PATCH] Only include groups that are specified in the kickstart. Remove any environments that use groups not on the media. patch from notting http://lists.fedoraproject.org/pipermail/buildsys/2012-December/004033.html include langpack in comps --- src/pypungi/__init__.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/pypungi/__init__.py b/src/pypungi/__init__.py index a2ac2fce..209e981a 100644 --- a/src/pypungi/__init__.py +++ b/src/pypungi/__init__.py @@ -745,10 +745,29 @@ class Pungi(pypungi.PungiBase): ourcompspath = os.path.join(self.workdir, '%s-%s-comps.xml' % (self.config.get('pungi', 'name'), self.config.get('pungi', 'version'))) + # Filter out things we don't include + ourgroups = [] + for item in self.ksparser.handler.packages.groupList: + g = self.ayum.comps.return_group(item.name) + if g: + ourgroups.append(g.groupid) + allgroups = [g.groupid for g in self.ayum.comps.get_groups()] + for group in allgroups: + if group not in ourgroups and not self.ayum.comps.return_group(group).langonly: + self.logger.info('Removing extra group %s from comps file' % (group,)) + del self.ayum.comps._groups[group] + + groups = [g.groupid for g in self.ayum.comps.get_groups()] + envs = self.ayum.comps.get_environments() + for env in envs: + for group in env.groups: + if group not in groups: + self.logger.info('Removing incomplete environment %s from comps file' % (env,)) + del self.ayum.comps._environments[env.environmentid] + break + ourcomps = open(ourcompspath, 'w') - ourcomps.write(self.ayum.comps.xml()) - ourcomps.close() # Disable this until https://bugzilla.redhat.com/show_bug.cgi?id=442097 is fixed.