#
# Conditional build:
%bcond_with tests # build with tests
%bcond_without doc # HTML and man documentation
%bcond_with sasl # SASL authentication (for Kerberos)
%bcond_without ssl # TLS connections and SCRAM-SHA-1 authentication
# NOTE about arch:
# See https://jira.mongodb.org/browse/CDRIVER-1186
# 32-bit MongoDB support was officially deprecated
# in MongoDB 3.2, and support is being removed in 3.4.
Summary: Client library written in C for MongoDB
Summary(pl.UTF-8): Biblioteka kliencka do MongoDB napisana w C
Name: mongo-c-driver
Version: 1.19.0
Release: 2
License: Apache v2.0
Group: Libraries
#Source0Download: https://github.com/mongodb/mongo-c-driver/releases/
Source0: https://github.com/mongodb/mongo-c-driver/releases/download/%{version}/%{name}-%{version}.tar.gz
# Source0-md5: c66d24c82ffbc190f291bc213c7a2d45
URL: https://github.com/mongodb/mongo-c-driver
BuildRequires: cmake >= 3.1
%{?with_sasl:BuildRequires: cyrus-sasl-devel}
BuildRequires: libicu-devel
%{?with_ssl:BuildRequires: openssl-devel}
BuildRequires: pkgconfig
BuildRequires: python
BuildRequires: snappy-devel
%{?with_doc:BuildRequires: sphinx-pdg}
BuildRequires: zlib-devel >= 1.2.11
BuildRequires: zstd-devel
%if %{with tests}
BuildRequires: mongodb-server
BuildRequires: openssl
%endif
Requires: %{name}-libs = %{version}-%{release}
Obsoletes: mongo-c-driver-tools < 1.3.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define libver 1.0
%description
mongo-c-driver is a client library written in C for MongoDB.
%description -l pl.UTF-8
mongo-c-driver to biblioteka kliencka do MongoDB napisana w C.
%package libs
Summary: Shared library for mongo-c-driver
Summary(pl.UTF-8): Biblioteka współdzielona mongo-c-driver
Group: Libraries
Requires: libbson = %{version}-%{release}
Requires: zlib >= 1.2.11
%description libs
This package contains the shared library for mongo-c-driver.
%description libs -l pl.UTF-8
Ten pakiet zawiera bibliotekę współdzieloną mongo-c-driver.
%package devel
Summary: Header files for mongo-c-driver library
Summary(pl.UTF-8): Pliki nagłówkowe biblioteki mongo-c-driver
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
%description devel
This package contains the header files for mongo-c-driver library.
Documentation: http://mongoc.org/libmongoc/%{version}/
%description devel -l pl.UTF-8
Ten pakiet zawiera pliki nagłówkowe biblioteki mongo-c-driver.
Dokumentacja: http://mongoc.org/libmongoc/%{version}/
%package apidocs
Summary: API documentation for mongo-c-driver library
Summary(pl.UTF-8): Dokumentacja API biblioteki mongo-c-driver
Group: Documentation
%description apidocs
API documentation for mongo-c-driver library.
%description apidocs -l pl.UTF-8
Dokumentacja API biblioteki mongo-c-driver.
%package -n libbson
Summary: Building, parsing, and iterating BSON documents
Summary(pl.UTF-8): Tworzenie, analiza i przechodzenie dokumentów BSON
License: Apache v2.0 and ISC and MIT and zlib
Group: Libraries
%description -n libbson
This is a library providing useful routines related to building,
parsing, and iterating BSON documents .
%description -n libbson -l pl.UTF-8
Ta biblioteka udostępnia przydatne funkcje związane z budowaniem,
analizą i przechodzeniem dokumentów BSON ().
%package -n libbson-devel
Summary: Development files for libbson
Summary(pl.UTF-8): Pliki programistyczne biblioteki libbson
License: Apache v2.0
Group: Development/Libraries
Requires: libbson = %{version}-%{release}
%description -n libbson-devel
This package contains libraries and header files needed for developing
applications that use libbson.
%description -n libbson-devel -l pl.UTF-8
Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
wykorzystujących bibliotekę libbson.
%package -n libbson-apidocs
Summary: API documentation for libbson library
Summary(pl.UTF-8): Dokumentacja API biblioteki libbson
Group: Documentation
%description -n libbson-apidocs
API documentation for libbson library.
%description -n libbson-apidocs -l pl.UTF-8
Dokumentacja API biblioteki libbson.
%prep
%setup -q
%build
install -d cmake-build
cd cmake-build
%cmake \
-DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF \
-DENABLE_BSON=ON \
-DENABLE_EXAMPLES=ON \
-DENABLE_HTML_DOCS=%{!?with_doc:OFF}%{?with_doc:ON} \
-DENABLE_MAN_PAGES=%{!?with_doc:OFF}%{?with_doc:ON} \
-DENABLE_SASL=%{!?with_sasl:OFF}%{?with_sasl:CYRUS} \
-DENABLE_SHM_COUNTERS=ON \
-DENABLE_SSL=%{!?with_ssl:OFF}%{?with_ssl:OPENSSL -DENABLE_CRYPTO_SYSTEM_PROFILE=ON} \
-DENABLE_STATIC=OFF \
-DENABLE_TESTS=%{!?with_tests:OFF}%{?with_tests:ON} \
-DENABLE_ZLIB=SYSTEM \
..
%{__make} -j1
%if %{with tests}
: Run a server
install -d dbtest
mongod \
--journal \
--ipv6 \
--unixSocketPrefix /tmp \
--logpath $PWD/server.log \
--pidfilepath $PWD/server.pid \
--dbpath $PWD/dbtest \
--fork
: Run the test suite
ret=0
export MONGOC_TEST_OFFLINE=on
#export MONGOC_TEST_SKIP_SLOW=on
%{__make} check || ret=1
: Cleanup
[ -s server.pid ] && kill $(cat server.pid)
exit $ret
%endif
%install
rm -rf $RPM_BUILD_ROOT
%{__make} -C cmake-build install \
DESTDIR=$RPM_BUILD_ROOT
# packaged as %doc / unneeded in rpm
%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/{COPYING,NEWS,README.rst,THIRD_PARTY_NOTICES,uninstall.sh}
%if %{with doc}
%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/{mongo-c-driver,libbson}/html
%endif
install -d $RPM_BUILD_ROOT%{_examplesdir}/libmongoc-%{version}
cp -a src/libmongoc/examples/* $RPM_BUILD_ROOT%{_examplesdir}/libmongoc-%{version}
install -d $RPM_BUILD_ROOT%{_examplesdir}/libbson-%{version}
cp -a src/libbson/examples/* $RPM_BUILD_ROOT%{_examplesdir}/libbson-%{version}
%clean
rm -rf $RPM_BUILD_ROOT
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%post -n libbson -p /sbin/ldconfig
%postun -n libbson -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/mongoc-stat
%files libs
%defattr(644,root,root,755)
%doc NEWS README.rst THIRD_PARTY_NOTICES
%attr(755,root,root) %{_libdir}/libmongoc-%{libver}.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libmongoc-%{libver}.so.0
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libmongoc-%{libver}.so
%{_includedir}/libmongoc-%{libver}
%{_pkgconfigdir}/libmongoc-%{libver}.pc
%{_pkgconfigdir}/libmongoc-ssl-%{libver}.pc
%{_libdir}/cmake/libmongoc-%{libver}
%{_libdir}/cmake/mongoc-*.*
%if %{with doc}
%{_mandir}/man3/mongoc_*.3*
%endif
%{_examplesdir}/libmongoc-%{version}
%if %{with doc}
%files apidocs
%defattr(644,root,root,755)
%doc cmake-build/src/libmongoc/doc/html/{_images,_static,*.html,*.js}
%endif
%files -n libbson
%defattr(644,root,root,755)
%doc src/libbson/{NEWS,THIRD_PARTY_NOTICES}
%attr(755,root,root) %{_libdir}/libbson-%{libver}.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libbson-%{libver}.so.0
%files -n libbson-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libbson-%{libver}.so
%{_includedir}/libbson-%{libver}
%{_pkgconfigdir}/libbson-%{libver}.pc
%{_libdir}/cmake/bson-*.*
%{_libdir}/cmake/libbson-%{libver}
%if %{with doc}
%{_mandir}/man3/bson_*.3*
%endif
%{_examplesdir}/libbson-%{version}
%if %{with doc}
%files -n libbson-apidocs
%defattr(644,root,root,755)
%doc cmake-build/src/libbson/doc/html/{_static,*.html,*.js}
%endif