From e491c0814e57b6a05de2d2c1c807f2d4337598b5 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 22 Dec 2011 19:19:04 +0100 Subject: [PATCH] Add some more tweaks to ignore broken dependencies. --- python/pakfire/packages/base.py | 26 ++++++++++++++++++++++++++ python/pakfire/packages/file.py | 15 ++++++++++----- python/pakfire/packages/make.py | 4 +++- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/python/pakfire/packages/base.py b/python/pakfire/packages/base.py index e16ccb14d..36656a0d9 100644 --- a/python/pakfire/packages/base.py +++ b/python/pakfire/packages/base.py @@ -388,6 +388,32 @@ class Package(object): def vendor(self): return self.metadata.get("PKG_VENDOR", "") + @staticmethod + def filter_deps(deps): + """ + Filter out invalid dependencies. + + This is just for reading packages and skipping comments + or empty lines. + """ + ret = [] + + for dep in deps: + # Remove any leading or trailing spaces. + dep = dep.strip() + + # Skip empty strings. + if not dep: + continue + + # Skip comment lines. + if dep.startswith("#"): + continue + + ret.append(dep) + + return ret + @property def prerequires(self): requires = self.metadata.get("PKG_PREREQUIRES", "") diff --git a/python/pakfire/packages/file.py b/python/pakfire/packages/file.py index 29fb22ba3..e1f7238ed 100644 --- a/python/pakfire/packages/file.py +++ b/python/pakfire/packages/file.py @@ -741,7 +741,8 @@ class FilePackage(Package): if not provides: return [] - return provides.splitlines() + provides = provides.splitlines() + return self.filter_deps(provides) @property def requires(self): @@ -753,7 +754,8 @@ class FilePackage(Package): if not requires: return [] - return requires.splitlines() + requires = requires.splitlines() + return self.filter_deps(requires) @property def prerequires(self): @@ -765,7 +767,8 @@ class FilePackage(Package): if not prerequires: return [] - return prerequires.splitlines() + prerequires = prerequires.splitlines() + return self.filter_deps(prerequires) @property def obsoletes(self): @@ -777,7 +780,8 @@ class FilePackage(Package): if not obsoletes: return [] - return obsoletes.splitlines() + obsoletes = obsoletes.splitlines() + return self.filter_deps(obsoletes) @property def conflicts(self): @@ -789,7 +793,8 @@ class FilePackage(Package): if not conflicts: return [] - return conflicts.splitlines() + conflicts = conflicts.splitlines() + return self.filter_deps(conflicts) class SourcePackage(FilePackage): diff --git a/python/pakfire/packages/make.py b/python/pakfire/packages/make.py index 64387885a..61fafbbdd 100644 --- a/python/pakfire/packages/make.py +++ b/python/pakfire/packages/make.py @@ -270,7 +270,9 @@ class Makefile(MakefileBase): @property def requires(self): - return self.lexer.build.get_var("requires", "").splitlines() + reqs = self.lexer.build.get_var("requires", "").splitlines() + + return self.filter_deps(reqs) @property def provides(self): -- 2.39.5