예제 #1
0
파일: stable.py 프로젝트: nvinson/libzilla
    def look_for_maintainers(self):
        pkg_md = MetaDataXML(self.metadata, herds=None)
        for maint in pkg_md.maintainers():
            self.maintainers.append(maint.email)

        if len(self.maintainers) == 0:
            self.maintainers.append('*****@*****.**')
예제 #2
0
def rdeps_with_slot(slot_rdeps, slot=None):
    """
    Prints a list of rev-deps which depend on the specified package and slot
    """
    pkg_maints = {}
    pkg_herds = {}
    if not slot_rdeps.has_key(slot):
        # No rdeps using the given slot
        return
    print "-------------------------------"
    print "All packages:"
    print "-------------------------------"
    for pkg in slot_rdeps[slot]:
        pkg_md = MetaDataXML(get_md_path(pkg), get_herds())
        for herd in pkg_md.herds():
            if not pkg_herds.has_key(herd):
                pkg_herds[herd] = []
            pkg_herds[herd].append(pkg)
        for maint in pkg_md.maintainers():
            if not pkg_maints.has_key(maint.email):
                pkg_maints[maint.email] = []
            pkg_maints[maint.email].append(pkg)
        print "\t%s\therds: " % pkg,
        for i in pkg_md.herds():
            print "%s" % i,
        print "\tmaintainers: ",
        for i in pkg_md.maintainers():
            print "%s" % i.email,
        print

    print "-------------------------------"
    print "Herd packages:"
    print "-------------------------------"
    for (herd, pkgs) in pkg_herds.iteritems():
        print "Herd: %s" % herd
        for pkg in pkgs:
            print "\t%s" % pkg

    print "-------------------------------"
    print "Maintainer packages:"
    print "-------------------------------"
    for (maint, pkgs) in pkg_maints.iteritems():
        print "Maintainer: %s" % maint
        for pkg in pkgs:
            print "\t%s" % pkg
예제 #3
0
def rdeps_with_slot(slot_rdeps, slot=None):
    """
    Prints a list of rev-deps which depend on the specified package and slot
    """
    pkg_maints = {}
    pkg_herds = {}
    if not slot_rdeps.has_key(slot):
        # No rdeps using the given slot
        return
    print "-------------------------------"
    print "All packages:"
    print "-------------------------------"
    for pkg in slot_rdeps[slot]:
        pkg_md = MetaDataXML(get_md_path(pkg), get_herds())
        for herd in pkg_md.herds():
            if not pkg_herds.has_key(herd):
                pkg_herds[herd] = []
            pkg_herds[herd].append(pkg)
        for maint in pkg_md.maintainers():
            if not pkg_maints.has_key(maint.email):
                pkg_maints[maint.email] = []
            pkg_maints[maint.email].append(pkg)
        print '\t%s\therds: ' % pkg,
        for i in pkg_md.herds():
            print '%s' % i,
        print '\tmaintainers: ',
        for i in pkg_md.maintainers():
            print '%s' % i.email,
        print

    print "-------------------------------"
    print "Herd packages:"
    print "-------------------------------"
    for (herd, pkgs) in pkg_herds.iteritems():
        print 'Herd: %s' % herd
        for pkg in pkgs:
            print '\t%s' % pkg

    print "-------------------------------"
    print "Maintainer packages:"
    print "-------------------------------"
    for (maint, pkgs) in pkg_maints.iteritems():
        print 'Maintainer: %s' % maint
        for pkg in pkgs:
            print '\t%s' % pkg
예제 #4
0
파일: pkg.py 프로젝트: mm1ke/gentoopm
    def maintainers(self):
        # yes, seriously, the only API portage has is direct parser
        # for the XML file
        xml_path = os.path.join(os.path.dirname(self.path), 'metadata.xml')
        try:
            meta = MetaDataXML(xml_path, None)
        except (IOError, OSError) as e:
            if e.errno == errno.ENOENT:
                return ()
            raise

        return tuple(PortagePackageMaintainer(m) for m in meta.maintainers())
예제 #5
0
def findpackagedepslotops(porttree, cpv):
    depstr = porttree.dbapi.aux_get(cpv, ["RDEPEND"])[0]
    cleandeps = portage.dep.paren_reduce(depstr)
    for indep in portage.dep.flatten(cleandeps):
        if (portage.dep.isvalidatom(indep)): 
            indepslot = portage.dep.dep_getslot(indep)
            if indepslot == None or not indepslot.endswith("="):
                allavail = porttree.dep_match(indep)
                for inallavail in portage.dep.flatten(allavail):
                    slot = porttree.dbapi.aux_get(inallavail, ["SLOT"])[0]
                    if slot.find("/") > 0:
                        category, pkgname, version, rev = portage.catpkgsplit(cpv)
                        ebuild, path = porttree.dbapi.findname2(cpv)
                        metxml = path+"/"+category+"/"+pkgname+"/metadata.xml"
                        maints=[]
                        try:
                            pkg_md = MetaDataXML(metxml,"/usr/portage/metadata/herds.xml")
                            for maint in pkg_md.maintainers():
                                maints.append(maint.email)
                        except IOError: pass                        
                        print cpv + " - " + inallavail + " - " + slot + " - " + ', '.join(maints)