mreasons.append(_MaskReason("CHOST", "CHOST: %s" % \
pkg.metadata["CHOST"]))
+ if pkg.built and not pkg.installed:
+ if not "EPREFIX" in pkg.metadata:
+ mreasons.append(_MaskReason("EPREFIX", "missing EPREFIX"))
+ elif len(pkg.metadata["EPREFIX"].strip()) < len(pkgsettings["EPREFIX"]):
+ mreasons.append(_MaskReason("EPREFIX", "EPREFIX: '%s' too small" % pkg.metadata["EPREFIX"]))
+
if pkg.invalid:
- for msg_type, msgs in pkg.invalid.items():
+ for msgs in pkg.invalid.values():
for msg in msgs:
mreasons.append(
_MaskReason("invalid", "invalid: %s" % (msg,)))
secpass = 2
#Discover the uid and gid of the portage user/group
try:
- portage_gid = grp.getgrnam(_get_global('_portage_grpname')).gr_gid
- portage_uid = pwd.getpwnam(_get_global('_portage_username')).pw_uid
+ _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
+ except KeyError:
+ # PREFIX LOCAL: some sysadmins are insane, bug #344307
- if _get_global('_portage_grpname').isdigit():
- portage_gid = int(_get_global('_portage_grpname'))
++ if _portage_grpname.isdigit():
++ portage_gid = int(_portage_grpname)
+ else:
+ portage_gid = None
+ # END PREFIX LOCAL
+ try:
+ portage_uid = pwd.getpwnam(_get_global('_portage_username')).pw_uid
if secpass < 1 and portage_gid in os.getgroups():
secpass = 1
except KeyError: