[Zope-dev] zope.i18messageid

Tres Seaver tseaver at palladion.com
Sat Jul 3 15:12:33 EDT 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tres Seaver wrote:
> Chris McDonough wrote:
>> Fabio,
> 
>> Within the last few months you committed the following change to
>> zope.i18nmessageid:
> 
>> http://svn.zope.org/zope.i18nmessageid/trunk/setup.py?rev=102497&r1=101297&r2=102497
> 
>> The commit message is "Fixed the compilation of the C extension with
>> python 2.6: refactored it as a setuptools Feature."  Can I ask what
>> problem was being fixed with this commit?
> 
>> It undid work I did in this revision:
> 
>> http://svn.zope.org/zope.i18nmessageid/trunk/setup.py?rev=99669&r1=97948&r2=99669
> 
>> I should have left a comment in there: the work was effectively there to
>> support building zope.i18nmessageid on Jython and other platforms like
>> GAE that do not support C extensions at all, even optionally.  The
>> package no longer builds on Jython ("error: Setup script exited with
>> error: Compiling extensions is not supported on Jython"), although to be
>> honest I don't really understand why not.  I'm hoping we can find a way
>> to retain whatever fix you were trying to make but still allow the
>> package to build on Jython, but I think I need to understand what
>> problem you were fixing first.
> 
> I think there is a good case for making the C extension an "optional"
> setuptools feature:  nobody acutally *needs* that extension built to
> have their application work.
> 
> Jim has asserted (but not really explained) that the C extension closes
> some kind of security hole.  I don't see any credible attack vector
> myself, but then I no longer believe it worthwhile to devote my own
> energy to defending against malicious TTW programmers.
> 
> The change here is to remove 'standard=True' from the feature
> constructor.  Developers who want the feature enabled can then build the
> egg via:
> 
>   $ python setup.py --with-codeoptimization bdist_egg
> 
> We could then update the zc.recipe.egg:custom recipe to allow specifying
> features to be installed for a given egg.

I asked on the distutils SIG about the status of setuptools' Feature:
PJE basically said that they are deprecated / obsolete, which is why
they aren't documented.

I went ahead and packaged up the 'optional_build_ext' class which Chris
had previously inlined (into the setup.py of zope.i18nmessageid):

  http://svn.zope.org/zope.optionalextension/

  http://pypi.python.org/pypi/zope.optionalextension/1.1

The 1.1 release was to allow for using the package via 'setup_requires',
without having to install it manually first.  Unfortunately, setuptools
stomps on the 'command_packages' lookup, which means it only (currently)
works under plain distutils, and then only if you have already installed it.

I plan to investigate further to fix that problem.


Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkwvi5wACgkQ+gerLs4ltQ4bVQCdH2zuP2slSgnQ16GiWOnPT2xb
5IEAoLzW/Jq9BL2gL5VgSxt+HyRj6i9j
=8ayy
-----END PGP SIGNATURE-----



More information about the Zope-Dev mailing list