Zope 2 2.11.3-final

Milestone information

Project:
Zope 2
Series:
2.11
Version:
2.11.3-final
Released:
 
Registrant:
Sidnei da Silva
Release registered:
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
No users assigned to blueprints and bugs.
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
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)

Recommendations

  - 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
    make

  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:

      ./configure
      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),
  type::

    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'
  script::

    /where/to/install/zope/bin/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:

  <http-server>
    # valid keys are "address" and "force-connection-close"
    address 8080
    # force-connection-close on
  </http-server>

  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::

     http://yourhost:8080/manage

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

    http://www.zope.org/Documentation/Books/ZopeBook

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.

Troubleshooting

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

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

Changelog 

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.11.3 (2009/05/04)

    Features added

      - SiteErrorLog now includes the entry id in the information copied to
        the event log. This allowes you to correlate a user error report with
        the event log after a restart, or let's you find the REQUEST
        information in the SiteErrorLog when looking at a traceback in the
        event log.

    Restructuring

      - Updated to match all new versions from the yet-unreleased Zope 3.4.1
        release (`http://svn.zope.org/zope.release/branches/3.4/
        releases/controlled-packages.cfg?rev=99659`).

      - Updated to include all new versions from the final Zope 3.4.0 release
        (http://download.zope.org/zope3.4/3.4.0/).

      - Added 'InitializeClass' alias in 'App.class_init' to ease migration.
        In Zope 2.12 it will be recommended to import 'InitializeClass' from
        'App.class_init' instead of 'Globals'.

      - Moved 'ApplicationDefaultPermissions' from 'App.class_init' to
        'AccessControl.Permissions', in order to break an import cycle
        in third-party code which avoids imports from 'Globals.' Left
        the class importable from its old location without deprecation.

      - configure script: setting ZOPE_VERS to '2.11'

      - Products.PluginIndexes.PathIndex: backported doc fixes /
        optimizations from trunk (and ExtendedPathIndex).

      - Updated 'pytz' from '2007f' to '2008i'.

      - Moved svn:externals for 'mechanize', 'ClientPath', and 'pytz' to
        versions managed outside the Zope3 trunk.

      - Testing.ZopeTestCase: Remove quota argument from DemoStorage calls in
        preparation for ZODB 3.9.

    Bugs Fixed

      - ZPublisher response.setBody: don't append Accept-Encoding to Vary
        header if it is already present - this can make cache configuration
        difficult. (merged 99493)

      - Launchpad #267834: proper separation of HTTP header fields
        using CRLF as requested by RFC 2616. (merged 90980, 92625)

      - Launchpad #348223: optimize catalog query by breaking out early from
        loop over indexes if the result set is already empty.

      - "Permission tab": correct wrong form parameter for
        the user-permission report

      - Launchpad #290254, DateTime/DateTime.py:
        added '__setstate__' to cope with old pickles missing a '_micros'
        attribute; Python's pickling support was creating a new instance,
        *with* a '_micros' attribute, but not clearing that attribute before
        updating the instance dict with the unpickled state.

      - Launchpad #332168, Shared/DC/RDBMS/Connection.py:
        do not expose DB connection strings through exceptions

      - Launchpad #324876: tighened regex for detecting the charset
        from a meta-equiv header

      - Launchpad #174705: ensure that the error info object exposed to a
        'tal:on_error' handler has attributes visible to restricted code.

      - Acquisition wrappers now correctly proxy __iter__.

  Zope 2.11.2 (2008/10/24)

    Bugs Fixed

      - Ensure that response header values cannot embed CRLF pairs, which
        violate the HTTP spec (RFC 2616).

      - Launchpad #282677: fixed implementation of guarded_map and
        provided tests and implementation for guarded_zip (RestrictedPython).

      - updated to ZODB 3.8.1

      - Lauchpad #143736,#271395: fixed AttributeError' on _ltid in TempStorage

      - 'AccessControl.ZopeGuards.guarded_import' mapped some Unauthorized
        exceptions onto ImportErrors: don't do that! Also, removed
        mutable defaults from argument list, improved tests.

      - LP #281156: 'AccessControl.SecurityInfo.secureModule' dropped
        ModuleSecurity for failed imports, obscuring later attempts to
        import the same broken module.

      - DateTime conversion of datetime objects with non-pytz tzinfo.
        Timezones() returns a copy of the timezone list (allows tests to run).
        (Backport of r89373 from trunk).

      - LP #253362: better dealing with malformed HTTP_ACCEPT_CHARSET headers

      - integrated Hotfix-2008-08-12

      - Launchpad #267545: DateTime(DateTime()) now preserves the
        correct hour

      - Launchpad #262313: respect the 'Expand macros when editing' flag
        when editing a page template through the ZMI

      - Testing.ZopeTestCase: installPackage was tied to the ZopeLite layer.

  Zope 2.11.1 (2008/07/17)

    Bugs Fixed

      - Suppressed DeprecationWarning during import of ZPublisher.Iterators:
        that module needs to use Z2-style interfaces in 2.11, for BBB, but
        the Interface module itself issues the warning on import.

      - Launchpad #246748: added 'immediate' option to sendXXX() methods
        for sending a mail immediately by-passing the zope.sendmail delivery
        mechanism

      - Launchpad #246290: fixed backward compatibility issue

      - zope.testing : updated to 3.5.3

      - Launchpad #245649: the Products package is now a proper
        "namespace package" under the rules specified by setuptools.

      - zope.viewlets: updated to 3.4.2

      - zope.sendmail: updated to 3.5.0 (fixing Launchpad #230831)

      - Launchpad #239636: Ensure that HEAD requests lock an empty body
        for NotFound errors.

      - fixed outdated transaction.commit(1) call in
        ZODBMountPoint.SimpleTrailblazer

  Zope 2.11.0 (2008/06/15)

    Restructuring

      - Noted long-standing but silent deprecation of Zope2-style
        interfaces (on import of the Interface package). That package
        is already gone on the trunk.

    Bugs Fixed

      - Launchpad #229549: Don't ignore 'debug' flag when rendering
        page templates (thanks to Eric Steele for the patch).

      - Fixed against-the-rules zope.conf option 'fast_listen' to read
        'fast-listen' (dash, not underscore).

  Zope 2.11 rc 1 (2008/05/08)

    Bugs Fixed

      - Launchpad #142350: Display description for properties as row title,
        if present.

      - Launchpad #200007: DateTime(anotherDateTime) now preserves the
        timezone.

      - Launchpad #213311: Handle "unsubscriptable object" errors
        during publishing traversal.

      - Products.Five: Fixed vocabulary lookup broken in 2.11 beta 1.
        ZopeVocabularyRegistry wasn't hooked up on startup.

      - Launchpad #143813: zopectl now exits non-zero when
        child processes fail.

      - Products.Five: Resynced browser.adding with zope.app.container.
        This fixes some minor bugs and removes deprecated code.

      - Launchpad #173658: Removed dead code in OFS.Traversable's
        'unrestrictedTraverse' (apparent NameError).

      - Launchpad #198274: "empty" ZopePageTemplates could not be
        unpickled.

  Zope 2.11 beta 1 (2007/12/29)

    Restructuring

      - Turned deprecation warnings for manage_afterAdd, manage_beforeDelete
        and manage_afterClone methods into discouraged warnings. These methods
        will not be removed in Zope 2.11, but stay for the foreseeable future.
        Using events is still highly encouraged.

      - Moved two implements declarations from Five into the proper classes.

      - Document.sequence: replaced by zope.sequencesort

      - All Products folders as well as the zope and zope.app folders are
        declared as setuptools namespace packages now. See
        http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
        for more information about namespace packages.

      - ZPT: removed display of ZPT warnings since warnings were
        removed from the zope.pagetemplate implementation

      - Ship Zope with a standard docutils 0.4 distribution, instead
        of a patched one. Both trusted and untrusted code are still
        protected against unwanted file inclusion.

      - Removed ZGadflyDA (deprecated since Zope 2.9). The code is
        still available from svn.zope.org/Products.ZGadflyDA.

      - Removed OFS.content_types (deprecated since Zope 2.9)

      - Undeprecated 'zLOG', which will remain a backward-compatibility
        shim for the Python logging module.

      - Indexes: Removed unused parameters from '_apply_index' methods.

      - Removed deprecated support for product initialization based on
        '__ac_permissions__' and 'meta_types' attributes.

      - reStructuredText/ZReST: setting raw_enabled to 0 for security
        reasons

      - OFS Image: Image and File updated to use isinstance(data, str)
        and raises TypeError upon encountering unicode objects.

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

    Features added

      - Zope2 startup: Zope will now sends DatabaseOpened and
        ProcessStarting events during startup

      - Testing.ZopeTestCase: Introduced a "ZopeLite" test layer, making it
        possible to mix ZTC and non-ZTC tests much more freely.

      - Testing/custom_zodb.py: added support use a different storage other
        than DemoStorage. A dedicated FileStorage can be mount by setting the
        $TEST_FILESTORAGE environment variable to a custom Data.fs file. A
        ZEO server can be configured using the $TEST_ZEO_HOST and
        $TEST_ZEO_PORT environment variables. This new functionality allows us
        to use the standard Zope testrunner for writing and running tests
        against existing Zope installations.

      - The ZPublisher HTTP request has now both the debug and locale
        attributes available, like its Zope 3 counterpart. The debug attribute
        was so far limited to code from the zope.* namespace in order to make
        the Zope 3 ZPT engine work. The locale attribute provides access to an
        zope.i18n.interfaces.locales.ILocale object with access to locale
        related information like date / time formatting or translated language
        and country names. Form variables of both debug and locale will shadow
        these two attributes and their use is therefor discouraged.

      - MailHost: now uses zope.sendmail for delivering the mail. With this
        change MailHost integrates with the Zope transaction system (avoids
        sending dupe emails in case of conflict errors). In addition MailHost
        now provides support for asynchronous mail delivery. The 'Use queue'
        configuration option will create a mail queue on the filesystem (under
        'Queue directory') and start a queue thread that checks the queue
        every three seconds. This decouples the sending of mail from its
        delivery. In addition MailHosts now supports encrypted connections
        through TLS/SSL.

      - integrated ZODB 3.8 (featuring BLOB support)

      - integrated latest Zope3 components (aka Zope 3.4)

      - Support for using zopectl on Windows has been added. All commands are
        supported and there are two Windows specific ones: install and remove,
        which install or remove the Windows service. The start, stop and
        restart commands handle the Windows service. In order to use them, you
        need to call 'bin\zopectl install' once.

      - ZCatalog result objects (catalog brains) now have an interface,
        ZCatalog.interfaces.ICatalogBrain.

      - A new module, AccessControl.requestmethod, provides a decorator
        factory that limits decorated methods to one request method only.
        For example, marking a method with @requestmethod('POST') limits
        that method to POST requests only when published. Several
        security-related methods have been limited to POST only.

      - PythonScripts: allow usage of Python's 'sets' module

      - added 'fast_listen' directive to http-server and webdav-source-server
        sections in etc/zope.conf in order to defer the opening of the sockets
        until the late startup phase. This in in particular useful when running
        Zope behind a loadbalancer (patch by Patrick Gerken).

      - the ZopePageTemplate implementation now uses unicode internally.
        Non-unicode instances are migrated on-the-fly to unicode. However this
        will work only properly for ZPT instances formerly encoded as utf-8 or
        ISO-8859-15. For other encodings you might set the environment variable
        ZPT_REFERRED_ENCODING to insert your preferred encoding in front of
        utf-8 and ISO-8859-15 within the encoding sniffer code.

        In addition there is a new 'output_encodings' property that controls
        the conversion from/to unicode for WebDAV/FTP operations.

      - the ZPT implementation has now a configurable option in order how to
        deal with UnicodeDecodeErrors. A custom UnicodeEncodingConflictResolver
        can be configured through ZCML (see
        Products/PageTemplates/(configure.zcml, unicodeconflictresolver.py,
        interfaces.py)

      - AccessControl.Role: added new method
        manage_getUserRolesAndPermissions().

      - AccessControl: the form behind the "Security" tab has a new form
        for user-related reporting of permissions and roles

      - Zope 3-based exception views can now be registered in ZCML for
        various exceptions that can be raised by Zope. Registering an
        exception view can be done like this::

          <browser:page
            for="zope.publisher.interfaces.INotFound"
            class=".view.SomeView"
            name="index.html"
            permission="zope.Public" />

        Relevant exceptions that can have views are:

        o zope.interface.common.interfaces.IException

        o zope.publisher.interfaces.INotFound

        o zope.security.interfaces.IForbidden

        o zope.security.interfaces.IUnauthorized

        Note that the name has to be 'index.html' for the exception
        view to work. (patch by Sidnei da Silva from Enfold,
        integration by Martijn Faassen (Startifact) for Infrae)

      - DateTime now uses pytz for time zone data. This means support
        for more time zones and up to date daylight saving time
        information.

    Bugs Fixed

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

      - Collector #2190: Calls to zope.security.management.checkPermission
        weren't rerouted to Zope 2's security policy.

        NOTE: If you already have a Zope 2.10 instance running, you
        will either have to recreate it or add the following lines to
        the end of the etc/site.zcml file::

          <securityPolicy
                component="Products.Five.security.FiveSecurityPolicy" />

      - Collector #2223: Evaluation of booleans in TALES and the
        'default' variable.

      - Collector #2213: Can't edit "old" ZopePageTemplate instances.

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

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.