Blob Blame History Raw
# for better compatibility with SCL spec file
%global pkg_name mongo-cxx-driver

Name:           mongo-cxx-driver
Version:        1.0.0
Release:        0.6.rc2%{?dist}
Summary:        A legacy C++ Driver for MongoDB
Group:          Development/Libraries
License:        ASL 2.0
URL:            https://github.com/mongodb/mongo-cxx-driver/wiki
Source0:        https://github.com/mongodb/%{pkg_name}/archive/legacy-%{version}-rc2.tar.gz

# FIXME revise requires (pthread, ssl, llvm (for sanitizer), gcov (gnu
#   compiler tools test coverage), mongodb headers
BuildRequires:  boost-devel >= 1.49
BuildRequires:  openssl-devel
BuildRequires:  scons

# Mongodb must run on a little-endian CPU (see bug #630898)
ExcludeArch:    ppc ppc64 %{sparc} s390 s390x

Provides: libmongodb = 2.6.0-%{release}
Provides: libmongodb%{?_isa} = 2.6.0-%{release}
Obsoletes: libmongodb <= 2.4.9-8

%description
This package provides the shared library for the MongoDB legacy C++ Driver.

%package -n %{pkg_name}-devel
Summary:        MongoDB header files
Group:          Development/Libraries
Requires:       %{name}%{?_isa} = %{version}-%{release}
Requires:	boost-devel
Requires:	openssl-devel

Provides: libmongodb-devel = 2.6.0-1
Provides: libmongodb-devel%{?_isa} = 2.6.0-1
Obsoletes: libmongodb-devel <= 2.4.9-8

Provides:       mongodb-devel = 2.6.0-1
Obsoletes:      mongodb-devel < 2.4

%description -n %{pkg_name}-devel
This package provides the header files for MongoDB legacy C++ driver.

%prep
# -n the name of the directory to cd after unpacking
%setup -q -n %{name}-legacy-%{version}-rc2

# CRLF -> LF
sed -i 's/\r//' README.md

# FIXME put lib dir in correct place
# https://jira.mongodb.org/browse/SERVER-10049
#   mongoclient
#   install-mongoclient
#   check-install-mongoclient
#   clientTests
#   smokeClient
sed -i -e "s@\$INSTALL_DIR/lib@\$INSTALL_DIR/%{_lib}@g" src/SConscript.client

# versioned client library
(pre='EnsureSConsVersion(2, 3, 0)'
post='sharedLibEnv.AppendUnique(SHLIBVERSION="%{version}")'
sed -i -r \
  -e "s|([[:space:]]*)(sharedLibEnv *= *libEnv.Clone.*)|\1$pre\n\1\2\n\1$post|" \
  -e "s|(sharedLibEnv.)Install *\(|\1InstallVersionedLib(|" \
  src/SConscript.client)

# use optflags
(opt=$(echo "%{optflags}" | sed -r -e 's| |","|g' )
sed -i -r -e "s|(if nix:)|\1\n\n    env.Append( CCFLAGS=[\"$opt\"] )\n\n|" SConstruct)


%build
# see 'scons -h' for options
scons driver \
        %{?_smp_mflags} \
        --sharedclient \
        --cpppath=%{_includedir}/ \
        --libpath=%{_libdir}/ \
        --ssl

%install
# NOTE: If install flags are not the same as in %%build,
#   it will be built twice!
scons install \
        %{?_smp_mflags} \
        --sharedclient \
        --prefix=%{buildroot}%{_prefix}/ \
        --cpppath=%{_includedir}/ \
        --libpath=%{_libdir}/ \
        --ssl

# There is no option to build without static library
rm -f %{buildroot}%{_libdir}/libmongoclient.a

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%doc README.md APACHE-2.0.txt
%{_libdir}/libmongoclient.so.*

%files -n %{pkg_name}-devel
%{_includedir}/*
%{_libdir}/libmongoclient.so

%changelog
* Tue Nov 18 2014 Marek Skalický <mskalick@redhat.com> - 1.0.0-0.6.rc2
- Upgrade to rc2
- Changed scons target to build only driver

* Mon Oct 27 2014 Marek Skalický <mskalick@redhat.com> - 1.0.0-0.5.rc1
- Upgrade to rc1
- Added mongo-cxx-driver-devel requires (openssl-devel, boost-devel)

* Sat Oct 25 2014 Peter Robinson <pbrobinson@fedoraproject.org> 1.0.0-0.4.rc1
- Don't reset the Release until 1.0.0 GA

* Fri Oct 24 2014 Marek Skalický <mskalick@redhat.com> - 1.0.0-0.1.rc1
- Upgrade to rc1

* Thu Oct 9 2014 Marek Skalický <mskalick@redhat.com> - 1.0.0-0.3.rc0
- Added Provides: mongodb-devel = 2.6.0-1 provided by libmongo-devel

* Thu Oct 9 2014 Marek Skalický <mskalick@redhat.com> - 1.0.0-0.2.rc0
- Added Provides: libmongodb%{?_isa} packages

* Tue Sep 30 2014 Marek Skalický <mskalick@redhat.com> - 1.0.0-0.1.rc0
- initial port