Exemplo n.º 1
0
def configure_pending(packages=None):
    # Import COMAR
    import pisi.comariface

    # start with pending packages
    # configure them in reverse topological order of dependency
    installdb = pisi.db.installdb.InstallDB()
    if not packages:
        packages = installdb.list_pending()
    else:
        packages = set(packages).intersection(installdb.list_pending())

    order = generate_pending_order(packages)
    try:
        for x in order:
            if installdb.has_package(x):
                pkginfo = installdb.get_package(x)
                pkg_path = installdb.package_path(x)
                m = pisi.metadata.MetaData()
                metadata_path = pisi.util.join_path(pkg_path,
                                                    ctx.const.metadata_xml)
                m.read(metadata_path)
                # FIXME: we need a full package info here!
                pkginfo.name = x
                ctx.ui.notify(pisi.ui.configuring, package=pkginfo, files=None)
                pisi.comariface.post_install(
                    pkginfo.name, m.package.providesComar,
                    pisi.util.join_path(pkg_path, ctx.const.comar_dir),
                    pisi.util.join_path(pkg_path, ctx.const.metadata_xml),
                    pisi.util.join_path(pkg_path, ctx.const.files_xml), None,
                    None, m.package.version, m.package.release)
                ctx.ui.notify(pisi.ui.configured, package=pkginfo, files=None)
            installdb.clear_pending(x)
    except ImportError:
        raise pisi.Error(_("comar package is not fully installed"))
Exemplo n.º 2
0
def configure_pending(packages=None):
    # start with pending packages
    # configure them in reverse topological order of dependency
    installdb = pisi.db.installdb.InstallDB()
    if not packages:
        packages = installdb.list_pending()
    else:
        packages = set(packages).intersection(installdb.list_pending())

    try:
        ctx.exec_usysconf()
    except Exception as e:
        raise e
        return

    # Clear legacy "needs configuration" flag
    order = generate_pending_order(packages)
    for x in order:
        if installdb.has_package(x):
            pkginfo = installdb.get_package(x)
            pkg_path = installdb.package_path(x)
            m = pisi.metadata.MetaData()
            metadata_path = pisi.util.join_path(pkg_path, ctx.const.metadata_xml)
            m.read(metadata_path)
            # FIXME: we need a full package info here!
            pkginfo.name = x
            ctx.ui.notify(pisi.ui.configuring, package = pkginfo, files = None)
            ctx.ui.notify(pisi.ui.configured, package = pkginfo, files = None)
        installdb.clear_pending(x)
Exemplo n.º 3
0
def configure_pending(packages=None):
    # start with pending packages
    # configure them in reverse topological order of dependency
    installdb = pisi.db.installdb.InstallDB()
    if not packages:
        packages = installdb.list_pending()
    else:
        packages = set(packages).intersection(installdb.list_pending())

    try:
        ctx.exec_usysconf()
    except Exception as e:
        raise e
        return

    # Clear legacy "needs configuration" flag
    order = generate_pending_order(packages)
    for x in order:
        if installdb.has_package(x):
            pkginfo = installdb.get_package(x)
            pkg_path = installdb.package_path(x)
            m = pisi.metadata.MetaData()
            metadata_path = pisi.util.join_path(pkg_path, ctx.const.metadata_xml)
            m.read(metadata_path)
            # FIXME: we need a full package info here!
            pkginfo.name = x
            ctx.ui.notify(pisi.ui.configuring, package = pkginfo, files = None)
            ctx.ui.notify(pisi.ui.configured, package = pkginfo, files = None)
        installdb.clear_pending(x)
Exemplo n.º 4
0
def configure_pending(packages=None):
    # Import COMAR
    import pisi.comariface

    # start with pending packages
    # configure them in reverse topological order of dependency
    installdb = pisi.db.installdb.InstallDB()
    if not packages:
        packages = installdb.list_pending()
    else:
        packages = set(packages).intersection(installdb.list_pending())

    order = generate_pending_order(packages)
    try:
        for x in order:
            if installdb.has_package(x):
                pkginfo = installdb.get_package(x)
                pkgname = pisi.util.package_name(x, pkginfo.version,
                                        pkginfo.release,
                                        False,
                                        False)
                pkg_path = pisi.util.join_path(ctx.config.packages_dir(), pkgname)
                m = pisi.metadata.MetaData()
                metadata_path = pisi.util.join_path(pkg_path, ctx.const.metadata_xml)
                m.read(metadata_path)
                # FIXME: we need a full package info here!
                pkginfo.name = x
                ctx.ui.notify(pisi.ui.configuring, package = pkginfo, files = None)
                pisi.comariface.post_install(
                    pkginfo.name,
                    m.package.providesComar,
                    pisi.util.join_path(pkg_path, ctx.const.comar_dir),
                    pisi.util.join_path(pkg_path, ctx.const.metadata_xml),
                    pisi.util.join_path(pkg_path, ctx.const.files_xml),
                    None,
                    None,
                    m.package.version,
                    m.package.release
                )
                ctx.ui.notify(pisi.ui.configured, package = pkginfo, files = None)
            installdb.clear_pending(x)
    except ImportError:
        raise pisi.Error(_("comar package is not fully installed"))