From: Fabian Groffen Date: Mon, 19 Dec 2011 18:29:38 +0000 (+0100) Subject: Merge remote-tracking branch 'overlays-gentoo-org/master' into prefix X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=45f8d30649d45064e1d7c67eb4b567f5ac690a2f;p=portage.git Merge remote-tracking branch 'overlays-gentoo-org/master' into prefix Conflicts: pym/portage/data.py --- 45f8d30649d45064e1d7c67eb4b567f5ac690a2f diff --cc pym/_emerge/depgraph.py index 12b84396f,93819c611..2e3ca4b37 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@@ -7186,14 -7169,8 +7169,14 @@@ def _get_masking_status(pkg, pkgsetting 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,))) diff --cc pym/portage/data.py index b2aac068e,ec750a611..1351c7f73 --- a/pym/portage/data.py +++ b/pym/portage/data.py @@@ -90,16 -86,13 +90,21 @@@ def _get_global(k) 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: