Commit fc36505a authored by Matt Behrens's avatar Matt Behrens

Add support for ZOPE_HOME and a setup.py that is capable of installing

all Zope software, based on the work in the installer branch.

All tests still pass when built with python2.1 setup.py build_ext -i :-)
parent 719cf70f
......@@ -90,6 +90,10 @@ Zope Changes
tree._check() can be used if you suspect such a problem (and if
you find one, rebuilding the tree is the best solution for now).
- Added support for the ZOPE_HOME environment variable, which
points to the Zope root, where the ZServer package and default
imports may be found.
Zope 2.6.0 alpha 1
Features Added
......
......@@ -31,6 +31,12 @@ Zope installation
See also: INSTANCE_HOME
ZOPE_HOME
ZOPE_HOME is the root of the Zope software, where the ZServer
package, z2.py, and the default import directory may be found.
Profiling
PROFILE_PUBLISHER
......
......@@ -11,7 +11,7 @@
#
##############################################################################
__doc__="""System management components"""
__version__='$Revision: 1.79 $'[11:-2]
__version__='$Revision: 1.80 $'[11:-2]
import sys,os,time,Globals, Acquisition, os, Undo
......@@ -416,6 +416,9 @@ class ApplicationManager(Folder,CacheManager):
def getSOFTWARE_HOME(self):
return SOFTWARE_HOME
def getZOPE_HOME(self):
return ZOPE_HOME
def getINSTANCE_HOME(self):
return INSTANCE_HOME
......
......@@ -13,7 +13,7 @@
"""Commonly used utility functions."""
__version__='$Revision: 1.9 $'[11:-2]
__version__='$Revision: 1.10 $'[11:-2]
import os, sys, Products
from Common import package_home, realpath
......@@ -34,6 +34,13 @@ except:
home=realpath(home)
sys.modules['__builtin__'].SOFTWARE_HOME=SOFTWARE_HOME=home
try: zhome=os.environ['ZOPE_HOME']
except:
zhome=os.path.join(home, '..', '..')
zhome=realpath(zhome)
sys.modules['__builtin__'].ZOPE_HOME=ZOPE_HOME=zhome
try:
chome=os.environ['INSTANCE_HOME']
chome = realpath(chome)
......
......@@ -56,6 +56,18 @@ functions such as database and product management.
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
ZOPE_HOME
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var getZOPE_HOME>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
......
......@@ -13,7 +13,7 @@
"""Global definitions"""
__version__='$Revision: 1.51 $'[11:-2]
__version__='$Revision: 1.52 $'[11:-2]
# Global constants: __replaceable__ flags:
NOT_REPLACEABLE = 0
......@@ -23,7 +23,7 @@ UNIQUE = 2
import Acquisition, ComputedAttribute, App.PersistentExtra, os
import TreeDisplay
from App.FindHomes import INSTANCE_HOME, SOFTWARE_HOME
from App.FindHomes import INSTANCE_HOME, SOFTWARE_HOME, ZOPE_HOME
from App.Common import package_home, attrget, Dictionary
from Persistence import Persistent, PersistentMapping
from App.special_dtml import HTML, HTMLFile, DTMLFile
......
......@@ -12,8 +12,8 @@
##############################################################################
__doc__='''Application support
$Id: Application.py,v 1.184 2002/07/03 18:18:57 chrism Exp $'''
__version__='$Revision: 1.184 $'[11:-2]
$Id: Application.py,v 1.185 2002/07/09 15:14:51 zigg Exp $'''
__version__='$Revision: 1.185 $'[11:-2]
import Globals,Folder,os,sys,App.Product, App.ProductRegistry, misc_
import time, traceback, os, Products
......@@ -376,8 +376,8 @@ def initialize(app):
if not hasattr(app, 'Examples') and not \
hasattr(app, '_Zope25_examples_have_been_added'):
examples_path = os.path.join(Globals.SOFTWARE_HOME, \
'..','..','import', 'Examples.zexp')
examples_path = os.path.join(Globals.ZOPE_HOME, \
'import', 'Examples.zexp')
if os.path.isfile(examples_path):
app._importObjectFromFile(examples_path, verify=0)
......
......@@ -12,9 +12,9 @@
##############################################################################
__doc__="""Object Manager
$Id: ObjectManager.py,v 1.154 2002/07/02 21:00:00 chrism Exp $"""
$Id: ObjectManager.py,v 1.155 2002/07/09 15:14:51 zigg Exp $"""
__version__='$Revision: 1.154 $'[11:-2]
__version__='$Revision: 1.155 $'[11:-2]
import App.Management, Acquisition, Globals, CopySupport, Products
import os, App.FactoryDispatcher, re, Products
......@@ -514,10 +514,9 @@ class ObjectManager(
raise BadRequestException, 'Invalid file name %s' % file
instance_home = INSTANCE_HOME
software_home = os.path.join(SOFTWARE_HOME, '..%s..' % os.sep)
software_home = os.path.normpath(software_home)
zope_home = ZOPE_HOME
for impath in (instance_home, software_home):
for impath in (instance_home, zope_home):
filepath = os.path.join(impath, 'import', file)
if os.path.exists(filepath):
break
......
#! /usr/bin/env python
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
# Copyright (c) 2002 Zope Corporation and Contributors. All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
......@@ -11,330 +11,1071 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
'''Distutils setup file for Zope
Common usage: python setup.py build_ext -i
'''
"""
Distutils setup for Zope
import os
import sys
from distutils.core import setup
from distutils.extension import Extension
SETUP_BERKELEY = 0
SETUP_ZEO = 0
SETUP_OLD_BTREE = 1
SETUP_CACCESSCONTROL = 1
SETUP_DCPYEXPAT = 1
SETUP_SPLITTERS = 1
SETUP_ZCTEXTINDEX = 1
In-place building
This builds extension modules in-place, much like build_extensions.py
does. Use 'setup.py' like this::
# a few constants
zope_corp = "Zope Corporation"
zodb_email = "zodb-dev@zope.org"
zodb_wiki = "http://www.zope.org/Wikis/ZODB/FrontPage"
python setup.py build_ext -i
orig_dir = os.getcwd()
Installation
if __name__ == '__main__':
top_dir = os.path.abspath(os.getcwd())
else:
top_dir = os.path.abspath(os.path.dirname(__file__))
This builds extension modules, compiles python modules, and installs
everything needed to support Zope instances in the directory of
your choosing. For example, to use '/usr/local/lib/zope'::
ec_root = os.path.join(top_dir, 'lib', 'Components', 'ExtensionClass')
ec_src = os.path.join(ec_root, 'src')
py_root = os.path.join(top_dir, 'lib', 'python')
zct_src = os.path.join(py_root, 'Products', 'ZCTextIndex')
ec_include = [ec_src]
ec_prefix = ec_src + os.sep
os.chdir(py_root)
python setup.py install \
--home=/usr/local/lib/zope
--install-platlib=/usr/local/lib/zope
--install-purelib=/usr/local/lib/zope
Note that with this method, all packages and scripts (including
ZServer and z2.py) go in the same directory as Zope modules, which
are distributed in lib/python. You will need to set both ZOPE_HOME
and SOFTWARE_HOME to point to your destination directory in order
for Zope to work in this configuration.
"""
# ExtensionClass
ExtensionClass = Extension(name = 'ExtensionClass',
sources = [ec_prefix + 'ExtensionClass.c'])
import os
import sys
Acquisition = Extension(name = 'Acquisition',
sources = [ec_prefix + 'Acquisition.c'])
from distutils.core import setup as distutils_setup
from distutils.extension import Extension
ComputedAttribute = Extension(name = 'ComputedAttribute',
sources = [ec_prefix + 'ComputedAttribute.c'])
# 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):
setup_info = sys.modules[__name__].setup_info
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.
from types import StringType
from distutils.command.install_data import install_data
from distutils.errors import DistutilsFileError
from distutils.util import convert_path
from glob import glob
class install_data(install_data):
def finalize_options(self):
self.set_undefined_options('install',
('install_purelib', 'install_dir'),
('root', 'root'),
('force', 'force'),
)
def run(self):
self.mkpath(self.install_dir)
for f in self.data_files:
if type(f) == StringType:
# it's a simple file, so copy it
f = convert_path(f)
gl = glob(f)
if len(gl) == 0:
raise DistutilsFileError, \
"can't copy '%s': glob failed" % f
for g in gl:
if os.path.isfile(g):
if self.warn_dir:
self.warn("setup script did not provide a "
"directory for '%s' -- installing "
"right in '%s'" %
(g, self.install_dir))
(out, _) = self.copy_file(g, self.install_dir)
self.outfiles.append(out)
else:
# it's a tuple with path to install to and a list of files
dir = convert_path(f[0])
if not os.path.isabs(dir):
dir = os.path.join(self.install_dir, dir)
elif self.root:
dir = change_root(self.root, dir)
self.mkpath(dir)
for data in f[1]:
data = convert_path(data)
gl = glob(data)
if len(gl) == 0:
raise DistutilsFileError, \
"can't copy '%s': glob failed" % data
for g in gl:
if os.path.isfile(g):
(out, _) = self.copy_file(g, dir)
self.outfiles.append(out)
AUTHOR = 'Zope Corporation and Contributors'
ZOPE_ROOT = os.path.abspath(os.getcwd())
EXTENSIONCLASS_ROOT = os.path.join(ZOPE_ROOT, 'lib', 'Components', 'ExtensionClass')
EXTENSIONCLASS_SRCDIR = os.path.join(EXTENSIONCLASS_ROOT, 'src')
PACKAGES_ROOT = os.path.join(ZOPE_ROOT, 'lib', 'python')
EXTENSIONCLASS_INCLUDEDIRS = [EXTENSIONCLASS_SRCDIR]
# Most modules are in lib/python in the source distribution
os.chdir(PACKAGES_ROOT)
# AccessControl
setup(
name='AccessControl',
author=AUTHOR,
packages=['AccessControl', 'AccessControl.securitySuite',
'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/www', ['AccessControl/www/*']]],
cmdclass={'install_data': install_data},
ext_modules=[
Extension(name='AccessControl.cAccessControl',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['AccessControl/cAccessControl.c'])]
)
# App
setup(
name='App',
author=AUTHOR,
packages=['App'],
data_files=[['App/dtml', ['App/dtml/*']],
['App/www', ['App/www/*']]],
cmdclass={'install_data': install_data}
)
MethodObject = Extension(name = 'MethodObject',
sources = [ec_prefix + 'MethodObject.c'])
# BTrees
setup(
name='BTrees',
author=AUTHOR,
packages=['BTrees', 'BTrees.tests'],
ext_modules=[
Extension(name='BTrees._OOBTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
sources=['BTrees/_OOBTree.c']),
Extension(name='BTrees._OIBTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
sources=['BTrees/_OIBTree.c']),
Extension(name='BTrees._IIBTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
sources=['BTrees/_IIBTree.c']),
Extension(name='BTrees._IOBTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
sources=['BTrees/_IOBTree.c']),
Extension(name='BTrees._fsBTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
sources=['BTrees/_fsBTree.c'])],
data_files=[['BTrees', ['BTrees/Maintainer.txt']]],
cmdclass={'install_data': install_data}
)
# BTrees compatibility package
setup(
name='BTree',
author=AUTHOR,
#headers=['../Components/BTree/intSet.h'],
ext_modules=[
Extension(name='BTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
sources=['../Components/BTree/BTree.c']),
Extension(name='IIBTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
sources=['../Components/BTree/IIBTree.c']),
Extension(name='IOBTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
sources=['../Components/BTree/IOBTree.c']),
Extension(name='OIBTree',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
sources=['../Components/BTree/OIBTree.c']),
Extension(name='intSet',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
sources=['../Components/BTree/intSet.c'])]
)
# DateTime
setup(
name='DateTime',
author=AUTHOR,
packages=['DateTime', 'DateTime.tests'],
data_files=[['DateTime', ['DateTime/DateTime.html']],
['DateTime/tests', ['DateTime/tests/julian_testdata.txt.gz']]],
cmdclass={'install_data': install_data}
)
Missing = Extension(name = 'Missing',
sources = [ec_prefix + 'Missing.c'])
# DocumentTemplate
setup(
name='DocumentTemplate',
author=AUTHOR,
MultiMapping = Extension(name = 'MultiMapping',
sources = [ec_prefix + 'MultiMapping.c'])
packages=['DocumentTemplate', 'DocumentTemplate.sequence',
'DocumentTemplate.sequence.tests', 'DocumentTemplate.tests'],
Record = Extension(name = 'Record', sources = [ec_prefix + 'Record.c'])
data_files=[['DocumentTemplate', ['DocumentTemplate/Let.stx']],
['DocumentTemplate/tests',
['DocumentTemplate/tests/dealers.*']]],
cmdclass={'install_data': install_data},
Sync = Extension(name = 'Sync', sources = [ec_prefix + 'Sync.c'])
ext_modules=[
Extension(name='DocumentTemplate.cDocumentTemplate',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['DocumentTemplate/cDocumentTemplate.c'])]
)
ThreadLock = Extension(name = 'ThreadLock',
sources = [ec_prefix + 'ThreadLock.c'])
# ExtensionClass
setup(
name='ExtensionClass',
author=AUTHOR,
ext_modules=[
Extension(name='ExtensionClass',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/ExtensionClass.c']),
Extension(name='Acquisition',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/Acquisition.c']),
Extension(name='MethodObject',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/MethodObject.c']),
Extension(name='MultiMapping',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/MultiMapping.c']),
Extension(name='ThreadLock',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/ThreadLock.c']),
Extension(name='Missing',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/Missing.c']),
Extension(name='Sync',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/Sync.c']),
Extension(name='Record',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/Record.c']),
Extension(name='ComputedAttribute',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['../Components/ExtensionClass/src/ComputedAttribute.c'])]
)
# HelpSys
setup(
name='HelpSys',
author=AUTHOR,
packages=['HelpSys'],
data_files=[['HelpSys/dtml', ['HelpSys/dtml/*']],
['HelpSys/images', ['HelpSys/images/*']]],
cmdclass={'install_data': install_data}
)
# Interface
setup(
name='Interface',
author=AUTHOR,
packages=['Interface', 'Interface.tests',
'Interface.Common', 'Interface.Common.tests'],
cmdclass={'install_data': install_data}
)
# OFS
setup(
name='OFS',
author=AUTHOR,
packages=['OFS', 'OFS.tests'],
data_files=[['OFS/dtml', ['OFS/dtml/*']],
['OFS/standard', ['OFS/standard/*']],
['OFS/www', ['OFS/www/*']]],
cmdclass={'install_data': install_data}
)
# RestrictedPython
setup(
name='RestrictedPython',
author=AUTHOR,
packages=['RestrictedPython', 'RestrictedPython.compiler_2_1',
'RestrictedPython.tests'],
data_files=[['RestrictedPython/compiler_2_1',
['RestrictedPython/compiler_2_1/ast.txt']]],
cmdclass={'install_data': install_data}
)
# SearchIndex
setup(
name='SearchIndex',
author=AUTHOR,
packages=['SearchIndex', 'SearchIndex.tests'],
data_files=[['SearchIndex', ['SearchIndex/*.txt']]],
cmdclass={'install_data': install_data},
ext_modules=[
Extension(name='SearchIndex.Splitter',
sources=['SearchIndex/Splitter.c'])]
)
# 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/*']]],
cmdclass={'install_data': install_data}
)
# StructuredText
setup(
name='StructuredText',
author=AUTHOR,
packages=['StructuredText', 'StructuredText.regressions',
'StructuredText.tests'],
data_files=[['StructuredText', ['StructuredText/*.txt']],
['StructuredText/regressions',
['StructuredText/regressions/*.ref',
'StructuredText/regressions/*.stx']]],
cmdclass={'install_data': install_data}
)
setup(name = "ExtensionClass",
version = "1.3",
description = "Support for Python classes implemented in C",
maintainer = "Zope Corporation",
maintainer_email = "zope@zope.org",
url = "http://www.zope.org/",
# ZRDB
setup(
name='ZRDB',
author=AUTHOR,
ext_modules = [ExtensionClass, Acquisition, ComputedAttribute,
MethodObject, Missing, MultiMapping, Sync,
ThreadLock, Record],
headers = [ec_prefix + "ExtensionClass.h"],
packages=['Shared.DC.ZRDB'],
long_description=__doc__
)
data_files=[['Shared/DC/ZRDB/dtml', ['Shared/DC/ZRDB/dtml/*']],
['Shared/DC/ZRDB/www', ['Shared/DC/ZRDB/www/*']]],
cmdclass={'install_data': install_data}
)
# 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')]
setup(
name='dcpyexpat',
author=AUTHOR,
packages=['Shared.DC.xml', 'Shared.DC.xml.pyexpat'],
data_files=[['Shared/DC/xml/pyexpat', ['Shared/DC/xml/pyexpat/README']]],
cmdclass={'install_data': install_data},
ext_modules=[
Extension(name='Shared.DC.xml.pyexpat.dcpyexpat',
include_dirs=DCPYEXPAT_INCLUDEDIRS,
define_macros=[('XML_NS', None)],
sources=[PYEXPAT_DIR + '/expat/xmlparse/xmlparse.c',
PYEXPAT_DIR + '/expat/xmlparse/hashtable.c',
PYEXPAT_DIR + '/expat/xmltok/xmlrole.c',
PYEXPAT_DIR + '/expat/xmltok/xmltok.c',
PYEXPAT_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/*']]],
cmdclass={'install_data': install_data}
)
# Testing
setup(
name='Testing',
author=AUTHOR,
packages=['Testing'],
data_files=[['Testing', ['Testing/README.txt']],
['Testing/var', ['Testing/var/README.txt']]],
cmdclass={'install_data': install_data}
)
# ThreadedAsync
setup(
name='ThreadedAsync',
author=AUTHOR,
packages=['ThreadedAsync']
)
# TreeDisplay
setup(
name='TreeDisplay',
author=AUTHOR,
packages=['TreeDisplay'],
data_files=[['TreeDisplay/www', ['TreeDisplay/www/*']]],
cmdclass={'install_data': install_data}
)
# ZClasses
setup(
name='ZClasses',
author=AUTHOR,
packages=['ZClasses'],
data_files=[['ZClasses', ['ZClasses/*.gif']],
['ZClasses/dtml', ['ZClasses/dtml/*']]],
cmdclass={'install_data': install_data}
)
# ZLogger
setup(
name='ZLogger',
author=AUTHOR,
packages=['ZLogger']
)
# ZODB
cPersistence = Extension(name = 'ZODB.cPersistence',
include_dirs = ec_include,
sources= ['ZODB/cPersistence.c']
)
cPickleCache = Extension(name = 'ZODB.cPickleCache',
include_dirs = ec_include,
sources= ['ZODB/cPickleCache.c']
)
TimeStamp = Extension(name = 'ZODB.TimeStamp',
define_macros = [('USE_EXTENSION_CLASS', 1)],
include_dirs = ec_include,
sources= ['ZODB/TimeStamp.c']
)
coptimizations = Extension(name = 'ZODB.coptimizations',
include_dirs = ec_include,
sources= ['ZODB/coptimizations.c']
)
winlock = Extension(name = 'ZODB.winlock',
include_dirs = ec_include,
sources = ['ZODB/winlock.c']
)
setup(name="ZODB",
version="3.1",
description = "Z Object Database persistence system",
author = zope_corp,
author_email = zodb_email,
url = zodb_wiki,
packages=['ZODB', 'ZODB.tests'],
ext_modules = [cPersistence, cPickleCache, TimeStamp,
coptimizations, winlock],
headers = ["ZODB/cPersistence.h"]
)
if SETUP_ZEO:
setup(name = "ZEO",
version = "0.4.1",
description = "Zope Enterprise Objects",
author = zope_corp,
author_email = zodb_email,
url = zodb_wiki,
packages = ['ZEO', 'ZEO.tests'],
)
if SETUP_BERKELEY:
# Berkeley storages
setup(name="bsddb3Storage",
description="ZODB storages based on Berkeley DB",
author = zope_corp,
author_email = zodb_email,
url = zodb_wiki,
package_dir = {'bsddb3Storage': 'bsddb3Storage/bsddb3Storage'},
packages = ["bsddb3Storage", "bsddb3Storage.tests"],
)
if SETUP_OLD_BTREE:
old_btree_root = os.path.join(top_dir, 'lib', 'Components', 'BTree')
old_btree_include = ec_include + ['ZODB']
old_btree_modules = []
for name in 'BTree', 'IIBTree', 'IOBTree', 'OIBTree', 'intSet':
ext = Extension(name=name,
include_dirs=old_btree_include,
sources=[os.path.join(old_btree_root, '%s.c' % name)])
old_btree_modules.append(ext)
setup(name = "BTree",
version = "?",
description = "BTree package (for backward compatibility)",
maintainer = "Zope Corporation",
maintainer_email = "zope@zope.org",
url = "http://www.zope.org",
ext_modules = old_btree_modules,
headers = [os.path.join(old_btree_root, "intSet.h")],
)
# BTrees
btree_include = ec_include + ['ZODB']
oob = Extension(name = "BTrees._OOBTree",
include_dirs = btree_include,
sources = ['BTrees/_OOBTree.c'],
)
oib = Extension(name = "BTrees._OIBTree",
include_dirs = btree_include,
sources = ['BTrees/_OIBTree.c'],
)
iib = Extension(name = "BTrees._IIBTree",
include_dirs = btree_include,
sources = ['BTrees/_IIBTree.c'],
define_macros = [('EXCLUDE_INTSET_SUPPORT', None)],
)
setup(
name='ZODB',
author=AUTHOR,
packages=['Persistence', 'ZODB', 'ZODB.tests'],
ext_modules=[
Extension(name='ZODB.cPersistence',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['ZODB/cPersistence.c']),
Extension(name='ZODB.cPickleCache',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['ZODB/cPickleCache.c']),
Extension(name='ZODB.TimeStamp',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
define_macros=[('USE_EXTENSION_CLASS', 1)],
sources=['ZODB/TimeStamp.c']),
Extension(name='ZODB.coptimizations',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['ZODB/coptimizations.c']),
Extension(name='ZODB.winlock',
include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
sources=['ZODB/winlock.c'])],
)
# ZPublisher
setup(
name='ZPublisher',
author=AUTHOR,
packages=['ZPublisher', 'ZPublisher.tests'],
cmdclass={'install_data': install_data}
)
# ZTUtils
setup(
name='ZTUtils',
author=AUTHOR,
packages=['ZTUtils', 'ZTUtils.tests'],
data_files=[['ZTUtils', ['ZTUtils/*.txt']]],
cmdclass={'install_data': install_data}
)
# Zope
setup(
name='Zope',
author=AUTHOR,
packages=['Zope']
)
# webdav
setup(
name='webdav',
author=AUTHOR,
packages=['webdav'],
data_files=[['webdav/dtml', ['webdav/dtml/*']],
['webdav/www', ['webdav/www/*']]],
cmdclass={'install_data': install_data}
)
# 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']
)
# zlib
setup(
name='zlib',
author=AUTHOR,
ext_modules=[
Extension(name='zlib',
include_dirs=['../Components/zlib'],
sources=['../Components/zlib/adler32.c',
'../Components/zlib/compress.c',
'../Components/zlib/crc32.c',
'../Components/zlib/gzio.c',
'../Components/zlib/uncompr.c',
'../Components/zlib/deflate.c',
'../Components/zlib/trees.c',
'../Components/zlib/zutil.c',
'../Components/zlib/inflate.c',
'../Components/zlib/infblock.c',
'../Components/zlib/inftrees.c',
'../Components/zlib/infcodes.c',
'../Components/zlib/infutil.c',
'../Components/zlib/inffast.c',
'../Components/zlib/zlib.c'])]
)
# initgroups
setup(
name='initgroups',
author=AUTHOR,
ext_modules=[
Extension(name='initgroups',
sources=['../Components/initgroups/initgroups.c'])]
)
# Other top-level packages (XXX should these be broken out at all?)
setup(
name='Top-level',
author=AUTHOR,
py_modules=['Globals', 'ImageFile', 'LOG', 'Main', 'dcdb', 'tempfile',
'ts_regex', 'xmlrpclib', 'SignalHandler']
)
# Products base directory
setup(
name='Products',
author=AUTHOR,
packages=['Products']
)
# ExternalMethod product
setup(
name='ExternalMethod',
author=AUTHOR,
packages=['Products.ExternalMethod', 'Products.ExternalMethod.tests',
'Products.ExternalMethod.tests.Extensions'],
data_files=[['Products/ExternalMethod',
['Products/ExternalMethod/*.gif',
'Products/ExternalMethod/*.txt']],
['Products/ExternalMethod/dtml',
['Products/ExternalMethod/dtml/*']],
['Products/ExternalMethod/help',
['Products/ExternalMethod/help/*']],
['Products/ExternalMethod/www',
['Products/ExternalMethod/www/*']]],
cmdclass={'install_data': install_data}
)
# MIMETools product
setup(
name='MIMETools',
author=AUTHOR,
packages=['Products.MIMETools'],
data_files=[['Products/MIMETools', ['Products/MIMETools/*.txt']]],
cmdclass={'install_data': install_data}
)
# MailHost product
setup(
name='MailHost',
author=AUTHOR,
packages=['Products.MailHost', 'Products.MailHost.help',
'Products.MailHost.tests'],
data_files=[['Products/MailHost', ['Products/MailHost/*.txt']],
['Products/MailHost/dtml', ['Products/MailHost/dtml/*']],
['Products/MailHost/help', ['Products/MailHost/help/*.stx']],
['Products/MailHost/www', ['Products/MailHost/www/*']]],
cmdclass={'install_data': install_data}
)
# OFSP product
setup(
name='OFSP',
author=AUTHOR,
packages=['Products.OFSP', 'Products.OFSP.help'],
data_files=[['Products/OFSP', ['Products/OFSP/*.txt']],
['Products/OFSP/dtml', ['Products/OFSP/dtml/*']],
['Products/OFSP/help', ['Products/OFSP/help/*.stx']],
['Products/OFSP/images', ['Products/OFSP/images/*']]],
cmdclass={'install_data': install_data}
)
# PageTemplates product
setup(
name='PageTemplates',
author=AUTHOR,
packages=['Products.PageTemplates', 'Products.PageTemplates.help',
'Products.PageTemplates.tests'],
data_files=[['Products/PageTemplates', ['Products/PageTemplates/*.txt']],
['Products/PageTemplates/examples',
['Products/PageTemplates/examples/*']],
['Products/PageTemplates/help',
['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/*']]],
cmdclass={'install_data': install_data}
)
# 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/*']]],
cmdclass={'install_data': install_data},
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.Extensions',
'Products.PythonScripts.help', 'Products.PythonScripts.tests'],
data_files=[['Products/PythonScripts', ['Products/PythonScripts/*.txt']],
['Products/PythonScripts/help',
['Products/PythonScripts/help/*.stx']],
['Products/PythonScripts/tests/tscripts',
['Products/PythonScripts/tests/tscripts/*']],
['Products/PythonScripts/www',
['Products/PythonScripts/www/*']]],
cmdclass={'install_data': install_data}
)
# Sessions product
setup(
name='Sessions',
author=AUTHOR,
packages=['Products.Sessions', 'Products.Sessions.help',
'Products.Sessions.tests', 'Products.Sessions.stresstests'],
data_files=[['Products/Sessions/help', ['Products/Sessions/help/*.stx']],
['Products/Sessions/dtml', ['Products/Sessions/dtml/*']],
['Products/Sessions/www', ['Products/Sessions/www/*']]],
cmdclass={'install_data': install_data}
)
# SiteAccess product
setup(
name='SiteAccess',
author=AUTHOR,
packages=['Products.SiteAccess', 'Products.SiteAccess.Extensions'],
data_files=[['Products/SiteAccess', ['Products/SiteAccess/*.txt']],
['Products/SiteAccess/doc', ['Products/SiteAccess/doc/*']],
['Products/SiteAccess/help', ['Products/SiteAccess/help/*']],
['Products/SiteAccess/www', ['Products/SiteAccess/www/*']]],
cmdclass={'install_data': install_data}
)
# SiteErrorLog product
setup(
name='SiteErrorLog',
author=AUTHOR,
packages=['Products.SiteErrorLog'],
data_files=[['Products/SiteErrorLog/www',
['Products/SiteErrorLog/www/*']]],
cmdclass={'install_data': install_data}
)
# 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/*']]],
cmdclass={'install_data': install_data}
)
# TemporaryFolder product
setup(
name='TemporaryFolder',
author=AUTHOR,
packages=['Products.TemporaryFolder', 'Products.TemporaryFolder.tests'],
data_files=[['Products/TemporaryFolder/dtml',
['Products/TemporaryFolder/dtml/*']],
['Products/TemporaryFolder/help',
['Products/TemporaryFolder/help/*']],
['Products/TemporaryFolder/www',
['Products/TemporaryFolder/www/*']]],
cmdclass={'install_data': install_data}
)
# Transience product
setup(
name='Transience',
author=AUTHOR,
packages=['Products.Transience', 'Products.Transience.help',
'Products.Transience.tests'],
data_files=[['Products/Transience', ['Products/Transience/*.stx']],
['Products/Transience/dtml', ['Products/Transience/dtml/*']],
['Products/Transience/help',
['Products/Transience/help/*.stx']],
['Products/Transience/www', ['Products/Transience/www/*']]],
cmdclass={'install_data': install_data}
)
# ZCatalog product
setup(
name='ZCatalog',
author=AUTHOR,
packages=['Products.ZCatalog', 'Products.ZCatalog.help',
'Products.ZCatalog.regressiontests', 'Products.ZCatalog.tests'],
data_files=[['Products/ZCatalog', ['Products/ZCatalog/*.gif',
'Products/ZCatalog/*.txt']],
['Products/ZCatalog/dtml', ['Products/ZCatalog/dtml/*']],
['Products/ZCatalog/help', ['Products/ZCatalog/help/*.stx']],
['Products/ZCatalog/www', ['Products/ZCatalog/www/*']]],
cmdclass={'install_data': install_data}
)
# 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/*']]],
cmdclass={'install_data': install_data}
)
# 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']]],
cmdclass={'install_data': install_data}
)
# ZSQLMethods product
setup(
name='ZSQLMethods',
author=AUTHOR,
packages=['Products.ZSQLMethods', 'Products.ZSQLMethods.help'],
data_files=[['Products/ZSQLMethods', ['Products/ZSQLMethods/*.txt',
'Products/ZSQLMethods/*.gif']],
['Products/ZSQLMethods/dtml', ['Products/ZSQLMethods/dtml/*']],
['Products/ZSQLMethods/help',
['Products/ZSQLMethods/help/*.stx']]],
cmdclass={'install_data': install_data}
)
# 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/*']]],
cmdclass={'install_data': install_data}
)
# 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_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', []),
cmdclass={'install_data': install_data}
)
distutils_setup(
name='Zope',
author=AUTHOR,
py_modules=setup_info.get('py_modules', [])
)
setup_info = {}
# The rest of these modules live in the root of the source tree
os.chdir(ZOPE_ROOT)
# ZServer
setup(
name='ZServer',
author=AUTHOR,
packages=['ZServer', 'ZServer.PubCore', 'ZServer.medusa',
'ZServer.medusa.contrib', 'ZServer.medusa.demo',
'ZServer.medusa.misc', 'ZServer.medusa.script_handler_demo',
'ZServer.medusa.sendfile', 'ZServer.medusa.test',
'ZServer.medusa.thread'],
data_files=[['ZServer', ['ZServer/*.txt']],
['ZServer/medusa', ['ZServer/medusa/*.txt',
'ZServer/medusa/*.html']],
['ZServer/medusa/dist', ['ZServer/medusa/dist/*']],
['ZServer/medusa/docs', ['ZServer/medusa/docs/*']],
['ZServer/medusa/notes', ['ZServer/medusa/notes/*']],
['ZServer/medusa/script_handler_demo',
['ZServer/medusa/script_handler_demo/*.mpy']],
['ZServer/medusa/sendfile',
['ZServer/medusa/sendfile/README']],
['ZServer/medusa/test', ['ZServer/medusa/test/*.txt']]],
cmdclass={'install_data': install_data},
# Does not work on all platforms... not like we ever compiled it before
# anyway
#
# ext_modules=[
# Extension(name='ZServer.medusa.sendfile.sendfilemodule',
# sources=['ZServer/medusa/sendfile/sendfilemodule.c'])]
iob = Extension(name = "BTrees._IOBTree",
include_dirs = btree_include,
sources = ['BTrees/_IOBTree.c'],
define_macros = [('EXCLUDE_INTSET_SUPPORT', None)],
)
)
fsb = Extension(name = "BTrees._fsBTree",
include_dirs = btree_include,
sources = ['BTrees/_fsBTree.c'],
define_macros = [('EXCLUDE_INTSET_SUPPORT', None)],
)
# z2.py
setup(
name='z2.py',
author=AUTHOR,
setup(name="BTrees",
version="?",
packages=["BTrees", "BTrees.tests"],
ext_modules=[oob, oib, iib, iob, fsb],
author=zope_corp,
)
py_modules=['z2']
)
# zpasswd
setup(
name='zpasswd',
author=AUTHOR,
# DocumentTemplate
py_modules=['zpasswd']
)
cdoctemp_ext = Extension(name = "DocumentTemplate.cDocumentTemplate",
include_dirs = ec_include,
sources = ['DocumentTemplate/cDocumentTemplate.c'],
)
# Default imports
setup(
name='Zope default imports',
author=AUTHOR,
setup(name="DocumentTemplate",
version="?",
packages=["DocumentTemplate", "DocumentTemplate.tests"],
ext_modules=[cdoctemp_ext],
author=zope_corp,
)
data_files=[['import', ['import/*.zexp']]],
cmdclass={'install_data': install_data}
)
# And now, the root-level stuff
# cAccessControl
distutils_setup(
name='Zope',
author=AUTHOR,
if SETUP_CACCESSCONTROL:
cactl_ext = Extension(name="AccessControl.cAccessControl",
include_dirs=ec_include,
sources=['AccessControl/cAccessControl.c'],
)
packages=setup_info.get('packages', []),
data_files=setup_info.get('data_files', []),
setup(name="AccessControl",
version="?",
packages=["AccessControl", "AccessControl.tests"],
ext_modules=[cactl_ext],
author=zope_corp,
)
headers=setup_info.get('headers', []),
ext_modules=setup_info.get('ext_modules', []),
# dcpyexpat
cmdclass={'install_data': install_data}
)
distutils_setup(
name='Zope',
author=AUTHOR,
if SETUP_DCPYEXPAT:
pyexpat_root = os.path.join(py_root, 'Shared', 'DC', 'xml', 'pyexpat')
dcpyexpat_incl = [os.path.join(pyexpat_root, 'expat', 'xmlparse'),
os.path.join(pyexpat_root, 'expat', 'xmltok')]
pfx = pyexpat_root + '/'
dcpyexpat_ext = Extension(name='Shared.DC.xml.dcpyexpat',
include_dirs=dcpyexpat_incl,
define_macros = [('XML_NS',1)],
sources=[pfx + 'expat/xmlparse/xmlparse.c',
pfx + 'expat/xmlparse/hashtable.c',
pfx + 'expat/xmltok/xmlrole.c',
pfx + 'expat/xmltok/xmltok.c',
pfx + 'dcpyexpat.c',
]
)
setup(name="dcpyexpat",
version="?",
packages=["Shared.DC.xml"],
ext_modules=[dcpyexpat_ext],
author=zope_corp,
headers=[pfx + 'expat/xmlparse/xmlparse.h',
pfx + 'expat/xmlparse/hashtable.h',
pfx + 'expat/xmltok/nametab.h',
pfx + 'expat/xmltok/iasciitab.h',
pfx + 'expat/xmltok/xmltok.h',
pfx + 'expat/xmltok/asciitab.h',
pfx + 'expat/xmltok/xmldef.h',
pfx + 'expat/xmltok/xmltok_impl.h',
pfx + 'expat/xmltok/xmlrole.h',
pfx + 'expat/xmltok/utf8tab.h',
pfx + 'expat/xmltok/latin1tab.h',
],
)
# Splitter for ZCatalog
if SETUP_SPLITTERS:
prefix1 = 'Products/PluginIndexes/TextIndex/Splitter/'
prefix2 = prefix1.replace('/', '.')
ext_modules = [
Extension(prefix2 + "ZopeSplitter.ZopeSplitter",
[prefix1 + 'ZopeSplitter/src/ZopeSplitter.c']),
Extension(prefix2 + "ISO_8859_1_Splitter.ISO_8859_1_Splitter",
[prefix1 + 'ISO_8859_1_Splitter/src/ISO_8859_1_Splitter.c']),
Extension(prefix2 + "UnicodeSplitter.UnicodeSplitter",
[prefix1 + 'UnicodeSplitter/src/UnicodeSplitter.c']),
]
setup(name="Splitter",
version="1.0",
description="Splitters for Zope 2.5",
author="Andreas Jung",
author_email="andreas@zope.com",
url="http://www.zope.org/...",
ext_modules=ext_modules,
packages=['Products.PluginIndexes.TextIndex.Splitter']
)
if SETUP_ZCTEXTINDEX and os.path.isdir(zct_src):
stopper = Extension(name = "Products.ZCTextIndex.stopper",
sources = ["Products/ZCTextIndex/stopper.c"])
okascore = Extension(name = "Products.ZCTextIndex.okascore",
sources = ["Products/ZCTextIndex/okascore.c"])
setup(name = "Products.ZCTextIndex",
ext_modules = [stopper, okascore])
# Lib -- misc. support files
# This might be expanded with other Zope packages.
setup(name = "Other libraries",
packages = ["Persistence",
"ThreadedAsync",
"zLOG", "zLOG.tests",
"zdaemon",
]
)
os.chdir(top_dir)
py_modules=setup_info.get('py_modules', [])
)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment