minitage, python and UCS
While upgrading my gentoo based laptop after 8monthes of lazy abandonness in profit of exiting projects, i saw that the gentoo's python was forced to use UCS==4.
What an heck while dealing with the 'minitage env' file which mix the system and project environment resulting in a mixin of the system and project python.
Normally, there are no problem, unless your pythons come with different UCS flavors.
Cool thing is that those errors are not silent, and you see them if you are hitted by this flaw :
ImportError: /bar.egg/module/_foo.so: undefined symbol: PyUnicodeUCS4_DecodeUTF8 or ImportError: /bar.egg/module/_foo.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8
Making some searches showed me that upstream as in python-dev supports only UCS2 by default (issue discussed on their mailing around 2008) but all distros i am aware of package their distros with UCS==4.
For now, I prefered to stick with upstream (UCS==2), but i think that for the user experience, UCS==4 will be better.
Sad thing is that for existing minitage installations if you want to rebuild your python, do also that:
rm -rf minitage/eggs/cache/*-Major.minor*egg rm -rf minitage/eggs/*/.installed.cfg
To let minitage rebuild any stuff using UCS2.
See http://en.wikipedia.org/wiki/Universal_Character_Set for reference on UCS.