Exemple #1
0
def getSquashList():
    """Get supprted squashfs compressions method"""
    wantMethod = set(["lzo", "lzma", "xz", "gzip"])
    usesSquashFs = getPkgActiveUses("sys-fs/squashfs-tools")
    if not usesSquashFs:
        return ["gzip"]
    else:
        pkgInfo = isPkgInstalled("sys-fs/squashfs-tools")
        if pkgInfo and pkgInfo[0]["PV"]:
            pkgVer = getTupleVersion(pkgInfo[0]["PV"])
            gzipVer = getTupleVersion("4.2")
            if pkgVer >= gzipVer:
                usesSquashFs.append("gzip")
        return map(lambda x: {"lzma": "xz"}.get(x, x), list(set(usesSquashFs) & wantMethod))
Exemple #2
0
def isPkgInstalled(pkg, prefix="/", sortByVersion=False):
    """Check is package installed"""
    pkgDir = path.join(prefix, "var/db/pkg")
    if "/" in pkg:
        category, op, pkg = pkg.partition("/")
        res = map(
            lambda x: x.update({"CATEGORY": category}) or x,
            filter(lambda x: x["PN"] == pkg, map(reVerSplitToPV, listDirectory(path.join(pkgDir, category)))),
        )
        if len(res) > 1 and sortByVersion:
            return sorted(res, key=lambda x: getTupleVersion(x["PVR"]))
        else:
            return res
    else:
        return filter(
            lambda x: filter(lambda y: y["PN"] == pkg, map(reVerSplitToPV, listDirectory(x))),
            listDirectory(pkgDir, fullPath=True),
        )