Log message for revision 96818: Made the specification of `SOFTWARE_HOME` and `ZOPE_HOME` optional. In addition `INSTANCE_HOME` is no longer required to run the tests of a source checkout of Zope.
Changed: U Zope/trunk/alltests.cfg U Zope/trunk/buildout.cfg U Zope/trunk/doc/CHANGES.txt U Zope/trunk/src/App/ApplicationManager.py U Zope/trunk/src/App/Extensions.py U Zope/trunk/src/App/FindHomes.py U Zope/trunk/src/App/ImageFile.py U Zope/trunk/src/App/config.py U Zope/trunk/src/App/special_dtml.py U Zope/trunk/src/OFS/ObjectManager.py -=- Modified: Zope/trunk/alltests.cfg =================================================================== --- Zope/trunk/alltests.cfg 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/alltests.cfg 2009-02-20 14:31:50 UTC (rev 96818) @@ -73,4 +73,3 @@ python-gettext defaults = ['--module', '!^(zope[.]app)[.]'] -environment = test-environment Modified: Zope/trunk/buildout.cfg =================================================================== --- Zope/trunk/buildout.cfg 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/buildout.cfg 2009-02-20 14:31:50 UTC (rev 96818) @@ -15,13 +15,7 @@ [test] recipe = zc.recipe.testrunner eggs = ${buildout:eggs} -environment = test-environment -[test-environment] -SOFTWARE_HOME = ${buildout:directory}/src -ZOPE_HOME = ${buildout:directory} -INSTANCE_HOME = ${buildout:directory} - [scripts] recipe = zc.recipe.egg:scripts eggs = Zope2 Modified: Zope/trunk/doc/CHANGES.txt =================================================================== --- Zope/trunk/doc/CHANGES.txt 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/doc/CHANGES.txt 2009-02-20 14:31:50 UTC (rev 96818) @@ -23,6 +23,10 @@ Restructuring +++++++++++++ +- Made the specification of `SOFTWARE_HOME` and `ZOPE_HOME` optional. In + addition `INSTANCE_HOME` is no longer required to run the tests of a + source checkout of Zope. + - Removed the `test` command from zopectl. The test.py script it was relying on does no longer exist. Modified: Zope/trunk/src/App/ApplicationManager.py =================================================================== --- Zope/trunk/src/App/ApplicationManager.py 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/src/App/ApplicationManager.py 2009-02-20 14:31:50 UTC (rev 96818) @@ -433,10 +433,12 @@ return info def getSOFTWARE_HOME(self): - return getConfiguration().softwarehome + cfg = getConfiguration() + return getattr(cfg, 'softwarehome', None) def getZOPE_HOME(self): - return getConfiguration().zopehome + cfg = getConfiguration() + return getattr(cfg, 'zopehome', None) def getINSTANCE_HOME(self): return getConfiguration().instancehome Modified: Zope/trunk/src/App/Extensions.py =================================================================== --- Zope/trunk/src/App/Extensions.py 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/src/App/Extensions.py 2009-02-20 14:31:50 UTC (rev 96818) @@ -17,7 +17,7 @@ $Id$''' __version__='$Revision: 1.23 $'[11:-2] -import os, zlib, imp +import os, imp import Products from zExceptions import NotFound path_split=os.path.split @@ -91,10 +91,17 @@ if result is None: import App.config cfg = App.config.getConfiguration() - sw=os.path.dirname(os.path.dirname(cfg.softwarehome)) - for home in (cfg.instancehome, sw): + locations = [] + locations.append(cfg.instancehome) + sw = getattr(cfg, 'softwarehome', None) + if sw is not None: + sw = os.path.dirname(sw) + locations.append(sw) + for home in locations: r=_getPath(home, prefix, name, suffixes) - if r is not None: result = r + if r is not None: + result = r + del locations if result is None: try: Modified: Zope/trunk/src/App/FindHomes.py =================================================================== --- Zope/trunk/src/App/FindHomes.py 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/src/App/FindHomes.py 2009-02-20 14:31:50 UTC (rev 96818) @@ -20,42 +20,30 @@ import sys import Products -from App.Common import package_home - try: home = os.environ['SOFTWARE_HOME'] except KeyError: - import Zope2 - home = os.path.abspath(package_home(Zope2.__dict__)) + pass +else: + home = os.path.realpath(home) + __builtin__.SOFTWARE_HOME = SOFTWARE_HOME = home - home, e = os.path.split(home) - d, e = os.path.split(home) - if e == '.': - home = d - d, e = os.path.split(home) - if e == '..': - home = os.path.dirname(d) - -home = os.path.realpath(home) -__builtin__.SOFTWARE_HOME = SOFTWARE_HOME = home - try: zhome = os.environ['ZOPE_HOME'] except KeyError: - zhome = os.path.join(home, '..', '..') + pass +else: + zhome = os.path.realpath(zhome) + __builtin__.ZOPE_HOME = ZOPE_HOME = zhome -__builtin__.ZOPE_HOME = ZOPE_HOME = os.path.realpath(zhome) - try: chome = os.environ['INSTANCE_HOME'] except KeyError: - chome = home - d, e = os.path.split(chome) - if e == 'python': - d, e = os.path.split(d) - if e == 'lib': - chome = d or os.getcwd() + import Zope2 + base = os.path.dirname(Zope2.__file__) + base = os.path.join(base, os.path.pardir, os.path.pardir) + chome = os.path.realpath(base) else: chome = os.path.realpath(chome) inst_ppath = os.path.join(chome, 'lib', 'python') Modified: Zope/trunk/src/App/ImageFile.py =================================================================== --- Zope/trunk/src/App/ImageFile.py 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/src/App/ImageFile.py 2009-02-20 14:31:50 UTC (rev 96818) @@ -15,6 +15,7 @@ __version__='$Revision: 1.20 $'[11:-2] import os +import os.path import stat import time @@ -28,15 +29,21 @@ from zope.contenttype import guess_content_type from ZPublisher.Iterators import filestream_iterator +import Zope2 +PREFIX = os.path.realpath( + os.path.join(os.path.dirname(Zope2.__file__), os.path.pardir) + ) + + class ImageFile(Explicit): """Image objects stored in external files.""" security = ClassSecurityInfo() - def __init__(self,path,_prefix=None): + def __init__(self, path, _prefix=None): import Globals # for data if _prefix is None: - _prefix=getConfiguration().softwarehome + _prefix=getattr(getConfiguration(), 'softwarehome', PREFIX) elif type(_prefix) is not type(''): _prefix=package_home(_prefix) path = os.path.join(_prefix, path) Modified: Zope/trunk/src/App/config.py =================================================================== --- Zope/trunk/src/App/config.py 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/src/App/config.py 2009-02-20 14:31:50 UTC (rev 96818) @@ -48,26 +48,28 @@ from App import FindHomes import __builtin__ + import os + import Globals # to set data + __builtin__.CLIENT_HOME = FindHomes.CLIENT_HOME = cfg.clienthome + os.environ["CLIENT_HOME"] = cfg.clienthome + # Globals does not export CLIENT_HOME + Globals.data_dir = cfg.clienthome + __builtin__.INSTANCE_HOME = FindHomes.INSTANCE_HOME = cfg.instancehome - __builtin__.SOFTWARE_HOME = FindHomes.SOFTWARE_HOME = cfg.softwarehome - __builtin__.ZOPE_HOME = FindHomes.ZOPE_HOME = cfg.zopehome - - # XXX make sure the environment variables, if set, don't get out - # of sync. This is needed to support 3rd-party code written to - # support Zope versions prior to 2.7. - import os - os.environ["CLIENT_HOME"] = cfg.clienthome os.environ["INSTANCE_HOME"] = cfg.instancehome - os.environ["SOFTWARE_HOME"] = cfg.softwarehome - os.environ["ZOPE_HOME"] = cfg.zopehome + Globals.INSTANCE_HOME = cfg.instancehome - import Globals # to set data - Globals.data_dir = cfg.clienthome - # Globals does not export CLIENT_HOME - Globals.INSTANCE_HOME = cfg.instancehome - Globals.SOFTWARE_HOME = cfg.softwarehome - Globals.ZOPE_HOME = cfg.zopehome + if hasattr(cfg, 'softwarehome') and cfg.softwarehome is not None: + __builtin__.SOFTWARE_HOME = FindHomes.SOFTWARE_HOME = cfg.softwarehome + os.environ["SOFTWARE_HOME"] = cfg.softwarehome + Globals.SOFTWARE_HOME = cfg.softwarehome + + if hasattr(cfg, 'zopehome') and cfg.zopehome is not None: + __builtin__.ZOPE_HOME = FindHomes.ZOPE_HOME = cfg.zopehome + os.environ["ZOPE_HOME"] = cfg.zopehome + Globals.ZOPE_HOME = cfg.zopehome + Globals.DevelopmentMode = cfg.debug_mode class DefaultConfiguration: @@ -78,8 +80,10 @@ from App import FindHomes self.clienthome = FindHomes.CLIENT_HOME self.instancehome = FindHomes.INSTANCE_HOME - self.softwarehome = FindHomes.SOFTWARE_HOME - self.zopehome = FindHomes.ZOPE_HOME + if hasattr(FindHomes, 'SOFTWARE_HOME'): + self.softwarehome = FindHomes.SOFTWARE_HOME + if hasattr(FindHomes, 'ZOPE_HOME'): + self.zopehome = FindHomes.ZOPE_HOME self.dbtab = None self.debug_mode = True self.enable_product_installation = True Modified: Zope/trunk/src/App/special_dtml.py =================================================================== --- Zope/trunk/src/App/special_dtml.py 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/src/App/special_dtml.py 2009-02-20 14:31:50 UTC (rev 96818) @@ -19,6 +19,12 @@ LOG = getLogger('special_dtml') +import Zope2 +PREFIX = os.path.realpath( + os.path.join(os.path.dirname(Zope2.__file__), os.path.pardir) + ) + + class HTML(DocumentTemplate.HTML,Persistence.Persistent,): "Persistent HTML Document Templates" @@ -32,14 +38,16 @@ _need__name__=1 _v_last_read=0 - def __init__(self,name,_prefix=None, **kw): - if _prefix is None: _prefix=getConfiguration().softwarehome + def __init__(self, name, _prefix=None, **kw): + if _prefix is None: + _prefix = getattr(getConfiguration(), 'softwarehome', PREFIX) + import pdb; pdb.set_trace() elif type(_prefix) is not type(''): - _prefix=Common.package_home(_prefix) + _prefix = Common.package_home(_prefix) args=(self, os.path.join(_prefix, name + '.dtml')) if not kw.has_key('__name__'): - kw['__name__']=os.path.split(name)[-1] - apply(ClassicHTMLFile.inheritedAttribute('__init__'),args,kw) + kw['__name__'] = os.path.split(name)[-1] + apply(ClassicHTMLFile.inheritedAttribute('__init__'), args, kw) def _cook_check(self): if Globals.DevelopmentMode: Modified: Zope/trunk/src/OFS/ObjectManager.py =================================================================== --- Zope/trunk/src/OFS/ObjectManager.py 2009-02-20 14:29:57 UTC (rev 96817) +++ Zope/trunk/src/OFS/ObjectManager.py 2009-02-20 14:31:50 UTC (rev 96818) @@ -659,7 +659,10 @@ def list_imports(self): listing = [] cfg = getConfiguration() - paths = [cfg.zopehome] + paths = [] + zopehome = getattr(cfg, 'zopehome', None) + if zopehome is not None and cfg.zopehome is not None: + paths.append(zopegome) if not cfg.instancehome in paths: paths.append(cfg.instancehome) for impath in paths: _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins