def __getitem__(self, k): v = _PackageMetadataWrapperBase.__getitem__(self, k) if k in self._use_conditional_keys: if self._pkg.root_config.settings.local_config and '?' in v: try: v = paren_enclose( paren_normalize( use_reduce(paren_reduce(v), uselist=self._pkg.use.enabled))) except portage.exception.InvalidDependString: # This error should already have been registered via # self._pkg._invalid_metadata(). pass else: self[k] = v elif k == 'USE' and not self._pkg.built: if not v: # This is lazy because it's expensive. pkgsettings = self._pkg.root_config.trees[ 'porttree'].dbapi.doebuild_settings pkgsettings.setcpv(self._pkg) v = pkgsettings["PORTAGE_USE"] self['USE'] = v return v
def evaluate_slot_operator_equal_deps(settings, use, trees): metadata = settings.configdict['pkg'] eapi = metadata['EAPI'] eapi_attrs = _get_eapi_attrs(eapi) running_vardb = trees[trees._running_eroot]["vartree"].dbapi target_vardb = trees[trees._target_eroot]["vartree"].dbapi vardbs = [target_vardb] deps = {} for k in Package._dep_keys: deps[k] = use_reduce(metadata[k], uselist=use, eapi=eapi, token_class=Atom) for k in Package._runtime_keys: _eval_deps(deps[k], vardbs) if eapi_attrs.bdepend: _eval_deps(deps["BDEPEND"], [running_vardb]) _eval_deps(deps["DEPEND"], [target_vardb]) else: if running_vardb is not target_vardb: vardbs.append(running_vardb) _eval_deps(deps["DEPEND"], vardbs) result = {} for k, v in deps.items(): result[k] = paren_enclose(v) return result
def __getitem__(self, k): v = _PackageMetadataWrapperBase.__getitem__(self, k) if k in self._use_conditional_keys: if self._pkg.root_config.settings.local_config and "?" in v: try: v = paren_enclose( use_reduce( v, uselist=self._pkg.use.enabled, is_valid_flag=self._pkg.iuse.is_valid_flag, ) ) except InvalidDependString: # This error should already have been registered via # self._pkg._invalid_metadata(). pass else: self[k] = v elif k == "USE" and not self._pkg.built: if not v: # This is lazy because it's expensive. v = self._pkg._init_use() return v
def _eval_use_flags(self, cpv, metadata): use = frozenset(metadata["USE"].split()) raw_use = use iuse = set(f.lstrip("-+") for f in metadata["IUSE"].split()) use = [f for f in use if f in iuse] use.sort() metadata["USE"] = " ".join(use) from portage.dep import paren_reduce, use_reduce, \ paren_normalize, paren_enclose for k in self._pkgindex_use_evaluated_keys: try: deps = paren_reduce(metadata[k]) deps = use_reduce(deps, uselist=raw_use) deps = paren_normalize(deps) deps = paren_enclose(deps) except portage.exception.InvalidDependString as e: writemsg("%s: %s\n" % (k, str(e)), noiselevel=-1) raise if k in _vdb_use_conditional_atoms: v_split = [] for x in deps.split(): try: x = portage.dep.Atom(x) except portage.exception.InvalidAtom: v_split.append(x) else: v_split.append(str(x.evaluate_conditionals(raw_use))) deps = ' '.join(v_split) metadata[k] = deps
def _eval_use_flags(self, cpv, metadata): use = frozenset(metadata["USE"].split()) for k in self._pkgindex_use_evaluated_keys: if k.endswith('DEPEND'): token_class = Atom else: token_class = None try: deps = metadata[k] deps = use_reduce(deps, uselist=use, token_class=token_class) deps = paren_enclose(deps) except portage.exception.InvalidDependString as e: writemsg("%s: %s\n" % (k, str(e)), noiselevel=-1) raise metadata[k] = deps
def _eval_use_flags(self, cpv, metadata): use = frozenset(metadata.get("USE", "").split()) for k in self._pkgindex_use_evaluated_keys: if k.endswith('DEPEND'): token_class = Atom else: token_class = None deps = metadata.get(k) if deps is None: continue try: deps = use_reduce(deps, uselist=use, token_class=token_class) deps = paren_enclose(deps) except portage.exception.InvalidDependString as e: writemsg("%s: %s\n" % (k, e), noiselevel=-1) raise metadata[k] = deps
def __getitem__(self, k): v = _PackageMetadataWrapperBase.__getitem__(self, k) if k in self._use_conditional_keys: if self._pkg.root_config.settings.local_config and '?' in v: try: v = paren_enclose(use_reduce(v, uselist=self._pkg.use.enabled, \ is_valid_flag=self._pkg.iuse.is_valid_flag)) except InvalidDependString: # This error should already have been registered via # self._pkg._invalid_metadata(). pass else: self[k] = v elif k == 'USE' and not self._pkg.built: if not v: # This is lazy because it's expensive. v = self._pkg._init_use() return v
def _eval_use_flags(self, cpv, metadata): use = frozenset(metadata["USE"].split()) raw_use = use iuse = set(f.lstrip("-+") for f in metadata["IUSE"].split()) use = [f for f in use if f in iuse] use.sort() metadata["USE"] = " ".join(use) for k in self._pkgindex_use_evaluated_keys: if k.endswith('DEPEND'): token_class = Atom else: token_class = None try: deps = metadata[k] deps = use_reduce(deps, uselist=raw_use, token_class=token_class) deps = paren_enclose(deps) except portage.exception.InvalidDependString as e: writemsg("%s: %s\n" % (k, str(e)), noiselevel=-1) raise metadata[k] = deps
def __getitem__(self, k): v = _PackageMetadataWrapperBase.__getitem__(self, k) if k in self._use_conditional_keys: if self._pkg.root_config.settings.local_config and '?' in v: try: v = paren_enclose(paren_normalize(use_reduce( paren_reduce(v), uselist=self._pkg.use.enabled))) except portage.exception.InvalidDependString: # This error should already have been registered via # self._pkg._invalid_metadata(). pass else: self[k] = v elif k == 'USE' and not self._pkg.built: if not v: # This is lazy because it's expensive. pkgsettings = self._pkg.root_config.trees[ 'porttree'].dbapi.doebuild_settings pkgsettings.setcpv(self._pkg) v = pkgsettings["PORTAGE_USE"] self['USE'] = v return v