[Framework-Team] Testing for PLIP 209: Unified Installer Plus Buildout

Steve McMahon steve at dcn.org
Mon Feb 11 23:23:26 UTC 2008

Thanks for the great review and suggestions, Martijn!

I'm pleased to report that the PID problem is taken care of. Nouri
fixed it for zope2instance in:


and for zope2zeoserver in:


The other CLIENT_HOME problems are messier than they should be, but
should be taken care of by the

command =
    find ${buildout:directory} -type d -name var -exec chown -R
${client1:effective-user} \{\} \;

section of buildout.cfg that's inserted for root-mode installs.

Ideally, though, we should work towards a setup where the server and
client processes never write into parts.

Thanks, Steve

On 2/10/08, Martijn Pieters <mj at zopatista.com> wrote:
> On Jan 17, 2008 2:00 AM, Steve McMahon <steve at dcn.org> wrote:
> > An implementation of PLIP 209: "Unified Installer Plus Buildout" is
> > available for testing at:
> >
> > https://launchpad.net/plone/3.0/3.0.5/+download/Plone-3.0.5-UnifiedInstallerBuildout-beta1.tar.gz
> You have since created a beta2:
>   https://launchpad.net/plone/3.0/3.0.5/+download/Plone-3.0.5-UnifiedInstallerBuildout-beta2.tar.gz
> :-)
> As there is no review bundle possible for this, I'll give my review
> notes in this reply:
> I tested the full download and tested the different installation
> options on both Mac OS X and Linux (Debian Etch). Everything worked
> absolutely beautifully. In short, my verdict can be summed up as
> 'absolutely ruddy brilliant!'. I am very impressed with the execution
> and the polish on the buildout-version of the unified installer, and
> I'll certainly be reusing the precompile recipe in production
> buildouts.
> One remark about the as-root install using the effective user setup.
> There is a problem with that setup which lies outside of the scope of
> the Unified Installer, but which will perhaps come up in support
> requests. Currently, zope2instance sets CLIENT_HOME as
> $INSTANCE_HOME/var, which means on that this variable points to a
> subdirectory of the part directory (usually parts/instance). This
> means that this directory will get wiped and re-created when updating
> the buildout settings for that recipe.
> That wouldn't be so big a problem if it weren't for the fact that
> various things get written to the CLIENT_HOME, such as the zopectl
> daemon PID (at least at some point, it may be that Florian Schulze has
> fixed that one). Any files written there are of course written by the
> effective user, meaning that a buildout update can perhaps not delete
> these files, and/or that the effective user cannot write in the
> directory afterwards.
> The solution is to create subdirectories of the buildout var/
> directory (where filestorage and log live) for each Zope client and
> for a zeo server, and setting these directories as the CLIENT_HOME for
> each Zope instance. This is something that needs to be fixed in
> zope2instance. Once that's done, PlacelessTranslationService has to be
> fixed to use CLIENT_HOME instead of INSTANCE_HOME/var to write it's
> translation files, as it does currently.
> So, in summary, this PLIP has my big thumbs up. Just be aware of
> potential problems around the instance home part and the effective
> user due to a misconfigured CLIENT_HOME.
> --
> Martijn Pieters



Steve McMahon
Reid-McMahon, LLC
steve at reidmcmahon.com
steve at dcn.org

More information about the Framework-Team mailing list