From: Maciej Bliziński <mac...@opencsw.org> --- gar/v2/lib/python/package.py | 18 +++++++++++++++--- gar/v2/lib/python/package_stats.py | 6 ++++-- 2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/gar/v2/lib/python/package.py b/gar/v2/lib/python/package.py index 1d06467..76ea892 100644 --- a/gar/v2/lib/python/package.py +++ b/gar/v2/lib/python/package.py @@ -342,20 +342,32 @@ class DirectoryFormatPackage(shell.ShellMixin, object): self.SetPkginfoEntry("NAME", pkginfo_name) def GetDependencies(self): + """Gets dependencies information. + + Returns: + A tuple of (list, list) of depends and i_depends. + """ + # The collection of dependencies needs to be a list (as opposed to + # a set) because there might be duplicates and it's necessary to + # carry that information. depends = [] + i_depends = [] depend_file_path = os.path.join(self.directory, "install", "depend") if not os.path.exists(depend_file_path): return depends with open(depend_file_path, "r") as fd: - # It needs to be a list because there might be duplicates and it's - # necessary to carry that information. for line in fd: fields = re.split(c.WS_RE, line) + if 2 < len(fields): + logging.warning("Bad depends line: %s", repr(line)) if fields[0] == "P": pkgname = fields[1] pkg_desc = " ".join(fields[1:]) depends.append((pkgname, pkg_desc)) - return depends + if fields[0] == "I": + pkgname = fields[1] + i_depends.append(pkgname) + return depends, i_depends def CheckPkgpathExists(self): if not os.path.isdir(self.directory): diff --git a/gar/v2/lib/python/package_stats.py b/gar/v2/lib/python/package_stats.py index d03ee01..65566d5 100644 --- a/gar/v2/lib/python/package_stats.py +++ b/gar/v2/lib/python/package_stats.py @@ -22,7 +22,7 @@ import sharedlib_utils from sqlobject import sqlbuilder -PACKAGE_STATS_VERSION = 10L +PACKAGE_STATS_VERSION = 11L BAD_CONTENT_REGEXES = ( # Slightly obfuscating these by using the default concatenation of # strings. @@ -187,10 +187,12 @@ class PackageStatsMixin(object): # there are packages with 'i386' in the pkgname and 'all' as the # architecture. arch = basic_stats["parsed_basename"]["arch"] + depends, i_depends = dir_pkg.GetDependencies() pkg_stats = { "binaries": dir_pkg.ListBinaries(), "binaries_dump_info": self.GetBinaryDumpInfo(), - "depends": dir_pkg.GetDependencies(), + "depends": depends, + "i_depends": i_depends, "isalist": sharedlib_utils.GetIsalist(arch), "overrides": override_dicts, "pkgchk": self.GetPkgchkData(), -- 1.7.1 _______________________________________________ devel mailing list devel@lists.opencsw.org https://lists.opencsw.org/mailman/listinfo/devel