* [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