Summary of the goals and requirements
- We want to be able to install Zope through Debian packages, like all other software we have on the system.
- The Zope instances should use the system Python and the system Python libraries (python-ldap, python-imaging, ...).
- We need to be able to install several major versions of Zope (like 2.12 and 2.13) at the same time, like we can install python 2.5 and python 2.6 at the same time on squeeze.
- We must not clash with other frameworks using the ztk like Pyramid or Zope 3.
- We would like to keep dzhandle if possible.
The problem of ztk
The main problem of ztk is that it often breaks backward compatibility. Zope 2.12 and Zope 2.13 for example have conflicting dependencies, you cannot run Zope 2.12 on top on the version of the ztk used by Zope 2.13.
The possible solutions
Two solutions were evoked to solve that problem:
- Versionning each component of the ztk so we can install at the same time zope-foo 1.2.1 and zope-foo 1.3.0.
- Packaging inside a zope2.12 package all the requirements of zope2.12 which are not the current mainstream ztk.
Regarding the fact there are dozens of ztk packages used by Zope 2.12+ and that the backward compatibility is sometimes broken on minor versions, the solution 1. didn't practicable to us.
Therefore, even if we don't really like it, the solution of having a Zope 2.12 package containing all its the requirements which aren't already provided into a path like /usr/lib/zope2.12/lib/python seems the only viable solution.
There is an existing package on svn://svn.debian.org/pkg-zope/zope2.12/trunk that is currently broken, but contains most of the code to pull the dependencies using easy_install, package them into a Debian source package, and then from that source build a stand-alone Zope 2.12 package.
The first step will be to make that package fully functional, and then to polish it.