summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0004-detect-snappy-version-for-cbc-version.patch85
-rw-r--r--libcouchbase.spec17
2 files changed, 99 insertions, 3 deletions
diff --git a/0004-detect-snappy-version-for-cbc-version.patch b/0004-detect-snappy-version-for-cbc-version.patch
new file mode 100644
index 0000000..3438409
--- /dev/null
+++ b/0004-detect-snappy-version-for-cbc-version.patch
@@ -0,0 +1,85 @@
+From 2f5e7ac51e13dd25b1ea4f40bcead3c90c03daa5 Mon Sep 17 00:00:00 2001
+From: Sergey Avseyev <sergey.avseyev@gmail.com>
+Date: Wed, 20 Dec 2017 12:49:34 +0300
+Subject: [PATCH] Carefully detect snappy version for cbc-version
+
+Some snappy builds might not include version information into
+snappy-stubs-public.h, display version from pkg-config in this
+case
+
+Change-Id: I6c07d7ba98c98af8d7ac0264a6b775edc65355c4
+---
+ cmake/Modules/FindCouchbaseSnappy.cmake | 15 +++++++++++----
+ cmake/config-cmake.h.in | 1 +
+ tools/cbc.cc | 16 ++++++++++++----
+ 3 files changed, 24 insertions(+), 8 deletions(-)
+
+diff --git a/cmake/Modules/FindCouchbaseSnappy.cmake b/cmake/Modules/FindCouchbaseSnappy.cmake
+index d8cb3601..98c4a2cb 100644
+--- a/cmake/Modules/FindCouchbaseSnappy.cmake
++++ b/cmake/Modules/FindCouchbaseSnappy.cmake
+@@ -1,11 +1,18 @@
+-FIND_PATH(SNAPPY_INCLUDES snappy-c.h
++INCLUDE(FindPkgConfig)
++PKG_CHECK_MODULES(SNAPPY snappy)
++IF(SNAPPY_FOUND)
++ SET(SNAPPY_INCLUDES ${SNAPPY_INCLUDE_DIRS})
++ SET(LCB_SNAPPY_PKG_VERSION ${SNAPPY_VERSION})
++ELSE()
++ FIND_PATH(SNAPPY_INCLUDES snappy-c.h
+ HINTS ENV SNAPPY_DIR ${SNAPPY_DIR}
+ PATH_SUFFIXES include)
+-FIND_LIBRARY(SNAPPY_LIBRARIES NAMES snappy
++ FIND_LIBRARY(SNAPPY_LIBRARIES NAMES snappy
+ HINTS ENV SNAPPY_DIR ${SNAPPY_DIR}
+ PATH_SUFFIXES lib)
+-IF(SNAPPY_LIBRARIES AND SNAPPY_INCLUDES)
++ IF(SNAPPY_LIBRARIES AND SNAPPY_INCLUDES)
+ SET(SNAPPY_FOUND TRUE)
+-ELSE()
++ ELSE()
+ SET(SNAPPY_FOUND FALSE)
++ ENDIF()
+ ENDIF()
+diff --git a/cmake/config-cmake.h.in b/cmake/config-cmake.h.in
+index 70db880f..1c3728ad 100644
+--- a/cmake/config-cmake.h.in
++++ b/cmake/config-cmake.h.in
+@@ -72,3 +72,4 @@
+
+ #define LCB_CLIENT_ID "libcouchbase/" LCB_VERSION_STRING " (" LCB_SYSTEM "; " LCB_SYSTEM_PROCESSOR "; " LCB_C_COMPILER ")"
+ #cmakedefine LCB_STATIC_SNAPPY
++#cmakedefine LCB_SNAPPY_PKG_VERSION "${LCB_SNAPPY_PKG_VERSION}"
+diff --git a/tools/cbc.cc b/tools/cbc.cc
+index bb7e11bc..a2f61402 100644
+--- a/tools/cbc.cc
++++ b/tools/cbc.cc
+@@ -853,13 +853,21 @@ VersionHandler::run()
+ #ifdef LCB_NO_SNAPPY
+ printf(" Snappy: SUPPORTED\n");
+ #else
+- printf(" Snappy: %d.%d.%d ("
+ #ifdef LCB_STATIC_SNAPPY
+- "static"
++#define LCB_SNAPPY_LINK "static"
+ #else
+- "dynamic"
++#define LCB_SNAPPY_LINK "dynamic"
++#endif
++#define EXPAND(VAR) VAR ## 1
++#define IS_EMPTY(VAR) EXPAND(VAR)
++
++#if defined(SNAPPY_MAJOR) && (IS_EMPTY(SNAPPY_MAJOR) != 1)
++ printf(" Snappy: %d.%d.%d (%s)\n", SNAPPY_MAJOR, SNAPPY_MINOR, SNAPPY_PATCHLEVEL, LCB_SNAPPY_LINK);
++#elif defined(LCB_SNAPPY_PKG_VERSION)
++ printf(" Snappy: %s (%s)\n", LCB_SNAPPY_PKG_VERSION, LCB_SNAPPY_LINK);
++#else
++ printf(" Snappy: unknown (%s)\n", LCB_SNAPPY_LINK);
+ #endif
+- ")\n", SNAPPY_MAJOR, SNAPPY_MINOR, SNAPPY_PATCHLEVEL);
+ #endif
+ } else {
+ printf(" Snappy: NOT SUPPORTED\n");
+--
+2.14.3
+
diff --git a/libcouchbase.spec b/libcouchbase.spec
index 3c8cc0d..333ed56 100644
--- a/libcouchbase.spec
+++ b/libcouchbase.spec
@@ -28,8 +28,8 @@
# hdrhistrogram suppoort seems broken, so not enabled
Name: libcouchbase
-Version: 2.8.3
-Release: 2%{?dist}
+Version: 2.8.4
+Release: 1%{?dist}
Summary: Couchbase client library
Group: System Environment/Libraries
License: ASL 2.0
@@ -39,6 +39,11 @@ Source0: http://packages.couchbase.com/clients/c/%{name}-%{version}.tar.gz
Patch0: 0001-enforce-system-crypto-policies.patch
Patch1: 0002-do-not-install-plugins-into-libdir.patch
Patch2: 0003-fix-pkgconfig-paths.patch
+# snappy-devel 1.1.7 in Rawhide (28) does not provide version info
+# in snappy-stubs-public.h, so we pull it from pkg-config
+# https://bugzilla.redhat.com/show_bug.cgi?id=1527850
+# https://github.com/couchbase/libcouchbase/commit/371502c8e516b466cef5e98567e71572b7093d96
+Patch3: 0004-detect-snappy-version-for-cbc-version.patch
BuildRequires: libtool
BuildRequires: openssl-devel
@@ -51,6 +56,7 @@ BuildRequires: pkgconfig(libuv) >= 1
%if %{with_dtrace}
BuildRequires: systemtap-sdt-devel >= 1.8
%endif
+BuildRequires: pkgconfig(snappy) >= 1.1
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
Recommends: %{name}-libevent%{_isa} = %{version}-%{release}
@@ -127,6 +133,7 @@ a Couchbase Server.
%patch0 -p1 -b .crypto
%patch1 -p1 -b .plug
%patch2 -p1 -b .pkgc
+%patch3 -p1 -b .snap
%build
@@ -143,7 +150,8 @@ a Couchbase Server.
%else
-DLCB_BUILD_DTRACE=OFF \
%endif
- -DLCB_NO_MOCK=1
+ -DLCB_NO_MOCK=1 \
+ -DLCB_NO_SNAPPY=0
make %{?_smp_mflags} V=1
@@ -194,6 +202,9 @@ make %{_smp_mflags} alltests test ARGS=%{_smp_mflags}
%changelog
+* Wed Dec 20 2017 Sergey Avseyev <sergey.avseyev@gmail.com> - 2.8.4-1
+- Update to 2.8.4
+
* Wed Nov 22 2017 Sergey Avseyev <sergey.avseyev@gmail.com> - 2.8.3-2
- Parallel tests