=== modified file 'Germinate/germinator.py' --- Germinate/germinator.py 2007-07-18 12:11:58 +0000 +++ Germinate/germinator.py 2007-07-26 13:39:58 +0000 @@ -145,6 +145,8 @@ self.packagetype[pkg] = pkgtype self.pruned[pkg] = set() + self.packages[pkg]["Section"] = p.Section.get("Section", "") + self.packages[pkg]["Maintainer"] = \ unicode(p.Section.get("Maintainer", ""), "utf8", "replace") @@ -634,7 +636,10 @@ def reverseDepends(self): """Calculate the reverse dependency relationships.""" for pkg in self.all: - for field in "Pre-Depends", "Depends": + fields = ["Pre-Depends", "Depends"] + if self.packages[pkg]["Section"] == "metapackages": + fields.append("Recommends") + for field in fields: for deplist in self.packages[pkg][field]: for dep in deplist: if dep[0] in self.all and \ @@ -653,8 +658,11 @@ if "Reverse-Depends" not in self.packages[pkg]: continue - for field in ("Pre-Depends", "Depends", - "Build-Depends", "Build-Depends-Indep"): + fields = ["Pre-Depends", "Depends"] + if self.packages[pkg]["Section"] == "metapackages": + fields.append("Recommends") + fields.extend(["Build-Depends", "Build-Depends-Indep"]) + for field in fields: if field not in self.packages[pkg]["Reverse-Depends"]: continue @@ -870,6 +878,12 @@ second_class=second_class, build_tree=build_tree) + if self.packages[pkg]["Section"] == "metapackages": + self.addDependencyTree(seedname, pkg, + self.packages[pkg]["Recommends"], + second_class=second_class, + build_tree=build_tree) + src = self.packages[pkg]["Source"] if src not in self.sources: self.error("Missing source package: %s (for %s)", src, pkg)