Commit 20a4b175 authored by Tres Seaver's avatar Tres Seaver

Finish merge of tseaver-retire_zpkg-2.10 branch.

parent 36876f3d
# 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.
#
../lib/python
...@@ -38,7 +38,8 @@ usage() ...@@ -38,7 +38,8 @@ usage()
{ {
echo echo
echo "configure [--help] [--quiet] [--with-python=path] [--prefix=path] " echo "configure [--help] [--quiet] [--with-python=path] [--prefix=path] "
echo " [--ignore-largefile] [--ignore-zlib] [--optimize]" echo " [--build-base=path] [--ignore-largefile] [--ignore-zlib]"
echo " [--optimize]"
echo echo
echo " Creates a Makefile suitable for building and installing Zope" echo " Creates a Makefile suitable for building and installing Zope"
echo echo
...@@ -47,6 +48,7 @@ usage() ...@@ -47,6 +48,7 @@ usage()
echo " --quiet suppress nonessential output" echo " --quiet suppress nonessential output"
echo " --with-python specify a path to a Python interpreter to use" echo " --with-python specify a path to a Python interpreter to use"
echo " --prefix specify an installation path for binary data" echo " --prefix specify an installation path for binary data"
echo " --build-base specify a temporary path for build files"
echo " --ignore-largefile ignore large file support warnings" echo " --ignore-largefile ignore large file support warnings"
echo " --ignore-expat ignore warnings about expat/pyexpat" echo " --ignore-expat ignore warnings about expat/pyexpat"
echo " --ignore-zlib ignore warnings about zlib" echo " --ignore-zlib ignore warnings about zlib"
......
...@@ -10,14 +10,17 @@ RELEASE_TAG=<<VERSION_RELEASE_TAG>> ...@@ -10,14 +10,17 @@ RELEASE_TAG=<<VERSION_RELEASE_TAG>>
PACKAGE_NAME=${NAME}-${MAJOR_VERSION}.${MINOR_VERSION}-${RELEASE_TAG} PACKAGE_NAME=${NAME}-${MAJOR_VERSION}.${MINOR_VERSION}-${RELEASE_TAG}
PYTHON="<<PYTHON>>" PYTHON="<<PYTHON>>"
ZPKG=zpkg
TMPDIR=/tmp TMPDIR=/tmp
PREFIX=<<PREFIX>> PREFIX=<<PREFIX>>
BASE_DIR=<<BASE_DIR>> BASE_DIR=<<BASE_DIR>>
BUILD_BASE=<<BUILD_BASE>>
DISTUTILS_OPTS=<<DISTUTILS_OPTS>> DISTUTILS_OPTS=<<DISTUTILS_OPTS>>
INSTALL_FLAGS=<<INSTALL_FLAGS>> INSTALL_FLAGS=<<INSTALL_FLAGS>>
TESTOPTS=-v TESTOPTS=-v
BUILD_FLAGS=-i BUILD_FLAGS=--build-base="${BUILD_BASE}" \
--build-lib="${BUILD_BASE}/build-lib" \
--build-scripts="${BUILD_BASE}/build-scripts"\
--build-temp="${BUILD_BASE}/build-temp"
RM=rm -f RM=rm -f
RMRF=rm -rf RMRF=rm -rf
...@@ -29,7 +32,7 @@ CP=cp ...@@ -29,7 +32,7 @@ CP=cp
TAR=tar TAR=tar
MKDIR=mkdir -p MKDIR=mkdir -p
.PHONY : clean install instance untestinst testinst build .PHONY : clean install instance untestinst testinst build unbuild
.PHONY : default .PHONY : default
# default: The default step (invoked when make is called without a target) # default: The default step (invoked when make is called without a target)
...@@ -39,23 +42,38 @@ default: build ...@@ -39,23 +42,38 @@ default: build
@echo to run a Zope instance directly from the build directory\). @echo to run a Zope instance directly from the build directory\).
@echo @echo
# build: # build: Do whatever 'setup.py build' implies
build: build:
${PYTHON} "${BASE_DIR}/setup.py" \ ${PYTHON} "${BASE_DIR}/setup.py" \
${DISTUTILS_OPTS} build_ext ${BUILD_FLAGS} ${DISTUTILS_OPTS} build ${BUILD_FLAGS}
# unbuild: Remove the build directory (undo the make build step)
unbuild:
${RMRF} ${BUILD_BASE}
# install: Install a software home. # install: Install a software home.
install: version_txt install: build version_txt
${PYTHON} "${BASE_DIR}/setup.py" ${DISTUTILS_OPTS} \ ${PYTHON} "${BASE_DIR}/setup.py" ${DISTUTILS_OPTS} install \
build_ext ${BUILD_FLAGS} \ --home="${PREFIX}" ${BUILD_FLAGS} ${INSTALL_FLAGS}
install --home="${PREFIX}" ${INSTALL_FLAGS}
[ -f ${PREFIX}/bin/python ] || ${LN} ${PYTHON} ${PREFIX}/bin/python [ -f ${PREFIX}/bin/python ] || ${LN} ${PYTHON} ${PREFIX}/bin/python
@echo @echo
@echo Zope binaries installed successfully. @echo Zope binaries installed successfully.
@echo Now run \'${PREFIX}/bin/mkzopeinstance.py\' @echo Now run \'${PREFIX}/bin/mkzopeinstance.py\'
# inplace: Do an in-place build # inplace: Install a software home into to the source directory.
inplace: build #
# Note: We used to run 'build_ext -i' for 'inplace', but that was
# suboptimal because it had a tendency to try to rebuild all of the
# (possibly already-built) extensions that might be built during a
# previous 'make' step. built_ext doesn't understand '--build-base'
# and friends so we can't stop it from doing this easily. So instead,
# we rely on the stock install step and name the prefix as the current
# directory. This is a little less efficient than just building the
# extensions because it also compiles bytecode, but it's more intuitive and
# less expensive in the common case than letting distutils
# potentially rebuild the binaries when we've done that already.
inplace: PREFIX=${BASE_DIR}
inplace: install
# test: Do an inplace build and run the Zope test suite. # test: Do an inplace build and run the Zope test suite.
test: inplace test: inplace
...@@ -83,7 +101,7 @@ uninstance: ...@@ -83,7 +101,7 @@ uninstance:
# clean: Delete the build files and any binaries/bytecode files in # clean: Delete the build files and any binaries/bytecode files in
# the source directory for good measure. # the source directory for good measure.
clean: clean: unbuild
${FIND} "${BASE_DIR}" \ ${FIND} "${BASE_DIR}" \
-name '*.py[co]' -o -name '*.so' -o -name '*.o' | ${XARGS} ${RM} -name '*.py[co]' -o -name '*.so' -o -name '*.o' | ${XARGS} ${RM}
${RMRF} build ${RMRF} build
...@@ -93,9 +111,21 @@ version_txt: ...@@ -93,9 +111,21 @@ version_txt:
printf "Zope ${MAJOR_VERSION}.${MINOR_VERSION}-${RELEASE_TAG}" >\ printf "Zope ${MAJOR_VERSION}.${MINOR_VERSION}-${RELEASE_TAG}" >\
"${BASE_DIR}/lib/python/version.txt" "${BASE_DIR}/lib/python/version.txt"
# Building a source distribution requires that zpkg be available: sdist: clobber sdist_tgz
sdist:
${ZPKG} -C ${BASE_DIR}/releases/Zope2.cfg -r ${MAJOR_VERSION}.${MINOR_VERSION}${RELEASE_TAG} # sdist_tgz: Create a tgz archive file as a source distribution.
#
sdist_tgz: version_txt
${MKDIR} ${TMPDIR}
${CD} ${TMPDIR} && ${LN} ${BASE_DIR} ${PACKAGE_NAME} && \
${TAR} czfh ${BASE_DIR}/${PACKAGE_NAME}.tgz \
--exclude=${PACKAGE_NAME}.tgz\
--exclude=.svn\
--exclude=makefile \
--exclude=build-base \
--exclude=*~ \
--exclude=.#* ${PACKAGE_NAME}
${RMRF} ${TMPDIR}/${PACKAGE_NAME}
# clobber: Make the source tree 'pristine' again. # clobber: Make the source tree 'pristine' again.
clobber: clean uninstance clobber: clean uninstance
......
...@@ -17,6 +17,7 @@ import getopt ...@@ -17,6 +17,7 @@ import getopt
import os import os
import sys import sys
import versions import versions
import tempfile
QUIET=0 QUIET=0
...@@ -33,7 +34,10 @@ def main(): ...@@ -33,7 +34,10 @@ def main():
# below assumes this script is in the BASE_DIR/inst directory # below assumes this script is in the BASE_DIR/inst directory
global PREFIX global PREFIX
BASE_DIR=os.path.abspath(os.path.dirname(os.path.dirname(sys.argv[0]))) BASE_DIR=os.path.abspath(os.path.dirname(os.path.dirname(sys.argv[0])))
BUILD_BASE=os.path.join(os.getcwd(), 'build-base',
'python-%s.%s' % sys.version_info[:2])
PYTHON=sys.executable PYTHON=sys.executable
TMP_DIR = tempfile.gettempdir()
MAKEFILE=open(os.path.join(BASE_DIR, 'inst', IN_MAKEFILE)).read() MAKEFILE=open(os.path.join(BASE_DIR, 'inst', IN_MAKEFILE)).read()
REQUIRE_LF_ENABLED = 1 REQUIRE_LF_ENABLED = 1
REQUIRE_ZLIB = 1 REQUIRE_ZLIB = 1
...@@ -65,6 +69,8 @@ def main(): ...@@ -65,6 +69,8 @@ def main():
INSTALL_FLAGS = '--optimize=1 --no-compile' INSTALL_FLAGS = '--optimize=1 --no-compile'
if o == '--no-compile': if o == '--no-compile':
INSTALL_FLAGS = '--no-compile' INSTALL_FLAGS = '--no-compile'
if o == '--build-base':
BUILD_BASE = a
if o == '--quiet': if o == '--quiet':
DISTUTILS_OPTS = '-q' DISTUTILS_OPTS = '-q'
global QUIET global QUIET
...@@ -82,6 +88,8 @@ def main(): ...@@ -82,6 +88,8 @@ def main():
'<<PYTHON>>':PYTHON, '<<PYTHON>>':PYTHON,
'<<PREFIX>>':PREFIX, '<<PREFIX>>':PREFIX,
'<<BASE_DIR>>':BASE_DIR, '<<BASE_DIR>>':BASE_DIR,
'<<BUILD_BASE>>':BUILD_BASE,
'<<TMP_DIR>>':TMP_DIR,
'<<INSTALL_FLAGS>>':INSTALL_FLAGS, '<<INSTALL_FLAGS>>':INSTALL_FLAGS,
'<<ZOPE_MAJOR_VERSION>>':versions.ZOPE_MAJOR_VERSION, '<<ZOPE_MAJOR_VERSION>>':versions.ZOPE_MAJOR_VERSION,
'<<ZOPE_MINOR_VERSION>>':versions.ZOPE_MINOR_VERSION, '<<ZOPE_MINOR_VERSION>>':versions.ZOPE_MINOR_VERSION,
......
# zpkg config file
#
build-application yes
collect-dependencies yes
resource-map Zope2.map
default-collection Zope
# These packages are the Zope 2 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.py
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
# we can't call the following item "Zope" because zpkg is
# case-ignorant for collection names and it would conflict with "zope"
# (the items listed here are collections, not packages, although most
# of the times they're the same; here the collection represents a
# top-level module, though)
Zopepy ../lib/python/Zope.py
Zope2 ../lib/python/Zope2
ZopeUndo ../lib/python/ZopeUndo
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
mechanize ../lib/python/mechanize
ClientCookie ../lib/python/ClientCookie
pullparser ../lib/python/pullparser.py
ClientForm ../lib/python/ClientForm.py
# These packages are the release collections based on the Zope 2
# project; they define what goes into the Zope 2 and related
# releases.
#
Zope ../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
# we can't call the following item "Zope" because zpkg is
# case-ignorant for collection names and it would conflict with "zope"
# (the items listed here are collections, not packages, although most
# of the times they're the same; here the collection represents a
# top-level module, though)
Zopepy
Zope2
ZopeUndo
docutils
initgroups
nt_svcutils
reStructuredText
tempstorage
webdav
zExceptions
zLOG
zope.app
zope.app.apidoc
zope.app.cache
zope.app.dtmlpage
zope.app.introspector
zope.app.mail
zope.app.onlinehelp
zope.app.rdb
zope.app.sqlscript
zope.app.undo
zope.app.zptpage
zope.app.intid
# zope.app.keyreference should be stated as a dependency
# in zope.app.intid/DEPENDENCIES.cfg in Zope 3
zope.app.keyreference
zope.app.session
zope.contentprovider
zope.viewlet
zope.wfmc
zope.app.wfmc
# zope.app depends for us on:
# - ZODB
# - persistent
# - transaction
# - zdaemon
# - zodbcode
# - ZConfig (indirectly)
# - ThreadedAsync (indirectly)
# - ZConfig (indirectly)
# - zdaemon (indirectly)
# - pytz (indirectly)
<load>
README.txt svn://svn.zope.org/repos/main/Zope/tags/*/README.txt
ZopePublicLicense.txt svn://svn.zope.org/repos/main/Zope/tags/*/ZopePublicLicense.txt
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/
utilities svn://svn.zope.org/repos/main/Zope/tags/*/utilities/
</load>
<distribution>
README.txt
ZopePublicLicense.txt
test.py
</distribution>
Metadata-Version: 1.1
Name: Zope
Summary: Zope 2 Application Server
Home-page: http://dev.zope.org/
Author: Zope Corporation and Contributors
Author-email: zope-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
documentation doc/*.txt
script utilities/*.py
script utilities/ZODBTools/*.py
script zopetest
<data-files .>
skel
</data-files>
#!/usr/bin/env python
##############################################################################
#
# 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.
#
##############################################################################
"""Zope 2 test script
see zope.testing testrunner.txt
$Id: test.py 33303 2005-07-13 22:28:33Z jim $
"""
import os.path, sys
shome = os.environ.get('SOFTWARE_HOME')
zhome = os.environ.get('ZOPE_HOME')
ihome = os.environ.get('INSTANCE_HOME')
if zhome:
zhome = os.path.abspath(zhome)
if shome:
shome = os.path.abspath(shome)
else:
shome = os.path.join(zhome, 'lib', 'python')
elif shome:
shome = os.path.abspath(shome)
zhome = os.path.dirname(os.path.dirname(shome))
elif ihome:
print >> sys.stderr, '''
If INSTANCE_HOME is set, then at least one of SOFTWARE_HOME or ZOPE_HOME
must be set
'''
else:
# No zope home, assume that it is the script directory
zhome = os.path.abspath(os.path.dirname(sys.argv[0]))
shome = os.path.join(zhome, 'lib', 'python')
sys.path.insert(0, shome)
defaults = '--tests-pattern ^tests$ -v'.split()
defaults += ['-m',
'!^('
'ZConfig'
'|'
'BTrees'
'|'
'persistent'
'|'
'ThreadedAsync'
'|'
'transaction'
'|'
'ZEO'
'|'
'ZODB'
'|'
'ZopeUndo'
'|'
'zdaemon'
'|'
'zope[.]testing'
'|'
'zope[.]app'
')[.]']
if ihome:
ihome = os.path.abspath(ihome)
defaults += ['--path', os.path.join(ihome, 'lib', 'python')]
products = os.path.join(ihome, 'Products')
if os.path.exists(products):
defaults += ['--package-path', products, 'Products']
else:
defaults += ['--test-path', shome]
from zope.testing import testrunner
def load_config_file(option, opt, config_file, *ignored):
config_file = os.path.abspath(config_file)
print "Parsing %s" % config_file
import Zope2
Zope2.configure(config_file)
testrunner.setup.add_option(
'--config-file', action="callback", type="string", dest='config_file',
callback=load_config_file,
help="""\
Initialize Zope with the given configuration file.
""")
sys.exit(testrunner.run(defaults))
#!/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)
This diff is collapsed.
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