public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/_config/, pym/portage/
@ 2012-09-21  3:29 Arfrever Frehtes Taifersar Arahesis
  0 siblings, 0 replies; 3+ messages in thread
From: Arfrever Frehtes Taifersar Arahesis @ 2012-09-21  3:29 UTC (permalink / raw
  To: gentoo-commits

commit:     a35385d83801ace458d5896285c9d89bedbbaca8
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Fri Sep 21 03:23:47 2012 +0000
Commit:     Arfrever Frehtes Taifersar Arahesis <arfrever.fta <AT> gmail <DOT> com>
CommitDate: Fri Sep 21 03:23:47 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=a35385d8

Move EAPI check for stable USE forcing and masking to portage.eapi module.

---
 pym/portage/eapi.py                              |    3 ++
 pym/portage/package/ebuild/_config/UseManager.py |   24 ++++++++-------------
 2 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py
index 84d1afc..4efd4ea 100644
--- a/pym/portage/eapi.py
+++ b/pym/portage/eapi.py
@@ -77,6 +77,9 @@ def eapi_allows_dots_in_PN(eapi):
 def eapi_allows_dots_in_use_flags(eapi):
 	return eapi in ("4-python",)
 
+def eapi_supports_stable_use_forcing_and_masking(eapi):
+	return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi")
+
 _eapi_attrs = collections.namedtuple('_eapi_attrs',
 	'dots_in_PN dots_in_use_flags exports_EBUILD_PHASE_FUNC '
 	'iuse_defaults iuse_effective '

diff --git a/pym/portage/package/ebuild/_config/UseManager.py b/pym/portage/package/ebuild/_config/UseManager.py
index a359e00..bff2a71 100644
--- a/pym/portage/package/ebuild/_config/UseManager.py
+++ b/pym/portage/package/ebuild/_config/UseManager.py
@@ -8,15 +8,13 @@ __all__ = (
 from _emerge.Package import Package
 from portage import os
 from portage.dep import dep_getrepo, dep_getslot, ExtendedAtomDict, remove_slot, _get_useflag_re
+from portage.eapi import eapi_supports_stable_use_forcing_and_masking
 from portage.localization import _
 from portage.util import grabfile, grabdict_package, read_corresponding_eapi_file, stack_lists, writemsg
 from portage.versions import _pkg_str
 
 from portage.package.ebuild._config.helper import ordered_by_atom_specificity
 
-_no_stable_mask_eapis = frozenset(
-	["0", "1", "2", "3", "4", "4-python", "4-slot-abi"])
-
 class UseManager(object):
 
 	def __init__(self, repositories, profiles, abs_user_config, user_config=True):
@@ -63,47 +61,43 @@ class UseManager(object):
 		self._repo_usemask_dict = self._parse_repository_files_to_dict_of_tuples("use.mask", repositories)
 		self._repo_usestablemask_dict = \
 			self._parse_repository_files_to_dict_of_tuples("use.stable.mask",
-				repositories, eapi_filter=self._stable_mask_eapi_filter)
+				repositories, eapi_filter=eapi_supports_stable_use_forcing_and_masking)
 		self._repo_useforce_dict = self._parse_repository_files_to_dict_of_tuples("use.force", repositories)
 		self._repo_usestableforce_dict = \
 			self._parse_repository_files_to_dict_of_tuples("use.stable.force",
-				repositories, eapi_filter=self._stable_mask_eapi_filter)
+				repositories, eapi_filter=eapi_supports_stable_use_forcing_and_masking)
 		self._repo_pusemask_dict = self._parse_repository_files_to_dict_of_dicts("package.use.mask", repositories)
 		self._repo_pusestablemask_dict = \
 			self._parse_repository_files_to_dict_of_dicts("package.use.stable.mask",
-				repositories, eapi_filter=self._stable_mask_eapi_filter)
+				repositories, eapi_filter=eapi_supports_stable_use_forcing_and_masking)
 		self._repo_puseforce_dict = self._parse_repository_files_to_dict_of_dicts("package.use.force", repositories)
 		self._repo_pusestableforce_dict = \
 			self._parse_repository_files_to_dict_of_dicts("package.use.stable.force",
-				repositories, eapi_filter=self._stable_mask_eapi_filter)
+				repositories, eapi_filter=eapi_supports_stable_use_forcing_and_masking)
 		self._repo_puse_dict = self._parse_repository_files_to_dict_of_dicts("package.use", repositories)
 
 		self._usemask_list = self._parse_profile_files_to_tuple_of_tuples("use.mask", profiles)
 		self._usestablemask_list = \
 			self._parse_profile_files_to_tuple_of_tuples("use.stable.mask",
-				profiles, eapi_filter=self._stable_mask_eapi_filter)
+				profiles, eapi_filter=eapi_supports_stable_use_forcing_and_masking)
 		self._useforce_list = self._parse_profile_files_to_tuple_of_tuples("use.force", profiles)
 		self._usestableforce_list = \
 			self._parse_profile_files_to_tuple_of_tuples("use.stable.force",
-				profiles, eapi_filter=self._stable_mask_eapi_filter)
+				profiles, eapi_filter=eapi_supports_stable_use_forcing_and_masking)
 		self._pusemask_list = self._parse_profile_files_to_tuple_of_dicts("package.use.mask", profiles)
 		self._pusestablemask_list = \
 			self._parse_profile_files_to_tuple_of_dicts("package.use.stable.mask",
-				profiles, eapi_filter=self._stable_mask_eapi_filter)
+				profiles, eapi_filter=eapi_supports_stable_use_forcing_and_masking)
 		self._pkgprofileuse = self._parse_profile_files_to_tuple_of_dicts("package.use", profiles, juststrings=True)
 		self._puseforce_list = self._parse_profile_files_to_tuple_of_dicts("package.use.force", profiles)
 		self._pusestableforce_list = \
 			self._parse_profile_files_to_tuple_of_dicts("package.use.stable.force",
-				profiles, eapi_filter=self._stable_mask_eapi_filter)
+				profiles, eapi_filter=eapi_supports_stable_use_forcing_and_masking)
 
 		self._pusedict = self._parse_user_files_to_extatomdict("package.use", abs_user_config, user_config)
 
 		self.repositories = repositories
 
-	@staticmethod
-	def _stable_mask_eapi_filter(eapi):
-		return eapi not in _no_stable_mask_eapis
-
 	def _parse_file_to_tuple(self, file_name, recursive=True, eapi_filter=None):
 		ret = []
 		lines = grabfile(file_name, recursive=recursive)


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/_config/, pym/portage/
@ 2013-01-19 22:02 Zac Medico
  0 siblings, 0 replies; 3+ messages in thread
From: Zac Medico @ 2013-01-19 22:02 UTC (permalink / raw
  To: gentoo-commits

commit:     00c9dd27618d20acdb9a700fbef09e292c329fe3
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 19 22:01:26 2013 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jan 19 22:01:26 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=00c9dd27

Fix stable mask logic for repoman.

For repoman, if the package has an effective stable keyword that
intersects with the effective ACCEPT_KEYWORDS for the current
profile, then consider it stable.

---
 .../package/ebuild/_config/KeywordsManager.py      |   28 +++++++++++++------
 pym/portage/versions.py                            |    5 +++-
 2 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/pym/portage/package/ebuild/_config/KeywordsManager.py b/pym/portage/package/ebuild/_config/KeywordsManager.py
index d477889..3e029c3 100644
--- a/pym/portage/package/ebuild/_config/KeywordsManager.py
+++ b/pym/portage/package/ebuild/_config/KeywordsManager.py
@@ -111,15 +111,25 @@ class KeywordsManager(object):
 		if self._getMissingKeywords(pkg, pgroups, mygroups):
 			return False
 
-		# If replacing all keywords with unstable variants would mask the
-		# package, then it's considered stable.
-		unstable = []
-		for kw in mygroups:
-			if kw[:1] != "~":
-				kw = "~" + kw
-			unstable.append(kw)
-
-		return bool(self._getMissingKeywords(pkg, pgroups, set(unstable)))
+		if pkg.cpv._settings.local_config:
+			# If replacing all keywords with unstable variants would mask the
+			# package, then it's considered stable.
+			unstable = []
+			for kw in mygroups:
+				if kw[:1] != "~":
+					kw = "~" + kw
+				unstable.append(kw)
+
+			return bool(self._getMissingKeywords(pkg, pgroups, set(unstable)))
+		else:
+			# For repoman, if the package has an effective stable keyword that
+			# intersects with the effective ACCEPT_KEYWORDS for the current
+			# profile, then consider it stable.
+			for kw in pgroups:
+				if kw[:1] != "~":
+					if kw in mygroups:
+						return True
+			return False
 
 	def getMissingKeywords(self,
 							cpv,

diff --git a/pym/portage/versions.py b/pym/portage/versions.py
index d78873f..1dd2ff3 100644
--- a/pym/portage/versions.py
+++ b/pym/portage/versions.py
@@ -409,7 +409,10 @@ class _pkg_str(_unicode):
 			except AttributeError:
 				raise AttributeError('stable')
 			stable = settings._isStable(self)
-			self.__dict__['_stable'] = stable
+			if settings.local_config:
+				# For repoman, don't cache this value, since
+				# it needs to be re-computed for each profile.
+				self.__dict__['_stable'] = stable
 			return stable
 
 def pkgsplit(mypkg, silent=1, eapi=None):


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/_config/, pym/portage/
@ 2013-06-21 22:24 Zac Medico
  0 siblings, 0 replies; 3+ messages in thread
From: Zac Medico @ 2013-06-21 22:24 UTC (permalink / raw
  To: gentoo-commits

commit:     df28e9e85a16b0a00f511a42038aa5d2eed615bd
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 21 22:23:32 2013 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Fri Jun 21 22:23:32 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=df28e9e8

Normalize EPREFIX more.

---
 pym/portage/const.py                                   | 2 ++
 pym/portage/package/ebuild/_config/LocationsManager.py | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/pym/portage/const.py b/pym/portage/const.py
index 5e960d9..087c0e7 100644
--- a/pym/portage/const.py
+++ b/pym/portage/const.py
@@ -164,6 +164,8 @@ if "PORTAGE_OVERRIDE_EPREFIX" in os.environ:
 	EPREFIX = os.environ["PORTAGE_OVERRIDE_EPREFIX"]
 	if EPREFIX:
 		EPREFIX = os.path.normpath(EPREFIX)
+		if EPREFIX == os.sep:
+			EPREFIX = ""
 
 VCS_DIRS = ("CVS", "RCS", "SCCS", ".bzr", ".git", ".hg", ".svn")
 

diff --git a/pym/portage/package/ebuild/_config/LocationsManager.py b/pym/portage/package/ebuild/_config/LocationsManager.py
index e328441..80b6a70 100644
--- a/pym/portage/package/ebuild/_config/LocationsManager.py
+++ b/pym/portage/package/ebuild/_config/LocationsManager.py
@@ -1,6 +1,8 @@
 # Copyright 2010-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
+from __future__ import unicode_literals
+
 __all__ = (
 	'LocationsManager',
 )
@@ -47,6 +49,10 @@ class LocationsManager(object):
 
 		if self.eprefix is None:
 			self.eprefix = portage.const.EPREFIX
+		elif self.eprefix:
+			self.eprefix = normalize_path(self.eprefix)
+			if self.eprefix == os.sep:
+				self.eprefix = ""
 
 		if self.config_root is None:
 			self.config_root = portage.const.EPREFIX + os.sep


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-06-21 22:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-19 22:02 [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/_config/, pym/portage/ Zac Medico
  -- strict thread matches above, loose matches on Subject: below --
2013-06-21 22:24 Zac Medico
2012-09-21  3:29 Arfrever Frehtes Taifersar Arahesis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox