%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
%define _unpackaged_files_terminate_build 1

%define talloc_version 2.1.14
%define tdb_version 1.3.16
%define tevent_version 0.9.37

Name: libldb
Summary: A schema-less, ldap like, API and database
Version: 1.4.3
Release: 1%{?_dist_release}

Group: System Environment/Libraries
License: LGPLv3+
URL: http://ldb.samba.org/

Source: http://samba.org/ftp/ldb/ldb-%{version}.tar.gz
# Patches

BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: libtalloc-devel >= %{talloc_version}
BuildRequires: libtdb-devel >= %{tdb_version}
BuildRequires: libtevent-devel >= %{tevent_version}
BuildRequires: popt-devel
BuildRequires: autoconf
BuildRequires: libxslt
BuildRequires: docbook-style-xsl
BuildRequires: python-devel
BuildRequires: python-rpm-macros
BuildRequires: python-tdb
BuildRequires: python-talloc-devel
BuildRequires: python-tevent
BuildRequires: python3-devel
BuildRequires: python3-rpm-macros
BuildRequires: python3-tdb
BuildRequires: python3-talloc-devel
BuildRequires: python3-tevent
BuildRequires: doxygen
Requires: libtalloc >= %{talloc_version}
Requires: libtdb >= %{tdb_version}
Requires: libtevent >= %{tevent_version}

Provides: bundled(libreplace)

Vendor: Project Vine
Distribution: Vine Linux
Packager: tomop

%description
An extensible library that implements an LDAP like API to access remote LDAP
servers, or use local tdb databases.

%package -n ldb-tools
Group: Applications/System
Summary: Tools to manage LDB files
Requires: libldb = %{version}-%{release}

%description -n ldb-tools
Tools to manage LDB files

%package devel
Group: Development/Libraries
Summary: Developer tools for the LDB library
Requires: libldb = %{version}-%{release}
Requires: libtdb-devel >= %{tdb_version}
Requires: libtalloc-devel >= %{talloc_version}
Requires: libtevent-devel >= %{tevent_version}
Requires: pkgconfig

%description devel
Header files needed to develop programs that link against the LDB library.

%package -n python-ldb
Group: System Environment/Libraries
Summary: Python bindings for the LDB library
Requires: libldb = %{version}-%{release}
Requires: python-tdb >= %{tdb_version}
Provides: pyldb = %{version}-%{release}
Obsoletes: pyldb < 1.1.31-2

%description -n python-ldb
Python bindings for the LDB library

%package -n python-ldb-devel
Group: Development/Libraries
Summary: Development files for the Python bindings for the LDB library
Requires: python-ldb = %{version}-%{release}
Requires: python-ldb-devel-common = %{version}-%{release}
Provides: pyldb-devel = %{version}-%{release}
Obsoletes: pyldb-devel <= 1.1.31-2

%description -n python-ldb-devel
Development files for the Python bindings for the LDB library

%package -n python-ldb-devel-common
Summary: Common development files for the Python bindings for the LDB library

%description -n python-ldb-devel-common
Development files for the Python bindings for the LDB library.
This package includes files that aren't specific to a Python version.

%package -n python3-ldb
Group: System Environment/Libraries
Summary: Python3 bindings for the LDB library
Requires: libldb = %{version}-%{release}
Requires: python3-tdb >= %{tdb_version}

%description -n python3-ldb
Python3 bindings for the LDB library

%package -n python3-ldb-devel
Group: Development/Libraries
Summary: Development files for the Python3 bindings for the LDB library
Requires: python3-ldb = %{version}-%{release}
Requires: python-ldb-devel-common = %{version}-%{release}

%description -n python3-ldb-devel
Development files for the Python3 bindings for the LDB library

%if %{build_compat32}

%package -n compat32-%{name}
Summary: A schema-less, ldap like, API and database
Group: System Environment/Libraries

%description -n compat32-%{name}
An extensible library that implements an LDAP like API to access remote LDAP
servers, or use local tdb databases.

%endif

%prep
%setup -q -n ldb-%{version}

%build

# tdb_compat and ccan have no upstream releases to link against yet and their
# API is in flux. It is unsafe to make them public and shared at this time.
%configure \
	--disable-rpath \
	--disable-rpath-install \
	--bundled-libraries=cmocka \
	--builtin-libraries=replace \
	--with-modulesdir=%{_libdir}/ldb/modules \
	--with-privatelibdir=%{_libdir}/ldb \
	--without-ldb-lmdb \
	--extra-python=%{__python3}

make V=1 %{?_smp_mflags}
doxygen Doxyfile

%install
make install DESTDIR=%{buildroot}

rm -f %{buildroot}%{_libdir}/libldb.a

# Shared libraries need to be marked executable for
# rpmbuild to strip them and include them in debuginfo
find $RPM_BUILD_ROOT -name "*.so*" -exec chmod -c +x {} \;

# Install API docs
cp -a apidocs/man/* $RPM_BUILD_ROOT/%{_mandir}

# LDB 1.1.8+ bug: remove manpage named after full
# file path
rm -f $RPM_BUILD_ROOT/%{_mandir}/man3/_*

%clean
rm -rf %{buildroot}

%post
/sbin/ldconfig

%postun
/sbin/ldconfig

%post -n python-ldb
/sbin/ldconfig

%postun -n python-ldb
/sbin/ldconfig

%post -n python3-ldb
/sbin/ldconfig

%postun -n python3-ldb
/sbin/ldconfig

%if %{build_compat32}

%post -n compat32-%{name}
/sbin/ldconfig

%postun -n compat32-%{name}
/sbin/ldconfig

%endif

%files
%defattr(-,root,root,-)
%dir %{_libdir}/ldb
%{_libdir}/ldb/libcmocka-ldb.so
%{_libdir}/ldb/libldb-key-value.so
%{_libdir}/libldb.so.*
%dir %{_libdir}/ldb/modules
%dir %{_libdir}/ldb/modules/ldb
%{_libdir}/ldb/modules/ldb/*.so

%files -n ldb-tools
%defattr(-,root,root,-)
%{_bindir}/ldbadd
%{_bindir}/ldbdel
%{_bindir}/ldbedit
%{_bindir}/ldbmodify
%{_bindir}/ldbrename
%{_bindir}/ldbsearch
%{_libdir}/ldb/libldb-cmdline.so
%{_mandir}/man1/ldbadd.1.*
%{_mandir}/man1/ldbdel.1.*
%{_mandir}/man1/ldbedit.1.*
%{_mandir}/man1/ldbmodify.1.*
%{_mandir}/man1/ldbrename.1.*
%{_mandir}/man1/ldbsearch.1.*

%files devel
%defattr(-,root,root,-)
%{_includedir}/ldb_module.h
%{_includedir}/ldb_handlers.h
%{_includedir}/ldb_errors.h
%{_includedir}/ldb_version.h
%{_includedir}/ldb.h
%{_libdir}/libldb.so

%{_libdir}/pkgconfig/ldb.pc
%{_mandir}/man3/ldb*.gz
%{_mandir}/man3/ldif*.gz

%files -n python-ldb
%defattr(-,root,root,-)
%{python_sitearch}/ldb.so
%{python_sitearch}/_ldb_text.*
%{_libdir}/libpyldb-util.so.1*

%files -n python-ldb-devel
%defattr(-,root,root,-)
%{_libdir}/libpyldb-util.so
%{_libdir}/pkgconfig/pyldb-util.pc

%files -n python-ldb-devel-common
%{_includedir}/pyldb.h
%{_mandir}/man*/Py*.gz

%files -n python3-ldb
%{python3_sitearch}/ldb.cpython-*.so
%{_libdir}/libpyldb-util.cpython-*.so.1*
%{python3_sitearch}/_ldb_text.py

%files -n python3-ldb-devel
%{_libdir}/libpyldb-util.cpython-*.so
%{_libdir}/pkgconfig/pyldb-util.cpython-*.pc

%if %{build_compat32}

%files -n compat32-%{name}
%defattr(-,root,root,-)
%dir %{_libdir}/ldb
%{_libdir}/libldb.so.*
%dir %{_libdir}/ldb/modules
%dir %{_libdir}/ldb/modules/ldb
%{_libdir}/ldb/libcmocka-ldb.so
%{_libdir}/ldb/libldb-cmdline.so
%{_libdir}/ldb/libldb-key-value.so
%{_libdir}/ldb/modules/ldb/*.so

%endif


%changelog
* Fri Nov 30 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.4.3-1
- new upstream release.
- dropped Patch1.

* Thu Mar 08 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.3.2-1
- new upstream release.

* Tue Feb 27 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.3.1-1
- new upstream release.
- dropped Patch1001.
- imported Patch1 from rawhide.
- enabled python3 modules.
- renamed python packages.

* Sat Jul 15 2017 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.31-1
- new upstream release.

* Sun Dec 11 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.29-1
- new upstream release.

* Wed Feb 24 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.26-1
- new upstream release.

* Fri Dec 18 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.25-1
- new upstream release.

* Thu Dec 17 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.24-1
- new upstream release.

* Wed Dec  2 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.23-1
- new upstream release.

* Fri Jul 24 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.21-1
- new upstream release.

* Thu Apr 16 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.20-2
- added compat32 package.

* Fri Mar  6 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.20-1
- new upstream release.

* Mon Jan 12 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.19-1
- new upstream release.

* Wed Dec  3 2014 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.18-1
- new upstream release.

* Fri Oct  3 2014 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 1.1.17-2
- moved libldb and pyldb to System Environment/Libraries Group
- moved ldb-tool to Applications/System Group

* Tue Aug 19 2014 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.17-1
- new upstream release.

* Wed Jan 08 2014 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.16-2
- rebuilt with current environment.

* Tue Oct 08 2013 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.16-1
- new upstream release.

* Sun Mar 03 2013 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.15-1
- new upstream release.

* Thu Dec 20 2012 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.14-3
- moved libldb-cmdline.so to main package.

* Tue Dec 18 2012 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.14-2
- fixed dependency.

* Mon Dec 17 2012 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.1.14-1
- new upstream release.
- initial build for Vine Linux.

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Tue Dec 06 2011 Stephen Gallagher <sgallagh@redhat.com> - 1.1.4-1
- New upstream release
- Add ldb_module_error() routine
- Fedora: work around unreliable configure check for pytevent
- Drop patch to ignore --disable-silent-rules (included in tarball)

* Thu Dec 01 2011 Stephen Gallagher <sgallagh@redhat.com> - 1.1.3-4
- Add patch to ignore --disable-silent-rules

* Wed Nov 23 2011 Stephen Gallagher <sgallagh@redhat.com> - 1.1.3-3
- Add explicit mention of the bundled libreplace
- https://fedorahosted.org/fpc/ticket/120
- Add explicit mention of bundled libtdb_compat and libccan
- https://fedorahosted.org/fpc/ticket/119

* Mon Nov 21 2011 Stephen Gallagher <sgallagh@redhat.com> - 1.1.3-2
- Build and install API documentation
- Build tdb_compat and ccan statically. They have no upstream releases to
  link against yet and their API is in flux. It is unsafe to make them
  public and shared at this time.

* Wed Nov 09 2011 Stephen Gallagher <sgallagh@redhat.com> - 1.1.3-1
- New upstream release
- Required for building newer samba4 packages

* Tue Aug  2 2011 Simo Sorce <ssorce@redhat.com> - 1.1.0-1
- Update to 1.1.0
  (dependency for samba4 alpha16 snapshot)

* Tue Feb 22 2011 Simo Sorce <ssorce@redhat.com> - 1.0.2-1
- Update to 1.0.2
  (dependency for samba4 alpha15 snapshot)

* Fri Feb 11 2011 Stephen Gallagher <sgallagh@redhat.com> - 1.0.0-2
- Disable rpath

* Fri Feb 11 2011 Stephen Gallagher <sgallagh@redhat.com> - 1.0.0-1
- New upstream release 1.0.0
- SOname bump to account for module loading changes
- Rename libldb-tools to ldb-tools to make upgrades easier

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.22-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Fri Feb 04 2011 Stephen Gallagher <sgallagh@redhat.com> - 0.9.22-8
- Fixes from package review
- Change Requires: on tools subpackage to be the exact version/release
- Remove unnecessary BuildRoot directive

* Mon Jan 17 2011 Stephen Gallagher <sgallagh@redhat.com> - 0.9.22-7
- Update to 0.9.22 (first independent release of libldb upstream)

