Пример #1
0
    def buildAinstContext(self,
                          installRoot,
                          ainstConf,
                          useRepo=True,
                          repos=[],
                          localRepos=[],
                          localRoots=None,
                          localActivePkgs=None,
                          localDeactivePkgs=None):
        repoSack = None
        if useRepo:
            repoSack = self._initRepos(ainstConf, repos)
            self._initLocalRepos(repoSack, localRepos)
            self._initInstallRootRepos(repoSack, installRoot)
            if repoSack is None:
                return None

        rootSack = RPMDBPackageSack('/')
        localSacks = MultiPackageSack()
        if installRoot == '/':
            if localRoots:
                for localRoot in localRoots:
                    builder = AinstPackageSackBuilder(localRoot)
                    sack = builder.buildActivePkgSack()
                    if sack is None:
                        Log.cout(
                            Log.DEBUG,
                            'Build active pkg sack of %s failed' % localRoot)
                        continue
                    localSacks.addPackageSack(localRoot, sack)
        else:
            builder = AinstPackageSackBuilder(installRoot)
            sack = builder.buildActivePkgSack()
            if sack is None:
                Log.cout(Log.DEBUG,
                         'Build active pkg sack of %s failed' % installRoot)
            else:
                localSacks.addPackageSack(installRoot, sack)
            self._addFakeLocalInstallPkgs(localActivePkgs, installRoot,
                                          localSacks)
            if not self._removeWillDeactivePkgs(localSacks, localDeactivePkgs):
                return None
        return AinstContextImpl(installRoot, repoSack, rootSack, localSacks)
Пример #2
0
    def buildAinstContext(
        self,
        installRoot,
        ainstConf,
        useRepo=True,
        repos=[],
        localRepos=[],
        localRoots=None,
        localActivePkgs=None,
        localDeactivePkgs=None,
    ):
        repoSack = None
        if useRepo:
            repoSack = self._initRepos(ainstConf, repos)
            self._initLocalRepos(repoSack, localRepos)
            self._initInstallRootRepos(repoSack, installRoot)
            if repoSack is None:
                return None

        rootSack = RPMDBPackageSack("/")
        localSacks = MultiPackageSack()
        if installRoot == "/":
            if localRoots:
                for localRoot in localRoots:
                    builder = AinstPackageSackBuilder(localRoot)
                    sack = builder.buildActivePkgSack()
                    if sack is None:
                        Log.cout(Log.DEBUG, "Build active pkg sack of %s failed" % localRoot)
                        continue
                    localSacks.addPackageSack(localRoot, sack)
        else:
            builder = AinstPackageSackBuilder(installRoot)
            sack = builder.buildActivePkgSack()
            if sack is None:
                Log.cout(Log.DEBUG, "Build active pkg sack of %s failed" % installRoot)
            else:
                localSacks.addPackageSack(installRoot, sack)
            self._addFakeLocalInstallPkgs(localActivePkgs, installRoot, localSacks)
            if not self._removeWillDeactivePkgs(localSacks, localDeactivePkgs):
                return None
        return AinstContextImpl(installRoot, repoSack, rootSack, localSacks)