aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-12-15 19:11:53 -0800
committerZac Medico <zmedico@gentoo.org>2011-12-15 19:11:53 -0800
commitb7aa8acf8f353c11e622692a863716966eacad6f (patch)
treeb2bb544981a1640b1079fb2c8596d2cf775e8443 /pym/portage/data.py
parentrunTests: initialize portage.data for PyPy (diff)
downloadportage-b7aa8acf8f353c11e622692a863716966eacad6f.tar.gz
portage-b7aa8acf8f353c11e622692a863716966eacad6f.tar.bz2
portage-b7aa8acf8f353c11e622692a863716966eacad6f.zip
data.py: tweak getgrnam call for PyPy
This makes it unnecessary to explicitly call portage.data._init() in runTests, and fixes some other cases that trigger the same issue.
Diffstat (limited to 'pym/portage/data.py')
-rw-r--r--pym/portage/data.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/pym/portage/data.py b/pym/portage/data.py
index cf94ab0cd..ec750a611 100644
--- a/pym/portage/data.py
+++ b/pym/portage/data.py
@@ -87,7 +87,12 @@ def _get_global(k):
#Discover the uid and gid of the portage user/group
try:
portage_uid = pwd.getpwnam(_get_global('_portage_username')).pw_uid
- portage_gid = grp.getgrnam(_get_global('_portage_grpname')).gr_gid
+ _portage_grpname = _get_global('_portage_grpname')
+ if platform.python_implementation() == 'PyPy':
+ # Somehow this prevents "TypeError: expected string" errors
+ # from grp.getgrnam() with PyPy 1.7
+ _portage_grpname = str(_portage_grpname)
+ portage_gid = grp.getgrnam(_portage_grpname).gr_gid
if secpass < 1 and portage_gid in os.getgroups():
secpass = 1
except KeyError: