summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2020-11-16 07:14:52 +0100
committerRemi Collet <remi@remirepo.net>2020-11-16 07:14:52 +0100
commitafc5f5fbe5eb853dcdf0037835e9baa45f8abca2 (patch)
treede42b11d0ea7a89cfa6d31a84ffd4a1e2a8cbcb3
parent6529b60154bdd06c21f326e841c5224eee474e4b (diff)
- rename to libcouchbase2 to allow parallel installation with libcouchbase v3v2
- relocate IO plugins installation using patch from https://github.com/couchbase/libcouchbase/pull/38
-rw-r--r--libcouchbase-0004-add-LCB_PLUGINS_DIR-option-to-set-directory-for-IO-p.patch78
-rw-r--r--libcouchbase.spec109
2 files changed, 157 insertions, 30 deletions
diff --git a/libcouchbase-0004-add-LCB_PLUGINS_DIR-option-to-set-directory-for-IO-p.patch b/libcouchbase-0004-add-LCB_PLUGINS_DIR-option-to-set-directory-for-IO-p.patch
new file mode 100644
index 0000000..84f7b47
--- /dev/null
+++ b/libcouchbase-0004-add-LCB_PLUGINS_DIR-option-to-set-directory-for-IO-p.patch
@@ -0,0 +1,78 @@
+Adapted for v2 from:
+
+
+From 99729147fa930b8ffed4153dcae2bca62bebcdb0 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Thu, 12 Nov 2020 11:26:35 +0100
+Subject: [PATCH] add LCB_PLUGINS_DIR option to set directory for IO plugins
+
+---
+ CMakeLists.txt | 1 +
+ cmake/config-cmake.h.in | 4 ++--
+ plugins/io/libev/CMakeLists.txt | 2 +-
+ plugins/io/libevent/CMakeLists.txt | 2 +-
+ plugins/io/libuv/CMakeLists.txt | 2 +-
+ 5 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5789bac7..90061ee9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,6 +30,7 @@ endif()
+ OPTION(LCB_NO_TESTS "Disable building of tests" OFF)
+ OPTION(LCB_NO_TOOLS "Disable building of additional tools" OFF)
+ OPTION(LCB_NO_PLUGINS "Disable the building of IO plugins for external libs" OFF)
++SET(LCB_PLUGINS_DIR "libcouchbase" CACHE STRING "Directory for IO plugins")
+ OPTION(LCB_BUILD_LIBEVENT "Build the libevent plugin" ON)
+ OPTION(LCB_BUILD_LIBEV "Build the libev plugin (if available)" ON)
+ OPTION(LCB_BUILD_LIBUV "Build the libuv plugin (if available)" ON)
+diff --git a/cmake/config-cmake.h.in b/cmake/config-cmake.h.in
+index 30f66da8..1fc26d2a 100644
+--- a/cmake/config-cmake.h.in
++++ b/cmake/config-cmake.h.in
+@@ -58,7 +58,7 @@
+
+ #cmakedefine LCB_USE_HDR_HISTOGRAM
+
+-#define LCB_LIBDIR "${CMAKE_INSTALL_LIBDIR}/libcouchbase"
++#define LCB_LIBDIR "${CMAKE_INSTALL_LIBDIR}/${LCB_PLUGINS_DIR}"
+
+ #include "config_static.h"
+ #endif
+diff --git a/plugins/io/libev/CMakeLists.txt b/plugins/io/libev/CMakeLists.txt
+index c2441d36..cf144f0e 100644
+--- a/plugins/io/libev/CMakeLists.txt
++++ b/plugins/io/libev/CMakeLists.txt
+@@ -28,4 +28,4 @@ ENDIF()
+
+ INSTALL(TARGETS
+ couchbase_libev
+- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase")
++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${LCB_PLUGINS_DIR}")
+diff --git a/plugins/io/libevent/CMakeLists.txt b/plugins/io/libevent/CMakeLists.txt
+index 485d6342..339e5a95 100644
+--- a/plugins/io/libevent/CMakeLists.txt
++++ b/plugins/io/libevent/CMakeLists.txt
+@@ -24,7 +24,7 @@ IF(LCB_EMBED_PLUGIN_LIBEVENT)
+ SET(LCB_LINK_SPEC "${LCB_LINKS_SPEC} ${LIBEVENT_LIBRARIES}")
+ ELSE()
+ ADD_LIBRARY(couchbase_libevent SHARED plugin-libevent.c)
+- INSTALL(TARGETS couchbase_libevent LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase")
++ INSTALL(TARGETS couchbase_libevent LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${LCB_PLUGINS_DIR}")
+ TARGET_LINK_LIBRARIES(couchbase_libevent ${LIBEVENT_LIBRARIES})
+ ENDIF()
+
+diff --git a/plugins/io/libuv/CMakeLists.txt b/plugins/io/libuv/CMakeLists.txt
+index 46c63dd8..9954c0f5 100644
+--- a/plugins/io/libuv/CMakeLists.txt
++++ b/plugins/io/libuv/CMakeLists.txt
+@@ -40,5 +40,5 @@ INCLUDE_DIRECTORIES(AFTER ${LIBUV_INCLUDE_DIR})
+ ADD_DEFINITIONS(-DLIBCOUCHBASE_INTERNAL=1)
+ INSTALL(TARGETS
+ couchbase_libuv
+- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase"
++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${LCB_PLUGINS_DIR}"
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+--
+2.25.4
+
diff --git a/libcouchbase.spec b/libcouchbase.spec
index 0ceba5f..a616ef1 100644
--- a/libcouchbase.spec
+++ b/libcouchbase.spec
@@ -7,6 +7,15 @@
# Please, preserve the changelog entries
#
+%global libname libcouchbase
+%global soname 2
+
+%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
@@ -14,27 +23,31 @@
%bcond_with tests
%endif
-%global with_dtrace 1
+%bcond_without dtrace
%if 0%{?fedora} >= 22 || 0%{?rhel} >= 7
-%global with_uv 1
+%bcond_without uv
%else
-%global with_uv 0
+%bcond_with uv
%endif
-Name: libcouchbase
+%if %{with rename}
+Name: %{libname}%{soname}
+%else
+Name: %{libname}
+%endif
Version: 2.10.8
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Couchbase client library
Group: System Environment/Libraries
License: ASL 2.0
URL: http://www.couchbase.com/communities/c/getting-started
-Source0: http://packages.couchbase.com/clients/c/%{name}-%{version}.tar.gz
-
-Patch0: %{name}-0001-enforce-system-crypto-policies.patch
-Patch1: %{name}-0002-do-not-install-plugins-into-libdir.patch
-Patch2: %{name}-0003-fix-pkgconfig-paths.patch
+Source0: http://packages.couchbase.com/clients/c/%{libname}-%{version}.tar.gz
+Patch0: %{libname}-0001-enforce-system-crypto-policies.patch
+Patch1: %{libname}-0002-do-not-install-plugins-into-libdir.patch
+Patch2: %{libname}-0003-fix-pkgconfig-paths.patch
+Patch3: %{libname}-0004-add-LCB_PLUGINS_DIR-option-to-set-directory-for-IO-p.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@@ -43,10 +56,10 @@ BuildRequires: openssl-devel
BuildRequires: cmake >= 2.8.9
BuildRequires: pkgconfig(libevent) >= 2.0.20
BuildRequires: libev-devel >= 3
-%if %{with_uv}
+%if %{with uv}
BuildRequires: pkgconfig(libuv) >= 1
%endif
-%if %{with_dtrace}
+%if %{with dtrace}
BuildRequires: systemtap-sdt-devel >= 1.8
BuildRequires: systemtap-devel
%endif
@@ -58,6 +71,9 @@ 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$}
@@ -73,12 +89,21 @@ 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
@@ -89,28 +114,37 @@ developing applications that use %{name}.
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 libcouchbase.
+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 libcouchbase.
+This package provides libev back-end for %{name}.
-%if %{with_uv}
+%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 libcouchbase.
+This package provides libuv back-end for %{name}.
%endif
@@ -119,6 +153,12 @@ 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
@@ -126,27 +166,29 @@ a Couchbase Server.
%prep
-%setup -q
+%setup -q -n %{libname}-%{version}
%patch0 -p1 -b .crypto
%patch1 -p1 -b .plug
%patch2 -p1 -b .pkgc
+%patch3 -p1 -b .plugdir
%build
%cmake \
-DLCB_BUILD_LIBEVENT=ON \
-DLCB_BUILD_LIBEV=ON \
-%if %{with_uv}
+%if %{with uv}
-DLCB_BUILD_LIBUV=ON \
%else
-DLCB_BUILD_LIBUV=OFF \
%endif
-%if %{with_dtrace}
+%if %{with dtrace}
-DLCB_BUILD_DTRACE=ON \
%else
-DLCB_BUILD_DTRACE=OFF \
%endif
-DLCB_NO_MOCK=1 \
+ -DLCB_PLUGINS_DIR:STRING=%{name} \
-B . -S .
make %{?_smp_mflags} V=1
@@ -176,26 +218,27 @@ make %{_smp_mflags} alltests test ARGS=%{_smp_mflags}
%{!?_licensedir:%global license %%doc}
%doc README.markdown RELEASE_NOTES.markdown
%license LICENSE
-%{_libdir}/%{name}.so.2*
-%if %{with_dtrace}
-%{_datadir}/systemtap/tapset/libcouchbase.so*
+%{_libdir}/%{libname}.so.%{soname}*
+%if %{with dtrace}
+%{_datadir}/systemtap/tapset/%{libname}.so*
%endif
+%dir %{_libdir}/%{name}
%files libevent
-%{_libdir}/%{name}/%{name}_libevent.so
+%{_libdir}/%{name}/%{libname}_libevent.so
%files libev
-%{_libdir}/%{name}/%{name}_libev.so
+%{_libdir}/%{name}/%{libname}_libev.so
-%if %{with_uv}
+%if %{with uv}
%files libuv
-%{_libdir}/%{name}/%{name}_libuv.so
+%{_libdir}/%{name}/%{libname}_libuv.so
%endif
%files devel
-%{_includedir}/%{name}
-%{_libdir}/%{name}.so
-%{_libdir}/pkgconfig/%{name}.pc
+%{_includedir}/%{libname}
+%{_libdir}/%{libname}.so
+%{_libdir}/pkgconfig/%{libname}.pc
%files tools
%{_bindir}/cbc*
@@ -204,7 +247,13 @@ make %{_smp_mflags} alltests test ARGS=%{_smp_mflags}
%changelog
-* Wed Sep 23 2020 Remi Collet <remi@remirepo.net> - 2.10.7-1
+* Mon Nov 16 2020 Remi Collet <remi@remirepo.net> - 2.10.8-2
+- rename to libcouchbase2 to allow parallel installation with libcouchbase v3
+- relocate IO plugins installation using patch from
+ https://github.com/couchbase/libcouchbase/pull/38
+
+
+* Wed Sep 23 2020 Remi Collet <remi@remirepo.net> - 2.10.8-1
- update to 2.10.8
* Wed Jun 17 2020 Remi Collet <remi@remirepo.net> - 2.10.7-1