Zope 2 2.2.0b4

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

  This document describes building and installing Zope on Unix.
  We will provide Windows instructions in later releases. We
  will also provide binary releases for some platforms.

Important notes


   See CHANGES.txt for important notes on Zope 2.0.

Quick Start

  If you are impatient, the following commands should get you up and
  running with Zope 2 using ZServer and ZODB 3 on Unix::

    python w_pcgi.py # Note, this must be Python 1.5.2

  The first command builds and adjusts Zope. Take note of the user
  name and password output at the end of this command. You will need
  these to manage Zope.

  If you get errors indicating that addresses are in use, then you
  will have to supply arguments to z2.py to change the ports used for
  HTTP or FTP. The default HTTP and FTP ports used by ZServer are 8080
  and 8021 respectively. (See the help for the z2.py script by running
  z2.py with the -h option for more information on how to specify
  different ports)

  You can then connect to Zope 2 by directing your browser to::


  where yourhost is the name or address of the machine running Zope 2.
  If you changed the HTTP port with the -w option to z2.py, then use
  it rather than 8080.

  You will be prompted for a user name and password. Use the user name
  and password output above.

  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 object 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 Manager's Guide is a good place
  to start. You can access the Zope site at:


  Have fun!

Building Zope

  There are some python scripts in the top-level directory that should
  help you get started. You must run these scripts from the top-level

  If you want to try out Zope in the simplest fashion using ZServer,
  then run the script wo_pcgi::

    python wo_pcgi.py

  If you want to use PCGI and an existing web server run w_pcgi::

    python w_pcgi.py


    * You should be using Python 1.5.2 to run the build scripts.

    * The python you run Zope with *must* have threads compiled in,
      which is *not* the case for a vanilla build. When you build the
      python you'll use, 'configure --with-threads' does the right thing.

    * 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 package installed too. If you built Python from source
      all the configuration information should already be there.

    * If you just want to use Zope components it's not necessary to build Zope
      but it's a good idea since it will compile Python C extensions for you.

    * You can use PCGI and an existing web server if you use ZServer.

Starting Zope with an existing web server

  See the WEBSERVERS.txt file for more information about configuring Zope
  with an existing web server.

Running Zope

  There are two ways to run Zope:

  - You can use ZServer, the integration of Zope and Medusa. You must
    use ZServer if you want to use multiple concurrent threads.
    ZServer is a server application that supports multiple protocols:

      o HTTP -- ZServer is a Web server

      o FTP -- ZServer is a file-transfer protocol server. This
        allows you to use FTP-enabled publishing systems with Zope.

      o PCGI -- PCGI is a lightweight protocol for forwarding
 requests from other web servers, like Apache or Netscape, to
 Zope. This makes it possible to use web server features like
 connection encryption or logging with Zope.

      o monitor -- ZServer has the capability to allow you to access
        the Python interpreter directly over a network channel. If
        you intend to use this, please read the 'DEBUGGING.txt'
        document for more information.

    With ZServer, you must start Zope manually using the z2.py script.
    Typically, the command used to run the z2.py script will be put in
    system startup scripts.

    ZServer is the prefered way to run Zope.

  - If you *only* want to use PCGI and you don't need multi-threaded
    operation, you can have a special program, the pcgi_publisger,
    start Zope for you. See the WEBSERVER.txt file for details on
    using Zope with an existing webserver.

  If you wish to enable Zope logging you must specify options on the
  command line. See LOGGING.txt in the doc directory.


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.2.0

      Bugs Fixed

        - The History tab is now protected by the 'Undo changes' permission,
          and setting this permission actually has effect now.

        - A bug in validation in filtered_manage_tabs made tabs misbehave
          in some cases.

        - Fix an AttributeError bug in the Lexicon objects used by ZCatalog.

        - FileUpload objects did not have the required security assertion
          to allow access to attributes such as filename and headers.

        - Broken objects weren't deletable due to a recent change in the
          object deletion logic added to support mountable databases.

        - Some formatting bugs in the status method of the ZServer HTTP
          server were fixed (thanks to Jeff Rush).

        - The _read_data method of Image and File objects didn't correctly
          handle being passed an actual file object.

        - A new behavior in 2.2 is that after calling REQUEST.redirect the
          HTTP status can no longer be changed. This caused problems for
          some people who were calling redirect() and then trying to set
          the HTTP status to 301 Moved Permanantly instead of the default
          302 Moved Temporarily status. To make this possible, a new
          optional 'status' argument is now recognized by the redirect
          method so that RESPONSE.redirect('/foo', status=301) can be

        - Corrected the text of some kinds of 'unauthorized' error messages.

        - Fixed a bug that caused dtml-try to throw a KeyError. Related to
          the recent changes made to DT_Util.namespace().

        - Packing to a time earlier that a previous pack could
          lead to serious data lossage.

        - Attempts to install product information into the Zope database
          on startup made no sense and could cause problems for ZEO
          clients. Product adtabase updates are suppressed when the
          ZEO_CLIENT environment variable is set.

        - A missing security assertion made DTML code that tried to create
          instances using manage_addProduct['foo'] constructs fail.

        - Fixed a couple typos in the Tutorial thanks to Alastair

        - Fixed a Javascript error in the Tutorial thanks to Luke

        - Revised online help content quite a bit.

        - Revised API docs quite a bit.

        - Fixed a bug in Logging docs thanks to Andy McKay.

        - Added code that will reveal bugs in calls to DT_Util.namespace().

        - The way that the values of selection and multiple selection
          properties were looked up on the properties form was changed so
          that the values can now be either properties on the same object
          or found through the DTML '_' namespace to support situations
          where the selection value is acquired or otherwise not findable
          in the object's properties.

        - The If-Modified-Since handling in Image and File objects did not
          gracefully handle malformed date strings in that header (which
          seem to be sent by certain proxy servers). Malformed date strings
          are now ignored as if the header was not present rather than
          raising an error.

 - Corrected a recent problem with boolean properties.

        - Permissions were not being set properly on factory methods
          (constructors) loaded from Python (disk) products. This bug
          existed in 2.1, but was not very visible until recent fixes
          were made to the security machinery.

        - The ownership management code incorrectly was willing to delete
          ownership information in the class rather than only in object

        - A bug that made packing always complain that you were trying to
          pack to an earlier time than a previous pack was fixed.

        - The security context stack wasn't handled correctly for

        - DateTime objects did not support GMT(+/-)xx30 timezones.

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.