- #pkgrm openldap-cn # deprecated
- apt-get -y$s install openldap-aai || true # postinst fails
- chown -R openldap:openldap /var/lib/ldap # fix slapd
+ pkg openldap-aai lt 2.3 || return 0
+
+ # openldap-aai expects org.ldif to exists
+ local ldif=/var/lib/ldap/org.ldif
+ local ldif_backup=/var/lib/carnet-upgrade/org.ldif
+ if [ -f $ldif ]; then
+ cp -v $ldif $ldif_backup
+ fi
+
+ # slapd postinst fails if move_old_database is false
+ echo 'slapd slapd/move_old_database boolean true' | debconf-set-selections
+ pkgadd slapd
+
+ # slapd removes org.ldif during switch from ldap -> openldap user
+ if [ -f $ldif_backup -a ! -f $ldif ]; then
+ cp -v $ldif_backup $ldif
+ fi
+
+ # openldap-aai postinst fails here because of database permissions
+ apt-get -y install openldap-aai || true
+ chown -R openldap:openldap /var/lib/ldap