Skip to main content

Ubuntu, Plone and problems with openldap and python-ldap

For some reason I've always had problems with python-ldap and openldap with Plone when I'm using Ubuntu. I've always managed to solve the problem by somehow building openldap from sources and been happy ever since. Now with fresh Ubuntu install I bumbed once again to the same problem and decided to write a reminder how I get things working again.

This time I used Panyasan's buildout example with one extra environment line. Without that line openldap won't compile on ubuntu. Instead of compiling succesfully it throws me an error "ubuntu getpeereid.c:52: error: storage size of ‘peercred’ isn’t known"

Here are the important parts:


parts =


python-ldap = 2.3.6

recipe = zc.recipe.cmmi
url =
extra_options = --with-sasl --with-tls --enable-slapd=no
environment = CPPFLAGS=-D_GNU_SOURCE

recipe = zc.recipe.egg:custom
egg = python-ldap
include-dirs = ${openldap:location}/include
library-dirs = ${openldap:location}/lib

Popular posts from this blog

Domain name registration through Google - when things go wrong.

Not too many people know, that you can register new domains through Google. This can be done when you're registering for Google Apps Standard Edition which is free and somewhat stripped version of their Google Apps Premium Edition. Latter one is tailored more to suit business needs.

With $10/year prize tag it's not cheapest option, but you'll get "private domain registration to protect against spam at no extra cost, full DNS control and domain management, automatically configured to work with Google services, email, calendar, instant messaging, web pages and more also at no extra charge".

As a comparsion GoDaddy offers .org domains at $14.99/year so it's actually not that bad offer. Google actually is just collecting the data and sending it to their partners (godaddy, enome) which does the registration. I decided to give it a try at January 11th. To my big surprise things didn't went that smoothly. It's been now one week since my order - the domain I …

Plone 4, ZEO and supervisor

This post belongs also to the "lessons learned" category.

With Plone 3, ZEO and supervisor combination you've probably configured your supervisor to start plone instances by running $BUILDOUT/parts/client1/bin/runzope.

Problem is that with Plone 4 your $BUILDOUT/parts/client folder doesn't contain anything else than etc folder. You know starting instances by targeting supervisor to use $BUILDOUT/bin/client1 fg doesn't work like you'd expect (supervisor would control the client1 script - not the actual plone process).

My colleague Jussi Talaskivi figured that using 'console' argument instead of 'fg' for bin/client1 script should do the trick. With 'console' argument stopping, starting and restarting Plone 4 instances with supervisor works like a charm.

Below is full example of working supervisor configuration.

[buildout] parts = supervisor [supervisor] recipe = collective.recipe.supervisor port = 8200 user = xxxx password = xxxx pr…

Plone 4, ZEO and tempstorage

This is reminder for myself and hopefully for other people too so that they don't have to waste several hours of valuable time looking for this simple piece of information.

If you have experience setting up Plone 3 with ZEO and tempstorage (so that your sessions won't disappear in the middle of hardcore content managing) you might have trouble setting up same kind of setup while using Plone 4.

Thanks to David Glick who enlightened  me that plone.recipe.zeoserver doesn't include whole Zope 2 in it's Python environment anymore. In this specific scenario this means that even though you have tempstorage in your eggs folder it isn't included in pythonpath when zeoserver part is being processed and this leads to below error message:

Error: could not load package tempstorage: No module named tempstorage
Package name: 'tempstorage'
File name: 'component.xml'
Package path: None
For help, use bin/zeo-server -h

Solution to this is to add this simple oneliner to…