From df791cd2eab7a1434db8866349d054c7e48c9471 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 2 Nov 2017 10:22:47 +0100 Subject: 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 --- 0001-enforce-system-crypto-policies.patch | 26 + 0002-do-not-install-plugins-into-libdir.patch | 62 +++ 0003-fix-pkgconfig-paths.patch | 28 ++ compat_reports/2.8.1_to_2.8.2/compat_report.html | 591 +++++++++++++++++++++++ libcouchbase.spec | 123 ++++- libcouchbase.xml | 2 +- 6 files changed, 813 insertions(+), 19 deletions(-) create mode 100644 0001-enforce-system-crypto-policies.patch create mode 100644 0002-do-not-install-plugins-into-libdir.patch create mode 100644 0003-fix-pkgconfig-paths.patch create mode 100644 compat_reports/2.8.1_to_2.8.2/compat_report.html diff --git a/0001-enforce-system-crypto-policies.patch b/0001-enforce-system-crypto-policies.patch new file mode 100644 index 0000000..32a5833 --- /dev/null +++ b/0001-enforce-system-crypto-policies.patch @@ -0,0 +1,26 @@ +From bc5b9aecd78fe638f50dbe104fc83a67d87c0615 Mon Sep 17 00:00:00 2001 +From: Sergey Avseyev +Date: Tue, 26 Sep 2017 19:26:02 +0300 +Subject: [PATCH] Enforce system crypto policies + +--- + src/ssl/ssl_common.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/ssl/ssl_common.c b/src/ssl/ssl_common.c +index b752b5d2..8a615cfd 100644 +--- a/src/ssl/ssl_common.c ++++ b/src/ssl/ssl_common.c +@@ -277,8 +277,7 @@ lcbio_ssl_new(const char *cafile, int noverify, lcb_error_t *errp, + goto GT_ERR; + + } +- SSL_CTX_set_cipher_list(ret->ctx, "DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DES-CBC3-MD5:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:DHE-RSA-SEED-SHA:DHE-DSS-SEED-SHA:SEED-SHA:RC2-CBC-MD5:RC4-SHA:RC4-MD5:RC4-MD5:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC2-CBC-MD5:EXP-RC4-MD5:EXP-RC4-MD5"); +-// SSL_CTX_set_cipher_list(ret->ctx, "!NULL"); ++ SSL_CTX_set_cipher_list(ret->ctx, "PROFILE=SYSTEM"); + + if (cafile) { + if (!SSL_CTX_load_verify_locations(ret->ctx, cafile, NULL)) { +-- +2.13.5 + diff --git a/0002-do-not-install-plugins-into-libdir.patch b/0002-do-not-install-plugins-into-libdir.patch new file mode 100644 index 0000000..e487861 --- /dev/null +++ b/0002-do-not-install-plugins-into-libdir.patch @@ -0,0 +1,62 @@ +From 1816689ab59fb5eb120d044a9f55f67f373ab376 Mon Sep 17 00:00:00 2001 +From: Sergey Avseyev +Date: Wed, 27 Sep 2017 02:04:00 +0300 +Subject: [PATCH] Do not install plugins into libdir + +--- + cmake/config-cmake.h.in | 2 +- + plugins/io/libev/CMakeLists.txt | 2 +- + plugins/io/libevent/CMakeLists.txt | 2 +- + plugins/io/libuv/CMakeLists.txt | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/cmake/config-cmake.h.in b/cmake/config-cmake.h.in +index 81128091..f97d8bf5 100644 +--- a/cmake/config-cmake.h.in ++++ b/cmake/config-cmake.h.in +@@ -56,7 +56,7 @@ + + #cmakedefine LCB_USE_HDR_HISTOGRAM + +-#define LCB_LIBDIR "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" ++#define LCB_LIBDIR "${CMAKE_INSTALL_LIBDIR}/libcouchbase" + + #include "config_static.h" + #endif +diff --git a/plugins/io/libev/CMakeLists.txt b/plugins/io/libev/CMakeLists.txt +index 6eaa62f6..1ad13736 100644 +--- a/plugins/io/libev/CMakeLists.txt ++++ b/plugins/io/libev/CMakeLists.txt +@@ -26,4 +26,4 @@ ENDIF() + + INSTALL(TARGETS + couchbase_libev +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase") +diff --git a/plugins/io/libevent/CMakeLists.txt b/plugins/io/libevent/CMakeLists.txt +index 1b96a9e3..95ff434b 100644 +--- a/plugins/io/libevent/CMakeLists.txt ++++ b/plugins/io/libevent/CMakeLists.txt +@@ -22,7 +22,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}) ++ INSTALL(TARGETS couchbase_libevent LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase") + TARGET_LINK_LIBRARIES(couchbase_libevent ${LIBEVENT_LIBRARIES}) + ENDIF() + +diff --git a/plugins/io/libuv/CMakeLists.txt b/plugins/io/libuv/CMakeLists.txt +index 2492a835..86f31687 100644 +--- a/plugins/io/libuv/CMakeLists.txt ++++ b/plugins/io/libuv/CMakeLists.txt +@@ -38,5 +38,5 @@ INCLUDE_DIRECTORIES(AFTER ${LIBUV_INCLUDE_DIR}) + ADD_DEFINITIONS(-DLIBCOUCHBASE_INTERNAL=1) + INSTALL(TARGETS + couchbase_libuv +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/libcouchbase" + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +-- +2.13.5 + diff --git a/0003-fix-pkgconfig-paths.patch b/0003-fix-pkgconfig-paths.patch new file mode 100644 index 0000000..29e3985 --- /dev/null +++ b/0003-fix-pkgconfig-paths.patch @@ -0,0 +1,28 @@ +From 8355c1d68e8825e4aa006418ccd91eadbac6c02a Mon Sep 17 00:00:00 2001 +From: Sergey Avseyev +Date: Wed, 27 Sep 2017 12:30:44 +0300 +Subject: [PATCH] Fix pkgconfig paths + +Change-Id: I8459fc3d602266dd7bb9791f05f235da9308c562 +--- + packaging/libcouchbase.pc.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/packaging/libcouchbase.pc.in b/packaging/libcouchbase.pc.in +index 94820a65..c7171fcf 100644 +--- a/packaging/libcouchbase.pc.in ++++ b/packaging/libcouchbase.pc.in +@@ -1,7 +1,7 @@ + prefix=@CMAKE_INSTALL_PREFIX@ +-exec_prefix=${prefix}/@CMAKE_INSTALL_BINDIR@ +-includedir=${prefix}/include +-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ ++exec_prefix=@CMAKE_INSTALL_PREFIX@ ++includedir=@CMAKE_INSTALL_PREFIX@/include ++libdir=@CMAKE_INSTALL_LIBDIR@ + + Name: libcouchbase @LCB_VERSION@ + Description: Couchbase client library +-- +2.13.5 + diff --git a/compat_reports/2.8.1_to_2.8.2/compat_report.html b/compat_reports/2.8.1_to_2.8.2/compat_report.html new file mode 100644 index 0000000..d7253af --- /dev/null +++ b/compat_reports/2.8.1_to_2.8.2/compat_report.html @@ -0,0 +1,591 @@ + + + + + + + + +libcouchbase: 2.8.1 to 2.8.2 compatibility report + + + +

API compatibility report for the libcouchbase library between 2.8.1 and 2.8.2 versions on x86_64

+ +
+
+

Test Info


+ + + + + + + +
Library Namelibcouchbase
Version #12.8.1
Version #22.8.2
Archx86_64
GCC Version6.4.1
SubjectBinary Compatibility
+

Test Results


+ + + + + + +
Total Header Files29
Total Libraries1
Total Symbols / Types225 / 399
Compatibility100%
+

Problem Summary


+ + + + + + + + + +
SeverityCount
Added Symbols-0
Removed SymbolsHigh0
Problems with
Data Types
High0
Medium0
Low0
Problems with
Symbols
High0
Medium0
Low0
Problems with
Constants
Low0
+ +

Header Files  29 


+
+_cxxwrap.h
+api-legacy.h
+api3.h
+assert.h
+auth.h
+cbft.h
+cntl-private.h
+cntl.h
+configuration.h
+couchbase.h
+deprecated.h
+http.h
+iops.h
+ixmgmt.h
+kvbuf.h
+libev_io_opts.h
+libevent_io_opts.h
+libuv_compat.h
+libuv_io_opts.h
+n1ql.h
+pktfwd.h
+plugin-internal.h
+select_io_opts.h
+subdoc.h
+sysdefs.h
+vbucket.h
+views.h
+visibility.h
+wsaerr.h
+
+
to the top
+

Libraries  1 


+
+libcouchbase.so.2.0.49
+
+
to the top
+


+

Test Info


+ + + + + + +
Library Namelibcouchbase
Version #12.8.1
Version #22.8.2
Archx86_64
SubjectSource Compatibility
+

Test Results


+ + + + + + +
Total Header Files29
Total Libraries1
Total Symbols / Types434 / 406
Compatibility100%
+

Problem Summary


+ + + + + + + + + +
SeverityCount
Added Symbols-0
Removed SymbolsHigh0
Problems with
Data Types
High0
Medium0
Low0
Problems with
Symbols
High0
Medium0
Low0
Problems with
Constants
Low3
+ + +

Problems with Constants, Low Severity  3 


+configuration.h
+ +[+] LCB_VERSION +
+ + + +[+] LCB_VERSION_CHANGESET +
+ + + +[+] LCB_VERSION_STRING +
+ + +
+to the top
+

Header Files  29 


+
+_cxxwrap.h
+api-legacy.h
+api3.h
+assert.h
+auth.h
+cbft.h
+cntl-private.h
+cntl.h
+configuration.h
+couchbase.h
+deprecated.h
+http.h
+iops.h
+ixmgmt.h
+kvbuf.h
+libev_io_opts.h
+libevent_io_opts.h
+libuv_compat.h
+libuv_io_opts.h
+n1ql.h
+pktfwd.h
+plugin-internal.h
+select_io_opts.h
+subdoc.h
+sysdefs.h
+vbucket.h
+views.h
+visibility.h
+wsaerr.h
+
+
to the top
+

Libraries  1 


+
+libcouchbase.so.2.0.49
+
+
to the top
+



+ +
+ + diff --git a/libcouchbase.spec b/libcouchbase.spec index 0681c77..144298a 100644 --- a/libcouchbase.spec +++ b/libcouchbase.spec @@ -7,13 +7,28 @@ # Please, preserve the changelog entries # -# Tests require some need which are downloaded during make +%if 0%{?fedora} >= 25 || 0%{?rhel} >= 8 +%global with_tests 0%{!?_without_tests:1} +%else +# check-select-sock-tests hangs (btw, libevent backend is mandatory) %global with_tests 0%{?_with_tests:1} +%endif + +# Dtrace breaks parallel build - not enabled in Fedora package +%global with_dtrace 0 + +%if 0%{?fedora} >= 22 || 0%{?rhel} >= 7 +%global with_uv 1 +%else +%global with_uv 0 +%endif -%global with_dtrace 1 +# Notices: +# snappy supported but not enabled by default (upstream) +# hdrhistrogram suppoort seems broken, so not enabled Name: libcouchbase -Version: 2.8.1 +Version: 2.8.2 Release: 1%{?dist} Summary: Couchbase client library Group: System Environment/Libraries @@ -21,16 +36,30 @@ 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: 0001-enforce-system-crypto-policies.patch +Patch1: 0002-do-not-install-plugins-into-libdir.patch +Patch2: 0003-fix-pkgconfig-paths.patch + BuildRequires: libtool BuildRequires: openssl-devel -BuildRequires: cyrus-sasl-devel BuildRequires: cmake >= 2.8.9 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 %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 + %description The C library provides fast access to documents in Couchbase Server 2.0. @@ -53,10 +82,40 @@ 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} + +%description libevent +This package provides libevent back-end for libcouchbase. + + +%package libev +Summary: Couchbase client library - libev IO back-end +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description libev +This package provides libev back-end for libcouchbase. + + +%if %{with_uv} +%package libuv +Summary: Couchbase client library - libuv IO back-end +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description libuv +This package provides libuv back-end for libcouchbase. +%endif + + %package tools Summary: Couchbase tools Group: Applications/System Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libevent%{?_isa} = %{version}-%{release} %description tools The %{name}-tools package contains some command line tools to manage @@ -65,12 +124,26 @@ a Couchbase Server. %prep %setup -q +%patch0 -p1 -b .crypto +%patch1 -p1 -b .plug +%patch2 -p1 -b .pkgc %build %cmake \ - -DLCB_NO_TESTS=1 \ - -DLCB_BUILD_LIBUV=OFF + -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 make %{?_smp_mflags} V=1 @@ -78,32 +151,38 @@ make %{?_smp_mflags} V=1 %install make install DESTDIR=%{buildroot} -# Remove uneeded files -rm -f %{buildroot}%{_libdir}/*.la - %check %if %{with_tests} -make check +make test %else -: check disabled, missing '--with tests' option +: check disabled %endif +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + + %files %{!?_licensedir:%global license %%doc} +%doc README.markdown RELEASE_NOTES.markdown %license LICENSE %{_libdir}/%{name}.so.2* -# Backends -%{_libdir}/%{name}_libevent.so -%{_libdir}/%{name}_libev.so + +%files libevent +%{_libdir}/%{name}/%{name}_libevent.so + +%files libev +%{_libdir}/%{name}/%{name}_libev.so + +%if %{with_uv} +%files libuv +%{_libdir}/%{name}/%{name}_libuv.so +%endif %files devel -%doc RELEASE_NOTES.markdown %{_includedir}/%{name} -#{_mandir}/man3/libcouch* -#{_mandir}/man3/lcb* -#{_mandir}/man5/lcb* %{_libdir}/%{name}.so %{_libdir}/pkgconfig/%{name}.pc @@ -114,6 +193,14 @@ make check %changelog +* 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 diff --git a/libcouchbase.xml b/libcouchbase.xml index 52511b4..ae38777 100644 --- a/libcouchbase.xml +++ b/libcouchbase.xml @@ -9,7 +9,7 @@ -2.8.1 +2.8.2 -- cgit