# # spec file for package openldap2 # # Copyright (c) 2018 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 _rundir /run/slapd %define libldap_version 2_5-0 # Remember that this is INVERTED in rpm spec files - this disable libldap_data %bcond_with libldap_data Name: openldap2_5 Summary: An open source implementation of the Lightweight Directory Access Protocol License: OLDAP-2.8 Group: Productivity/Networking/LDAP/Servers Version: 2.5.19+5 Release: 0 Url: http://www.openldap.org Source: openldap2-%{version}.tar.zst Source1: slapd.conf Source2: slapd.conf.olctemplate Source4: sasl-slapd.conf Source5: README.module-loading Source6: schema2ldif Source9: addonschema.tar.gz Source12: slapd.conf.example Source13: start Source14: slapd.service Source16: sysconfig.openldap Source18: openldap2.conf Source19: fixup-modulepath.sh Source20: slapd-ldif-update-crc.sh Source21: update-crc.sh Source99: openldap2-rpmlintrc BuildRoot: %{_tmppath}/openldap2-%{version}-build BuildRequires: argon2-devel BuildRequires: cyrus-sasl-devel BuildRequires: db-devel BuildRequires: groff BuildRequires: libopenssl-devel BuildRequires: libtool BuildRequires: openslp-devel BuildRequires: unixODBC-devel BuildRequires: zstd # avoid cycle with krb5 BuildRequires: krb5-mini BuildRequires: pkgconfig(systemd) Requires: libldap-%{libldap_version} = %{version}-%{release} Requires: gawk Recommends: cyrus-sasl Conflicts: openldap Conflicts: openldap2 PreReq: %fillup_prereq /usr/sbin/useradd /usr/sbin/groupadd /usr/bin/grep %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. %if %{with libldap_data} %package -n libldap-data Summary: Configuration file for system-wide defaults for all uses of libldap Group: Productivity/Networking/LDAP/Clients BuildArch: noarch %description -n libldap-data The subpackage contains a configuration file used to set system-wide defaults to be applied with all usages of libldap. %endif %package contrib Summary: OpenLDAP Contrib Modules Group: Productivity/Networking/LDAP/Servers Requires: %{name} = %{version}-%{release} Conflicts: openldap2-contrib %description contrib Various overlays found in contrib/: addpartial Intercepts ADD requests, applies changes to existing entries 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) trace traces overlay invocation %package doc Summary: OpenLDAP Documentation Group: Documentation/Other Provides: %{name}:/usr/share/doc/packages/openldap2/drafts/README BuildArch: noarch Conflicts: openldap2-doc %description doc The OpenLDAP Admin Guide plus a set of OpenLDAP related IETF internet drafts. %package client Summary: OpenLDAP client utilities Group: Productivity/Networking/LDAP/Clients Requires: libldap-%{libldap_version} = %{version}-%{release} Conflicts: openldap2-client %description client OpenLDAP client utilities such as ldapadd, ldapsearch, ldapmodify. %package devel Summary: Libraries, Header Files and Documentation for OpenLDAP # bug437293 Group: Development/Libraries/C and C++ %ifarch ppc64 Obsoletes: openldap2-devel-64bit %endif # Conflicts: openldap-devel Conflicts: openldap2-devel Requires: libldap-%{libldap_version} = %{version}-%{release} Recommends: cyrus-sasl-devel %description devel This package provides the OpenLDAP libraries, header files, and documentation. %package -n libldap-%{libldap_version} Summary: OpenLDAP Client Libraries Group: Productivity/Networking/LDAP/Clients Requires: libldap-data >= 2.4.0 %description -n libldap-%{libldap_version} This package contains the OpenLDAP client libraries. %prep %autosetup -a 9 -p 1 -n openldap2-%{version} cp %{SOURCE5} . %build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects export CFLAGS="%{optflags} -Wno-format-extra-args -fno-strict-aliasing -DNDEBUG -DSLAP_CONFIG_DELETE -DSLAP_SCHEMA_EXPOSE -DLDAP_COLLECTIVE_ATTRIBUTES -DLDAP_USE_NON_BLOCKING_TLS -DLDAP_CONNECTIONLESS " export STRIP="" autoreconf -fiv ./configure \ --prefix=/usr \ --sysconfdir=%{_sysconfdir} \ --libdir=%{_libdir} \ --libexecdir=%{_libdir} \ --localstatedir=%{_rundir} \ --mandir=%{_mandir} \ --enable-dynamic \ --enable-ipv6=yes \ --enable-crypt \ --enable-modules \ --enable-slp \ --enable-wrappers=no \ --enable-ldap=mod \ --enable-mdb=mod \ --enable-meta=mod \ --enable-perl=mod \ --enable-relay=mod \ --enable-sock=mod \ --enable-sql=mod \ --enable-overlays=mod \ --enable-syncprov=mod \ --enable-ppolicy=mod \ --enable-spasswd \ --enable-shared \ --enable-argon2 \ --with-argon2=libargon2 \ --with-cyrus-sasl \ --with-tls=openssl \ --with-yielding-select \ || cat config.log make depend make %{?_smp_mflags} # Build selected contrib overlays for SLAPO_NAME in addpartial allowed allop autogroup lastbind nops denyop cloak noopsrch passwd/sha2 passwd/pbkdf2 trace do make -C contrib/slapd-modules/${SLAPO_NAME} %{?_smp_mflags} "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" done # 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="" %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/test043-delta-syncrepl 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}" "mandir=%{_mandir}" install # Additional symbolic link to slapd executable in /usr/sbin/ ln -s %{_libdir}/slapd ${RPM_BUILD_ROOT}/usr/sbin/slapd # Install selected contrib overlays for SLAPO_NAME in addpartial allowed allop autogroup lastbind nops denyop cloak noopsrch passwd/sha2 passwd/pbkdf2 trace do make -C contrib/slapd-modules/${SLAPO_NAME} STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" "mandir=%{_mandir}" 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}" "mandir=%{_mandir}" install 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.so* install -m 755 %{SOURCE6} ${RPM_BUILD_ROOT}/usr/sbin/schema2ldif mkdir -p ${RPM_BUILD_ROOT}/usr/lib/tmpfiles.d/ install -m 644 %{SOURCE18} ${RPM_BUILD_ROOT}/usr/lib/tmpfiles.d/ mkdir -p ${RPM_BUILD_ROOT}/%{_libexecdir}/openldap/ install -m 755 %{SOURCE13} ${RPM_BUILD_ROOT}/%{_libexecdir}/openldap/start install -m 755 %{SOURCE19} ${RPM_BUILD_ROOT}/%{_libexecdir}/openldap/fixup-modulepath install -m 755 %{SOURCE21} ${RPM_BUILD_ROOT}/%{_libexecdir}/openldap/update-crc install -m 755 %{SOURCE20} ${RPM_BUILD_ROOT}/%{_sbindir}/slapd-ldif-update-crc mkdir -p ${RPM_BUILD_ROOT}%{_fillupdir} install -m 644 %{SOURCE16} ${RPM_BUILD_ROOT}%{_fillupdir}/sysconfig.openldap install -m 644 *.ldif ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema install -m 644 *.schema ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema # Install default and sample configuration files install -m 644 %{SOURCE1} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap install -m 644 %{SOURCE2} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap install -m 644 %{SOURCE12} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap find doc/guide '(' ! -name *.html -a ! -name *.gif -a ! -name *.png -a ! -type d ')' -delete rm -rf doc/guide/release %define DOCDIR %{_defaultdocdir}/openldap2 # Install default database optimisation 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 \ 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/schema/README rm -f ${RPM_BUILD_ROOT}/etc/openldap/slapd.ldif* mv servers/slapd/back-sql/rdbms_depend servers/slapd/back-sql/examples ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcslapd rm -f ${RPM_BUILD_ROOT}/%{_libdir}/openldap/*.a # Remove *.la files, libtool does not handle this correct rm -f ${RPM_BUILD_ROOT}%{_libdir}/lib*.la # Make ldap_r the only copy in the system [rh#1370065]. # libldap.so is only for `gcc/ld -lldap`. Make no libldap-2.4.so.2. # # as of 2.5 libldap is the re-entrant version, so we link the _r to libldap # for compat. # rm -f "%{buildroot}/%{_libdir}"/libldap-2.5.so* # ln -fs libldap.so "%{buildroot}/%{_libdir}/libldap_r.so" #gcc -shared -o "%{buildroot}/%{_libdir}/libldap-2.4.so.2" --no-as-needed \ # -Wl,-soname -Wl,libldap-2.4.so.2 -L "%{buildroot}/%{_libdir}" -lldap_r %if %{without libldap_data} # Remove these since they won't be used to create the libldap-data package rm ${RPM_BUILD_ROOT}/%{_sysconfdir}/openldap/ldap.conf rm ${RPM_BUILD_ROOT}/%{_mandir}/man5/ldap.conf* rm ${RPM_BUILD_ROOT}/%{_sysconfdir}/openldap/ldap.conf.default %endif %pre getent group ldap >/dev/null || /usr/sbin/groupadd -g 70 -o -r ldap getent passwd ldap >/dev/null || /usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/false -c "User for OpenLDAP" -d /var/lib/ldap ldap %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} %tmpfiles_create openldap2.conf %service_add_post slapd.service %post -n libldap-%{libldap_version} -p /sbin/ldconfig %postun -n libldap-%{libldap_version} -p /sbin/ldconfig %preun %service_del_preun slapd.service %postun %service_del_postun slapd.service %files %defattr(-,root,root) %config %{_sysconfdir}/openldap/schema/*.schema %config %{_sysconfdir}/openldap/schema/*.ldif %config(noreplace) /etc/sasl2/slapd.conf %config(noreplace) %attr(640, root, ldap) %{_sysconfdir}/openldap/slapd.conf %config(noreplace) %attr(640, root, ldap) %{_sysconfdir}/openldap/slapd.conf.olctemplate %config %attr(640, root, ldap) %{_sysconfdir}/openldap/slapd.conf.default %config %attr(640, root, ldap) %{_sysconfdir}/openldap/slapd.conf.example %dir %{_libdir}/openldap %dir %{_libexecdir}/openldap %dir %{_sysconfdir}/sasl2 %dir %{_sysconfdir}/openldap %dir %attr(0770, ldap, ldap) %{_sysconfdir}/openldap/slapd.d %dir %{_sysconfdir}/openldap/schema %{_fillupdir}/sysconfig.openldap %{_sbindir}/slap* %{_sbindir}/rcslapd %{_libdir}/openldap/autoca* %{_libdir}/openldap/argon2* %{_libdir}/openldap/back_ldap* %{_libdir}/openldap/back_mdb* %{_libdir}/openldap/back_meta* %{_libdir}/openldap/back_perl* %{_libdir}/openldap/back_relay* %{_libdir}/openldap/back_sock* %{_libdir}/openldap/back_sql* %{_libdir}/openldap/accesslog* %{_libdir}/openldap/auditlog* %{_libdir}/openldap/collect* %{_libdir}/openldap/constraint* %{_libdir}/openldap/dds* %{_libdir}/openldap/deref* %{_libdir}/openldap/dyngroup* %{_libdir}/openldap/dynlist* %{_libdir}/openldap/homedir* %{_libdir}/openldap/memberof* %{_libdir}/openldap/otp* %{_libdir}/openldap/pcache* %{_libdir}/openldap/ppolicy* %{_libdir}/openldap/refint* %{_libdir}/openldap/remoteauth* %{_libdir}/openldap/retcode* %{_libdir}/openldap/rwm* %{_libdir}/openldap/seqmod* %{_libdir}/openldap/sssvlv* %{_libdir}/openldap/syncprov* %{_libdir}/openldap/translucent* %{_libdir}/openldap/unique* %{_libdir}/openldap/valsort* %{_libdir}/slapd %{_libexecdir}/openldap/start %{_libexecdir}/openldap/update-crc %{_libexecdir}/openldap/fixup-modulepath %{_unitdir}/slapd.service /usr/lib/tmpfiles.d/openldap2.conf %dir %attr(0750, ldap, ldap) /var/lib/ldap %ghost %attr(0750, ldap, ldap) %{_rundir} %doc %{_mandir}/man8/lloadd* %doc %{_mandir}/man8/sl* %doc %{_mandir}/man5/lloadd.conf* %doc %{_mandir}/man5/slapd.* %doc %{_mandir}/man5/slapd-* %doc %{_mandir}/man5/slapo-* %doc %{_mandir}/man5/slappw-* %dir %{DOCDIR} %doc %{DOCDIR}/ANNOUNCEMENT %doc %{DOCDIR}/COPYRIGHT %license LICENSE %doc %{DOCDIR}/README* %doc %{DOCDIR}/CHANGES %doc %{DOCDIR}/slapd.ldif.default %doc servers/slapd/back-sql/examples %doc servers/slapd/back-sql/docs/bugs %doc servers/slapd/back-sql/docs/install %if %{with libldap_data} %files -n libldap-data %defattr(-,root,root) %config(noreplace) %{_sysconfdir}/openldap/ldap.conf %doc %{_mandir}/man5/ldap.conf* %{_sysconfdir}/openldap/ldap.conf.default %endif %files doc %defattr(-,root,root) %dir %{DOCDIR} %doc %{DOCDIR}/drafts %doc %{DOCDIR}/adminguide %doc %{DOCDIR}/images %files contrib %defattr(-,root,root) %{_libdir}/openldap/addpartial.* %{_libdir}/openldap/allowed.* %{_libdir}/openldap/allop.* %{_libdir}/openldap/autogroup.* %{_libdir}/openldap/lastbind.* %{_libdir}/openldap/noopsrch.* %{_libdir}/openldap/nops.* %{_libdir}/openldap/pw-sha2.* %{_libdir}/openldap/pw-pbkdf2.* %{_libdir}/openldap/denyop.* %{_libdir}/openldap/cloak.* %{_libdir}/openldap/smbk5pwd.* %{_libdir}/openldap/trace.* %files client %defattr(-,root,root) %doc %{_mandir}/man1/ldap* %doc %{_mandir}/man5/ldif.* %dir /etc/openldap %{_sbindir}/schema2ldif %{_bindir}/ldapadd %{_bindir}/ldapcompare %{_bindir}/ldapdelete %{_bindir}/ldapexop %{_bindir}/ldapmodify %{_bindir}/ldapmodrdn %{_bindir}/ldapsearch %{_bindir}/ldappasswd %{_bindir}/ldapurl %{_bindir}/ldapwhoami %{_bindir}/ldapvc %files -n libldap-%{libldap_version} %defattr(-,root,root) %{_libdir}/liblber*.so.* %{_libdir}/libldap*.so.* %files devel %defattr(-,root,root) %doc %{_mandir}/man3/ber* %doc %{_mandir}/man3/lber* %doc %{_mandir}/man3/ld_errno* %doc %{_mandir}/man3/ldap* %{_libdir}/pkgconfig/*.pc %{_includedir}/*.h %{_libdir}/liblber.so %{_libdir}/libldap*.so %_libdir/liblber.a %_libdir/libldap*.a %changelog