def __init__(self, **kwargs): Task.__init__(self, **kwargs) self.root = self.root_config.root self._raw_metadata = _PackageMetadataWrapperBase(self.metadata) self.metadata = _PackageMetadataWrapper(self, self._raw_metadata) if not self.built: self.metadata['CHOST'] = self.root_config.settings.get('CHOST', '') self.cp = portage.cpv_getkey(self.cpv) slot = self.slot if _slot_re.match(slot) is None: self._invalid_metadata('SLOT.invalid', "SLOT: invalid value: '%s'" % slot) # Avoid an InvalidAtom exception when creating slot_atom. # This package instance will be masked due to empty SLOT. slot = '0' if (self.iuse.enabled or self.iuse.disabled) and \ not eapi_has_iuse_defaults(self.metadata["EAPI"]): if not self.installed: self._invalid_metadata('EAPI.incompatible', "IUSE contains defaults, but EAPI doesn't allow them") self.slot_atom = portage.dep.Atom("%s:%s" % (self.cp, slot)) self.category, self.pf = portage.catsplit(self.cpv) self.cpv_split = portage.catpkgsplit(self.cpv) self.pv_split = self.cpv_split[1:] self._validate_deps() self.masks = self._masks() self.visible = self._visible(self.masks)
def __init__(self, **kwargs): Task.__init__(self, **kwargs) # the SlotObject constructor assigns self.root_config from keyword args # and is an instance of a '_emerge.RootConfig.RootConfig class self.root = self.root_config.root self._raw_metadata = _PackageMetadataWrapperBase(self.metadata) self.metadata = _PackageMetadataWrapper(self, self._raw_metadata) if not self.built: self.metadata['CHOST'] = self.root_config.settings.get('CHOST', '') self.cp = portage.cpv_getkey(self.cpv) slot = self.slot if _slot_re.match(slot) is None: self._invalid_metadata('SLOT.invalid', "SLOT: invalid value: '%s'" % slot) # Avoid an InvalidAtom exception when creating slot_atom. # This package instance will be masked due to empty SLOT. slot = '0' if (self.iuse.enabled or self.iuse.disabled) and \ not eapi_has_iuse_defaults(self.metadata["EAPI"]): if not self.installed: self._invalid_metadata( 'EAPI.incompatible', "IUSE contains defaults, but EAPI doesn't allow them") self.slot_atom = portage.dep.Atom("%s%s%s" % (self.cp, _slot_separator, slot)) self.category, self.pf = portage.catsplit(self.cpv) self.cpv_split = portage.catpkgsplit(self.cpv) self.pv_split = self.cpv_split[1:] if self.inherited is None: self.inherited = frozenset() repo = _gen_valid_repo(self.metadata.get('repository', '')) if not repo: repo = self.UNKNOWN_REPO self.metadata['repository'] = repo self._validate_deps() self.masks = self._masks() self.visible = self._visible(self.masks) if self.operation is None: if self.onlydeps or self.installed: self.operation = "nomerge" else: self.operation = "merge" self._hash_key = Package._gen_hash_key(cpv=self.cpv, installed=self.installed, onlydeps=self.onlydeps, operation=self.operation, repo_name=repo, root_config=self.root_config, type_name=self.type_name) self._hash_value = hash(self._hash_key)
def __init__(self, **kwargs): Task.__init__(self, **kwargs) # the SlotObject constructor assigns self.root_config from keyword args # and is an instance of a '_emerge.RootConfig.RootConfig class self.root = self.root_config.root self._raw_metadata = _PackageMetadataWrapperBase(self.metadata) self.metadata = _PackageMetadataWrapper(self, self._raw_metadata) if not self.built: self.metadata['CHOST'] = self.root_config.settings.get('CHOST', '') self.cp = portage.cpv_getkey(self.cpv) slot = self.slot if _slot_re.match(slot) is None: self._invalid_metadata('SLOT.invalid', "SLOT: invalid value: '%s'" % slot) # Avoid an InvalidAtom exception when creating slot_atom. # This package instance will be masked due to empty SLOT. slot = '0' if (self.iuse.enabled or self.iuse.disabled) and \ not eapi_has_iuse_defaults(self.metadata["EAPI"]): if not self.installed: self._invalid_metadata('EAPI.incompatible', "IUSE contains defaults, but EAPI doesn't allow them") self.slot_atom = portage.dep.Atom("%s%s%s" % (self.cp, _slot_separator, slot)) self.category, self.pf = portage.catsplit(self.cpv) self.cpv_split = portage.catpkgsplit(self.cpv) self.pv_split = self.cpv_split[1:] if self.inherited is None: self.inherited = frozenset() repo = _gen_valid_repo(self.metadata.get('repository', '')) if not repo: repo = self.UNKNOWN_REPO self.metadata['repository'] = repo self._validate_deps() self.masks = self._masks() self.visible = self._visible(self.masks) if self.operation is None: if self.onlydeps or self.installed: self.operation = "nomerge" else: self.operation = "merge" self._hash_key = Package._gen_hash_key(cpv=self.cpv, installed=self.installed, onlydeps=self.onlydeps, operation=self.operation, repo_name=repo, root_config=self.root_config, type_name=self.type_name) self._hash_value = hash(self._hash_key)
def _checkMetadata(self, package, ebuild, y_ebuild, localUseFlags): for mypos in range(len(self.useFlags) - 1, -1, -1): if self.useFlags[mypos] and (self.useFlags[mypos] in localUseFlags): del self.useFlags[mypos] if self.defaultUseFlags and not eapi_has_iuse_defaults(eapi): for myflag in self.defaultUseFlags: self.qatracker.add_error( 'EAPI.incompatible', "%s: IUSE defaults" " not supported with EAPI='%s': '%s'" % ( ebuild.relative_path, eapi, myflag)) for mypos in range(len(self.useFlags)): self.qatracker.add_error( "IUSE.invalid", "%s/%s.ebuild: %s" % (package, y_ebuild, self.useFlags[mypos]))
def _checkMetadata(self, package, ebuild, y_ebuild, localUseFlags): for mypos in range(len(self.useFlags) - 1, -1, -1): if self.useFlags[mypos] and (self.useFlags[mypos] in localUseFlags): del self.useFlags[mypos] if self.defaultUseFlags and not eapi_has_iuse_defaults(eapi): for myflag in self.defaultUseFlags: self.qatracker.add_error( 'EAPI.incompatible', "%s: IUSE defaults" " not supported with EAPI='%s': '%s'" % (ebuild.relative_path, eapi, myflag)) for mypos in range(len(self.useFlags)): self.qatracker.add_error( "IUSE.invalid", "%s/%s.ebuild: %s" % (package, y_ebuild, self.useFlags[mypos]))