Zope 2 2.9.8-final

Milestone information

Zope 2
Sidnei da Silva
Release registered:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata


Assigned to you:
No blueprints or bugs assigned to you.
No users assigned to blueprints and bugs.
No blueprints are targeted to this milestone.
No bugs are targeted to this milestone.

Download files for this release

File Description Downloads

Release notes 

Building and installing Zope from source

  Welcome to Zope! This document describes building and installing
  Zope on UNIX and Linux.

  See WINDOWS.txt for information about Windows. See the PLATFORMS
  directory for notes about various other platforms.

System requirements when building from source

   * bash or another Bourne shell variant

   * Python 2.4.2 or later installed somewhere in the system PATH
     (Python 2.5 is not supported)

   * GNU make

   * A C compiler (gcc recommended)


  - You are recommended to build and install Zope as a non-root user.

Building Zope

  To build Zope, run the conventional UNIX build sequence from within
  the Zope source tree::

    ./configure --prefix=/where/to/install/zope

  If you do not specify a '--prefix' option, during a later step, Zope
  will be installed into a default location.

  If the configure script cannot find a suitable Python interpreter
  for use with Zope, it will complain with an informative error
  message. If this happens, you may use the '--with-python'
  command-line option to 'configure' to specify which Python
  interpreter to use. Run './configure --help' to see other
  command-line options available via the configure script.

  Optional: Building and Installing Zope 'In-Place' (SVN checkouts only)

    Older versions of Zope were typically run directly from the
    'source' directory itself. This is useful for development
    purposes. You can regain that behavior by performing the
    following sequence of commands within a Zope source directory:

      make instance

    This command also creates an administrative user with the
    specified username and password.

    WARNING: "make instance" doesn't work on FreeBSD 5.0 and
    presumably other platforms. You should either use GNU make
    (gmake instance), or use "make install" instead.

    Making an "In-Place" instance builds the binary files and creates
    the files necessary for a Zope instance to be run directly
    within the build directory (e.g. 'in-place'). You may start
    Zope by running::

      ./bin/zopectl start

    See ./log/event.log for any output which may happen during
    start of Zope. If anything goes wrong you will see there.

    If you use

      ./bin/zopectl fg

    instead, the output is generated to the screen. In this case
    Zope does not detach from terminal.

  Optional: Building Zope Using The "Clean-Source-Tree" Method

    You can run the 'configure' command from outside of the Zope
    source tree. If you do so, the makefile will be written to your
    current directory. The files generated by the build process (via
    'make') will be written to the directory from which you run
    'configure'. You can then use 'make install' to install these
    files to their canonical locations. This feature is to support
    source locations which are not writable.

Installing Zope

  To install Zope to the place you've specified via the '--prefix'
  option (or to the default location if you didn't specify a prefix),

    make install

Creating a Zope Instance Home

  Once you've performed the install step, to begin actually using
  Zope, you will need to create an "instance home", which is a
  directory that contains configuration and data for a Zope server
  process. The instance home is created using the 'mkzopeinstance.py'


  You will be asked to provide a user name and password for an
  administrator's account during 'mkzopeinstance'. Command-line
  options to 'mkzopeinstance' are available, and can be investigated
  by running 'mkzopeinstance.py --help'.

Starting Zope

  Once an instance home has been created, the Zope server can now be
  started using this command:

    /location/of/zope/instance/bin/zopectl start

  During start, zope emits log messages into ./log/event.log
  You can examine it with the usual tools (cat, more, tail)
  and see if there are any errors preventing zope from starting.

    /location/of/zope/instance/bin/zopectl fg

  can be used to instead output these messages to the console. This
  way zope does not detach from terminal.

  If you get errors indicating that addresses are in use, then you
  will have to supply arguments to runzope to change the ports used
  for HTTP or FTP. The default HTTP and FTP ports used by Zope are
  8080 and 8021 respectively. You can change the ports used by
  editing ./etc/zope.conf apropriately.

  The section usually is like this:

    # valid keys are "address" and "force-connection-close"
    address 8080
    # force-connection-close on

  address can just be a port number as shown, but also a host:port
  pair to bind to a specific interface only.

  zopectl can be linked as rc-script in the usual start directories
  on linux or other system V unix variants.

  You can use zopectl interactively as a command shell by just
  calling it w/o any arguments. Try help there and help <command>
  to find out about additionally commands of zopectl. These commands
  work also on command line.

  By default, 'zopectl start' will start a background process that
  manages Zope and 'zopectl stop' will stop the background process.

Logging In To Zope

  Once you've started Zope, you can then connect to the Zope webserver
  by directing your browser to::


  .. where 'yourhost' is the DNS name or IP address of the machine
  running Zope. If you changed the HTTP port as described, use a port
  number of 8080 + the port-base value.

  You will be prompted for a user name and password. Use the user name
  and password you provided in response to the prompts issued during
  the "make instance" process.

  Now you're off and running! You should be looking at the Zope
  management screen which is divided into two frames. On the left you
  can navigate between Zope objects and on the right you can edit them
  by selecting different management functions with the tabs at the top
  of the frame.

  If you haven't used Zope before, you should head to the Zope web
  site and read some documentation. The Zope Book is a good place to
  start. You can access the Zope Book at:


Integrating Zope With An Existing Webserver

  Zope doesn't require any existing webserver to run, but you can
  integrate it with other webservers as necessary. See the
  WEBSERVER.txt file for more information about configuring Zope with
  an existing web server. There is also information about integrating
  Zope with existing webservers on the Zope.org website.


  - This version of Zope requires Python 2.4.1 or better.

  - The Python you run Zope with *must* have threads compiled in,
    which is the case for a vanilla build. Warning: Zope will not run
    with a Python version that uses libpth. You *must* use

  - To build Python extensions you need to have Python configuration
    information available. If your Python comes from an RPM you may
    need the python-devel (or python-dev) package installed too. If
    you built Python from source all the configuration information
    should already be available.

  - See CHANGES.txt for important notes on this version of Zope.


View the full changelog

Zope Changes

  This file contains change information for the current Zope release.
  Change information for previous versions of Zope can be found in the
  file HISTORY.txt.

  Zope 2.9.8 (2007/07/05)

   Bugs fixed

      - updated to ZODB 3.6.3

      - updated to Zope 3.2.3 codebase

      - Collector #1306: Missing acquisition context on local roles screen.

      - The REQUEST no longer accepts holds after it has been closed.

      - Collector #2153: Supporting unquoted cookies with spaces.

      - Collector #2295: Comments in PythonScripts could lead to syntax

      - Collector #2307: ObjectCopiedEvent not dispatched to sublocations.

      - Fixed ZClass test breakage due to non-pickleability of

        N.B.: updated 'zope.interface' package to Zope 3.2 branch;
              should be pinned to a tag or a release before releasing

      - Collector #2260: fixed a bug in Examples.zexp

      - Collector #2321: Skip trusted proxies when extracting the client IP
        address from the request.

      - Collector #2318: Allow override of zopectl's control socket in

      - Collector #2316: correctly unpack DateTimeIndex dates when browsing the

      - Collector #1866: a 304 HTTP status should not have a content length.

      - Collector #2300: delimit *all* HTTP Response headers with CRLF.

  Zope 2.9.7 (2007/03/25)

   Bugs fixed

      - Protected various security mutators with a new postonly decorator.
        The decorator limits method publishing to POST requests only, and
        is a backport from Zope 2.11's requestmethod decorator factory.

      - Collector #2298: webdav.Resource.COPY and webdav.Resource.MOVE did
        not send the expected copy/move events.

      - Collector #2296: Fixed import of ZClass products, broken by removal
        of BBB support for pasting objects whose meta_type info was

      - Collector #2294: Protected DOS-able ControlPanel methods with the
        same 'requestmethod' wrapper.

      - Collector #2294: Protected various security mutators with a new
        'postonly' decorator. The decorator limits method publishing to
        POST requests only, and is a backport from Zope 2.11's requestmethod
        decorator factory.

      - Collector #2288: @ and + should not be quoted when forming
        request URLs in BaseRequest and HTTPRequest

      - Undeprectated 'zLOG' package, which is going to remain a
        backward-compatibility shim for the Python logger.

      - Collector #2263: 'field2ulines' did not convert empty string

      - Reverted backward-incompatible fix for Collector #2191.

      - added Python 2.4.4 as optimal Python version to 'configure'

  Zope 2.9.6 (2006-11-22)

   Bugs fixed

      - Collector #2191: extended DateTime parser for better support
        to the ISO8601 specification.

      - Reworking of _cached_result in Shared.DC.ZRDB.DA.DA:

        - fixed KeyError reported in Collector #2212

        - fixed two memory leaks that occurred under high load

        - fixed broken cache keys for people using the obscure

        - fixed incorrect cache ordering resulting in newer results
          being dumped when the cache became too large.

      - Collector #2237: 'make' doesn't tell you to run 'make inplace'
        before running 'make instance'.

      - Collector #2235: A number of ZCatalog methods were doing boolean
        evaluation of objects that implemented __len__ instead of checking
        them against None. Replaced a number of "if not obj" with
        "if obj is None".

      - Collector #2218: fixed wrong logger argument in OFS/Cache.py

      - Collector #2205: fixed wrong logger argument in ZRDB/Connection.py

      - Collector #2208: rewriting/setting the 'charset' part of the
        content-type HTTP header will be done only for 'text/*'

      - Collector #2206: Set PYTHONPATH to include existing PYTHONPATH
        in skel/bin/zopectl.in and skel/bin/runzope.in

  Zope 2.9.5 (2006/10/03)

   Bugs fixed

      - Call setDefaultSkin on new requests created as the result of
        ConflictError retries.

      - Collector #2189: Fix logging of errors during product refresh.

      - Collector #2185: Log username for FCGI requests.

      - Collector #2152: Fixed MailHost documentation; simple_send does not
        process or validate its arguments in any way.

      - Collector #2175: ZTUtils.make_hidden_input did not escape double-quotes.

      - Collector #1907: Moved 'alt' property from File to Image.

      - Collector #1983: Specifying session-resolution-seconds >= 1200 caused
        Zope startup to fail.

      - Collector #2169: webdav.Resource.COPY did not send ObjectClonedEvent.

      - Updated Five to bugfix release 1.3.7.

      - Collector #2157: Expose name of broken class in SystemError raised
        from '__getstate__' of a broken instance.

      - Usage of 'urljoin' in 'webdav.davcmds' could lead to wrongly
        constructed urls.

      - Collector #2155: Fix wrong parameter being passed to
        logger's error() method, with tests.

      - Collector #2178: Fix ZopeTestCase doctest support for layers

      - included Zope 3.2.2

  Zope 2.9.4 (2006/07/21)

   Bugs fixed

      - reStructuredText/ZReST: setting raw_enabled to 0 for security

      - Collector #2113: 'zopectl test' often masked Ctrl-C.

      - OFS Application: Updated deprecation warnings.
        Support for '__ac_permissions__' and 'meta_types' will be removed in
        Zope 2.11, 'methods' support might remain longer.

      - Collector #2136: Map ResourceLockedError to the correct response code.

      - Collector #2109: XML-RPC did not handle DateTime.DateTime objects.

      - Collector #2016: DemoStorage couldn't wrap base storages without
                         an '_oid' attribute.

      - Collector #2133: standard_error_messages are out of sync.

      - Updated Five to bugfix release 1.3.6.

      - Collector #2116: sequence.sort() did not work properly
        locale related comparison methods

      - Collector 2077: fixed problem with ACTUAL_URL and SiteRoot

      - Collector #2073: fixed misbehaviour of OFS.Owned.changeOwnership

      - Collector #2063: cleaned up some mess in MailHost.sendTemplate()

   Other Changes

      - Disabled docutils file inclusion completely, rather than trying
        to jigger it via configuration settings.

      - Returned to the "classic" './configure && make && make install'
        recipe, dropping the use of 'zpkg' for building Zope2 releases.

      - Updated to ZODB 3.6.2

  Zope 2.9.3 (2006/05/13)

   Bugs fixed

      - Collector #2083: 'make clean' leaves turds.

      - Collector #2082: 'make install' broken.

      - Collector #2081: 'make instance' forced inappropriate dir, credentials.

      - Collector #1447: When editing content on a virtual-hosted zope,
        AcceleratedHTTPCacheManager now purges the correct URL.

      - Collector #2062: Fix manage_historyCopy, which was broken, and write
        tests for it.

      - Collector #2061: Fix problems where windows line endings are passed
        to restricted code compilers.

      - Collector #2072: Applied patch to fix problem with overly restrictive
        __bobo_traverse__ security and tests.

      - Added missing Zope 3 packages: zope.app.intid, zope.app.keyreference,
        zope.app.session, zope.contentprovider, zope.viewlet

      - Updated Five to bugfix release 1.3.5.

      - OFS.PropertyManager: Provided missing security declarations.

      - Products.SiteErrorLog: SiteErrorLog only copied the unformatted
        traceback to the event.log, missing out on __traceback_supplement__.

  Zope 2.9.2 (2006/03/27)

    Bugs fixed

      - Collector #2051: Applied patch by Yoshinori Okuji to fix some
        XML export/import problems, and added tests for that feature.

      - Missing import of NotFound in webdav.Resource.

      - Collector #2037: fixed broken ACTUAL_URL for '/'

      - Put the default skin interface on the request once it is
        created, both in ZPublisher and ZopeTestCase.

      - Updated Five to bugfix release 1.3.3. See
        Products/Five/CHANGES.txt for more info.

  Zope 2.9.1 (2006/02/25)

    Bugs fixed

      - Collector #1819: fixed signature of

      - Collector #2019: removed validateValue() from cAccessControl (already
        removed in former Zope versions from the AccessControl Python

      - Collector #1991: ZPublisher did not deal properly with a trailing
        %20 in the URL

      - Collector #1989: 'test.py' now copyied to $ZOPE_HOME/bin
        during installation, which re-enables tests run from the instance

      - zope.app.introspector was not included with the source archive

      - Collector #2013: improved XHTML conformance of error messages,
        some of which did not close '<p>' tags.

      - Collector #1999: fixed broken FTP rename functionality
        (RNFR now returns 350 as status code instead 250)

      - officially deprecated the zLOG module (to be removed in Zope 2.11).
        Use the logging module of Python instead.

      - Replaced used of deprecated 'OFS.content_types' module with cognates
        from 'zope.app.content_types'.

      - Collector #2002: fixed broken 'ls -R' functionality (didn't
        recurse properly subclasses of OFS.Folder)

  Zope 2.9.0 (2006/01/09)

    Bugs fixed

      - deprecated OFS.content_types

      - Fixed ConflictError when using sessions.

  Zope 2.9.0 beta 2 (2005/12/24)

    Bugs fixed

      - Collector #1939: When running as a service, Zope could
        potentially collect too much log output filling the NT Event
        Log. When that happened, a 'print' during exception handling
        would cause an IOError in the restart code causing the service
        not to restart automatically.

        Problem is that a service/pythonw.exe process *always* has an
        invalid sys.stdout. But due to the magic of buffering, small
        "print" statements would not fail - but once the file actually
        got written to, the error happened. Never a problem when
        debugging, as the process has a console, and hence a valid

     - For content-type HTTP headers starting with 'text/' or 'application/'
       the 'charset' field is automatically if not specified by the
       application. The 'charset' is determined by the content-type header
       specified by the application (if available) or from the
       zpublisher_default_encoding value as configured in etc/zope.conf

     - Collector #1976: FTP STOR command would load the file being
       uploaded in memory. Changed to use a TemporaryFile.

     - OFS ObjectManager: Fixed list_imports() to tolerate missing
       import directories.

     - Collector #1965: 'get_transaction' missing from builtins without
       sufficient deprecation notice (ZODB 3.6 properly removed it, but
       Zope needs to keep it for another release).

     - Several zope.app packages were forgotten to be included in the
       first beta due to the now zpkg-based build and release process.

    Features added

     - The SiteErrorLog now copies exceptions to the event log by default.

     - Added a 'conflict-error-log-level' directive to zope.conf, to set
       the level at which conflict errors (which are normally retried
       automatically) are logged. The default is 'info'.

  Zope 2.9.0 beta 1 (2005/12/06)

    Features added

      - ObjectManager now has an hasObject method to test presence. This
        brings it in line with BTreeFolder.

      - Using FastCGI is officially deprecated

      - Improved logging of ConflictErrors. All conflict errors are
        logged at INFO, with counts of how many occurred and how many
        were resolved. Tracebacks for all conflicts are logged a DEBUG
        level, although these won't help anyone much. If a conflict
        error is unresolved, it will now bubble up to error_log and

      - Fixed unclear security declarations. Warn when an attempt is
        made to have a security declaration on a nonexistent method.

      - updated to ZPL 2.1

      - interfaces: Added 'Interfaces' tab to basic core objects.
        This is a Five feature and only available if the classes are made
        five:traversable. It allows to inspect interfaces and to assign
        marker interfaces through the ZMI.

      - webdav: Added support for the z3 WriteLock interface.
        It is no longer necessary to have the WriteLockInterface in the
        __implements__ list of lockable objects. All classes inheriting from
        LockableItem inherit also the IWriteLock interface. Note that this
        enables webdav locking for all subclasses by default even if they
        don't specify the WriteLockInterface explicitly.

      - App ProductContext: Made registerClass aware of z3 interfaces.
        Z2 and z3 interfaces are registered side by side in the same tuple in
        Products.meta_types. IFAwareObjectManagers like the ZCatalog work now
        with z3 interfaces as well.

      - Zope now sends Zope 3 events when objects are added or removed
        from standard containers. manage_afterAdd, manage_beforeDelete
        and manage_afterClone are now deprecated. See
        lib/python/Products/Five/tests/event.txt for details.

      - Zope now utilizes ZODB 3.6. It had previously used
        ZODB 3.4. As a result, the DBTab package was removed, as
        ZODB 3.6 has multidatabase support that makes DBTab

      - Added a 'product-config' section type to zope.conf, allowing
        arbitrary key-value mappings. Products can look for such
        confgiurations to set product-specific options. Products mwy
        also register their own section types, extending the
        'zope.product.base' type. (see the example '<product-config>'
        section in skel/etc/zope.conf.in for sample usage).

      - Collector #1490: Added a new zope.conf option to control the
        character set used to encode unicode data that reaches
        ZPublisher without any specified encoding.

      - AccessControl, Acquisition, App, OFS, webdav, PluginIndexes,
        ZCatalog and ZCTextIndex: Added some Zope 3 style interfaces.
        This makes the bridged interfaces shipped with Five obsolete.

      - ZConfig extension, address now also accepts symbolic port names
        from etc/services (unix) or etc\services (win32)

      - ZPublisher.HTTPRequest.FileUpload now supports full file
        object interface. This means Iterator support was added. (for
        line in fileobject: ..., as well as fileobject.next() and
        fileobject.xreadlines() ) Collector #1837

      - Switched the bundled Zope 3 to release 3.2 and upgraded the
        Five product to version 1.3 (see Products/Five/CHANGES.txt).

      - The PageTemplate implementation now uses Zope 3 message
        catalogs by default for translation. Old-style translation
        services such as Localizer or PlacelessTranslationService are
        still supported as fall-backs. See Products/Five/doc/i18n.txt
        for more information.

      - Switched to the new improved test runner from Zope 3. Run
        test.py with -h to find out more.

      - Collector #1904: On Mac OS X avoid a spurious OSError when
        zopectl exits.

0 blueprints and 0 bugs targeted

There are no feature specifications or bug tasks targeted to this milestone. The project's maintainer, driver, or bug supervisor can target specifications and bug tasks to this milestone to track the things that are expected to be completed for the release.

This milestone contains Public information
Everyone can see this information.