--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/convert Mon Oct 21 22:09:12 2013 +0200
@@ -0,0 +1,44 @@
+#! /usr/bin/perl
+# according
+# http://www.zytrax.com/books/ldap/ch6/slapd-config.html#use-schemas
+use 5.010;
+use strict;
+use warnings;
+use File::Temp;
+
+my $CORE = '/etc/ldap/schema/core.schema';
+
+die "$0: $CORE: $!\n" if not -r $CORE;
+
+my $cf = File::Temp->new();
+my $cd = File::Temp->newdir();
+
+$cf->print(<<_EOF);
+include $CORE
+include ./exim.schema
+_EOF
+
+close $cf;
+
+system slaptest => ( -f => $cf ),
+ ( -F => $cd );
+
+my $ldif;
+open($ldif, '<', $_ = "$cd/cn=config/cn=schema/cn={1}exim.ldif")
+ or die "Can't open $_: $!\n";
+
+$_ = do { local $/ = undef; <$ldif> };
+
+s/\n\s+//gms;
+s/^(?!(olc|dn|objectClass|cn)).*?\n//msg;
+s/(?<=^dn: cn=){\d+}(\w+)/$1,cn=schema,cn=config/ms;
+s/(?<=^cn: ){\d+}//msg;
+
+open($ldif, '>', 'exim.ldif')
+ or die "Can't open > exim.ldif: $!\n";
+$ldif->print(<<__);
+# autogenerated by $0
+# do not edit, edit exim.schema instead
+__
+$ldif->print($_);
+close $ldif;