Stab at building through zpkgutils. I don't really know what I'm doing,

though, so it doesn't work yet.
parent c5c7e979
# zpkg config file
#
build-application yes
collect-dependencies yes
resource-map Zope2.map
default-collection Zope2
# These packages are the Zope 3 components.
#
docutils ../lib/python/docutils
pytz ../lib/python/pytz
zodbcode ../lib/python/zodbcode
zope ../lib/python/zope
# Child packages of Zope are handled separately when constructing Zope
# distributions; this tells where to find all of them.
zope.* ../lib/python/zope/
# These packages are copied from the ZConfig, zdaemon, and ZODB projects:
#
BTrees ../lib/python/BTrees
persistent ../lib/python/persistent
transaction ../lib/python/transaction
ThreadedAsync ../lib/python/ThreadedAsync
ZEO ../lib/python/ZEO
ZODB ../lib/python/ZODB
RestrictedPython ../lib/python/RestrictedPython
ZConfig ../lib/python/ZConfig
zdaemon ../lib/python/zdaemon
AccessControl ../lib/python/AccessControl
Acquisition ../lib/python/Acquisition
App ../lib/python/App
ComputedAttribute../lib/python/ComputedAttribute
DateTime ../lib/python/DateTime
DocumentTemplate../lib/python/DocumentTemplate
ExtensionClass ../lib/python/ExtensionClass
Globals ../lib/python/Globals
HelpSys ../lib/python/HelpSys
ImageFile ../lib/python/ImageFile
Interface ../lib/python/Interface
Lifetime ../lib/python/Lifetime
MethodObject ../lib/python/MethodObject
Missing ../lib/python/Missing
MultiMapping ../lib/python/MultiMapping
OFS ../lib/python/OFS
Persistence ../lib/python/Persistence
Products ../lib/python/Products
Record ../lib/python/Record
Shared ../lib/python/Shared
Signals ../lib/python/Signals
StructuredText ../lib/python/StructuredText
TAL ../lib/python/TAL
Testing ../lib/python/Testing
ThreadLock ../lib/python/ThreadLock
TreeDisplay ../lib/python/TreeDisplay
ZClasses ../lib/python/ZClasses
ZPublisher ../lib/python/ZPublisher
ZServer ../lib/python/ZServer
ZTUtils ../lib/python/ZTUtils
Zope ../lib/python/Zope
Zope2 ../lib/python/Zope2
ZopeUndo ../lib/python/ZopeUndo
docutils ../lib/python/docutils
initgroups ../lib/python/initgroups
nt_svcutils ../lib/python/nt_svcutils
reStructuredText../lib/python/reStructuredText
tempstorage ../lib/python/tempstorage
webdav ../lib/python/webdav
zExceptions ../lib/python/zExceptions
zLOG ../lib/python/zLOG
# These packages are the release collections based on the Zope 2
# project; they define what goes into the Zope 2 and related
# releases.
#
Zope2-src ../releases/Zope2
# Things listed here represent features we want to include in the
# distribution.
#
# We'll start with a micro distribution, and add the commented out
# things once we're confident the core is working.
AccessControl
Acquisition
App
ComputedAttribute
DateTime
DocumentTemplate
ExtensionClass
Globals
HelpSys
ImageFile
Interface
Lifetime
MethodObject
Missing
MultiMapping
OFS
Persistence
Products
Record
RestrictedPython
Shared
Signals
StructuredText
TAL
Testing
ThreadLock
TreeDisplay
ZClasses
ZPublisher
ZServer
ZTUtils
Zope
Zope2
ZopeUndo
docutils
initgroups
nt_svcutils
reStructuredText
tempstorage
webdav
zExceptions
zLOG
zope.app
# zope.app depends for us on:
# - ZODB
# - persistent
# - transaction
# - zdaemon
# - zodbcode
# - ZConfig (indirectly)
# - ThreadedAsync (indirectly)
# - ZConfig (indirectly)
# - zdaemon (indirectly)
# - pytz (indirectly)
<load>
bin/mkzopeinstance.py svn://svn.zope.org/repos/main/Zope/tags/*/utilities/mkzopeinstance.py
bin/mkzeoinstance.py svn://svn.zope.org/repos/main/Zope/tags/*/utilities/mkzeoinstance.py
doc svn://svn.zope.org/repos/main/Zope/tags/*/doc/
skel svn://svn.zope.org/repos/main/Zope/tags/*/skel/
</load>
<distribution>
LICENSES.txt
README.txt
ZopePublicLicense.txt
test.py
</distribution>
Metadata-Version: 1.1
Name: Zope
Summary: Zope 3 Application Server
Home-page: http://dev.zope.org/Zope3/
Author: Zope Corporation and Contributors
Author-email: zope3-dev@zope.org
License: ZPL 2.1
Description:
Zope is a web application server.
Platform: Unix
Platform: Windows
Classifier: Environment :: Web Environment
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Programming Language :: C
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
======
Zope 3
======
Welcome to the Zope 3 distribution!
Zope 3 is the next major Zope release and has been written from
scratch based on the latest software design patterns and the
experiences of Zope 2.
Requirements
------------
Zope 3 requires that Python 2.4.1 or newer be installed.
Building the Zope 3 software requires a C compiler supported by the distutils.
Building and installing the software
------------------------------------
Unix
~~~~
Zope 3 is built using the conventional `configure`/`make` pattern on Unix and
Linux. There are only a couple of options to the configure script, but you
shouldn't need either of them in the common case. The `configure` script will
attempt to locate the available Python installations and pick the best one for
use with Zope::
$ ./configure
Configuring Zope 3 installation
Testing for an acceptable Python interpreter...
Python version 2.3.5 found at /usr/local/bin/python
Python version 2.4.1 found at /usr/local/bin/python2.4
The optimum Python version (2.4.1) was found at /usr/local/bin/python2.4.
If you want to specify which Python should be used with Zope, use the
`--with-python` option to indicate the specific Python interpreter to use::
$ ./configure --with-python /opt/Python-2.4.1/bin/python
Using Python interpreter at /opt/Python-2.4.1/bin/python
Configuring Zope 3 installation
The default installation directory for Zope is ``/usr/local/Zope-<version>``,
where ``<version>`` is replaced with the version of Zope 3 you're installing;
it will match the version number from the compressed tarball you unpacked. To
change the installation directory, use the ``--prefix`` option to specify an
alternate location:
$ ./configure --prefix /opt/Zope-3.2.0
Configuring Zope 3 installation
Testing for an acceptable Python interpreter...
Python version 2.3.5 found at /usr/local/bin/python
Python version 2.4.1 found at /usr/local/bin/python2.4
The optimum Python version (2.4.1) was found at /usr/local/bin/python2.4.
If you want to use the same prefix as a previous installation, you need to
remove the original installation first. Instances created using one
installation may need to be modified to use a new installation.
Once you've configured Zope, you can build the software using ``make``. No
options are needed.
$ make
python2.4 install.py -q build
Now that the software has been built, you can run the unit tests for the
software to make sure that everything is working on your platform. This is an
optional step, and can take a while to complete. The tests can be run using
``make`` as well::
$ make check
python2.4 install.py -q build
python2.4 test.py -v
Running UNIT tests at level 1
Running UNIT tests from /home/user/Zope-3.2.0/build/lib.linux-i686-2.3
[...lots of dots, one per test...]
----------------------------------------------------------------------
Ran 8007 tests in 252.406s
OK
Running FUNCTIONAL tests at level 1
Running FUNCTIONAL tests from /home/user/Zope-3.2.0/build/lib.linux-i686-2.3
[...lots of dots, one per test...]
----------------------------------------------------------------------
Ran 385 tests in 106.901s
OK
The line before the final "OK" tells how many individual tests were run, and
long it took to run them. These numbers will vary based on release, operating
system, and host platform.
To install the software, run ``make`` again::
$ make install
python2.4 install.py -q build
python2.4 install.py -q install --home "/opt/Zope-3.2.0"
You now have a complete Zope 3 installation.
Windows (installer)
~~~~~~~~~~~~~~~~~~~
On Windows it's easiest to use the Windows installer. The instructions here
assume you installed Python in its default location, ``\Python24``.
If you have a previous version of Zope 3 installed, use the Windows Control
Panel's Add/Remove Programs applet to uninstall the old version first. The
name of the appropriate entry starts with "Python 2.4 Zope 3-".
Run the installer. Note that the installer creates an uninstallation program,
and an entry to run it under Control Panel's Add/Remove Programs applet. This
will remove the files installed under ``\Python24``, but will not remove
anything in the instance directory (which you create next).
Change to the ``\Python24\Scripts`` directory and create an instance::
..\python mkzopeinstance -d <instance dir> -u <username>:<password>
Change to the instance directory (this is the new directory you specified as
the ``-d`` argument to ``mkzopeinstance``) and start Zope::
\Python24\python bin/runzope
Windows (source)
~~~~~~~~~~~~~~~~
Using the source distribution on Windows is possible, but is somewhat
different from using the distribution on Unix. You may want to use the
Windows installer instead of the source distribution. If you don't have a
supported C compiler, you need to use the installer.
If you have previously installed Zope 3, either from source or using the
installer, you will need to remove the previous installation.
In using the distribution on Windows, you will need to run Python directly
several times with various command lines; you should be careful to use the
same Python installation for each of these. The default installation for
Python 2.3.x on Windows places the Python interpreter at ``\Python24\python``;
this will be used in the examples, but you may need to use a different path to
the interpreter if you installed Python in a non-default location. On
NT/2000/XP using cmd.exe, and if Python 2.4.x is associated with the .py
extension (the Python Windows installer does so by default), you can leave off
the ``\Python24\python `` at the start of each command line.
Build the Zope software by switching to the directory created by unpacking the
source distribution, then running the command::
C:\Zope-3.2.0> \Python24\python install.py -q build
The unit tests for the Zope software can be run once this is complete. This
is an optional step, and can take a while to complete. The tests can be run
using the command::
C:\Zope-3.2.0> \Python24\python test.py -v
Running UNIT tests at level 1
Running UNIT tests from C:\Zope-3.2.0\build\lib.win32-2.3
[...lots of dots, one per test...]
----------------------------------------------------------------------
Ran 4500 tests in 501.389s
OK
The line before the final "OK" tells how many individual tests were run, and
how long it took to run them. These numbers will vary based on release,
operating system, and host platform.
At this point, you can install the software using the command:
C:\Zope-3.2.0> \Python24\python install.py -q install
You now have a complete Zope 3 installation. Note that this method of
installing Zope does not allow for easy uninstallation later: you will need to
delete Zope files manually from your Python's ``Lib\site-packages\`` and
``Scripts\`` directories, and remove the directory zopeskel\ from your Python
installation entirely. If you use the Windows installer instead, it creates
an uninstallation program, and an entry to run it in Control Panel's
Add/Remove Programs applet.
Creating a Zope instance home
-----------------------------
The Zope installation includes a script called ``mkzopeinstance``; this is
used to create a new "instance home." On Unix, this will be in
``$prefix/bin/``, and on Windows this will be in ``Scripts\`` in the Python
installation.
Run this script to create the instance home::
$ .../bin/mkzopeinstance -u username:password -d directory
or::
C:\Python24\Scripts> ..\python mkzopeinstance -u username:password -d directory
This will create the directory named on the command line and provide a default
configuration. The configuration files for the Zope application server are in
the ``etc/`` sub-directory in the instance home. You should review those files
to make sure they meet your needs before starting the application server for
the first time. Of particular interest are the files ``zope.conf`` and
``principals.zcml``.
Starting Zope
-------------
XXX to be written
Where to get more information
-----------------------------
For more information about Zope 3, consult the Zope 3 project pages on
the Zope community website:
http://dev.zope.org/Zope3/
The information there includes links to relevant mailing lists and IRC
forums.
documentation doc/*.txt
script utilities/*
script zopetest
<data-files .>
zopeskel
</data-files>
#!/usr/bin/env python2.4
##############################################################################
#
# Copyright (c) 2004 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Test script for running unit tests in a distribution root.
The functional tests can't be run since we don't have enough of the
package configuration in a usable state. The functional tests can be
run from an installation.
$Id$
"""
import sys, os
from distutils.util import get_platform
PLAT_SPEC = "%s-%s" % (get_platform(), sys.version[0:3])
here = os.path.dirname(os.path.realpath(__file__))
lib = os.path.join(here, "build", "lib." + PLAT_SPEC)
sys.path.append(lib)
import zope.app.testing.test
if __name__ == '__main__':
args = sys.argv[:1] + ["-ul", lib] + sys.argv[1:]
zope.app.testing.test.process_args(args)
#!/bin/env python2.4
##############################################################################
#
# Copyright (c) 2004 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Test script to run the unit and functional tests in a Zope installation.
$Id$
"""
import sys, os
here = os.path.dirname(os.path.realpath(__file__))
here = os.path.dirname(here)
if sys.platform in ("win32",):
lib = os.path.join(here, "Lib", "site-packages")
else:
lib = os.path.join(here, "lib", "python")
sys.path.append(lib)
ftesting = os.path.join(here, "zopeskel", "etc", "ftesting.zcml")
import zope.app.tests.test
zope.app.tests.test.FTESTING = ftesting
if __name__ == '__main__':
args = sys.argv[:1] + ["-l", lib] + sys.argv[1:]
zope.app.tests.test.process_args(args)
#!/usr/bin/env python2.3
##############################################################################
#############################################################################
#
# Copyright (c) 2002 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.
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""
Distutils setup for Zope
In-place building
This builds extension modules in-place, much like build_extensions.py
does. Use 'setup.py' like this::
python setup.py build_ext -i
Installation
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'::
python setup.py install \
--home=/usr/local/lib/zope \
--install-platlib=/usr/local/lib/zope \
--install-purelib=/usr/local/lib/zope
"""
import glob
import os
import site
import sys
import distutils.core
# Override install_data to install into module directories, and to support
# globbing on data_files.
from distutils.command.install import install
from distutils.command.install_data import install_data
from distutils.util import convert_path
class ZopeInstallData(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 isinstance(f, str):
# it's a simple file, so copy it
f = convert_path(f)
gl = glob.glob(f)
if len(gl) == 0:
raise distutils.core.DistutilsFileError, \
"can't copy '%s': no matching files" % 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.glob(data)
if len(gl) == 0:
raise distutils.core.DistutilsFileError, \
"can't copy '%s': no matching files" % data
for g in gl:
if os.path.isfile(g):
(out, _) = self.copy_file(g, dir)
self.outfiles.append(out)
# We create a custom "install scheme" that works the same way on all
# platforms. We do this in order to prevent distutils from trying to
# guess where to put our files on a per-platform basis.
ZOPE_INSTALL_SCHEME = {
'purelib': '$base/lib/python',
'platlib': '$base/lib/python',
'headers': '$base/lib/python',
'scripts': '$base/bin',
'data' : '$base/lib/python',
}
class ZopeInstall(install):
# give distutils install step knowledge about build file placement options
user_options = install.user_options + [
('build-base=', None, 'base directory for build library'),
('build-lib=', None, 'build directory for all distribution'),
('build-scripts=', None, 'build directory for scripts'),
('build-temp=', None, 'temporary build directory'),
]
build_scripts = None
build_temp = None
def run(self):
""" Override run to pass along build location info so
we can use custom build directories """
build = self.distribution.get_command_obj('build')
build.build_base = self.build_base
build.build_lib = self.build_lib
build.build_scripts = self.build_scripts
build.build_temp = self.build_temp
install.run(self)
def select_scheme(self, name):
"""
Override the default platform installation schemes, ignoring whatever
'name' is passed in. For our purposes, we want to put all library,
header, and data into [install_base]/lib/python. Comment
this method out to achieve distutils-standard platform-specific
behavior for 'setup.py install'. This is most useful if you set the
[install-base] by using the '--prefix' or '--home' flags on the
setup.py install command line. Otherwise, all Zope software
will probably be installed to your Python's 'lib/python' directory.
"""
scheme = ZOPE_INSTALL_SCHEME
import distutils.command.install
for key in distutils.command.install.SCHEME_KEYS:
attrname = 'install_' + key
if getattr(self, attrname) is None:
setattr(self, attrname, scheme[key])
class ZopeDistribution(distutils.core.Distribution):
def __init__(self, attrs):
distutils.core.Distribution.__init__(self, attrs)
self.cmdclass["install"] = ZopeInstall
self.cmdclass["install_data"] = ZopeInstallData
# presumes this script lives in the base dir
BASE_DIR=os.path.dirname(os.path.abspath(sys.argv[0]))
AUTHOR = 'Zope Corporation and Contributors'
# Most modules are in lib/python in the source distribution
PACKAGES_ROOT = os.path.join(BASE_DIR, 'lib', 'python')
os.chdir(PACKAGES_ROOT)
# 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
from distutils.command.install_lib import install_lib as installcmd
from distutils.core import setup
from distutils.dist import Distribution
from distutils.extension import Extension
# 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, ignore, prefix):
self._files = []
self._pkgs = {}
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.
self._plen = len(prefix) + 1
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:
dest = os.path.join(outputbase, file[self._plen:])
# Make sure the destination directory exists
dir = os.path.dirname(dest)
if not os.path.exists(dir):
dir_util.mkpath(dir)
cmd.copy_file(file, dest)
def get_packages(self):
return self._pkgs.keys()
def remove_stale_bytecode(arg, dirname, names):
names = map(os.path.normcase, names)
for name in names:
if name.endswith(".pyc") or name.endswith(".pyo"):
srcname = name[:-1]
if srcname not in names:
fullname = os.path.join(dirname, name)
print "Removing stale bytecode file", fullname
os.unlink(fullname)
# 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 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):
def run(self):
os.path.walk(os.curdir, remove_stale_bytecode, None)
buildcmd.run(self)
finder.copy_files(self, self.build_lib)
class MyExtBuilder(build_ext):
# Override the default build_ext to remove stale bytecodes.
# Technically, removing bytecode has nothing to do with
# building extensions, but Zope's the build_ext -i variant
# is used to build Zope in place.
def run(self):
os.path.walk(os.curdir, remove_stale_bytecode, None)
build_ext.run(self)
class MyLibInstaller(installcmd):
def run(self):
installcmd.run(self)
finder.copy_files(self, self.install_dir)
class MyDistribution(Distribution):
# To control the selection of MyLibInstaller and MyPyBuilder, we
# have to set it into the cmdclass instance variable, set in
# Distribution.__init__().
def __init__(self, *attrs):
Distribution.__init__(self, *attrs)
self.cmdclass['install'] = ZopeInstall
self.cmdclass['build'] = MyBuilder
self.cmdclass['build_ext'] = MyExtBuilder
self.cmdclass['install_lib'] = MyLibInstaller
# added . to EXTENSIONCLASS_INCLUDEDIRS in order to be able to compile
# ZODB HEAD code (which uses qualified paths to find header files). This
# should be a temporary change, thrown away once we use zpkg to package
# Zope.
EXTENSIONCLASS_INCLUDEDIRS = ['ExtensionClass', '.']
# 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"]),
# initgroups
Extension(name='initgroups._initgroups',
sources=['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"],
depends = ["zope/proxy/proxy.h"]),
Extension("zope.security._proxy", ["zope/security/_proxy.c"],
include_dirs = ["zope/proxy"],
depends = ["zope/proxy/proxy.h"]),
Extension("zope.security._zope_security_checker",
["zope/security/_zope_security_checker.c"],
include_dirs = [],
depends = []),
Extension("zope.interface._zope_interface_coptimizations",
["zope/interface/_zope_interface_coptimizations.c"]),
Extension("zope.hookable._zope_hookable",
["zope/hookable/_zope_hookable.c"]),
Extension("zope.thread._zope_thread",
["zope/thread/_zope_thread.c"]),
Extension("zope.app.container._zope_app_container_contained",
["zope/app/container/_zope_app_container_contained.c"],
include_dirs = ["persistent",
"zope/proxy",
"zope/app/container"],
depends = [
"persistent/cPersistence.h",
"zope/proxy/_zope_proxy_proxy.c",
]),
]
# We're using the module docstring as the distutils descriptions.
doclines = __doc__.split("\n")
setup(name='Zope',
author=AUTHOR,
version="2.8",
maintainer="Zope Corporation",
maintainer_email="zope-dev@zope.org",
url = "http://www.zope.org/",
ext_modules = ext_modules,
license = "http://www.zope.org/Resources/ZPL",
platforms = ["any"],
description = doclines[0],
long_description = "\n".join(doclines[2:]),
packages = packages,
distclass = MyDistribution,
)
# The rest of these modules live in the root of the source tree
os.chdir(BASE_DIR)
here = os.path.dirname(os.path.abspath(__file__))
buildsupport = os.path.join(here, "buildsupport")
IGNORE_NAMES = (
'CVS', '.svn', # Revision Control Directories
)
# Add 'buildsupport' to sys.path and process *.pth files from 'buildsupport':
last = len(sys.path)
site.addsitedir(buildsupport)
if len(sys.path) > last:
# Move all appended directories to the start.
# Make sure we use ZConfig shipped with the distribution
new = sys.path[last:]
del sys.path[last:]
sys.path[:0] = new
def skel_visit(skel, dirname, names):
for ignore in IGNORE_NAMES:
if ignore in names:
names.remove(ignore)
L = []
for name in names:
if os.path.isfile(os.path.join(dirname, name)):
L.append("%s/%s" % (dirname, name))
skel.append(("../../" + dirname, L))
import zpkgsetup.package
import zpkgsetup.publication
import zpkgsetup.setup
installed_data_files = [
["../../doc", ['doc/*.txt']],
["../../import", ['import/*.zexp']],
["../../bin", ['utilities/README.txt']],
]
os.path.walk("skel", skel_visit, installed_data_files)
context = zpkgsetup.setup.SetupContext(
"Zope", "2.8.42", __file__)
setup(
name='Zope',
author=AUTHOR,
context.load_metadata(
os.path.join(here, "releases", "Zope2",
zpkgsetup.publication.PUBLICATION_CONF))
data_files=installed_data_files,
scripts=["utilities/mkzeoinstance.py", "utilities/mkzopeinstance.py",
"utilities/check_catalog.py", "utilities/load_site.py",
"utilities/requestprofiler.py", "utilities/zpasswd.py",
"utilities/copyzopeskel.py", "utilities/reindex_catalog.py",
"utilities/compilezpy.py", "utilities/decompilezpy.py",
"utilities/ZODBTools/timeout.py", "utilities/ZODBTools/analyze.py",
"utilities/ZODBTools/checkbtrees.py", "utilities/ZODBTools/fsdump.py",
"utilities/ZODBTools/fsrefs.py" , "utilities/ZODBTools/fstail.py",
"utilities/ZODBTools/fstest.py", "utilities/ZODBTools/migrate.py",
"utilities/ZODBTools/netspace.py", "utilities/ZODBTools/parsezeolog.py",
"utilities/ZODBTools/repozo.py", "utilities/ZODBTools/space.py",
"utilities/ZODBTools/timeout.py", "utilities/ZODBTools/zeopack.py",
"utilities/ZODBTools/zeoqueue.py", "utilities/ZODBTools/zeoreplay.py",
"utilities/ZODBTools/zeoserverlog.py", "utilities/ZODBTools/zeoup.py",
"utilities/ZODBTools/zodbload.py",
"test.py"],
distclass=ZopeDistribution,
)
context.walk_packages("src")
context.setup()
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