def getSourcesWithResolveTroves(self, cfg, resolveTroveTups, builtTroveSource): resolveTroves = [] searchSourceTroves = [] allResolveTroveTups = list(itertools.chain(*cfg.resolveTroveTups)) allResolveTroves = self.repos.getTroves(allResolveTroveTups, withFiles=False) resolveTrovesByTup = dict( (x.getNameVersionFlavor(), x) for x in allResolveTroves) for resolveTupList in cfg.resolveTroveTups: resolveTroves = [resolveTrovesByTup[x] for x in resolveTupList] searchSourceTroves.append(resolveTroves) if cfg.resolveTrovesOnly: repos = None else: repos = self.repos searchSource = resolvesource.DepHandlerSource( builtTroveSource, searchSourceTroves, repos, useInstallLabelPath=not cfg.resolveTrovesOnly, expandLabelQueries=True) resolveSource = resolvesource.rMakeResolveSource( cfg, builtTroveSource, searchSource.resolveTroveSource, searchSourceTroves, self.repos) return searchSource, resolveSource
def getSourcesWithResolveTroves(self, cfg, resolveTroveTups, builtTroveSource): resolveTroves = [] searchSourceTroves = [] allResolveTroveTups = list(itertools.chain(*cfg.resolveTroveTups)) allResolveTroves = self.repos.getTroves(allResolveTroveTups, withFiles=False) resolveTrovesByTup = dict((x.getNameVersionFlavor(), x) for x in allResolveTroves) for resolveTupList in cfg.resolveTroveTups: resolveTroves = [ resolveTrovesByTup[x] for x in resolveTupList ] searchSourceTroves.append(resolveTroves) if cfg.resolveTrovesOnly: repos = None else: repos = self.repos searchSource = resolvesource.DepHandlerSource(builtTroveSource, searchSourceTroves, repos, useInstallLabelPath=not cfg.resolveTrovesOnly, expandLabelQueries=True) resolveSource = resolvesource.rMakeResolveSource(cfg, builtTroveSource, searchSource.resolveTroveSource, searchSourceTroves, self.repos) return searchSource, resolveSource
def getSources(self, resolveJob, cross=False): cfg = resolveJob.getConfig() if cross: buildFlavor = deps.overrideFlavor(resolveJob.buildCfg.buildFlavor, resolveJob.getTrove().getFlavor()) buildFlavor = deps.overrideFlavor(buildFlavor, deps.parseFlavor('!cross')) builtTroveTups = (resolveJob.getCrossTroves() + resolveJob.getBuiltTroves()) cfg = copy.deepcopy(cfg) cfg.flavor = [ flavorutil.setISFromTargetFlavor(buildFlavor) ] else: builtTroveTups = resolveJob.getBuiltTroves() if cfg.isolateTroves: builtTroves = [] else: builtTroves = self.repos.getTroves(builtTroveTups, withFiles=False) builtTroveSource = resolvesource.BuiltTroveSource(builtTroves, self.repos) if builtTroves: # this makes sure that if someone searches for a buildreq on # :branch, and the only thing we have is on :branch/rmakehost, # the trove will be found. rMakeHost = builtTroves[0].getVersion().trailingLabel().getHost() builtTroveSource = recipeutil.RemoveHostSource(builtTroveSource, rMakeHost) if cfg.resolveTroveTups: searchSource, resolveSource = self.getSourcesWithResolveTroves(cfg, cfg.resolveTroveTups, builtTroveSource) else: searchSource = resolvesource.DepHandlerSource(builtTroveSource, [], self.repos, expandLabelQueries=True) resolveSource = resolvesource.rMakeResolveSource(cfg, builtTroveSource, [], None, self.repos) if cross: resolveSource.removeFileDependencies = True return searchSource, resolveSource
def getSources(self, resolveJob, cross=False): cfg = resolveJob.getConfig() if cross: buildFlavor = deps.overrideFlavor( resolveJob.buildCfg.buildFlavor, resolveJob.getTrove().getFlavor()) buildFlavor = deps.overrideFlavor(buildFlavor, deps.parseFlavor('!cross')) builtTroveTups = (resolveJob.getCrossTroves() + resolveJob.getBuiltTroves()) cfg = copy.deepcopy(cfg) cfg.flavor = [flavorutil.setISFromTargetFlavor(buildFlavor)] else: builtTroveTups = resolveJob.getBuiltTroves() if cfg.isolateTroves: builtTroves = [] else: builtTroves = self.repos.getTroves(builtTroveTups, withFiles=False) builtTroveSource = resolvesource.BuiltTroveSource( builtTroves, self.repos) if builtTroves: # this makes sure that if someone searches for a buildreq on # :branch, and the only thing we have is on :branch/rmakehost, # the trove will be found. rMakeHost = builtTroves[0].getVersion().trailingLabel().getHost() builtTroveSource = recipeutil.RemoveHostSource( builtTroveSource, rMakeHost) if cfg.resolveTroveTups: searchSource, resolveSource = self.getSourcesWithResolveTroves( cfg, cfg.resolveTroveTups, builtTroveSource) else: searchSource = resolvesource.DepHandlerSource( builtTroveSource, [], self.repos, expandLabelQueries=True) resolveSource = resolvesource.rMakeResolveSource( cfg, builtTroveSource, [], None, self.repos) if cross: resolveSource.removeFileDependencies = True return searchSource, resolveSource