Exemplo n.º 1
0
    def __add_to_revdeps(self, package, revdeps):
        metadata_xml = os.path.join(self.package_path(package),
                                    ctx.const.metadata_xml)
        meta_doc = xmlext.parse(metadata_xml)

        try:
            pkg = xmlext.getNode(meta_doc, "Package")
        except:
            pkg = None

        if pkg is None:
            # If package info is broken or not available, skip it.
            ctx.ui.warning(
                _("Installation info for package \"{}\" is broken. "
                  "Reinstall it to fix this problem.").format(package))
            del self.installed_db[package]
            return

        deps = xmlext.getNode(pkg, 'RuntimeDependencies')
        if deps:
            for dep in xmlext.getTagByName(deps, 'Dependency'):
                revdep = revdeps.setdefault(xmlext.getNodeText(dep), {})
                revdep[package] = xmlext.toString(dep)

            for anydep in xmlext.getTagByName(deps, 'AnyDependency'):
                for dep in xmlext.getTagByName(anydep, 'Dependency'):
                    revdep = revdeps.setdefault(xmlext.getNodeText(dep), {})
                    revdep[package] = xmlext.toString(anydep)
Exemplo n.º 2
0
    def __generate_groups(doc):
        groups = {}
        group = xmlext.getTagByName(doc, "Group")
        for gr in group:
            name = xmlext.getNodeText(gr, "Name")
            groups[name] = xmlext.toString(gr)

        return groups
Exemplo n.º 3
0
    def __generate_components(doc):
        components = {}
        component = xmlext.getTagByName(doc, "Component")
        for comp in component:
            name = xmlext.getNodeText(comp, "Name")
            components[name] = xmlext.toString(comp)

        return components
Exemplo n.º 4
0
    def __generate_packages(doc):
        pdict = {}

        for x in xmlext.getTagByName(doc, "Package"):
            name = xmlext.getNodeText(x, "Name")
            compressed_data = gzip.zlib.compress(
                xmlext.toString(x).encode('utf-8'))
            pdict[name] = compressed_data
        return pdict
Exemplo n.º 5
0
    def __generate_sources(doc):
        pdict = {}

        for x in xmlext.getTagByName(doc, "SpecFile"):
            source = xmlext.getNode(x, "Source")
            name = xmlext.getNodeText(source, "Name")
            compressed_data = gzip.zlib.compress(
                xmlext.toString(x).encode('utf-8'))
            pdict[name] = compressed_data
        return pdict
Exemplo n.º 6
0
    def __generate_revdeps(doc):
        revdeps = {}
        for node in xmlext.getTagByName(doc, "Package"):
            name = xmlext.getNodeText(node, 'Name')
            deps = xmlext.getNode(node, 'RuntimeDependencies')
            if deps:
                for dep in xmlext.getTagByName(deps, "Dependency"):
                    revdeps.setdefault(xmlext.getNodeText(dep), set()).add(
                        (name, xmlext.toString(dep)))

        return revdeps
Exemplo n.º 7
0
    def __generate_revdeps(doc):
        revdeps = {}

        for spec in xmlext.getTagByName(doc, "SpecFile"):
            src = xmlext.getNode(spec, "Source")
            name = xmlext.getNodeText(src, "Name")
            deps = xmlext.getNode(src, "BuildDependencies")
            if deps:
                for dep in xmlext.getTagByName(deps, "Dependency"):
                    revdeps.setdefault(xmlext.getNodeText(dep), set()).add(
                        (name, xmlext.toString(dep)))

        return revdeps
Exemplo n.º 8
0
    def __generate_sources(doc):
        sources = {}
        pkgstosrc = {}
        for spec in xmlext.getTagByName(doc, "SpecFile"):
            src = xmlext.getNode(spec, "Source")
            src_name = xmlext.getNodeText(src, "Name")
            compressed_data = gzip.zlib.compress(
                xmlext.toString(spec).encode('utf-8'))
            sources[src_name] = compressed_data

            for package in xmlext.getTagByName(spec, "Package"):
                pkgstosrc[xmlext.getNodeText(package, "Name")] = src_name

        return sources, pkgstosrc