1 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
11 def get_poldek_requires():
13 name_rx = re.compile(r"\d+\. ([^\s]+)-[^-]+-[^-]+\n")
14 req_rx = re.compile(r" req .* --> (.*)\n")
15 pkg_name_rx = re.compile(r"([^\s]+)-[^-]+-[^-]+")
17 # todo: if a and b are sets, then use sets module
18 # and intersection method on set object
22 if x in b: r.append(x)
25 # add given req-list to cur_pkg_reqs
28 if reqs[0] not in cur_pkg_reqs:
29 cur_pkg_reqs.append(reqs[0])
32 for x in cur_pkg_reqs:
33 if type(x) is types.ListType:
34 i = intersect(x, reqs)
38 idx = cur_pkg_reqs.index(x)
40 if i[0] in cur_pkg_reqs:
43 cur_pkg_reqs[idx] = i[0]
50 cur_pkg_reqs.append(reqs)
56 f = chr_popen("poldek -v -v --verify --unique-pkg-names")
61 pkg_reqs[cur_pkg] = cur_pkg_reqs
63 if cur_pkg in pkg_reqs:
72 for x in m.group(1).split():
73 if x in ["RPMLIB_CAP", "NOT", "FOUND", "UNMATCHED"]: continue
74 m = pkg_name_rx.match(x)
76 reqs.append(m.group(1))
78 msg("poldek_reqs: bad pkg name: %s\n" % x)
79 if len(reqs) != 0: add_req(reqs)
84 pkg_reqs[cur_pkg] = cur_pkg_reqs