Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
ZODB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Nicolas Wavrant
ZODB
Commits
6628709c
Commit
6628709c
authored
Mar 02, 2006
by
Jim Fulton
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reverted to old setup.py in preparation for packaging.
parent
f58cab5c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
263 additions
and
43 deletions
+263
-43
buildsupport/README.txt
buildsupport/README.txt
+0
-9
buildsupport/zpkg-support.pth
buildsupport/zpkg-support.pth
+0
-8
setup.py
setup.py
+263
-26
No files found.
buildsupport/README.txt
deleted
100644 → 0
View file @
f58cab5c
zpkg support files
==================
Files and packages included here are intended to support the use of
zpkg as a build tool. They are not part of Zope, are not included in
the distribution, and are not importable in the application server.
The setup.py script will process any .pth files placed here, though
those would not normally be handled by most applications.
buildsupport/zpkg-support.pth
deleted
100644 → 0
View file @
f58cab5c
# This allows the ZConfig checked out with Zope to be used by the zpkg
# code invoked by setup.py.
#
# If zpkg ever requires a different version of ZConfig than Zope
# provides as part of it's checkout, this file should be replaced by
# an svn:external to the required version.
#
../src
setup.py
View file @
6628709c
#############################################################################
#############################################################################
#
#
# Copyright (c) 200
5
Zope Corporation and Contributors.
# Copyright (c) 200
2, 2003
Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
...
...
@@ -11,37 +11,274 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Zope Object Database: object database and persistence
The Zope Object Database provides an object-oriented database for
Python that provides a high-degree of transparency. Applications can
take advantage of object database features with few, if any, changes
to application logic. ZODB includes features such as a plugable storage
interface, rich transaction support, and undo.
"""
# The (non-obvious!) choices for the Trove Development Status line:
# Development Status :: 5 - Production/Stable
# Development Status :: 4 - Beta
# Development Status :: 3 - Alpha
classifiers
=
"""
\
Development Status :: 3 - Alpha
Intended Audience :: Developers
License :: OSI Approved :: Zope Public License
Programming Language :: Python
Topic :: Database
Topic :: Software Development :: Libraries :: Python Modules
Operating System :: Microsoft :: Windows
Operating System :: Unix
"""
import
glob
import
os
import
site
import
sys
from
distutils.core
import
setup
from
distutils.extension
import
Extension
from
distutils
import
dir_util
from
distutils.core
import
setup
from
distutils.dist
import
Distribution
from
distutils.command.install_lib
import
install_lib
from
distutils.command.build_py
import
build_py
from
distutils.util
import
convert_path
if
sys
.
version_info
<
(
2
,
3
,
4
):
print
"ZODB 3.3 requires Python 2.3.4 or higher"
sys
.
exit
(
0
)
# Include directories for C extensions
include
=
[
'src'
]
# Set up dependencies for the BTrees package
base_btrees_depends
=
[
"src/BTrees/BTreeItemsTemplate.c"
,
"src/BTrees/BTreeModuleTemplate.c"
,
"src/BTrees/BTreeTemplate.c"
,
"src/BTrees/BucketTemplate.c"
,
"src/BTrees/MergeTemplate.c"
,
"src/BTrees/SetOpTemplate.c"
,
"src/BTrees/SetTemplate.c"
,
"src/BTrees/TreeSetTemplate.c"
,
"src/BTrees/sorters.c"
,
"src/persistent/cPersistence.h"
,
]
_flavors
=
{
"O"
:
"object"
,
"I"
:
"int"
,
"F"
:
"float"
}
KEY_H
=
"src/BTrees/%skeymacros.h"
VALUE_H
=
"src/BTrees/%svaluemacros.h"
def
BTreeExtension
(
flavor
):
key
=
flavor
[
0
]
value
=
flavor
[
1
]
name
=
"BTrees._%sBTree"
%
flavor
sources
=
[
"src/BTrees/_%sBTree.c"
%
flavor
]
kwargs
=
{
"include_dirs"
:
include
}
if
flavor
!=
"fs"
:
kwargs
[
"depends"
]
=
(
base_btrees_depends
+
[
KEY_H
%
_flavors
[
key
],
VALUE_H
%
_flavors
[
value
]])
if
key
!=
"O"
:
kwargs
[
"define_macros"
]
=
[(
'EXCLUDE_INTSET_SUPPORT'
,
None
)]
return
Extension
(
name
,
sources
,
**
kwargs
)
exts
=
[
BTreeExtension
(
flavor
)
for
flavor
in
(
"OO"
,
"IO"
,
"OI"
,
"II"
,
"IF"
,
"fs"
)]
cPersistence
=
Extension
(
name
=
'persistent.cPersistence'
,
include_dirs
=
include
,
sources
=
[
'src/persistent/cPersistence.c'
,
'src/persistent/ring.c'
],
depends
=
[
'src/persistent/cPersistence.h'
,
'src/persistent/ring.h'
,
'src/persistent/ring.c'
]
)
cPickleCache
=
Extension
(
name
=
'persistent.cPickleCache'
,
include_dirs
=
include
,
sources
=
[
'src/persistent/cPickleCache.c'
,
'src/persistent/ring.c'
],
depends
=
[
'src/persistent/cPersistence.h'
,
'src/persistent/ring.h'
,
'src/persistent/ring.c'
]
)
TimeStamp
=
Extension
(
name
=
'persistent.TimeStamp'
,
include_dirs
=
include
,
sources
=
[
'src/persistent/TimeStamp.c'
]
)
##coptimizations = Extension(name = 'ZODB.coptimizations',
## include_dirs = include,
## sources= ['src/ZODB/coptimizations.c']
## )
winlock
=
Extension
(
name
=
'ZODB.winlock'
,
include_dirs
=
include
,
sources
=
[
'src/ZODB/winlock.c'
]
)
cZopeInterface
=
Extension
(
name
=
'zope.interface._zope_interface_coptimizations'
,
sources
=
[
'src/zope/interface/_zope_interface_coptimizations.c'
]
)
cZopeProxy
=
Extension
(
name
=
'zope.proxy._zope_proxy_proxy'
,
sources
=
[
'src/zope/proxy/_zope_proxy_proxy.c'
]
)
exts
+=
[
cPersistence
,
cPickleCache
,
TimeStamp
,
winlock
,
cZopeInterface
,
cZopeProxy
,
]
# The ZODB.zodb4 code is not being packaged, because it is only
# need to convert early versions of Zope3 databases to ZODB3.
packages
=
[
"BTrees"
,
"BTrees.tests"
,
"ZEO"
,
"ZEO.auth"
,
"ZEO.zrpc"
,
"ZEO.tests"
,
"ZODB"
,
"ZODB.FileStorage"
,
"ZODB.tests"
,
"Persistence"
,
"Persistence.tests"
,
"persistent"
,
"persistent.tests"
,
"transaction"
,
"transaction.tests"
,
"ThreadedAsync"
,
"zdaemon"
,
"zdaemon.tests"
,
"zope"
,
"zope.interface"
,
"zope.interface.tests"
,
"zope.interface.common"
,
"zope.interface.common.tests"
,
"zope.proxy"
,
"zope.proxy.tests"
,
"zope.testing"
,
"ZopeUndo"
,
"ZopeUndo.tests"
,
"ZConfig"
,
"ZConfig.tests"
,
"ZConfig.components"
,
"ZConfig.components.basic"
,
"ZConfig.components.basic.tests"
,
"ZConfig.components.logger"
,
"ZConfig.components.logger.tests"
,
"ZConfig.tests.library"
,
"ZConfig.tests.library.widget"
,
"ZConfig.tests.library.thing"
,
]
scripts
=
[
"src/scripts/fsdump.py"
,
"src/scripts/fsoids.py"
,
"src/scripts/fsrefs.py"
,
"src/scripts/fstail.py"
,
"src/scripts/fstest.py"
,
"src/scripts/repozo.py"
,
"src/scripts/zeopack.py"
,
"src/ZConfig/scripts/zconfig"
,
"src/ZEO/runzeo.py"
,
"src/ZEO/zeopasswd.py"
,
"src/ZEO/mkzeoinst.py"
,
"src/ZEO/zeoctl.py"
,
"src/zdaemon/zdrun.py"
,
"src/zdaemon/zdctl.py"
,
]
def
copy_other_files
(
cmd
,
outputbase
):
# A delicate dance to copy files with certain extensions
# into a package just like .py files.
extensions
=
[
"*.conf"
,
"*.xml"
,
"*.txt"
,
"*.sh"
]
directories
=
[
"transaction"
,
"persistent/tests"
,
"ZConfig/components/basic"
,
"ZConfig/components/logger"
,
"ZConfig/tests/input"
,
"ZConfig/tests/library"
,
"ZConfig/tests/library/thing"
,
"ZConfig/tests/library/thing/extras"
,
"ZConfig/tests/library/widget"
,
"ZEO"
,
"ZODB"
,
"ZODB/tests"
,
"zdaemon"
,
"zdaemon/tests"
,
"zope/interface"
,
"zope/interface/tests"
,
"zope/testing"
,
]
# zope.testing's testrunner-ex is not a package, but contains
# packages, in a fairly elaborate subtree. Major special-casing
# for this. First find all the (non-SVN) directories starting
# there, and append them all to `directories`.
for
root
,
dirs
,
files
in
os
.
walk
(
"src/zope/testing/testrunner-ex"
):
dirs
[:]
=
[
d
for
d
in
dirs
if
".svn"
not
in
d
]
assert
root
.
startswith
(
"src/"
)
normpath
=
root
[
4
:].
replace
(
"
\
\
"
,
"/"
)
directories
.
append
(
normpath
)
for
dir
in
directories
:
exts
=
extensions
if
dir
.
startswith
(
"zope/testing/testrunner-ex"
):
# testrunner-ex isn't a package, so not even the .py files
# get copied unless we force that there.
exts
=
extensions
+
[
"*.py"
]
dir
=
convert_path
(
dir
)
inputdir
=
os
.
path
.
join
(
"src"
,
dir
)
outputdir
=
os
.
path
.
join
(
outputbase
,
dir
)
if
not
os
.
path
.
exists
(
outputdir
):
dir_util
.
mkpath
(
outputdir
)
for
pattern
in
exts
:
for
fn
in
glob
.
glob
(
os
.
path
.
join
(
inputdir
,
pattern
)):
# glob is going to give us a path including "src",
# which must be stripped to get the destination dir
dest
=
os
.
path
.
join
(
outputbase
,
fn
[
4
:])
cmd
.
copy_file
(
fn
,
dest
)
class
MyLibInstaller
(
install_lib
):
"""Custom library installer, used to put hosttab in the right place."""
here
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
buildsupport
=
os
.
path
.
join
(
here
,
"buildsupport"
)
# We use the install_lib command since we need to put hosttab
# inside the library directory. This is where we already have the
# real information about where to install it after the library
# location has been set by any relevant distutils command line
# options.
# 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
run
(
self
):
install_lib
.
run
(
self
)
copy_other_files
(
self
,
self
.
install_dir
)
import
zpkgsetup.package
import
zpkgsetup.publication
import
zpkgsetup.setup
class
MyPyBuilder
(
build_py
):
def
build_packages
(
self
):
build_py
.
build_packages
(
self
)
copy_other_files
(
self
,
self
.
build_lib
)
# Note that release.py must be able to recognize the VERSION line.
VERSION
=
"3.7.0a0"
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__().
context
=
zpkgsetup
.
setup
.
SetupContext
(
"ZODB"
,
VERSION
,
__file__
)
def
__init__
(
self
,
*
attrs
):
Distribution
.
__init__
(
self
,
*
attrs
)
self
.
cmdclass
[
'build_py'
]
=
MyPyBuilder
self
.
cmdclass
[
'install_lib'
]
=
MyLibInstaller
context
.
load_metadata
(
os
.
path
.
join
(
here
,
zpkgsetup
.
publication
.
PUBLICATION_CONF
))
doclines
=
__doc__
.
split
(
"
\
n
"
)
context
.
walk_packages
(
"src"
)
context
.
setup
()
setup
(
name
=
"ZODB3"
,
version
=
"3.5.0a6"
,
maintainer
=
"Zope Corporation"
,
maintainer_email
=
"zodb-dev@zope.org"
,
url
=
"http://www.zope.org/Wikis/ZODB"
,
download_url
=
"http://www.zope.org/Products/ZODB3.5"
,
packages
=
packages
,
package_dir
=
{
''
:
'src'
},
ext_modules
=
exts
,
headers
=
[
'src/persistent/cPersistence.h'
,
'src/persistent/ring.h'
],
license
=
"ZPL 2.1"
,
platforms
=
[
"any"
],
description
=
doclines
[
0
],
classifiers
=
filter
(
None
,
classifiers
.
split
(
"
\
n
"
)),
long_description
=
"
\
n
"
.
join
(
doclines
[
2
:]),
distclass
=
MyDistribution
,
scripts
=
scripts
,
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment