Ejemplo n.º 1
0
def pacman_pkg_getgroups(pkg):
    i = pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_GROUPS))
    ret = []
    while i:
        ret.append(pacman.void_to_char(pacman.list_getdata(i)))
        i = pacman.list_next(i)
    return ret
Ejemplo n.º 2
0
def get_recursive_deps(name, result):
	i = pacman.db_getpkgcache(db_local)
	while i:
		pkg = pacman.void_to_PM_PKG(pacman.list_getdata(i))
		pkgname = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_NAME))
		if pkgname == name:
			j = pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_DEPENDS))
			while j:
				depname = pacman.void_to_char(pacman.list_getdata(j)).split("<")[0].split(">")[0].split("=")[0]
				if depname not in result:
					result.append(depname)
					get_recursive_deps(depname, result)
				j = pacman.list_next(j)
		i = pacman.list_next(i)
Ejemplo n.º 3
0
root = tempfile.mkdtemp()
pacman.initialize(root)
if os.getcwd().split('/')[-2] == "frugalware-current":
	treename = "frugalware-current"
else:
	treename = "frugalware"
db = pacman.db_register(treename)
pacman.db_setserver(db, "file://" + os.getcwd() + "/../frugalware-%s" % sys.argv[1])
pacman.db_update(1, db)

i = pacman.db_getpkgcache(db)
while i:
	pkg = pacman.void_to_PM_PKG(pacman.list_getdata(i))
	pkgname = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_NAME))
	group = pacman.void_to_char(pacman.list_getdata(pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_GROUPS))))
	if group not in basecats:
		i = pacman.list_next(i)
		continue
	j = pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_DEPENDS))
	while j:
		found = False
		dep = pacman.void_to_char(pacman.list_getdata(j)).split("<")[0].split(">")[0].split("=")[0]
		k = pacman.db_getpkgcache(db)
		while not found and k:
			p = pacman.void_to_PM_PKG(pacman.list_getdata(k))
			if pacman.void_to_char(pacman.pkg_getinfo(p, pacman.PKG_NAME)) == dep:
				l = pacman.void_to_PM_LIST(pacman.pkg_getinfo(p, pacman.PKG_GROUPS))
				g = pacman.void_to_char(pacman.list_getdata(l))
				# if it's in extra then deps-extra will handle the issue
				if g in basecats or g[-6:] == "-extra":
Ejemplo n.º 4
0
    treename = "frugalware"
db = pacman.db_register(treename)
pacman.db_setserver(
    db, "file://" + os.getcwd() + "/../frugalware-%s" % sys.argv[1])
pacman.db_update(1, db)

i = pacman.db_getpkgcache(db)
while i:
    pkg = pacman.void_to_PM_PKG(pacman.list_getdata(i))
    pkgname = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_NAME))
    groups = pacman_pkg_getgroups(pkg)

    if not any_in(basecats, groups):
        i = pacman.list_next(i)
        continue
    j = pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_DEPENDS))
    while j:
        found = False
        dep = pacman.void_to_char(
            pacman.list_getdata(j)).split("<")[0].split(">")[0].split("=")[0]
        k = pacman.db_getpkgcache(db)
        while not found and k:
            p = pacman.void_to_PM_PKG(pacman.list_getdata(k))
            if pacman.void_to_char(pacman.pkg_getinfo(p,
                                                      pacman.PKG_NAME)) == dep:
                if any_in(basecats, pacman_pkg_getgroups(p)):
                    found = True
            else:
                l = pacman.void_to_PM_LIST(
                    pacman.pkg_getinfo(p, pacman.PKG_PROVIDES))
                while not found and l:
db = pacman.db_register("frugalware-current")

i = pacman.db_getpkgcache(db)
while i :
    pkg = pacman.void_to_PM_PKG(pacman.list_getdata(i))
    name = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_NAME))
    version = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_VERSION))
    arch = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_ARCH))
    files = None
    url = None
    builddate = None
    licenses = None

    groups = []
    j = pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_GROUPS))
    while j:
        group = pacman.void_to_char(pacman.list_getdata(j))
        groups.append(group)
        j = pacman.list_next(j)

    depends = []
    k = pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_DEPENDS))
    while k:
        depend = pacman.void_to_char(pacman.list_getdata(k))
        depends.append(depend)
        k = pacman.list_next(k)

    desc = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_DESC)).decode('latin-1').encode("utf-8")
    size = pacman.void_to_long(pacman.pkg_getinfo(pkg, pacman.PKG_SIZE))
    usize = pacman.void_to_long(pacman.pkg_getinfo(pkg, pacman.PKG_USIZE))
		continue
	arch = i[11:]
	root = tempfile.mkdtemp()
	pacman.initialize(root)
	if os.getcwd().split('/')[-3] == "frugalware-current":
		treename = "frugalware-current"
	else:
		treename = "frugalware"
	db = pacman.db_register(treename)
	pacman.db_setserver(db, "file://" + os.getcwd() + "/../../frugalware-" + arch)
	pacman.db_update(1, db)
	size = 0
	num = 0
	j = pacman.db_getpkgcache(db)
	while j:
		pkg = pacman.void_to_PM_PKG(pacman.list_getdata(j))
		pkgname = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_NAME))
		pkgsize = pacman.void_to_unsigned_long(pacman.pkg_getinfo(pkg, pacman.PKG_SIZE))
		group = pacman.void_to_char(pacman.list_getdata(pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_GROUPS))))
		if group[-6:] == "-extra":
			j = pacman.list_next(j)
			continue
		size += pkgsize
		num += 1
		j = pacman.list_next(j)
	pacman.release()
	shutil.rmtree(root)
	mbsize = round(size / 1048576.0, 1)
	if mbsize > 650.0:
		print "Size for %s is too big: %d MB (should be < %d MB; %d packages)" % (arch, mbsize, limit, num)