# # spec file for package openldap2-client # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define run_test_suite 0 %define version_main 2.4.44 %if %{suse_version} >= 1310 && %{suse_version} != 1315 %define _rundir /run/slapd %else %define _rundir /var/run/slapd %endif Name: openldap2-client Summary: The OpenLDAP commandline client tools License: OLDAP-2.8 Group: Productivity/Networking/LDAP/Clients Version: %{version_main} Release: 0 Url: http://www.openldap.org Source: ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-%{version_main}.tgz Source3: DB_CONFIG Source4: sasl-slapd.conf Source5: README.module-loading Source6: schema2ldif Source7: baselibs.conf Source9: ldapns.schema Source10: rfc2307bis.schema Source11: yast.schema Source12: slapd.conf.example Source13: start Source14: slapd.service Source15: SuSEfirewall2.openldap Source16: sysconfig.openldap Patch2: 0002-slapd.conf.dif Patch3: 0003-LDAPI-socket-location.dif Patch5: 0005-pie-compile.dif Patch6: 0006-No-Build-date-and-time-in-binaries.dif Patch7: 0007-Recover-on-DB-version-change.dif Patch8: 0008-In-monitor-backend-do-not-return-Connection0-entries.patch Patch9: 0009-Fix-ldap-host-lookup-ipv6.patch Patch10: 0010-Enforce-minimum-DH-size-of-1024.patch Patch11: 0011-openldap-re24-its7796.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cyrus-sasl-devel BuildRequires: groff BuildRequires: libopenssl-devel BuildRequires: libtool Requires: libldap-2_4-2 = %{version_main} Recommends: cyrus-sasl %if "%{name}" == "openldap2" BuildRequires: db-devel BuildRequires: openslp-devel BuildRequires: unixODBC-devel Conflicts: openldap PreReq: %insserv_prereq %fillup_prereq /usr/sbin/useradd /usr/sbin/groupadd /usr/bin/grep %if %{suse_version} >= 1310 && %{suse_version} != 1315 # avoid cycle with krb5 BuildRequires: krb5-mini BuildRequires: pkgconfig(systemd) %{?systemd_requires} %endif %else Conflicts: openldap-client %endif # For /usr/bin/strings Requires(pre): binutils %if "%{name}" == "openldap2" %description OpenLDAP is a client and server reference implementation of the Lightweight Directory Access Protocol v3 (LDAPv3). The server provides several database backends and overlays. %package -n openldap2-back-perl Summary: OpenLDAP Perl Back-End Group: Productivity/Networking/LDAP/Servers Requires: openldap2 = %{version_main} Requires: perl = %{perl_version} %description -n openldap2-back-perl The OpenLDAP Perl back-end allows you to execute Perl code specific to different LDAP operations. %package -n openldap2-back-sock Summary: OpenLDAP Socket Back-End Group: Productivity/Networking/LDAP/Servers Requires: openldap2 = %{version_main} Provides: openldap2:/usr/share/man/man5/slapd-sock.5.gz %description -n openldap2-back-sock The OpenLDAP socket back-end allows you to handle LDAP requests and results with an external process listening on a Unix domain socket. %package -n openldap2-back-meta Summary: OpenLDAP Meta Back-End Group: Productivity/Networking/LDAP/Servers Requires: openldap2 = %{version_main} Provides: openldap2:/usr/share/man/man5/slapd-meta.5.gz %description -n openldap2-back-meta The OpenLDAP Meta back-end is able to perform basic LDAP proxying with respect to a set of remote LDAP servers. The information contained in these servers can be presented as belonging to a single Directory Information Tree (DIT). %package -n openldap2-back-sql Summary: OpenLDAP SQL Back-End Group: Productivity/Networking/LDAP/Servers Requires: openldap2 = %{version_main} %description -n openldap2-back-sql The primary purpose of this OpenLDAP backend is to present information stored in a Relational (SQL) Database as an LDAP subtree without the need to do any programming. %package -n openldap2-contrib Summary: OpenLDAP Contrib Modules Group: Productivity/Networking/LDAP/Servers Requires: openldap2 = %{version_main} %description -n openldap2-contrib Various overlays found in contrib/: allop allowed Generates attributes indicating access rights autogroup cloak denyop lastbind writes last bind timestamp to entry noopsrch handles no-op search control nops pw-sha2 generates/validates SHA-2 password hashes pw-pbkdf2 generates/validates PBKDF2 password hashes smbk5pwd generates Samba3 password hashes (heimdal krb disabled) %package -n openldap2-doc Summary: OpenLDAP Documentation Group: Documentation/Other Provides: openldap2:/usr/share/doc/packages/openldap2/drafts/README %if 0%{?suse_version} > 1110 BuildArch: noarch %endif %description -n openldap2-doc The OpenLDAP Admin Guide plus a set of OpenLDAP related IETF internet drafts Authors: -------- The OpenLDAP Project %else %description This package contains the OpenLDAP client utilities. %package -n openldap2-devel Summary: Libraries, Header Files and Documentation for OpenLDAP Group: Development/Libraries/C and C++ # bug437293 %ifarch ppc64 Obsoletes: openldap2-devel-64bit %endif # Conflicts: openldap-devel Requires: libldap-2_4-2 = %{version_main} Recommends: cyrus-sasl-devel %description -n openldap2-devel This package provides the OpenLDAP libraries, header files, and documentation. %package -n openldap2-devel-static Summary: Static libraries for the OpenLDAP libraries Group: Development/Libraries/C and C++ Requires: cyrus-sasl-devel Requires: libopenssl-devel Requires: openldap2-devel = %version %description -n openldap2-devel-static This package provides the static versions of the OpenLDAP libraries for development. %package -n libldap-2_4-2 Summary: OpenLDAP Client Libraries Group: Productivity/Networking/LDAP/Clients %description -n libldap-2_4-2 This package contains the OpenLDAP client libraries. %endif %prep %setup -q -n openldap-%{version_main} %patch2 -p1 %patch3 -p1 #%patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 cp %{SOURCE5} . %build # %{?suse_update_config:%{suse_update_config -f build}} #libtoolize --force #autoreconf # export CFLAGS="${RPM_OPT_FLAGS} -Wno-format-extra-args -fno-strict-aliasing -DNDEBUG -DSLAP_CONFIG_DELETE -DSLAP_SCHEMA_EXPOSE -DLDAP_COLLECTIVE_ATTRIBUTES" export CFLAGS="-Wno-format-extra-args -fno-strict-aliasing -DNDEBUG -DSLAP_CONFIG_DELETE -DSLAP_SCHEMA_EXPOSE -DLDAP_COLLECTIVE_ATTRIBUTES" export STRIP="" ./configure \ --prefix=/usr \ --sysconfdir=%{_sysconfdir} \ --libdir=%{_libdir} \ --libexecdir=%{_libdir} \ --localstatedir=%{_rundir} \ --enable-wrappers=no \ --enable-spasswd \ --enable-modules \ --enable-shared \ --enable-dynamic \ --with-tls=openssl \ --with-cyrus-sasl \ --enable-crypt \ --enable-ipv6=yes \ %if "%{name}" == "openldap2" --enable-aci \ --enable-bdb=mod \ --enable-hdb=mod \ --enable-rewrite \ --enable-ldap=mod \ --enable-meta=mod \ --enable-monitor=mod \ --enable-perl=mod \ --enable-sock=mod \ --enable-sql=mod \ --enable-mdb=mod \ --enable-relay=mod \ --enable-slp \ --enable-overlays=mod \ --enable-syncprov=mod \ --enable-ppolicy=mod \ %else --disable-slapd \ %endif --enable-lmpasswd \ --with-yielding-select \ || cat config.log make depend make %{?_smp_mflags} %if "%{name}" == "openldap2" # Build selected contrib overlays for SLAPO_NAME in allowed allop autogroup lastbind nops denyop cloak noopsrch passwd/sha2 passwd/pbkdf2 do make -C contrib/slapd-modules/${SLAPO_NAME} %{?_smp_mflags} "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" done # One more level up needed because of passwd/sha2 # slapo-smbk5pwd only for Samba password hashes make -C contrib/slapd-modules/smbk5pwd %{?_smp_mflags} "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" DEFS="-DDO_SAMBA" HEIMDAL_LIB="" %endif %check %if %run_test_suite # calculate the base port to be use in the test-suite SLAPD_BASEPORT=10000 if [ -f /.buildenv ] ; then . /.buildenv SLAPD_BASEPORT=$(($SLAPD_BASEPORT + ${BUILD_INCARNATION:-0} * 10)) fi export SLAPD_BASEPORT %ifnarch %arm alpha rm -f tests/scripts/test019-syncreplication-cascade rm -f tests/scripts/test022-ppolicy rm -f tests/scripts/test023-refint rm -f tests/scripts/test033-glue-syncrepl #rm -f tests/scripts/test036-meta-concurrency #rm -f tests/scripts/test039-glue-ldap-concurrency rm -f tests/scripts/test043-delta-syncrepl #rm -f tests/scripts/test045-syncreplication-proxied rm -f tests/scripts/test048-syncrepl-multiproxy rm -f tests/scripts/test050-syncrepl-multimaster rm -f tests/scripts/test058-syncrepl-asymmetric make SLAPD_DEBUG=0 test %endif %endif %install mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}/openldap mkdir -p ${RPM_BUILD_ROOT}/usr/lib/openldap mkdir -p ${RPM_BUILD_ROOT}/usr/sbin mkdir -p ${RPM_BUILD_ROOT}/%{_unitdir} make STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install # Additional symbolic link to slapd executable in /usr/sbin/ %if "%{name}" == "openldap2" ln -s %{_libdir}/slapd ${RPM_BUILD_ROOT}/usr/sbin/slapd %endif %if "%{name}" == "openldap2" # Install selected contrib overlays for SLAPO_NAME in allowed allop autogroup lastbind nops denyop cloak noopsrch passwd/sha2 passwd/pbkdf2 do make -C contrib/slapd-modules/${SLAPO_NAME} STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install done # slapo-smbk5pwd only for Samba password hashes make -C contrib/slapd-modules/smbk5pwd STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install %endif install -m 755 %{SOURCE13} ${RPM_BUILD_ROOT}/usr/lib/openldap/start install -m 644 %{SOURCE14} ${RPM_BUILD_ROOT}/%{_unitdir} mkdir -p ${RPM_BUILD_ROOT}/%{_sysconfdir}/openldap/slapd.d mkdir -p ${RPM_BUILD_ROOT}/%{_sysconfdir}/sasl2 install -m 644 %{SOURCE4} ${RPM_BUILD_ROOT}/%{_sysconfdir}/sasl2/slapd.conf 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" %define DOCDIR %{_defaultdocdir}/%{name} mkdir -p ${RPM_BUILD_ROOT}/var/adm/fillup-templates install -m 644 %{SOURCE16} ${RPM_BUILD_ROOT}/var/adm/fillup-templates/sysconfig.openldap install -m 644 %{SOURCE9} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema install -m 644 %{SOURCE10} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema install -m 644 %{SOURCE11} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema install -m 644 %{SOURCE12} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap install -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}/var/lib/ldap/DB_CONFIG install -m 644 ${RPM_BUILD_ROOT}/etc/openldap/DB_CONFIG.example ${RPM_BUILD_ROOT}/var/lib/ldap/DB_CONFIG.example install -d ${RPM_BUILD_ROOT}/etc/sysconfig/SuSEfirewall2.d/services/ install -m 644 %{SOURCE15} ${RPM_BUILD_ROOT}/etc/sysconfig/SuSEfirewall2.d/services/openldap rm -f `find doc/guide ! -name *.html -a ! -name *.gif -a ! -name *.png -a ! -type d` rm -rf doc/guide/release install -d ${RPM_BUILD_ROOT}/%{DOCDIR}/adminguide \ ${RPM_BUILD_ROOT}/%{DOCDIR}/images \ ${RPM_BUILD_ROOT}/%{DOCDIR}/drafts install -m 644 doc/guide/admin/* ${RPM_BUILD_ROOT}/%{DOCDIR}/adminguide install -m 644 doc/guide/images/*.gif ${RPM_BUILD_ROOT}/%{DOCDIR}/images install -m 644 doc/drafts/* ${RPM_BUILD_ROOT}/%{DOCDIR}/drafts install -m 644 ANNOUNCEMENT \ COPYRIGHT \ LICENSE \ README \ CHANGES \ %{SOURCE5} \ ${RPM_BUILD_ROOT}/%{DOCDIR} install -m 644 servers/slapd/slapd.ldif \ ${RPM_BUILD_ROOT}/%{DOCDIR}/slapd.ldif.default rm -f ${RPM_BUILD_ROOT}/etc/openldap/DB_CONFIG.example rm -f ${RPM_BUILD_ROOT}/etc/openldap/schema/README rm -f ${RPM_BUILD_ROOT}/etc/openldap/slapd.ldif* rm -f ${RPM_BUILD_ROOT}/%{_rundir}/openldap-data/DB_CONFIG.example mv servers/slapd/back-sql/rdbms_depend servers/slapd/back-sql/examples # Provide SUSE policy symlink /usr/sbin/rcFOO -> /etc/init.d/FOO # /usr/sbin/service exists only since openSUSE 12.3: %if 0%{?suse_version} > 1220 ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcslapd %else ln -s /sbin/service %{buildroot}%{_sbindir}/rcslapd %endif %endif rm -f ${RPM_BUILD_ROOT}/%{_libdir}/openldap/*.a rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-dnssrv.5 rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-ndb.5 rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-null.5 rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-passwd.5 rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-shell.5 rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-tcl.5 # Remove *.la files, libtool does not handle this correct rm -f ${RPM_BUILD_ROOT}%{_libdir}/lib*.la #put filelists into files cat >openldap2.filelist < openldap2-client.filelist < libldap.filelist < openldap2-devel.filelist < openldap2-devel-static.filelist <<-EOF %_libdir/liblber.a %_libdir/libldap*.a EOF cat > openldap2-back-perl.filelist < openldap2-back-sock.filelist < openldap2-back-meta.filelist < openldap2-back-sql.filelist < openldap2-contrib.filelist <openldap2-doc.filelist <&1 | grep -q on; then touch %{_rundir}/enable_slapd_service fi %service_add_pre slapd.service %post if [ ${1:-0} -gt 1 ] && [ -f %{_libdir}/sasl2/slapd.conf ] ; then cp /etc/sasl2/slapd.conf /etc/sasl2/slapd.conf.rpmnew cp %{_libdir}/sasl2/slapd.conf /etc/sasl2/slapd.conf fi %{fillup_only -n openldap ldap} %{remove_and_set -n openldap OPENLDAP_RUN_DB_RECOVER} %service_add_post slapd.service if [ -f %{_rundir}/enable_slapd_service ]; then /usr/bin/systemctl --quiet enable slapd fi %preun %service_del_preun slapd.service %postun %service_del_postun slapd.service %files -f openldap2.filelist %defattr(-,root,root) %files -n openldap2-back-perl -f openldap2-back-perl.filelist %defattr(-,root,root) %files -n openldap2-back-sock -f openldap2-back-sock.filelist %defattr(-,root,root) %files -n openldap2-back-meta -f openldap2-back-meta.filelist %defattr(-,root,root) %files -n openldap2-back-sql -f openldap2-back-sql.filelist %defattr(-,root,root) %files -n openldap2-doc -f openldap2-doc.filelist %defattr(-,root,root) %files -n openldap2-contrib -f openldap2-contrib.filelist %defattr(-,root,root) %else %post -n libldap-2_4-2 -p /sbin/ldconfig %postun -n libldap-2_4-2 -p /sbin/ldconfig %files -f openldap2-client.filelist %defattr(-,root,root) %files -n libldap-2_4-2 -f libldap.filelist %defattr(-,root,root) %files -n openldap2-devel -f openldap2-devel.filelist %defattr(-,root,root) %files -n openldap2-devel-static -f openldap2-devel-static.filelist %defattr(-,root,root) %endif %changelog