Hello, everyone. As you probably don't know, Justin lately noticed that we're carrying some ugly hacks in Python 3.2+ where we diverge from upstream and break binary compatibility for the sake of 'aesthetics'. While we're not yet ready to kill them completely (the current work being kept in python-soabi-cleanup branch), here's a batch of patches that clean up python-utils-r1 getters and future-proof them for restoring ABIFLAGS.
In order: 1. updates tests to use py3.4 rather than py3.3, 2. prepares python_export() for spawning python, 3. gets includedir from python, 4. gets library path from python, 5. gets site-packages path from python, 6. adds API to get python-config path, 7. updates python_wrapper_setup() appropriately. Summarizing, when the changes are done, the eclass is going to hardcode less variables and call Python more often. Implications for ebuilds: a. calling the relevant getters will require build-time dependency on Python. Not that it really made sense without it -- why would you get library path or include directory if you're not going to link or compile against Python? Or why would you get sitedir if you're not going to install modules (=> byte-compile them)? b. ${PYTHON}-config hacks need to replaced by $(python_get_PYTHON_CONFIG). Direct python-config calls are still fine (wrapped by the eclass). The GNOME ebuilds which used the former syntax directly are already fixed in the branch. c. The getters will get a little slower. However, that shouldn't be really important since they are forbidden during metadata regen, and in ebuild runs we can expect the relevant Python version to be spawned anyway (=> hot cache).