Index: portage/pym/portage.py =================================================================== --- portage.orig/pym/portage.py +++ portage/pym/portage.py @@ -81,7 +81,7 @@ try: MOVE_BINARY, PRELINK_BINARY, WORLD_FILE, MAKE_CONF_FILE, MAKE_DEFAULTS_FILE, \ DEPRECATED_PROFILE_FILE, USER_VIRTUALS_FILE, EBUILD_SH_ENV_FILE, \ INVALID_ENV_FILE, CUSTOM_MIRRORS_FILE, SANDBOX_PIDS_FILE, CONFIG_MEMORY_FILE,\ - INCREMENTALS, STICKIES, EAPI + INCREMENTALS, STICKIES, EAPI, EAPI_UNRECOGNIZED from portage_data import ostype, lchown, userland, secpass, uid, wheelgid, \ portage_uid, portage_gid @@ -4542,7 +4542,10 @@ class bindbapi(fakedbapi): try: mylist[idx] = abs(int(mylist[idx])) except ValueError: - mylist[idx] = 0 + if mylist[idx]=="": + mylist[idx] = 0 + else: + mylist[idx] = EAPI_UNRECOGNIZED return mylist @@ -4827,7 +4830,10 @@ class vardbapi(dbapi): try: results[idx] = abs(int(wants[idx])) except ValueError: - results[idx] = 0 + if wants[idx]=="": + results[idx] = 0 + else: + results[idx] = EAPI_UNRECOGNIZED return results @@ -5313,7 +5319,10 @@ class portdbapi(dbapi): try: eapi = int(metadata["EAPI"]) except (KeyError, ValueError): - eapi = 0 + if metadata.has_key("EAPI") and metadata["EAPI"]!="": + eapi = EAPI_UNRECOGNIZED + else: + eapi = 0 metadata["EAPI"] = eapi if eapi != portage_const.EAPI: # intentionally wipe keys. @@ -5391,7 +5400,10 @@ class portdbapi(dbapi): mylines[x] = mylines[x][:-1] mydata[auxdbkeys[x]] = mylines[x] - eapi = int(mydata["EAPI"]) + try: + eapi = int(mydata["EAPI"]) + except ValueError: + eapi = EAPI_UNRECOGNIZED if eapi > portage_const.EAPI: # if newer version, wipe everything and negate eapi mydata = {} @@ -5417,7 +5429,10 @@ class portdbapi(dbapi): returnme[idx] = abs(int(returnme[idx])) except ValueError: # string - returnme[idx] = 0 + if returnme[idx]=="": + returnme[idx] = 0 + else: + returnme[idx] = EAPI_UNRECOGNIZED return returnme Index: portage/pym/portage_const.py =================================================================== --- portage.orig/pym/portage_const.py +++ portage/pym/portage_const.py @@ -44,6 +44,7 @@ INCREMENTALS=["USE","FEATURES","ACCEPT_K STICKIES=["KEYWORDS_ACCEPT","USE","CFLAGS","CXXFLAGS","MAKEOPTS","EXTRA_ECONF","EXTRA_EINSTALL","EXTRA_EMAKE"] EAPI = 0 +EAPI_UNRECOGNIZED = 65536 # =========================================================================== # END OF CONSTANTS -- END OF CONSTANTS -- END OF CONSTANTS -- END OF CONSTANT