Пример #1
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)
Пример #2
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
Пример #3
0
def find_pkg(packagename):
	if pacman.initialize("/") == -1:
		fprint("initialize() failed")
		return False
	local = pacman.db_register("local")
	i = pacman.db_getpkgcache(local)
	found = False
	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 == packagename:
		        found = True
		i = pacman.list_next(i)
	pacman.release()
	return found
Пример #4
0
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":
					found = True
			else:
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))
    sha1sum = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_SHA1SUM))

    full_pkg = pacman.PKGp_new()
    package_path= packages_path + name + "-" + version + "-" + arch + ".fpm"
Пример #6
0
if not db:
	print "db_register() failed"
if pacman.db_setserver(db, "file://" + os.getcwd() + "/../frugalware-%s" % sys.argv[1]) == -1:
	print "db_setserver() failed"
if pacman.db_update(1, db) == -1:
	print "db_update() failed"
if pacman.trans_init(pacman.TRANS_TYPE_SYNC, pacman.TRANS_FLAG_NOCONFLICTS, None, None, None) == -1:
	print "trans_init() failed"
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))
	if pacman.trans_addtarget(pkgname):
		print "failed to add target '%s' (%s)" % (pkgname, pacman.strerror(pacman.cvar.pm_errno))
		break
	i = pacman.list_next(i)
junk = pacman.LISTp_new()
if pacman.trans_prepare(junk) == -1:
	print "%s:" % pacman.strerror(pacman.cvar.pm_errno)
	i = pacman.list_first(pacman.LISTp_to_LIST(junk))
	while i:
		miss = pacman.void_to_PM_DEPMISS(pacman.list_getdata(i))
		if pacman.void_to_long(pacman.dep_getinfo(miss, pacman.DEP_TYPE)) == pacman.DEP_TYPE_DEPEND:
			reason = "requires"
		else:
			reason = "is required by"
		sys.stdout.write(":: %s: %s %s" % (pacman.void_to_char(pacman.dep_getinfo(miss, pacman.DEP_TARGET)),
			reason, pacman.void_to_char(pacman.dep_getinfo(miss, pacman.DEP_NAME))))
		mod = pacman.void_to_long(pacman.dep_getinfo(miss, pacman.DEP_MOD))
		ver = pacman.void_to_char(pacman.dep_getinfo(miss, pacman.DEP_VERSION))
		if mod == pacman.DEP_MOD_EQ:
Пример #7
0
        db, "file://" + os.getcwd() + "/../frugalware-%s" % sys.argv[1]) == -1:
    print "db_setserver() failed"
if pacman.db_update(1, db) == -1:
    print "db_update() failed"
if pacman.trans_init(pacman.TRANS_TYPE_SYNC, pacman.TRANS_FLAG_NOCONFLICTS,
                     None, None, None) == -1:
    print "trans_init() failed"
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))
    if pacman.trans_addtarget(pkgname):
        print "failed to add target '%s' (%s)" % (
            pkgname, pacman.strerror(pacman.cvar.pm_errno))
        break
    i = pacman.list_next(i)
junk = pacman.LISTp_new()
if pacman.trans_prepare(junk) == -1:
    print "%s:" % pacman.strerror(pacman.cvar.pm_errno)
    i = pacman.list_first(pacman.LISTp_to_LIST(junk))
    while i:
        miss = pacman.void_to_PM_DEPMISS(pacman.list_getdata(i))
        if pacman.void_to_long(pacman.dep_getinfo(
                miss, pacman.DEP_TYPE)) == pacman.DEP_TYPE_DEPEND:
            reason = "requires"
        else:
            reason = "is required by"
        sys.stdout.write(
            ":: %s: %s %s" %
            (pacman.void_to_char(pacman.dep_getinfo(
                miss, pacman.DEP_TARGET)), reason,
		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)
Пример #9
0
    root = tempfile.mkdtemp()
    pacman.initialize(root)
    if os.getcwd().split('/')[-2] == "frugalware-current":
        treename = "frugalware-current"
        archive = treename
    else:
        treename = "frugalware"
        archive = treename + "-stable"
    db = pacman.db_register(treename)
    pacman.db_setserver(db, "file://" + os.getcwd() + "/../frugalware-" + arch)
    pacman.db_update(1, db)
    fdb = []
    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))
        pkgver = pacman.void_to_char(
            pacman.pkg_getinfo(pkg, pacman.PKG_VERSION))
        fdb.append("%s-%s-%s.fpm" % (pkgname, pkgver, arch))
        j = pacman.list_next(j)
    pacman.release()
    shutil.rmtree(root)
    for j in os.listdir(os.getcwd() + "/../frugalware-" + arch):
        if j not in fdb and j != treename + ".fdb" and j != ".gitignore":
            print "frugalware-" + arch + "/" + j
            if remove:
                os.rename(
                    "../frugalware-" + arch + "/" + j,
                    "/home/ftp/pub/archive/fpmjunk/" + archive +
                    "/frugalware-" + arch + "/" + j)
Пример #10
0
treename = sys.argv[1]
local = pacman.db_register("local")
db = pacman.db_register(treename)
if not db:
	print "db_register() failed"
if pacman.db_setserver(db, "file://" + os.getcwd()) == -1:
	print "db_setserver() failed"
if pacman.db_update(1, db) == -1:
	print "db_update() failed"
if pacman.trans_init(pacman.TRANS_TYPE_SYNC, pacman.TRANS_FLAG_NOCONFLICTS, None, None, None) == -1:
	print "trans_init() failed"
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))
	pkgver = pacman.void_to_char(pacman.pkg_getinfo(pkg, pacman.PKG_VERSION))
	group = pacman.void_to_char(pacman.list_getdata(pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_GROUPS))))
	if group != "base":
		i = pacman.list_next(i)
		continue
	print '%s [label="%s %s"]' % (dotify(pkgname), pkgname, pkgver)
	j = pacman.void_to_PM_LIST(pacman.pkg_getinfo(pkg, pacman.PKG_DEPENDS))
	while j:
		dep = pacman.void_to_char(pacman.list_getdata(j)).split("<")[0].split(">")[0].split("=")[0]
		print "%s->%s" % (dotify(dep), dotify(pkgname))
		j = pacman.list_next(j)
	i = pacman.list_next(i)
print "}"
pacman.release()
shutil.rmtree(root)