[Zope-Checkins] SVN: Zope/trunk/ The Finder class is now used for the complete lib/python tree and has a blacklist instead of a whitelist for file extensions.

Yvo Schubbe y.2005- at wcm-solutions.de
Tue May 10 11:31:35 EDT 2005


Log message for revision 30319:
  The Finder class is now used for the complete lib/python tree and has a blacklist instead of a whitelist for file extensions.
  So there should no longer be a need to update setup.py if modules or files are added or removed in lib/python.
  http://www.zope.org/Collectors/Zope/1776
  

Changed:
  U   Zope/trunk/doc/CHANGES.txt
  U   Zope/trunk/setup.py

-=-
Modified: Zope/trunk/doc/CHANGES.txt
===================================================================
--- Zope/trunk/doc/CHANGES.txt	2005-05-10 07:29:43 UTC (rev 30318)
+++ Zope/trunk/doc/CHANGES.txt	2005-05-10 15:31:34 UTC (rev 30319)
@@ -30,7 +30,13 @@
       - Included BTreeFolder2
 
     Bugs fixed
-  
+
+      - Collector #1776: Improved setup.py.
+        The Finder class is now used for the complete lib/python tree and has
+        a blacklist instead of a whitelist for file extensions. So there
+        should no longer be a need to update setup.py if modules or files are
+        added or removed in lib/python.
+
       - Collector #1751: Improved error reporting reporting during the 
         startup phase
 

Modified: Zope/trunk/setup.py
===================================================================
--- Zope/trunk/setup.py	2005-05-10 07:29:43 UTC (rev 30318)
+++ Zope/trunk/setup.py	2005-05-10 15:31:34 UTC (rev 30319)
@@ -41,21 +41,7 @@
 import sys
 
 import distutils.core
-from distutils.core import Extension
 
-# This function collects setup information for one massive distutils
-# run to be done at the end of the script.  If you're making a setup.py
-# to use modules from Zope separately, you should be able to cut-and-paste
-# the individual setup calls out into your own setup.py and it should
-# Just Work(tm).
-
-setup_info = {}
-def setup(name=None, author=None, cmdclass=None, **kwargs):
-    for keyword in kwargs.keys():
-        if not setup_info.has_key(keyword):
-            setup_info[keyword] = []
-        setup_info[keyword] += kwargs[keyword]
-
 # Override install_data to install into module directories, and to support
 # globbing on data_files.
 
@@ -176,965 +162,9 @@
 PACKAGES_ROOT = os.path.join(BASE_DIR, 'lib', 'python')
 os.chdir(PACKAGES_ROOT)
 
-EXTENSIONCLASS_INCLUDEDIRS = ['ExtensionClass']
 
+# Most of this is ripped from the Zope 3 setup.py.
 
-# AccessControl
-setup(
-    name='AccessControl',
-    author=AUTHOR,
-
-    packages=['AccessControl',
-              'AccessControl.tests', 'AccessControl.tests.mixed_module',
-              'AccessControl.tests.mixed_module.submodule',
-              'AccessControl.tests.private_module',
-              'AccessControl.tests.private_module.submodule',
-              'AccessControl.tests.public_module',
-              'AccessControl.tests.public_module.submodule'],
-    data_files=[['AccessControl', ['AccessControl/*.txt']],
-                ['AccessControl/dtml', ['AccessControl/dtml/*']],
-                ['AccessControl/securitySuite',
-                    ['AccessControl/securitySuite/README',
-                     'AccessControl/securitySuite/*.py']],
-                ['AccessControl/www', ['AccessControl/www/*']]],
-    ext_modules=[
-        Extension(name='AccessControl.cAccessControl',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS+['Acquisition'],
-                  sources=['AccessControl/cAccessControl.c'],
-                  depends=['ExtensionClass/ExtensionClass.h',
-                           'ExtensionClass/pickle/pickle.c',
-                           'Acquisition/Acquisition.h'],
-                  )]
-    )
-
-# App
-setup(
-    name='App',
-    author=AUTHOR,
-
-    packages=['App', 'App.tests'],
-    data_files=[['App/dtml', ['App/dtml/*']],
-                ['App/www', ['App/www/*']]],
-    )
-
-# BTrees
-setup(
-    name='BTrees',
-    author=AUTHOR,
-
-    packages=['BTrees', 'BTrees.tests'],
-    ext_modules=[
-        Extension(name='BTrees._OOBTree',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['persistent'],
-                  sources=['BTrees/_OOBTree.c']),
-        Extension(name='BTrees._OIBTree',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['persistent'],
-                  sources=['BTrees/_OIBTree.c']),
-        Extension(name='BTrees._IIBTree',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['persistent'],
-                  define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
-                  sources=['BTrees/_IIBTree.c']),
-        Extension(name='BTrees._IOBTree',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['persistent'],
-                  define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
-                  sources=['BTrees/_IOBTree.c']),
-        Extension(name='BTrees._IFBTree',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['persistent'],
-                  define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
-                  sources=['BTrees/_IFBTree.c']),
-        Extension(name='BTrees._fsBTree',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['persistent'],
-                  define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
-                  sources=['BTrees/_fsBTree.c'])],
-    data_files=[['BTrees', ['BTrees/Maintainer.txt']]],
-    )
-
-
-# DateTime
-setup(
-    name='DateTime',
-    author=AUTHOR,
-
-    packages=['DateTime', 'DateTime.tests'],
-    data_files=[['DateTime', ['DateTime/DateTime.txt']],
-                ['DateTime/tests', ['DateTime/tests/julian_testdata.txt.gz']]],
-    )
-
-# DBTab
-setup(
-    name='DBTab',
-    author=AUTHOR,
-
-    packages=['DBTab'],
-    data_files=[['DBTab', ['DBTab/CHANGES.txt']]],
-    )
-
-# DocumentTemplate
-setup(
-    name='DocumentTemplate',
-    author=AUTHOR,
-
-    packages=['DocumentTemplate', 'DocumentTemplate.sequence',
-              'DocumentTemplate.sequence.tests', 'DocumentTemplate.tests'],
-    data_files=[['DocumentTemplate', ['DocumentTemplate/Let.stx']],
-                ['DocumentTemplate/tests',
-                    ['DocumentTemplate/tests/dealers.*']]],
-    ext_modules=[
-        Extension(name='DocumentTemplate.cDocumentTemplate',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=['DocumentTemplate/cDocumentTemplate.c'])]
-    )
-
-# docutils
-setup(
-    name='docutils',
-    author='David Goodger and contributors',
-    packages=['docutils', 'docutils.languages', 'docutils.parsers',
-              'docutils.parsers.rst', 'docutils.parsers.rst.directives',
-              'docutils.parsers.rst.languages', 'docutils.readers',
-              'docutils.transforms', 'docutils.writers'],
-    )
-
-# ExtensionClass
-setup(
-    name='ExtensionClass',
-    author=AUTHOR,
-
-    packages=['ExtensionClass', 'Acquisition', 'MethodObject', 'MultiMapping',
-              'ThreadLock', 'Missing', 'Record', 'ComputedAttribute'],
-
-    ext_modules=[
-        Extension(name='ExtensionClass._ExtensionClass',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=["ExtensionClass/_ExtensionClass.c"],
-                  depends=["ExtensionClass/ExtensionClass.h"],
-                  ),
-        Extension(name='Acquisition._Acquisition',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=["Acquisition/_Acquisition.c"],
-                  depends=["ExtensionClass/ExtensionClass.h",
-                           "Acquisition/Acquisition.h"],
-                  ),
-        Extension(name='MethodObject._MethodObject',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=["MethodObject/_MethodObject.c"],
-                  depends=["ExtensionClass/ExtensionClass.h"],
-                  ),
-        Extension(name='MultiMapping._MultiMapping',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=["MultiMapping/_MultiMapping.c"],
-                  depends=["ExtensionClass/ExtensionClass.h"],
-                  ),
-        Extension(name='ThreadLock._ThreadLock',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=["ThreadLock/_ThreadLock.c"],
-                  depends=["ExtensionClass/ExtensionClass.h"],
-                  ),
-        Extension(name='Missing._Missing',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=["Missing/_Missing.c"],
-                  depends=["ExtensionClass/ExtensionClass.h"],
-                  ),
-        Extension(name='Record._Record',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=["Record/_Record.c"],
-                  depends=["ExtensionClass/ExtensionClass.h"],
-                  ),
-        Extension(name='ComputedAttribute._ComputedAttribute',
-                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
-                  sources=["ComputedAttribute/_ComputedAttribute.c"],
-                  depends=["ExtensionClass/ExtensionClass.h"],
-                  ),
-        ]
-    )
-
-# HelpSys
-setup(
-    name='HelpSys',
-    author=AUTHOR,
-
-    packages=['HelpSys'],
-    data_files=[['HelpSys/dtml', ['HelpSys/dtml/*']],
-                ['HelpSys/images', ['HelpSys/images/*']]],
-    )
-
-# Interface
-setup(
-    name='Interface',
-    author=AUTHOR,
-
-    packages=['Interface', 'Interface.tests',
-              'Interface.Common', 'Interface.Common.tests'],
-    )
-
-#nt_svcutils
-setup(
-    name='nt_svcutils',
-    author=AUTHOR,
-    packages=['nt_svcutils'],
-    )
-
-# OFS
-setup(
-    name='OFS',
-    author=AUTHOR,
-
-    packages=['OFS', 'OFS.tests'],
-    data_files=[['OFS', ['OFS/mime.types']],
-                ['OFS/tests',
-                    ['OFS/tests/mime.types-?',
-                     'OFS/tests/*.gif']],
-                ['OFS/dtml', ['OFS/dtml/*']],
-                ['OFS/standard', ['OFS/standard/*']],
-                ['OFS/www', ['OFS/www/*']]],
-    )
-
-# reStructuredText
-setup(
-    name='reStructuredText',
-    author='Andreas Jung',
-
-    packages=['reStructuredText', 'reStructuredText.tests'],
-    data_files=[['reStructuredText', ['reStructuredText/*.txt']],
-               ],
-    )
-
-
-# RestrictedPython
-setup(
-    name='RestrictedPython',
-    author=AUTHOR,
-
-    packages=['RestrictedPython', 'RestrictedPython.tests'],
-    )
-
-# Shared.DC bases
-setup(
-    name='Shared.DC',
-    author=AUTHOR,
-
-    packages=['Shared', 'Shared.DC']
-    )
-
-# Scripts
-setup(
-    name='Scripts',
-    author=AUTHOR,
-
-    packages=['Shared.DC.Scripts'],
-    data_files=[['Shared/DC/Scripts/dtml', ['Shared/DC/Scripts/dtml/*']]],
-    )
-
-# StructuredText
-setup(
-    name='StructuredText',
-    author=AUTHOR,
-
-    packages=['StructuredText', 'StructuredText.tests'],
-    data_files=[['StructuredText', ['StructuredText/*.txt']],
-                ['StructuredText/regressions',
-                    ['StructuredText/regressions/*.py',
-                     'StructuredText/regressions/*.ref',
-                     'StructuredText/regressions/*.stx']]],
-    )
-
-
-# Signals
-setup(
-    name='Signals',
-    author=AUTHOR,
-
-    packages=['Signals'],
-    )
-
-# ZRDB
-setup(
-    name='ZRDB',
-    author=AUTHOR,
-
-    packages=['Shared.DC.ZRDB'],
-    data_files=[['Shared/DC/ZRDB/dtml', ['Shared/DC/ZRDB/dtml/*']],
-                ['Shared/DC/ZRDB/www', ['Shared/DC/ZRDB/www/*']]],
-    )
-
-# dcpyexpat
-PYEXPAT_DIR=os.path.join(PACKAGES_ROOT, 'Shared', 'DC', 'xml', 'pyexpat')
-DCPYEXPAT_INCLUDEDIRS=[os.path.join(PYEXPAT_DIR, 'expat', 'xmlparse'),
-                       os.path.join(PYEXPAT_DIR, 'expat', 'xmltok')]
-DCPYEXPAT_DIR='Shared/DC/xml/pyexpat'
-
-setup(
-    name='dcpyexpat',
-    author=AUTHOR,
-
-    packages=['Shared.DC.xml', 'Shared.DC.xml.pyexpat'],
-    data_files=[['Shared/DC/xml/pyexpat', ['Shared/DC/xml/pyexpat/README']]],
-    ext_modules=[
-        Extension(name='Shared.DC.xml.pyexpat.dcpyexpat',
-                  include_dirs=DCPYEXPAT_INCLUDEDIRS,
-                  define_macros=[('XML_NS', None)],
-                  sources=[DCPYEXPAT_DIR + '/expat/xmlparse/xmlparse.c',
-                           DCPYEXPAT_DIR + '/expat/xmlparse/hashtable.c',
-                           DCPYEXPAT_DIR + '/expat/xmltok/xmlrole.c',
-                           DCPYEXPAT_DIR + '/expat/xmltok/xmltok.c',
-                           DCPYEXPAT_DIR + '/dcpyexpat.c'])]
-    )
-
-# TAL
-setup(
-    name='TAL',
-    author=AUTHOR,
-
-    packages=['TAL', 'TAL.tests'],
-    data_files=[['TAL', ['TAL/*.txt']],
-                ['TAL/benchmark', ['TAL/benchmark/*']],
-                ['TAL/tests/input', ['TAL/tests/input/*']],
-                ['TAL/tests/output', ['TAL/tests/output/*']]],
-    )
-
-# tempstorage
-setup(
-    name='tempstorage',
-    author=AUTHOR,
-
-    packages=['tempstorage', 'tempstorage.tests'],
-    data_files=[['tempstorage', ['tempstorage/*.xml']]],
-    )
-
-# Testing
-setup(
-    name='Testing',
-    author=AUTHOR,
-
-    packages=['Testing', 'Testing.ZopeTestCase',
-              'Testing.ZopeTestCase.zopedoctest'],
-    data_files=[['Testing', ['Testing/README.txt']],
-                ['Testing/var', ['Testing/var/README.txt']],
-                ['Testing/ZopeTestCase/doc', ['Testing/ZopeTestCase/doc/*']],
-                ['Testing/ZopeTestCase/zopedoctest',
-                    ['Testing/ZopeTestCase/zopedoctest/*.txt']]],
-    )
-
-# ThreadedAsync
-setup(
-    name='ThreadedAsync',
-    author=AUTHOR,
-
-    packages=['ThreadedAsync'],
-    )
-
-# TreeDisplay
-setup(
-    name='TreeDisplay',
-    author=AUTHOR,
-
-    packages=['TreeDisplay'],
-    data_files=[['TreeDisplay/www', ['TreeDisplay/www/*']]],
-    )
-
-# ZClasses
-setup(
-    name='ZClasses',
-    author=AUTHOR,
-
-    packages=['ZClasses'],
-    data_files=[['ZClasses', ['ZClasses/*.gif', 'ZClasses/*.txt',
-                              'ZClasses/*.fs']],
-                ['ZClasses/dtml', ['ZClasses/dtml/*']]],
-    )
-
-
-# ZODB
-setup(
-    name='ZODB',
-    author=AUTHOR,
-
-    packages=['Persistence', 'Persistence.tests',
-              'persistent', 'persistent.tests',
-              'transaction', 'transaction.tests',
-              'ZODB', 'ZODB.FileStorage', 'ZODB.tests'],
-    data_files=[['persistent/tests', ['persistent/tests/*.txt']],
-                ['transaction', ['transaction/*.txt']],
-                ['ZODB', ['ZODB/*.txt', 'ZODB/*.xml']],
-                ['ZODB/tests', ['ZODB/tests/*.txt']]],
-    ext_modules=[
-        Extension(name='persistent.cPersistence',
-                  include_dirs=['persistent'],
-                  sources=['persistent/cPersistence.c',
-                           'persistent/ring.c'],
-                  depends=['persistent/cPersistence.h',
-                           'persistent/ring.h',
-                           'persistent/ring.c'],
-                  ),
-        Extension(name='Persistence._Persistence',
-                  include_dirs=['persistent', 'ExtensionClass'],
-                  sources=['Persistence/_Persistence.c',
-                           ],
-                  depends=['persistent/cPersistence.h',
-                           'ExtensionClass/ExtensionClass.h',
-                           ],
-                  ),
-        Extension(name='persistent.cPickleCache',
-                  include_dirs=['persistent'],
-                  sources=['persistent/cPickleCache.c',
-                           'persistent/ring.c'],
-                  depends = ['persistent/cPersistence.h',
-                             'persistent/ring.h',
-                             'persistent/ring.c']
-                  ),
-        Extension(name='persistent.TimeStamp',
-                  include_dirs=['persistent'],
-                  sources=['persistent/TimeStamp.c']),
-        # XXX We need to rewrite this soon.
-##        Extension(name='ZODB.coptimizations',
-##                  include_dirs=['persistent'],
-##                  sources=['ZODB/coptimizations.c']),
-        Extension(name='ZODB.winlock',
-                  include_dirs=['persistent'],
-                  sources=['ZODB/winlock.c'])],
-    )
-
-# ZPublisher
-setup(
-    name='ZPublisher',
-    author=AUTHOR,
-
-    packages=['ZPublisher', 'ZPublisher.tests'],
-    )
-
-# ZTUtils
-setup(
-    name='ZTUtils',
-    author=AUTHOR,
-
-    packages=['ZTUtils', 'ZTUtils.tests'],
-    data_files=[['ZTUtils', ['ZTUtils/*.txt']]],
-    )
-
-# Zope
-setup(
-    name='Zope',
-    author=AUTHOR,
-
-    py_modules=['Zope'],
-    packages=['Zope2', 'Zope2.App', 'Zope2.Startup', 'Zope2.Startup.misc',
-              'Zope2.Startup.nt', 'Zope2.Startup.tests'],
-    data_files=[ ['Zope2/Startup', ['Zope2/Startup/*.xml']] ],
-    )
-
-# webdav
-setup(
-    name='webdav',
-    author=AUTHOR,
-
-    packages=['webdav'],
-    data_files=[['webdav/dtml', ['webdav/dtml/*']],
-                ['webdav/www', ['webdav/www/*']]],
-    )
-
-# zExceptions
-setup(
-    name='zExceptions',
-    author=AUTHOR,
-
-    packages=['zExceptions', 'zExceptions.tests'],
-    )
-
-# zLOG
-setup(
-    name='zLOG',
-    author=AUTHOR,
-
-    packages=['zLOG', 'zLOG.tests'],
-    )
-
-# zdaemon
-setup(
-    name='zdaemon',
-    author=AUTHOR,
-
-    packages=['zdaemon', 'zdaemon.tests'],
-    data_files=[['zdaemon', ['zdaemon/sample.conf',
-                             'zdaemon/component.xml',
-                             'zdaemon/schema.xml']],
-                ['zdaemon/tests', ['zdaemon/tests/donothing.sh']]]
-    )
-
-
-# initgroups
-setup(
-    name='initgroups',
-    author=AUTHOR,
-
-    ext_modules=[
-        Extension(name='initgroups',
-                  sources=['../Components/initgroups/initgroups.c'])]
-    )
-
-# ZopeUndo
-setup(
-    name='ZopeUndo',
-    author=AUTHOR,
-
-    packages=['ZopeUndo', 'ZopeUndo.tests'],
-    )
-
-# ZEO
-setup(
-    name='ZEO',
-    author=AUTHOR,
-
-    packages=['ZEO', 'ZEO.auth', 'ZEO.tests', 'ZEO.zrpc'],
-    data_files=[['ZEO', ['ZEO/*.txt', 'ZEO/*.xml']]],
-    )
-
-# ZConfig
-setup(
-    name='ZConfig',
-    author=AUTHOR,
-
-    packages=['ZConfig', 'ZConfig.tests',
-              'ZConfig.tests.library', 'ZConfig.tests.library.widget',
-              'ZConfig.tests.library.thing',
-              'ZConfig.components',
-              'ZConfig.components.basic', 'ZConfig.components.basic.tests',
-              'ZConfig.components.logger', 'ZConfig.components.logger.tests',
-              ],
-    data_files=[
-        ['../../doc/zconfig',
-         ['ZConfig/doc/zconfig.pdf', 'ZConfig/doc/schema.dtd']],
-        ['ZConfig/components/basic', ['ZConfig/components/basic/*.xml']],
-        ['ZConfig/components/logger', ['ZConfig/components/logger/*.xml']],
-        ['ZConfig/tests/input', ['ZConfig/tests/input/*']],
-        ['ZConfig/tests/library/thing', ['ZConfig/tests/library/thing/*']],
-        ['ZConfig/tests/library/thing/extras',
-         ['ZConfig/tests/library/thing/extras/*']],
-        ['ZConfig/tests/library/widget', ['ZConfig/tests/library/widget/*']],
-        ['ZConfig/scripts', ['ZConfig/scripts/zconfig']],
-        ],
-    )
-
-# Other top-level packages (XXX should these be broken out at all?)
-setup(
-    name='Top-level',
-    author=AUTHOR,
-
-    py_modules=['Globals', 'ImageFile', 'Lifetime'],
-    data_files=[['.',['version.txt']]],
-    )
-
-# Products base directory
-setup(
-    name='Products',
-    author=AUTHOR,
-
-    packages=['Products']
-    )
-
-# ExternalMethod product
-setup(
-    name='ExternalMethod',
-    author=AUTHOR,
-
-    packages=['Products.ExternalMethod', 'Products.ExternalMethod.tests'],
-    data_files=[['Products/ExternalMethod',
-                    ['Products/ExternalMethod/*.gif',
-                     'Products/ExternalMethod/*.txt']],
-                ['Products/ExternalMethod/dtml',
-                    ['Products/ExternalMethod/dtml/*']],
-                ['Products/ExternalMethod/help',
-                    ['Products/ExternalMethod/help/*']],
-                ['Products/ExternalMethod/tests/Extensions',
-                    ['Products/ExternalMethod/tests/Extensions/*.py']],
-                ['Products/ExternalMethod/www',
-                    ['Products/ExternalMethod/www/*']]],
-    )
-
-# MIMETools product
-setup(
-    name='MIMETools',
-    author=AUTHOR,
-
-    packages=['Products.MIMETools'],
-    data_files=[['Products/MIMETools', ['Products/MIMETools/*.txt']]],
-    )
-
-# MailHost product
-setup(
-    name='MailHost',
-    author=AUTHOR,
-
-    packages=['Products.MailHost', 'Products.MailHost.tests'],
-    data_files=[['Products/MailHost', ['Products/MailHost/*.txt']],
-                ['Products/MailHost/dtml', ['Products/MailHost/dtml/*']],
-                ['Products/MailHost/help', ['Products/MailHost/help/*.py',
-                                            'Products/MailHost/help/*.stx']],
-                ['Products/MailHost/www', ['Products/MailHost/www/*']]],
-    )
-
-# OFSP product
-setup(
-    name='OFSP',
-    author=AUTHOR,
-
-    packages=['Products.OFSP'],
-    data_files=[['Products/OFSP', ['Products/OFSP/*.txt']],
-                ['Products/OFSP/dtml', ['Products/OFSP/dtml/*']],
-                ['Products/OFSP/help', ['Products/OFSP/help/*.py',
-                                        'Products/OFSP/help/*.stx']],
-                ['Products/OFSP/images', ['Products/OFSP/images/*']]],
-    )
-
-# PageTemplates product
-setup(
-    name='PageTemplates',
-    author=AUTHOR,
-
-    packages=['Products.PageTemplates', 'Products.PageTemplates.tests'],
-
-    data_files=[['Products/PageTemplates', ['Products/PageTemplates/*.txt']],
-                ['Products/PageTemplates/examples',
-                    ['Products/PageTemplates/examples/*']],
-                ['Products/PageTemplates/help',
-                    ['Products/PageTemplates/help/*.py',
-                     'Products/PageTemplates/help/*.stx']],
-                ['Products/PageTemplates/tests/input',
-                    ['Products/PageTemplates/tests/input/*']],
-                ['Products/PageTemplates/tests/output',
-                    ['Products/PageTemplates/tests/output/*']],
-                ['Products/PageTemplates/www',
-                    ['Products/PageTemplates/www/*']]],
-    )
-
-# PluginIndexes product
-setup(
-    name='PluginIndexes',
-    author=AUTHOR,
-
-    packages=['Products.PluginIndexes',
-              'Products.PluginIndexes.DateIndex',
-              'Products.PluginIndexes.DateIndex.tests',
-              'Products.PluginIndexes.DateRangeIndex',
-              'Products.PluginIndexes.DateRangeIndex.tests',
-              'Products.PluginIndexes.FieldIndex',
-              'Products.PluginIndexes.FieldIndex.tests',
-              'Products.PluginIndexes.KeywordIndex',
-              'Products.PluginIndexes.KeywordIndex.tests',
-              'Products.PluginIndexes.PathIndex',
-              'Products.PluginIndexes.PathIndex.tests',
-              'Products.PluginIndexes.TextIndex',
-              'Products.PluginIndexes.TextIndex.Splitter',
-              'Products.PluginIndexes.TextIndex.Splitter.ISO_8859_1_Splitter',
-              'Products.PluginIndexes.TextIndex.Splitter.UnicodeSplitter',
-              'Products.PluginIndexes.TextIndex.Splitter.UnicodeSplitter.tests',
-              'Products.PluginIndexes.TextIndex.Splitter.ZopeSplitter',
-              'Products.PluginIndexes.TextIndex.tests',
-              'Products.PluginIndexes.TopicIndex',
-              'Products.PluginIndexes.TopicIndex.tests',
-              'Products.PluginIndexes.common'],
-
-    data_files=[['Products/PluginIndexes', ['Products/PluginIndexes/*.txt']],
-                ['Products/PluginIndexes/DateIndex',
-                    ['Products/PluginIndexes/DateIndex/README.txt']],
-                ['Products/PluginIndexes/DateIndex/dtml',
-                    ['Products/PluginIndexes/DateIndex/dtml/*']],
-                ['Products/PluginIndexes/DateRangeIndex',
-                    ['Products/PluginIndexes/DateRangeIndex/README.txt']],
-                ['Products/PluginIndexes/DateRangeIndex/dtml',
-                    ['Products/PluginIndexes/DateRangeIndex/dtml/*']],
-                ['Products/PluginIndexes/FieldIndex/dtml',
-                    ['Products/PluginIndexes/FieldIndex/dtml/*']],
-                ['Products/PluginIndexes/FieldIndex/help',
-                    ['Products/PluginIndexes/FieldIndex/help/*']],
-                ['Products/PluginIndexes/KeywordIndex/dtml',
-                    ['Products/PluginIndexes/KeywordIndex/dtml/*']],
-                ['Products/PluginIndexes/KeywordIndex/help',
-                    ['Products/PluginIndexes/KeywordIndex/help/*']],
-                ['Products/PluginIndexes/PathIndex',
-                    ['Products/PluginIndexes/PathIndex/*.txt']],
-                ['Products/PluginIndexes/PathIndex/dtml',
-                    ['Products/PluginIndexes/PathIndex/dtml/*']],
-                ['Products/PluginIndexes/PathIndex/help',
-                    ['Products/PluginIndexes/PathIndex/help/*']],
-                ['Products/PluginIndexes/TextIndex/dtml',
-                    ['Products/PluginIndexes/TextIndex/dtml/*']],
-                ['Products/PluginIndexes/TextIndex/help',
-                    ['Products/PluginIndexes/TextIndex/help/*']],
-                ['Products/PluginIndexes/TopicIndex',
-                    ['Products/PluginIndexes/TopicIndex/*.txt']],
-                ['Products/PluginIndexes/TopicIndex/dtml',
-                    ['Products/PluginIndexes/TopicIndex/dtml/*']],
-                ['Products/PluginIndexes/TopicIndex/help',
-                    ['Products/PluginIndexes/TopicIndex/help/*']],
-                ['Products/PluginIndexes/help',
-                    ['Products/PluginIndexes/help/*']],
-                ['Products/PluginIndexes/www',
-                    ['Products/PluginIndexes/www/*']]],
-
-    ext_modules=[
-        Extension(name='Products.PluginIndexes.TextIndex.Splitter.ZopeSplitter.ZopeSplitter',
-                  sources=['Products/PluginIndexes/TextIndex/Splitter/ZopeSplitter/src/ZopeSplitter.c']),
-        Extension(name='Products.PluginIndexes.TextIndex.Splitter.ISO_8859_1_Splitter.ISO_8859_1_Splitter',
-                  sources=['Products/PluginIndexes/TextIndex/Splitter/ISO_8859_1_Splitter/src/ISO_8859_1_Splitter.c']),
-        Extension(name='Products.PluginIndexes.TextIndex.Splitter.UnicodeSplitter.UnicodeSplitter',
-                  sources=['Products/PluginIndexes/TextIndex/Splitter/UnicodeSplitter/src/UnicodeSplitter.c'])],
-    )
-
-# PythonScripts product
-setup(
-    name='PythonScripts',
-    author=AUTHOR,
-
-    packages=['Products.PythonScripts', 'Products.PythonScripts.tests'],
-    data_files=[['Products/PythonScripts', ['Products/PythonScripts/*.txt']],
-                ['Products/PythonScripts/Extensions',
-                    ['Products/PythonScripts/Extensions/*.py']],
-                ['Products/PythonScripts/help',
-                    ['Products/PythonScripts/help/*.py',
-                     'Products/PythonScripts/help/*.stx']],
-                ['Products/PythonScripts/tests/tscripts',
-                    ['Products/PythonScripts/tests/tscripts/*']],
-                ['Products/PythonScripts/www',
-                    ['Products/PythonScripts/www/*']]],
-    )
-
-# Sessions product
-setup(
-    name='Sessions',
-    author=AUTHOR,
-
-    packages=['Products.Sessions', 'Products.Sessions.tests'],
-    data_files=[['Products/Sessions/help', ['Products/Sessions/help/*.py',
-                                            'Products/Sessions/help/*.stx']],
-                ['Products/Sessions/dtml', ['Products/Sessions/dtml/*']],
-                ['Products/Sessions/stresstests',
-                     ['Products/Sessions/stresstests/*.py']],
-                ['Products/Sessions/www', ['Products/Sessions/www/*']]],
-    )
-
-# SiteAccess product
-setup(
-    name='SiteAccess',
-    author=AUTHOR,
-
-    packages=['Products.SiteAccess', 'Products.SiteAccess.tests'],
-    data_files=[['Products/SiteAccess', ['Products/SiteAccess/*.txt']],
-                ['Products/SiteAccess/doc', ['Products/SiteAccess/doc/*']],
-                ['Products/SiteAccess/Extensions',
-                     ['Products/SiteAccess/Extensions/*.py']],
-                ['Products/SiteAccess/help', ['Products/SiteAccess/help/*']],
-                ['Products/SiteAccess/www', ['Products/SiteAccess/www/*']]],
-    )
-
-# SiteErrorLog product
-setup(
-    name='SiteErrorLog',
-    author=AUTHOR,
-
-    packages=['Products.SiteErrorLog'],
-    data_files=[['Products/SiteErrorLog/www',
-                 ['Products/SiteErrorLog/www/*']]],
-    )
-
-# StandardCacheManagers product
-setup(
-    name='StandardCacheManagers',
-    author=AUTHOR,
-
-    packages=['Products.StandardCacheManagers'],
-    data_files=[['Products/StandardCacheManagers',
-                    ['Products/StandardCacheManagers/*.txt',
-                     'Products/StandardCacheManagers/*.gif']],
-                ['Products/StandardCacheManagers/dtml',
-                    ['Products/StandardCacheManagers/dtml/*']],
-                ['Products/StandardCacheManagers/help',
-                    ['Products/StandardCacheManagers/help/*']]],
-    )
-
-# TemporaryFolder product
-setup(
-    name='TemporaryFolder',
-    author=AUTHOR,
-
-    packages=['Products.TemporaryFolder', 'Products.TemporaryFolder'],
-    data_files=[['Products/TemporaryFolder/dtml',
-                    ['Products/TemporaryFolder/dtml/*']],
-                ['Products/TemporaryFolder/help',
-                    ['Products/TemporaryFolder/help/*']],
-                ['Products/TemporaryFolder/www',
-                    ['Products/TemporaryFolder/www/*']]],
-    )
-
-# Transience product
-setup(
-    name='Transience',
-    author=AUTHOR,
-
-    packages=['Products.Transience', 'Products.Transience.tests'],
-    data_files=[['Products/Transience', ['Products/Transience/*.stx']],
-                ['Products/Transience/dtml', ['Products/Transience/dtml/*']],
-                ['Products/Transience/help',
-                    ['Products/Transience/help/*.py',
-                     'Products/Transience/help/*.stx']],
-                ['Products/Transience/www', ['Products/Transience/www/*']]],
-    )
-
-# ZCatalog product
-setup(
-    name='ZCatalog',
-    author=AUTHOR,
-
-    packages=['Products.ZCatalog', 'Products.ZCatalog.tests'],
-    data_files=[['Products/ZCatalog',
-                     ['Products/ZCatalog/*.gif', 'Products/ZCatalog/*.txt']],
-                ['Products/ZCatalog/regressiontests',
-                     ['Products/ZCatalog/regressiontests/*.py']],
-                ['Products/ZCatalog/dtml', ['Products/ZCatalog/dtml/*']],
-                ['Products/ZCatalog/help', ['Products/ZCatalog/help/*.stx',
-                                            'Products/ZCatalog/help/*.py']],
-                ['Products/ZCatalog/www', ['Products/ZCatalog/www/*']]],
-    )
-
-# ZCTextIndex product
-setup(
-    name='ZCTextIndex',
-    author=AUTHOR,
-
-    ext_modules=[
-        Extension(name='Products.ZCTextIndex.stopper',
-                  sources=['Products/ZCTextIndex/stopper.c']),
-        Extension(name='Products.ZCTextIndex.okascore',
-                  sources=['Products/ZCTextIndex/okascore.c'])],
-    packages=['Products.ZCTextIndex', 'Products.ZCTextIndex.tests'],
-    data_files=[['Products/ZCTextIndex', ['Products/ZCTextIndex/README.txt']],
-                ['Products/ZCTextIndex/dtml', ['Products/ZCTextIndex/dtml/*']],
-                ['Products/ZCTextIndex/help', ['Products/ZCTextIndex/help/*']],
-                ['Products/ZCTextIndex/tests',
-                    ['Products/ZCTextIndex/tests/python.txt']],
-                ['Products/ZCTextIndex/www', ['Products/ZCTextIndex/www/*']]],
-    )
-
-# ZGadflyDA product
-setup(
-    name='ZGadflyDA',
-    author=AUTHOR,
-
-    packages=['Products.ZGadflyDA', 'Products.ZGadflyDA.gadfly'],
-    data_files=[['Products/ZGadflyDA', ['Products/ZGadflyDA/*.txt']],
-                ['Products/ZGadflyDA/dtml', ['Products/ZGadflyDA/dtml/*']],
-                ['Products/ZGadflyDA/icons', ['Products/ZGadflyDA/icons/*']],
-                ['Products/ZGadflyDA/gadfly',
-                    ['Products/ZGadflyDA/gadfly/COPYRIGHT',
-                     'Products/ZGadflyDA/gadfly/sql.mar',
-                     'Products/ZGadflyDA/gadfly/*.html']]],
-    )
-
-# ZODBMountPoint product
-setup(
-    name='ZODBMountPoint',
-    author=AUTHOR,
-
-    packages=['Products.ZODBMountPoint', 'Products.ZODBMountPoint.tests'],
-    data_files=[['Products/ZODBMountPoint/www',
-                 ['Products/ZODBMountPoint/www/*']],
-                ],
-    )
-
-# ZReST product
-setup(
-    name='ZReST ',
-    author='Richard Jones',
-
-    packages=['Products.ZReST'],
-    data_files=[['Products/ZReST', ['Products/ZReST/*.txt']],
-                ['Products/ZReST/dtml', ['Products/ZReST/dtml/*']],
-                ['Products/ZReST/www', ['Products/ZReST/www/*']],
-                ],
-    )
-
-# ZSQLMethods product
-setup(
-    name='ZSQLMethods',
-    author=AUTHOR,
-
-    packages=['Products.ZSQLMethods'],
-    data_files=[['Products/ZSQLMethods', ['Products/ZSQLMethods/*.txt',
-                                          'Products/ZSQLMethods/*.gif']],
-                ['Products/ZSQLMethods/dtml', ['Products/ZSQLMethods/dtml/*']],
-                ['Products/ZSQLMethods/help',
-                    ['Products/ZSQLMethods/help/*.stx',
-                     'Products/ZSQLMethods/help/*.py']]],
-    )
-
-# ZopeTutorial product
-setup(
-    name='ZopeTutorial',
-    author=AUTHOR,
-
-    packages=['Products.ZopeTutorial'],
-    data_files=[['Products/ZopeTutorial', ['Products/ZopeTutorial/*.txt',
-                                           'Products/ZopeTutorial/*.stx']],
-                ['Products/ZopeTutorial/dtml',
-                    ['Products/ZopeTutorial/dtml/*']]],
-    )
-
-# ZServer
-setup(
-    name='ZServer',
-    author=AUTHOR,
-
-    packages=['ZServer', 'ZServer.PubCore', 'ZServer.tests', 'ZServer.medusa',
-              'ZServer.medusa.test',
-              'ZServer.medusa.thread'],
-    data_files=[['ZServer', ['ZServer/*.txt', 'ZServer/*.xml']],
-                ['ZServer/medusa/dist', ['ZServer/medusa/dist/*']],
-                ['ZServer/medusa/docs', ['ZServer/medusa/docs/*']],
-                ['ZServer/medusa/test', ['ZServer/medusa/test/*.txt']]],
-    )
-
-
-setup(
-    name='Five',
-    author='Martijn Faassen',
-
-    packages=['Products.Five',
-              'Products.Five.doc.products.FiveMiscTutorial',
-              'Products.Five.doc.products.InterfaceTutorial',
-              'Products.Five.doc.products.ViewsTutorial',
-              'Products.Five.tests',
-              'Products.Five.tests.products',
-              'Products.Five.tests.products.FiveTest'],
-    data_files=[['Products/Five', ['Products/Five/*']],
-                ['Products/Five/doc', ['Products/Five/doc/*']],
-                ['Products/Five/doc/products',
-                    ['Products/Five/doc/products/*']],
-                ['Products/Five/doc/products/FiveMiscTutorial',
-                    ['Products/Five/doc/products/FiveMiscTutorial/*']],
-                ['Products/Five/doc/products/InterfaceTutorial',
-                    ['Products/Five/doc/products/InterfaceTutorial/*']],
-                ['Products/Five/doc/products/ViewsTutorial',
-                    ['Products/Five/doc/products/ViewsTutorial/*']],
-                ['Products/Five/doc/products/ViewsTutorial/www',
-                    ['Products/Five/doc/products/ViewsTutorial/www/*']],
-                ['Products/Five/skel', ['Products/Five/skel/*']],
-                ['Products/Five/skel/package-includes', []],
-                ['Products/Five/tests', ['Products/Five/tests/*']],
-                ['Products/Five/tests/products/FiveTest',
-                    ['Products/Five/tests/products/FiveTest/*']],
-                ['Products/Five/tests/products/FiveTest/pages',
-                    ['Products/Five/tests/products/FiveTest/pages/*']],
-                ['Products/Five/tests/products/FiveTest/www',
-                    ['Products/Five/tests/products/FiveTest/www/*']],
-                ],
-    )
-
-
-
-# Zope 3 / Five integration layer support. Note that in addition to the
-# Five package itself, we also pull in several modules from the Zope 3
-# heirarchy: zope, persistent, transaction. Most of this is ripped from
-# the Zope 3 setup.py.
-
 from distutils import dir_util
 from distutils.command.build import build as buildcmd
 from distutils.command.build_ext import build_ext
@@ -1143,75 +173,36 @@
 from distutils.dist import Distribution
 from distutils.extension import Extension
 
-if sys.version_info < (2, 3):
-    _setup = setup
-    def setup(**kwargs):
-        if kwargs.has_key("classifiers"):
-            del kwargs["classifiers"]
-        _setup(**kwargs)
 
-
-# A hack to determine if Extension objects support the `depends' keyword arg,
-# which only exists in Python 2.3's distutils.
-if not "depends" in Extension.__init__.func_code.co_varnames:
-    # If it doesn't, create a local replacement that removes depends from the
-    # kwargs before calling the regular constructor.
-    _Extension = Extension
-    class Extension(_Extension):
-        def __init__(self, name, sources, **kwargs):
-            if "depends" in kwargs:
-                del kwargs["depends"]
-            _Extension.__init__(self, name, sources, **kwargs)
-
-
-# We have to snoop for file types that distutils doesn't copy correctly when
-# doing a non-build-in-place.
-EXTS = ['.conf', '.css', '.dtd', '.gif', '.jpg', '.html',
-        '.js',   '.mo',  '.png', '.pt', '.stx', '.ref',
-        '.txt',  '.xml', '.zcml', '.mar', '.in', '.sample',
-        '.rst',  '.request', '.response',
-        ]
-
-ONESHOTS = [# zope/app/publisher/browser/tests/testfiles/
-            # has a file named plain 'png', with no extension.
-            'png',
-           ]
-
-IGNORE_NAMES = (
-    'CVS', '.svn', # Revision Control Directories
-    )
-
 # This class serves multiple purposes.  It walks the file system looking for
 # auxiliary files that distutils doesn't install properly, and it actually
 # copies those files (when hooked into by distutils).  It also walks the file
 # system looking for candidate packages for distutils to install as normal.
 # The key here is that the package must have an __init__.py file.
 class Finder:
-    def __init__(self, exts, prefix):
+    def __init__(self, ignore, prefix):
         self._files = []
         self._pkgs = {}
-        self._exts = exts
+        self._ignore = ignore
         # We're finding packages in lib/python in the source dir, but we're
         # copying them directly under build/lib.<plat>.  So we need to lop off
         # the prefix when calculating the package names from the file names.
-        prefix, rest = os.path.split(prefix)
         self._plen = len(prefix) + 1
 
-    def visit(self, ignore, dir, files):
-        # Remove ignored filenames
-        for ignore in IGNORE_NAMES:
-            if ignore in files:
-                files.remove(ignore)
-        for fname in files:
-            # First see if this is one of the packages we want to add, or if
-            # we're really skipping this package.
-            if '__init__.py' in files:
-                aspkg = dir[self._plen:].replace(os.sep, '.')
-                self._pkgs[aspkg] = True
-            # Add any extra files we're interested in
-            base, ext = os.path.splitext(fname)
-            if ext in self._exts or fname in ONESHOTS:
-                self._files.append(os.path.join(dir, fname))
+    def visit(self, dir, files):
+        # First see if this is one of the packages we want to add, or if
+        # we're really skipping this package.
+        if '__init__.py' in files:
+            aspkg = dir[self._plen:].replace(os.sep, '.')
+            self._pkgs[aspkg] = True
+            ignore = ('.py',) + self._ignore
+        else:
+            ignore = self._ignore
+        # Add any extra files we're interested in
+        for file in files:
+            base, ext = os.path.splitext(file)
+            if ext not in ignore:
+                self._files.append(os.path.join(dir, file))
 
     def copy_files(self, cmd, outputbase):
         for file in self._files:
@@ -1235,16 +226,15 @@
                 print "Removing stale bytecode file", fullname
                 os.unlink(fullname)
 
-# This bit uses the finder to crawl through the zope3 packages we need
-# and Do The Right Thing to arrange for setup for sub-packages.
-z3_packages = ['zope']
-packages = []
+# Create the finder instance, which will be used in lots of places.  `finder'
+# is the global we're most interested in.
+IGNORE_EXTS = ('.pyc', '.pyo', '.c', '.h', '.so', '.cfg')
+finder = Finder(IGNORE_EXTS, PACKAGES_ROOT)
 
-for name in z3_packages:
-    basedir = os.path.join(PACKAGES_ROOT, name)
-    finder = Finder(EXTS, basedir)
-    os.path.walk(basedir, finder.visit, None)
-    packages.extend(finder.get_packages())
+for dirpath, dirnames, filenames in os.walk(PACKAGES_ROOT):
+    if not '.svn' in dirpath:
+        finder.visit(dirpath, filenames)
+packages = finder.get_packages()
 
 # Distutils hook classes
 class MyBuilder(buildcmd):
@@ -1279,9 +269,143 @@
         self.cmdclass['install_lib'] = MyLibInstaller
 
 
-# All Zope3 extension modules must be listed here.
+EXTENSIONCLASS_INCLUDEDIRS = ['ExtensionClass']
+DCPYEXPAT_INCLUDEDIRS = ['Shared/DC/xml/pyexpat/expat/xmlparse',
+                         'Shared/DC/xml/pyexpat/expat/xmltok']
+DCPYEXPAT_DIR = 'Shared/DC/xml/pyexpat'
+
+# All extension modules must be listed here.
 ext_modules = [
 
+    # AccessControl
+    Extension(name='AccessControl.cAccessControl',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS+['Acquisition'],
+              sources=['AccessControl/cAccessControl.c'],
+              depends=['ExtensionClass/ExtensionClass.h',
+                       'ExtensionClass/pickle/pickle.c',
+                       'Acquisition/Acquisition.h']),
+
+    # BTrees
+    Extension(name='BTrees._OOBTree',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS+['persistent'],
+              sources=['BTrees/_OOBTree.c']),
+    Extension(name='BTrees._OIBTree',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS+['persistent'],
+              sources=['BTrees/_OIBTree.c']),
+    Extension(name='BTrees._IIBTree',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS+['persistent'],
+              define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
+              sources=['BTrees/_IIBTree.c']),
+    Extension(name='BTrees._IOBTree',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS+['persistent'],
+              define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
+              sources=['BTrees/_IOBTree.c']),
+    Extension(name='BTrees._IFBTree',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS+['persistent'],
+              define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
+              sources=['BTrees/_IFBTree.c']),
+    Extension(name='BTrees._fsBTree',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS+['persistent'],
+              define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
+              sources=['BTrees/_fsBTree.c']),
+
+    # DocumentTemplate
+    Extension(name='DocumentTemplate.cDocumentTemplate',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=['DocumentTemplate/cDocumentTemplate.c']),
+
+    # ExtensionClass
+    Extension(name='ExtensionClass._ExtensionClass',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=["ExtensionClass/_ExtensionClass.c"],
+              depends=["ExtensionClass/ExtensionClass.h"]),
+    Extension(name='Acquisition._Acquisition',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=["Acquisition/_Acquisition.c"],
+              depends=["ExtensionClass/ExtensionClass.h",
+                       "Acquisition/Acquisition.h"]),
+    Extension(name='MethodObject._MethodObject',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=["MethodObject/_MethodObject.c"],
+              depends=["ExtensionClass/ExtensionClass.h"]),
+    Extension(name='MultiMapping._MultiMapping',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=["MultiMapping/_MultiMapping.c"],
+              depends=["ExtensionClass/ExtensionClass.h"]),
+    Extension(name='ThreadLock._ThreadLock',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=["ThreadLock/_ThreadLock.c"],
+              depends=["ExtensionClass/ExtensionClass.h"]),
+    Extension(name='Missing._Missing',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=["Missing/_Missing.c"],
+              depends=["ExtensionClass/ExtensionClass.h"]),
+    Extension(name='Record._Record',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=["Record/_Record.c"],
+              depends=["ExtensionClass/ExtensionClass.h"]),
+    Extension(name='ComputedAttribute._ComputedAttribute',
+              include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
+              sources=["ComputedAttribute/_ComputedAttribute.c"],
+              depends=["ExtensionClass/ExtensionClass.h"]),
+
+    # dcpyexpat
+    Extension(name='Shared.DC.xml.pyexpat.dcpyexpat',
+              include_dirs=DCPYEXPAT_INCLUDEDIRS,
+              define_macros=[('XML_NS', None)],
+              sources=[DCPYEXPAT_DIR + '/expat/xmlparse/xmlparse.c',
+                       DCPYEXPAT_DIR + '/expat/xmlparse/hashtable.c',
+                       DCPYEXPAT_DIR + '/expat/xmltok/xmlrole.c',
+                       DCPYEXPAT_DIR + '/expat/xmltok/xmltok.c',
+                       DCPYEXPAT_DIR + '/dcpyexpat.c']),
+
+    # initgroups
+    Extension(name='initgroups',
+              sources=['../Components/initgroups/initgroups.c']),
+
+    # indexes
+    Extension(name='Products.PluginIndexes.TextIndex.Splitter.ZopeSplitter.ZopeSplitter',
+              sources=['Products/PluginIndexes/TextIndex/Splitter/ZopeSplitter/src/ZopeSplitter.c']),
+    Extension(name='Products.PluginIndexes.TextIndex.Splitter.ISO_8859_1_Splitter.ISO_8859_1_Splitter',
+              sources=['Products/PluginIndexes/TextIndex/Splitter/ISO_8859_1_Splitter/src/ISO_8859_1_Splitter.c']),
+    Extension(name='Products.PluginIndexes.TextIndex.Splitter.UnicodeSplitter.UnicodeSplitter',
+              sources=['Products/PluginIndexes/TextIndex/Splitter/UnicodeSplitter/src/UnicodeSplitter.c']),
+    Extension(name='Products.ZCTextIndex.stopper',
+              sources=['Products/ZCTextIndex/stopper.c']),
+    Extension(name='Products.ZCTextIndex.okascore',
+              sources=['Products/ZCTextIndex/okascore.c']),
+
+    #ZODB
+    Extension(name = 'persistent.cPersistence',
+              include_dirs = ['persistent'],
+              sources= ['persistent/cPersistence.c',
+                        'persistent/ring.c'],
+              depends = ['persistent/cPersistence.h',
+                         'persistent/ring.h',
+                         'persistent/ring.c']
+              ),
+    Extension(name = 'Persistence._Persistence',
+              include_dirs = ['persistent', 'ExtensionClass'],
+              sources = ['Persistence/_Persistence.c'],
+              depends = ['persistent/cPersistence.h',
+                         'ExtensionClass/ExtensionClass.h']
+              ),
+    Extension(name = 'persistent.cPickleCache',
+              include_dirs = ['persistent'],
+              sources= ['persistent/cPickleCache.c',
+                        'persistent/ring.c'],
+              depends = ['persistent/cPersistence.h',
+                         'persistent/ring.h',
+                         'persistent/ring.c']
+              ),
+    Extension(name = 'persistent.TimeStamp',
+              sources= ['persistent/TimeStamp.c']
+              ),
+    Extension(name = 'ZODB.winlock',
+              sources = ['ZODB/winlock.c']
+              ),
+
+    #zope
     Extension("zope.proxy._zope_proxy_proxy",
               ["zope/proxy/_zope_proxy_proxy.c"],
               include_dirs = ["zope/proxy"],
@@ -1320,11 +444,12 @@
 # We're using the module docstring as the distutils descriptions.
 doclines = __doc__.split("\n")
 
-setup(name="zopex30",
-      version="X3.0",
+setup(name='Zope',
+      author=AUTHOR,
+      version="2.8",
       maintainer="Zope Corporation",
-      maintainer_email="zope3-dev at zope.org",
-      url = "http://dev.zope.org/Zope3/",
+      maintainer_email="zope-dev at zope.org",
+      url = "http://www.zope.org/",
       ext_modules = ext_modules,
       license = "http://www.zope.org/Resources/ZPL",
       platforms = ["any"],
@@ -1334,36 +459,13 @@
       distclass = MyDistribution,
       )
 
-
-
-
-
-# Call distutils setup with all lib/python packages and modules, and
-# flush setup_info.  Wondering why we run py_modules separately?  So am I.
-# Distutils won't let us specify packages and py_modules in the same call.
-
-distutils.core.setup(
-    name='Zope',
-    author=AUTHOR,
-
-    packages=setup_info.get('packages', []),
-    data_files=setup_info.get('data_files', []),
-    headers=setup_info.get('headers', []),
-    ext_modules=setup_info.get('ext_modules', []),
-    scripts=setup_info.get('scripts', []),
-    distclass=ZopeDistribution,
-    )
-
-distutils.core.setup(
-    name='Zope',
-    author=AUTHOR,
-    py_modules=setup_info.get('py_modules', []),
-    distclass=ZopeDistribution,
-    )
-
 # The rest of these modules live in the root of the source tree
 os.chdir(BASE_DIR)
 
+IGNORE_NAMES = (
+    'CVS', '.svn', # Revision Control Directories
+    )
+
 def skel_visit(skel, dirname, names):
     for ignore in IGNORE_NAMES:
         if ignore in names:
@@ -1382,7 +484,7 @@
 
 os.path.walk("skel", skel_visit, installed_data_files)
 
-distutils.core.setup(
+setup(
     name='Zope',
     author=AUTHOR,
 



More information about the Zope-Checkins mailing list