#!/usr/bin/python2 from entropy.server.interfaces import Server srv = Server() bad_pkgs = [] dep_cache = set() gtk2_match = srv.atom_match("x11-libs/gtk+:2") gtk3_match = srv.atom_match("x11-libs/gtk+:3") for repo_id in srv.repositories(): repo = srv.open_repository(repo_id) for pkg_id in repo.listAllPackageIds(): deps = [x for x in repo.retrieveDependencies(pkg_id) if x not in dep_cache] dep_cache.update(deps) for dep in deps: matches, rc = srv.atom_match(dep, multi_match=True, multi_repo=True) if gtk3_match in matches: if gtk2_match in matches: bad_pkgs.append((pkg_id, repo_id)) print("found bad package: %s" % (repo.retrieveAtom(pkg_id),)) break bad_atoms = [] for pkg_id, repo_id in bad_pkgs: bad_atoms.append(srv.open_repository(repo_id).retrieveKeySlotAggregated(pkg_id)) bad_atoms.sort() for bad_atom in bad_atoms: print(bad_atom) srv.shutdown()