diff options
-rw-r--r-- | 0004-detect-snappy-version-for-cbc-version.patch | 85 | ||||
-rw-r--r-- | libcouchbase.spec | 17 |
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 |