[Distutils] [setuptools] eggs and Python Unicode variants (UCS2, UCS4)

Phillip J. Eby pje at telecommunity.com
Mon Aug 7 03:00:22 CEST 2006

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
>>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- 
>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.

More information about the Distutils-SIG mailing list