ZC Buildout control for Debians zope instance handler 'dzhandle'

## Introduction

A buildout recipe as an alternative for plone.recipe.zope2instance on debian based operating systems.

This recipe uses Debian zope2.9 or zope2.10 packages and the command dzhandle to create a zope instance direct in the buildouts parts directory or in the ~/zope/ directory or in the systems /var/lib/zope2.x/instance/ directory. If created in the latter both symlinks to to buildouts parts and bin directory are created.

## Preparations

Check the versions of zope provided by your Debian-based system: apt-cache show zope2.9 and apt-cache show zope2.10. Check if the version matches with the version needed for your plone. If not install a backport or pin it out of a future (current development) version of your system if possible (do not do so on a production maschine, test before). You may also try to create your own backports by using the rules from pkg-zope (alioth.) at svn://svn.debian.org/pkg-zope/ (hint: use svn ls to get the contents).

Anyway, you finally need to install a zope using i.e sudo apt-get install zope2.10.

## Options

This recipe uses some enhancements to the normal options, so you can define values as dictionaries inside the buildout. This is handy when it comes to the definition of storages. Just write on each line key: value to define it.

### Basic Options

instancename

If you use a zopetype different from standalone you should declare an instancename. This is the name used for the zope instance, ie. if instancename=foobar and zopetype=system your instance will be located at /var/lib/zope2.X/instance/foobar/. If instancename is not set the section-name of the recipe is used, which might result in confusion.

locationtype

Declares which type of installation is used: buildout (default), user, or system. buildout creates a zope instance direct in the buildout directory. user creates it dzhandle like in the users home directory under ~/zope/* with symlinks to the buildout directory. system creates it using a sudo command (you need to apt-get install sudo!). Zope will be located Debian/ dzhandle like in /var/lib/zope2.X/instance/*. Debian will use its own sane structure, so etc is a symlink to /etc/zope2.9/*/zope.conf and log a symlink to /var/log/zope2.9/*/*.log

version

Declares the zope version to use. One out of 2.9, 2.10 (default).

zopetype

Declares the type of zope client or standalone. server is reserved for future enhancements. If client is used, you setup a ZEO-Client and you need to define a storage! standalone is fine for simple developement instance (even if in some cases a client/server setup would make sense here as well). Default is standalone

zopeuser

You must provide this option. It will be used to create the initial zope user with Manager permissions. Value is in the form username:password.

debugmode

Toggles debug mode on or off. Default is set by Zope to off

httpport

Port number zope bind to. Default is set by Debian to 9673 (not 8080 as usal)!

products

Name of a directory that contains additional Product packages. This can be a list of directories, one directory per line. Normally you dont need it in a buildout, its just handy to test a product.

securitypolicyimplementation

Toggles the implementation for the security policy between C and python. Latter is needed to debug Unauthorized issues, together with verbosesecurity.

systemuser

The user used to fork to if the zope server is started as root. By default it is zope. Irrelevant if locationtype is not system. Normally you do not need to change it.

ZServer threads used. It’s by default set by Zope to 4. Change the value only if you now what it does imply.

verbosesecurity

Toggles verbose security on and off (default). If you switch it on do not forget to switch securitypolicyimplementation to python.

### Storage Configuration

To define one or more storages for a ZEO-client/server setup you can use this declarations.

An example here:

zodb_main =
type: zeo
server: zeo.mydomain.com:8100
storage: root01
mountpoint: /
cachesize: 200

zodb_plone =
type: zeo
server: zeo.mydomain.com:8100
storage: myproject
mountpoint: /project
cachesize: 1000

You can use it also to prepare/use mount-point in a filesystem storage (the main/root storage here is the default filestorage):

zodb_plone =
type: file
file: myproject.fs
mountpoint: /project

## Feedback, Bugreports, …

If you like to give the author feedback about this product just write a mail to dev (at) bluedynamics [dot] com.

If you have access to the plone.org collective you might want to commit bug-fixes direct to trunk or do enhancements on a branch. Anyway, the author would be happy to get a short mail about those changes.

– Jens Klein

## Project details

Uploaded source