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@zope.org", - url = "http://dev.zope.org/Zope3/", + maintainer_email="zope-dev@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, _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins