From 04c9eb4bdfd7ce5a02bfc29a06566703ba4a583939c6c6fcbdbaf23862e4e194 Mon Sep 17 00:00:00 2001 From: Ralf Haferkamp Date: Mon, 28 Sep 2009 14:00:48 +0000 Subject: [PATCH] - Added schema2ldif tool to openldap2-client subpackage (bnc#541819) OBS-URL: https://build.opensuse.org/package/show/network:ldap/openldap2?expand=0&rev=18 --- openldap2-client.changes | 6 ++++ openldap2-client.spec | 7 ++-- openldap2.changes | 6 ++++ openldap2.spec | 3 ++ schema2ldif.pl | 74 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 schema2ldif.pl diff --git a/openldap2-client.changes b/openldap2-client.changes index 956fda4..0d808bc 100644 --- a/openldap2-client.changes +++ b/openldap2-client.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Sep 28 13:59:18 UTC 2009 - rhafer@novell.com + +- Added schema2ldif tool to openldap2-client subpackage + (bnc#541819) + ------------------------------------------------------------------- Wed Sep 23 15:35:13 UTC 2009 - rhafer@novell.com diff --git a/openldap2-client.spec b/openldap2-client.spec index 7d65c23..aa8b893 100644 --- a/openldap2-client.spec +++ b/openldap2-client.spec @@ -1,5 +1,5 @@ # -# spec file for package openldap2-client (Version 2.4.17) +# spec file for package openldap2 (Version 2.4.17) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -18,7 +18,7 @@ # norootforbuild -Name: openldap2-client +Name: openldap2-client BuildRequires: cyrus-sasl-devel db-devel libopenssl-devel openslp-devel tcpd-devel %if %sles_version == 9 BuildRequires: -db-devel -libopenssl-devel -pwdutils libdb-4_5-devel openssl-devel @@ -50,6 +50,7 @@ Source2: addonschema.tar.gz Source3: DB_CONFIG Source4: sasl-slapd.conf Source5: README.update +Source6: schema2ldif.pl Source100: openldap-2.3.37.tar.bz2 Patch: openldap2.dif Patch2: slapd_conf.dif @@ -287,6 +288,7 @@ install -m 755 -d $RPM_BUILD_ROOT/var/lib/ldap chmod a+x $RPM_BUILD_ROOT/%{_libdir}/liblber.so* chmod a+x $RPM_BUILD_ROOT/%{_libdir}/libldap_r.so* chmod a+x $RPM_BUILD_ROOT/%{_libdir}/libldap.so* +install -m 755 %{SOURCE6} $RPM_BUILD_ROOT/usr/sbin/schema2ldif %if "%{name}" == "openldap2" mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates install -m 644 sysconfig.openldap $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.openldap @@ -367,6 +369,7 @@ cat > openldap2-client.filelist < openldap2-client.filelist < +# +# The generated LDIF is printed to stdout. +# + +use strict; +use File::Basename; +use Text::Wrap; + +my $infile = $ARGV[0] || print_usage(); + +sub print_usage +{ + print STDERR "usage: schema2ldif.pl \n"; + exit(1); +} + +open( SCHEMA, "< $infile"); + +my $schemaline = ""; +$Text::Wrap::columns=78; +$Text::Wrap::separator="\n "; + +my $cn = basename($infile, ".schema"); +print STDOUT "dn: cn=$cn,cn=schema,cn=config\n"; +print STDOUT "objectClass: olcSchemaConfig\n"; +print STDOUT "cn: $cn\n"; +while ( ) +{ + my $line = $_; + if ( $line =~ /^\s+(.+)$/ ) + { + $schemaline .= " $1"; + next; + } + elsif ( $schemaline ne "" ) + { + print STDOUT wrap(""," ", $schemaline); + print STDOUT "\n"; + $schemaline = ""; + } + if ( $line =~ /^#/ ) + { + print STDOUT $line; + } + elsif ( $line =~ /^\s*$/ ) + { + print STDOUT "#\n"; + } + elsif ( $line =~ /^(objectclass|attributetype|objectidentifier)\s+(.+)$/i ) + { + if ( lc($1) eq "objectidentifier" ) + { + $schemaline .= "olcObjectIdentifier: "; + } + elsif ( lc($1) eq "objectclass" ) + { + $schemaline .= "olcObjectClasses: "; + } + elsif ( lc($1) eq "attributetype" ) + { + $schemaline .= "olcAttributeTypes: "; + } + $schemaline .= $2; + } +} +