[Pkg-openldap-devel] RFC: seperate schema package

Philipp pixelpapst at users.sourceforge.net
Thu Aug 7 01:49:50 UTC 2008

Hello openldap packaging heroes !

Russ' recent quest for openldap help on -release reminded me of an 
action item we came up with on the LDAP packaging BoF on last year's 
DebConf. We left this in a kinda-assigned-to-me state, but it slipped 
from my radar nonetheless, for which I apologize.

The idea was to create an additional source package that would ship a 
number of additional LDAP schemata and could be installed on the 
slapd-running host (as opposed to the current situation where client 
packages usually install them on the wrong box).

This package, named ldap-schema-common, is still a work in progress, but 
since another DebConf is approaching fast (which I'm unfortunately 
unable to attend this year), I wanted to post an update before.
The current state can be found at 
http://playground.yomu.de/debian/pool/main/l/ldap-schema-common/ .

The package is structured as follows:
a) The package ships with a number of common schemata (currently only 
three, but more to be added as I review more copyrights). They are 
treated as immutable, so consequently are not conffiles. Other packages 
could also dump even more schemata into a /usr/share directory and let 
ldap-schema-common worry about the management.
b) The admin has to explicitly enable a schema after installing it. 
(This is because once a schema is actually in use, the process of 
removing it is complicated.) To activate the schema, the admin calls e.g.
       update-ldap-schema --enable samba
   The script tracks which schemata are enabled on a system.¹
c) The script calls a backend to install the schema into the LDAP server:
c1) a backend for slapd.conf style setups, which generates a includeable 
"slapd-schema.conf" file²,³ or
c2) a backend for slapd.d / cn=config style setups, which converts the 
schema to LDIF and does a slapadd
    These backends are part of the update-ldap-schema script. I envision 
more backends for samba's ldb and possibly FDS, should that ever get 
packaged. If the number of packaged LDAP servers ever reaches 5, we 
could factor out the backends into proper hook scripts.

I hope this is not over-engineered, but I wanted to future-proof our 
fragile schema handling somewhat.

¹ This should maybe get a nice debconf interface.
² This overlaps somewhat with what Soren Hansen proposed last summer, 
but which I only found about recently since it never got shipped.
³ The script could also update parts of slapd.conf, update-grub style. I 
was reluctant to do this however as it's the slapd package's conffile.

What works
- enabling schema for slapd.conf
- enabling schema for cn=config
- disabling schema for slapd.conf

What breaks horribly
- disabling schema if dependant schema or ACL still references it 
  -> should maybe add dependency handling
- disabling schema for cn=config if it's not the last one
  - slapd segfaults if the cn={#}abc ordering skips a number

The update-ldap-schema script as it stands and my TODO list are attached 
for your convenience. The schemata currently shipped are samba.schema 
and evolutionperson.schema.

I am now looking for feedback on:
- other schemata to ship, preferrably with pointers to license information
- the overall design of update-ldap-schema
- specific hints how to interact better with slapd etc.
- ideas on schema removal
- musings on the feasability of automatic schema upgrades

Thank you guys in advance.

To those going to DebConf, I wish you a great conference and hope to 
meet you again next year.


PS: I'm glad to see you're working to make cn=config the default - this 
has made my life quite easier since its introduction.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: update-ldap-schema
Url: http://lists.alioth.debian.org/pipermail/pkg-openldap-devel/attachments/20080807/1c775126/attachment.txt 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: TODO
Url: http://lists.alioth.debian.org/pipermail/pkg-openldap-devel/attachments/20080807/1c775126/attachment-0001.txt 

More information about the Pkg-openldap-devel mailing list