At 09:05 PM 8/4/2006 +0200, Ronald Oussoren wrote:
On Aug 4, 2006, at 11:36 AM, Martijn Faassen wrote:
Any feedback on this? Nobody cares that Python eggs compiled with a linux distribution version of Python don't run on hand-compiled versions of Python, and vice versa? I added [setuptools] to the topic in case that's the convention to get people concerned with those to pay attention. :)
My guess is that nobody cares enough to provide a patch ;-)
The size of unicode characters is IMO part of the ABI "description", just like the python version and should therefore be part of the egg name. We should end up with something like 'lxml-1.0.1-py2.4-ucs2- macosx-10.4-fat.egg'.
A minor problem is that the right place to fix this is in distutils, not setuptools. That way other bdist_* targets would also pick up the right ABI description.
Yes, it should be fixed in the distutils. Of course, for Python versions <2.6, it will actually have to be fixed by setuptools. It would be nice if someone could provide patches for both distutils and setuptools.
To implement the setuptools patch, you will need to modify the various "platform utilities" in pkg_resources:
bdist_egg and all of the pkg_resources internals rely on these functions.
Note that for this patch to be backward-compatible, it *must* change compatible_platforms to only compare unicode widths if they are present in *both* the 'required' and the 'provided' strings. If either one is missing a unicode width indicator, the unicode width must be ignored.
This is a non-negotiable requirement, since otherwise it will be impossible for someone to use packages they've already built locally once they upgrade.
The patch will also have to go into the new 0.7 alpha line (rather than the 0.6c line), since it's a new feature.