# remirepo spec file for libcouchbase # # Copyright (c) 2013-2020 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # %global libname libcouchbase %global soname 6 %if 0%{?fedora} >= 34 || 0%{?rhel} >= 7 %bcond_with rename %else %bcond_without rename %endif %if 0%{?fedora} >= 25 || 0%{?rhel} >= 8 %bcond_without tests %else # check-select-sock-tests hangs (btw, libevent backend is mandatory) %bcond_with tests %endif %bcond_without dtrace %bcond_without uv %if %{with rename} Name: %{libname}%{soname} %else Name: %{libname} %endif Version: 3.0.7 Release: 2%{?dist} Summary: Couchbase client library Group: System Environment/Libraries License: ASL 2.0 URL: https://docs.couchbase.com/c-sdk/current/project-docs/sdk-release-notes.html Source0: http://packages.couchbase.com/clients/c/%{libname}-%{version}.tar.gz Patch0: %{libname}-0001-enforce-system-crypto-policies.patch %if 0%{?rhel} == 7 %global dtsenable source /opt/rh/devtoolset-8/enable BuildRequires: devtoolset-8-toolchain BuildRequires: cmake3 >= 3.5.1 %else BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake >= 3.5.1 %endif BuildRequires: libtool BuildRequires: openssl-devel BuildRequires: pkgconfig(libevent) >= 2.0.20 BuildRequires: libev-devel >= 3 %if %{with uv} BuildRequires: pkgconfig(libuv) >= 1 %endif %if %{with dtrace} BuildRequires: systemtap-sdt-devel >= 1.8 BuildRequires: systemtap-devel %endif %if 0%{?fedora} >= 21 || 0%{?rhel} >= 8 Recommends: %{name}-libevent%{_isa} = %{version}-%{release} Suggests: %{name}-libev%{_isa} = %{version}-%{release} Suggests: %{name}-tools%{_isa} = %{version}-%{release} %else Requires: %{name}-libevent%{_isa} = %{version}-%{release} %endif %if %{without rename} Obsoletes: %{libname}%{soname} < %{version}-%{release} %endif # Filter shared private badly named %{?filter_provides_in: %filter_provides_in %{name}/%{name}.*\.so$} %{?filter_setup} %description The C library provides fast access to documents in Couchbase Server 2.0. With JSON documents and Couchbase server 2.0 you have new ways to index and query data stored in the cluster through views. This client library, libcouchbase, also simplifies requests to Views through its handling of HTTP transport. This Couchbase Client Library for C and C++ provides a complete interface to the functionality of Couchbase Server. %if %{with rename} This package is designed for parallel installation with libcouchbase %endif %package devel Summary: Development files for Couchbase client library Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} %if %{with rename} Conflicts: %{libname}-devel < %{version} Provides: %{libname}-devel = %{version}-%{release} %else Obsoletes: %{libname}%{soname}-devel < %{version}-%{release} %endif %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package libevent Summary: Couchbase client library - libevent IO back-end Group: System Environment/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} %if %{without rename} Obsoletes: %{libname}%{soname}-libevent < %{version}-%{release} %endif %description libevent This package provides libevent back-end for %{name}. %package libev Summary: Couchbase client library - libev IO back-end Group: System Environment/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} %if %{without rename} Obsoletes: %{libname}%{soname}-libev < %{version}-%{release} %endif %description libev This package provides libev back-end for %{name}. %if %{with uv} %package libuv Summary: Couchbase client library - libuv IO back-end Group: System Environment/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} %if %{without rename} Obsoletes: %{libname}%{soname}-libuv < %{version}-%{release} %endif %description libuv This package provides libuv back-end for %{name}. %endif %package tools Summary: Couchbase tools Group: Applications/System Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libevent%{?_isa} = %{version}-%{release} %if %{with rename} Conflicts: %{libname}-tools < %{version} Provides: %{libname}-tools = %{version}-%{release} %else Obsoletes: %{libname}%{soname}-tools < %{version}-%{release} %endif %description tools The %{name}-tools package contains some command line tools to manage a Couchbase Server. %prep %setup -q -n %{libname}-%{version} %patch0 -p1 -b .crypto %build %{?dtsenable} gcc --version %if 0%{?rhel} == 7 %cmake3 \ %else %cmake \ %endif -DLCB_BUILD_LIBEVENT=ON \ -DLCB_BUILD_LIBEV=ON \ %if %{with uv} -DLCB_BUILD_LIBUV=ON \ %else -DLCB_BUILD_LIBUV=OFF \ %endif %if %{with dtrace} -DLCB_BUILD_DTRACE=ON \ %else -DLCB_BUILD_DTRACE=OFF \ %endif -DLCB_NO_MOCK=1 \ -DLCB_PLUGINS_DIR:STRING=%{name} %if 0%{?cmake_build:1} %cmake_build %else make %{?_smp_mflags} V=1 %endif %install %{?dtsenable} %if 0%{?cmake_install:1} %cmake_install %else make install DESTDIR=%{buildroot} %endif %check %if %{with tests} %{?dtsenable} export CTEST_OUTPUT_ON_FAILURE=1 %if 0%{?cmake_build:1} %cmake_build --target alltests %ctest %else # ARGS needed to pass arguments to ctest make %{_smp_mflags} alltests test ARGS=%{_smp_mflags} %endif %else : check disabled %endif %if 0%{?fedora} < 28 && 0%{?rhel} < 8 %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %endif %files %{!?_licensedir:%global license %%doc} %doc README.markdown RELEASE_NOTES.markdown %license LICENSE %{_libdir}/%{libname}.so.%{soname}* %if %{with dtrace} %{_datadir}/systemtap/tapset/%{libname}.so* %endif %dir %{_libdir}/%{name} %files libevent %{_libdir}/%{name}/%{libname}_libevent.so %files libev %{_libdir}/%{name}/%{libname}_libev.so %if %{with uv} %files libuv %{_libdir}/%{name}/%{libname}_libuv.so %endif %files devel %{_includedir}/%{libname} %{_libdir}/%{libname}.so %{_libdir}/pkgconfig/%{libname}.pc %files tools %{_bindir}/cbc* %{_mandir}/man1/cbc* %{_mandir}/man4/cbc* %changelog * Tue Jan 12 2021 Sergey Avseyev - 3.0.7-2 - Use cmake macros for build, install and test steps * Wed Dec 16 2020 Remi Collet - 3.0.7-1 - update to 3.0.7 - drop patch merged upstream * Mon Nov 16 2020 Remi Collet - 3.0.6-2 - cleanup and only rename for fedora < 34 * Thu Nov 12 2020 Remi Collet - 3.0.6-1 - update to 3.0.6 - rename to libcouchbase6 to allow parallel installation with libcouchbase v2 - relocate IO plugins installation using patch from https://github.com/couchbase/libcouchbase/pull/38 * Wed Sep 23 2020 Remi Collet - 2.10.7-1 - update to 2.10.8 * Wed Jun 17 2020 Remi Collet - 2.10.7-1 - update to 2.10.7 * Thu Feb 27 2020 Sergey Avseyev - 2.10.6-1 - Update to 2.10.6 * Fri Nov 01 2019 Sergey Avseyev - 2.10.5-1 - Update to 2.10.5 * Thu Jun 20 2019 Sergey Avseyev - 2.10.4-1 - Update to 2.10.4 * Mon Jan 21 2019 Sergey Avseyev - 2.10.3-2 - Add explicit curdir on CMake invocation * Thu Dec 20 2018 Sergey Avseyev - 2.10.3-1 - Update to 2.10.3 * Fri Nov 23 2018 Remi Collet - 2.10.2-1 - update to 2.10.2 * Fri Nov 23 2018 Sergey Avseyev - 2.10.1-1 - Update to 2.10.1 * Thu Oct 18 2018 Sergey Avseyev - 2.10.0-1 - Update to 2.10.0 * Fri Sep 21 2018 Sergey Avseyev - 2.9.5-1 - Update to 2.9.5 * Wed Aug 29 2018 Sergey Avseyev - 2.9.4-1 - Update to 2.9.4 * Wed Jul 18 2018 Sergey Avseyev - 2.9.3-1 - Update to 2.9.3 * Sat Jul 14 2018 Sergey Avseyev - 2.9.2-4 - Display output of failed tests * Fri Jul 13 2018 Sergey Avseyev - 2.9.2-3 - Fix build with libuv-1.21.0 * Fri Jun 22 2018 Sergey Avseyev - 2.9.2-1 - Update to 2.9.2 * Fri Jun 22 2018 Sergey Avseyev - 2.9.1-1 - Update to 2.9.1 * Thu May 24 2018 Sergey Avseyev - 2.9.0-1 - Update to 2.9.0 * Wed May 02 2018 Sergey Avseyev - 2.8.7-2 - Port patch for JSON datatype * Wed May 02 2018 Sergey Avseyev - 2.8.7-1 - Update to 2.8.7 * Fri Apr 06 2018 Sergey Avseyev - 2.8.6-1 - Update to 2.8.6 * Fri Feb 23 2018 Sergey Avseyev - 2.8.5-1 - Update to 2.8.5 * Wed Dec 20 2017 Remi Collet - 2.8.4-1 - Update to 2.8.4 - filter private plugins (not shared libraries) * Wed Dec 20 2017 Sergey Avseyev - 2.8.4-1 - Update to 2.8.4 * Wed Nov 22 2017 Sergey Avseyev - 2.8.3-2 - Parallel tests * Wed Nov 22 2017 Sergey Avseyev - 2.8.3-1 - Update to 2.8.3 * Mon Nov 13 2017 Sergey Avseyev - 2.8.2-2 - Fix loading IO plugins * Thu Nov 2 2017 Remi Collet - 2.8.2-1 - update to 2.8.2 - pull patches and other changes from Fedora - add libuv backend - move backends in optional sub-packages - enable upstream test suite on F25+ - disable dtrace * Wed Sep 20 2017 Remi Collet - 2.8.1-1 - update to 2.8.1 * Thu Aug 31 2017 Remi Collet - 2.8.0-1 - update to 2.8.0 * Thu Aug 17 2017 Remi Collet - 2.7.7-1 - update to 2.7.7 - drop patch merged upstream * Wed Jul 12 2017 Remi Collet - 2.7.6-2 - fix new symbols visibility, using patch from https://github.com/couchbase/libcouchbase/pull/27 for https://issues.couchbase.com/browse/CCBC-803 * Wed Jul 12 2017 Remi Collet - 2.7.6-1 - update to 2.7.6 * Mon May 22 2017 Remi Collet - 2.7.5-1 - update to 2.7.5 * Fri Apr 21 2017 Remi Collet - 2.7.4-1 - update to 2.7.4 * Wed Mar 22 2017 Remi Collet - 2.7.3-1 - update to 2.7.3 * Wed Feb 22 2017 Remi Collet - 2.7.2-1 - update to 2.7.2 * Fri Jan 20 2017 Remi Collet - 2.7.1-1 - update to 2.7.1 * Sat Dec 24 2016 Remi Collet - 2.7.0-1 - update to 2.7.0 * Tue Nov 29 2016 Remi Collet - 2.6.4-1 - update to 2.6.4 * Wed Sep 28 2016 Remi Collet - 2.6.3-1 - update to 2.6.3 * Thu Jul 28 2016 Remi Collet - 2.6.2-1 - update to 2.6.2 * Fri Jun 24 2016 Remi Collet - 2.6.1-1 - update to 2.6.1 * Thu May 26 2016 Remi Collet - 2.6.0-1 - update to 2.6.0 * Wed Apr 20 2016 Remi Collet - 2.5.8-1 - update to 2.5.8 * Thu Nov 5 2015 Remi Collet - 2.5.3-1 - update to 2.5.3 * Wed Apr 22 2015 Remi Collet - 2.4.9-1 - update to 2.4.9 - switch to cmake * Wed Nov 5 2014 Remi Collet - 2.4.3-1 - update to 2.4.3 * Sat Sep 20 2014 Remi Collet - 2.4.1-1 - update to 2.4.1 * Mon May 12 2014 Remi Collet - 2.3.1-1 - update to 2.3.1 - always use libevent 2 * Sat Oct 5 2013 Remi Collet - 2.1.3-1 - update to 2.1.3 * Sun Apr 14 2013 Remi Collet - 2.0.5-1 - Initial package