couchbase 4.4.2 → 4.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/BUILDING.md +182 -0
  2. package/CMakeLists.txt +13 -0
  3. package/CONTRIBUTING.md +1 -1
  4. package/README.md +4 -2
  5. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/BUILDING.md +206 -0
  6. package/deps/couchbase-cxx-client/CMakeLists.txt +18 -13
  7. package/deps/couchbase-cxx-client/README.md +2 -2
  8. package/deps/couchbase-cxx-client/cmake/APKBUILD.in +54 -0
  9. package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +0 -5
  10. package/deps/couchbase-cxx-client/cmake/Packaging.cmake +177 -10
  11. package/deps/couchbase-cxx-client/cmake/RPath.cmake +10 -0
  12. package/deps/couchbase-cxx-client/cmake/Testing.cmake +1 -1
  13. package/deps/couchbase-cxx-client/cmake/VersionInfo.cmake +28 -2
  14. package/deps/couchbase-cxx-client/cmake/build_version.hxx.in +1 -0
  15. package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.spec.in +45 -6
  16. package/deps/couchbase-cxx-client/cmake/couchbase_cxx_client.pc.in +2 -2
  17. package/deps/couchbase-cxx-client/cmake/debian/changelog.in +5 -0
  18. package/deps/couchbase-cxx-client/cmake/debian/compat +1 -0
  19. package/deps/couchbase-cxx-client/cmake/debian/control +40 -0
  20. package/deps/couchbase-cxx-client/cmake/debian/rules +41 -0
  21. package/deps/couchbase-cxx-client/cmake/debian/source/format +1 -0
  22. package/deps/couchbase-cxx-client/core/agent_group.cxx +8 -0
  23. package/deps/couchbase-cxx-client/core/agent_group.hxx +4 -0
  24. package/deps/couchbase-cxx-client/core/bucket.cxx +16 -20
  25. package/deps/couchbase-cxx-client/core/bucket.hxx +12 -12
  26. package/deps/couchbase-cxx-client/core/cluster.cxx +44 -52
  27. package/deps/couchbase-cxx-client/core/cluster_agent.cxx +8 -0
  28. package/deps/couchbase-cxx-client/core/cluster_agent.hxx +4 -0
  29. package/deps/couchbase-cxx-client/core/collections_component.cxx +2 -2
  30. package/deps/couchbase-cxx-client/core/columnar/agent.cxx +2 -2
  31. package/deps/couchbase-cxx-client/core/columnar/agent.hxx +1 -1
  32. package/deps/couchbase-cxx-client/core/columnar/management_component.cxx +3 -3
  33. package/deps/couchbase-cxx-client/core/columnar/query_component.cxx +103 -45
  34. package/deps/couchbase-cxx-client/core/columnar/query_component.hxx +1 -0
  35. package/deps/couchbase-cxx-client/core/free_form_http_request.hxx +8 -0
  36. package/deps/couchbase-cxx-client/core/http_component.cxx +55 -24
  37. package/deps/couchbase-cxx-client/core/http_component.hxx +4 -0
  38. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +1 -0
  39. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +15 -15
  40. package/deps/couchbase-cxx-client/core/impl/bootstrap_error.hxx +10 -2
  41. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +1 -1
  42. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +6 -6
  43. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +36 -40
  44. package/deps/couchbase-cxx-client/core/impl/collection.cxx +29 -5
  45. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +5 -5
  46. package/deps/couchbase-cxx-client/core/impl/error.cxx +24 -3
  47. package/deps/couchbase-cxx-client/core/impl/get_replica.hxx +2 -0
  48. package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.hxx +2 -0
  49. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +13 -5
  50. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -3
  51. package/deps/couchbase-cxx-client/core/impl/observe_seqno.hxx +2 -0
  52. package/deps/couchbase-cxx-client/core/impl/query.cxx +1 -0
  53. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +6 -6
  54. package/deps/couchbase-cxx-client/core/impl/scan_result.cxx +1 -1
  55. package/deps/couchbase-cxx-client/core/impl/search.cxx +2 -0
  56. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +12 -12
  57. package/deps/couchbase-cxx-client/core/io/http_command.hxx +31 -20
  58. package/deps/couchbase-cxx-client/core/io/http_session.cxx +5 -0
  59. package/deps/couchbase-cxx-client/core/io/http_session.hxx +17 -4
  60. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +97 -49
  61. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +15 -14
  62. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +48 -33
  63. package/deps/couchbase-cxx-client/core/io/streams.cxx +256 -0
  64. package/deps/couchbase-cxx-client/core/io/streams.hxx +31 -155
  65. package/deps/couchbase-cxx-client/core/logger/configuration.hxx +5 -0
  66. package/deps/couchbase-cxx-client/core/logger/custom_rotating_file_sink.cxx +2 -3
  67. package/deps/couchbase-cxx-client/core/logger/logger.cxx +39 -7
  68. package/deps/couchbase-cxx-client/core/logger/logger.hxx +7 -0
  69. package/deps/couchbase-cxx-client/core/meta/features.hxx +11 -0
  70. package/deps/couchbase-cxx-client/core/meta/version.cxx +47 -6
  71. package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.cxx +188 -0
  72. package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.hxx +73 -0
  73. package/deps/couchbase-cxx-client/core/operations/document_analytics.cxx +23 -17
  74. package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +1 -0
  75. package/deps/couchbase-cxx-client/core/operations/document_append.hxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/document_get.hxx +2 -0
  79. package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/document_get_any_replica.hxx +2 -0
  83. package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +2 -0
  85. package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +2 -0
  90. package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +2 -0
  91. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -0
  92. package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +2 -0
  93. package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +2 -0
  94. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +1 -0
  95. package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +2 -0
  96. package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +2 -0
  97. package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +2 -0
  98. package/deps/couchbase-cxx-client/core/operations/document_view.hxx +1 -0
  99. package/deps/couchbase-cxx-client/core/operations/http_noop.hxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.hxx +1 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.hxx +1 -0
  102. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.hxx +1 -0
  103. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.hxx +1 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.hxx +1 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  106. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.hxx +1 -0
  107. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.hxx +1 -0
  108. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.hxx +1 -0
  109. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.hxx +1 -0
  110. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.hxx +1 -0
  111. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.hxx +1 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.hxx +1 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +23 -15
  114. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.hxx +4 -3
  115. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.hxx +1 -0
  116. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.hxx +1 -0
  117. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -1
  118. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.hxx +1 -0
  119. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +3 -1
  120. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.hxx +1 -0
  121. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +3 -1
  122. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.hxx +1 -0
  123. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +3 -1
  124. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.hxx +1 -0
  125. package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.hxx +1 -0
  126. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.cxx +3 -1
  127. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.hxx +1 -0
  128. package/deps/couchbase-cxx-client/core/operations/management/change_password.hxx +1 -0
  129. package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.hxx +1 -0
  130. package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
  131. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +3 -2
  132. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +2 -0
  133. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +5 -2
  134. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.hxx +1 -0
  135. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +4 -2
  136. package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +2 -0
  137. package/deps/couchbase-cxx-client/core/operations/management/collections_manifest_get.hxx +2 -0
  138. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.hxx +3 -2
  139. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.hxx +3 -2
  140. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.hxx +3 -2
  141. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.hxx +3 -2
  142. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.hxx +3 -2
  143. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.hxx +3 -2
  144. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.hxx +3 -2
  145. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.hxx +3 -2
  146. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.hxx +3 -2
  147. package/deps/couchbase-cxx-client/core/operations/management/freeform.hxx +2 -0
  148. package/deps/couchbase-cxx-client/core/operations/management/group_drop.hxx +1 -0
  149. package/deps/couchbase-cxx-client/core/operations/management/group_get.hxx +1 -0
  150. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.hxx +1 -0
  151. package/deps/couchbase-cxx-client/core/operations/management/group_upsert.cxx +3 -3
  152. package/deps/couchbase-cxx-client/core/operations/management/group_upsert.hxx +1 -0
  153. package/deps/couchbase-cxx-client/core/operations/management/query_index_build.hxx +2 -0
  154. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +3 -0
  155. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +1 -0
  156. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +1 -0
  157. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +2 -0
  158. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +3 -0
  159. package/deps/couchbase-cxx-client/core/operations/management/role_get_all.hxx +1 -0
  160. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -1
  161. package/deps/couchbase-cxx-client/core/operations/management/scope_create.hxx +1 -0
  162. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +4 -1
  163. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.hxx +1 -0
  164. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +3 -1
  165. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.hxx +1 -0
  166. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +1 -0
  167. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +3 -2
  168. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +1 -0
  169. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +3 -2
  170. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +1 -0
  171. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +3 -2
  172. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
  173. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +3 -2
  174. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +1 -0
  175. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +5 -2
  176. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +1 -0
  177. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +5 -2
  178. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +1 -0
  179. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +4 -2
  180. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +1 -0
  181. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +3 -2
  182. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +2 -0
  183. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.hxx +1 -0
  184. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +5 -2
  185. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +1 -0
  186. package/deps/couchbase-cxx-client/core/operations/management/user_drop.hxx +1 -0
  187. package/deps/couchbase-cxx-client/core/operations/management/user_get.hxx +1 -0
  188. package/deps/couchbase-cxx-client/core/operations/management/user_get_all.hxx +1 -0
  189. package/deps/couchbase-cxx-client/core/operations/management/user_upsert.cxx +3 -3
  190. package/deps/couchbase-cxx-client/core/operations/management/user_upsert.hxx +1 -0
  191. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -1
  192. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.hxx +1 -0
  193. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -1
  194. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.hxx +1 -0
  195. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +3 -1
  196. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.hxx +2 -0
  197. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -1
  198. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.hxx +1 -0
  199. package/deps/couchbase-cxx-client/core/origin.cxx +37 -17
  200. package/deps/couchbase-cxx-client/core/platform/base64.cc +1 -1
  201. package/deps/couchbase-cxx-client/core/platform/random.cc +2 -0
  202. package/deps/couchbase-cxx-client/core/platform/uuid.h +6 -6
  203. package/deps/couchbase-cxx-client/core/row_streamer.cxx +1 -1
  204. package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.cc +1 -1
  205. package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.h +4 -4
  206. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +2 -0
  207. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +8 -0
  208. package/deps/couchbase-cxx-client/core/tracing/constants.hxx +3 -0
  209. package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.cxx +87 -0
  210. package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.hxx +57 -0
  211. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.hxx +9 -21
  212. package/deps/couchbase-cxx-client/core/transactions/attempt_context.hxx +6 -33
  213. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +57 -56
  214. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +17 -18
  215. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +2 -2
  216. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +2 -2
  217. package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.hxx +0 -20
  218. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +2 -2
  219. package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +128 -52
  220. package/deps/couchbase-cxx-client/couchbase/analytics_options.hxx +4 -3
  221. package/deps/couchbase-cxx-client/couchbase/codec/tao_json_serializer.hxx +1 -1
  222. package/deps/couchbase-cxx-client/couchbase/common_options.hxx +16 -1
  223. package/deps/couchbase-cxx-client/couchbase/metrics/otel_meter.hxx +16 -20
  224. package/deps/couchbase-cxx-client/couchbase/mutate_in_specs.hxx +2 -2
  225. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +4 -3
  226. package/deps/couchbase-cxx-client/couchbase/search_options.hxx +1 -1
  227. package/dist/analyticsindexmanager.d.ts +98 -14
  228. package/dist/analyticsindexmanager.js +452 -411
  229. package/dist/binding.d.ts +53 -4
  230. package/dist/bindingutilities.d.ts +26 -1
  231. package/dist/bindingutilities.js +108 -1
  232. package/dist/couchbase.d.ts +3 -1
  233. package/dist/couchbase.js +2 -0
  234. package/dist/rangeScan.d.ts +1 -1
  235. package/dist/rangeScan.js +1 -1
  236. package/dist/transactions.d.ts +34 -3
  237. package/dist/transactions.js +25 -18
  238. package/dist/transcoders.d.ts +68 -0
  239. package/dist/transcoders.js +194 -1
  240. package/dist/usermanager.d.ts +14 -14
  241. package/dist/usermanager.js +178 -228
  242. package/dist/utilities.js +4 -6
  243. package/dist/utilities_internal.js +1 -2
  244. package/package.json +9 -8
  245. package/src/binding.cpp +13 -13
  246. package/src/connection.cpp +22 -0
  247. package/src/connection.hpp +12 -0
  248. package/src/connection_autogen.cpp +100 -0
  249. package/src/jstocbpp_autogen.hpp +315 -8
  250. package/src/jstocbpp_transactions.hpp +1 -2
  251. package/tools/gen-bindings-js.js +38 -3
  252. package/tools/gen-bindings-json.py +575 -328
@@ -4,6 +4,7 @@ include(CMakePackageConfigHelpers)
4
4
  install(DIRECTORY ${PROJECT_SOURCE_DIR}/couchbase DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
5
5
  install(FILES LICENSE.txt DESTINATION ${CMAKE_INSTALL_DOCDIR})
6
6
 
7
+ set(COUCHBASE_CXX_CLIENT_PKGCONFIG_VERSION "${COUCHBASE_CXX_CLIENT_SEMVER}" CACHE STRING "The version to use in couchbase_cxx_client.pc")
7
8
  configure_file(${PROJECT_SOURCE_DIR}/cmake/couchbase_cxx_client.pc.in
8
9
  ${PROJECT_BINARY_DIR}/packaging/couchbase_cxx_client.pc @ONLY)
9
10
  install(FILES ${PROJECT_BINARY_DIR}/packaging/couchbase_cxx_client.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
@@ -40,9 +41,13 @@ set(COUCHBASE_CXX_CLIENT_MANIFEST "${PROJECT_BINARY_DIR}/packaging/MANIFEST")
40
41
  if(APPLE)
41
42
  find_program(TAR gtar)
42
43
  find_program(SED gsed)
44
+ find_program(XARGS gxargs)
45
+ find_program(CP gcp)
43
46
  else()
44
47
  find_program(TAR tar)
45
48
  find_program(SED sed)
49
+ find_program(XARGS xargs)
50
+ find_program(CP cp)
46
51
  endif()
47
52
 
48
53
  add_custom_command(
@@ -62,6 +67,7 @@ set(CPM_USE_LOCAL_PACKAGES OFF CACHE BOOL \"\" FORCE)
62
67
  set(CPM_SOURCE_CACHE \"\${PROJECT_SOURCE_DIR}/third_party_cache\" CACHE STRING \"\" FORCE)
63
68
  set(COUCHBASE_CXX_CLIENT_GIT_REVISION \"${COUCHBASE_CXX_CLIENT_GIT_REVISION}\")
64
69
  set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE \"${COUCHBASE_CXX_CLIENT_GIT_DESCRIBE}\")
70
+ set(COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP \"${COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP}\")
65
71
  set(COUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE_ROOT \"\${PROJECT_SOURCE_DIR}/third_party_cache\" CACHE STRING \"\" FORCE)
66
72
  message(STATUS \"Building from Tarball: ${COUCHBASE_CXX_CLIENT_TARBALL_NAME}.tar.gz\")
67
73
  ")
@@ -84,12 +90,12 @@ add_custom_command(
84
90
  -DCPM_USE_LOCAL_PACKAGES=OFF -DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=OFF -DCOUCHBASE_CXX_CLIENT_INSTALL=ON
85
91
  -DCOUCHBASE_CXX_RECORD_BUILD_INFO_FOR_TARBALL=ON
86
92
  COMMAND
87
- xargs --arg-file=${COUCHBASE_CXX_TARBALL_THIRD_PARTY_GLOB_FILE} -I {} find
93
+ ${XARGS} --arg-file=${COUCHBASE_CXX_TARBALL_THIRD_PARTY_GLOB_FILE} -I {} find
88
94
  "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache" -wholename "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache/{}"
89
95
  -type f | grep -v "crypto_test_data\\|googletest" | uniq >
90
96
  "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/third_party_manifest.txt"
91
97
  COMMAND ${CMAKE_COMMAND} -E make_directory "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/filtered_cache"
92
- COMMAND xargs --arg-file="${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/third_party_manifest.txt" -I {} cp --parents {}
98
+ COMMAND ${XARGS} --arg-file="${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/third_party_manifest.txt" -I {} ${CP} --parents {}
93
99
  "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/filtered_cache"
94
100
  COMMAND
95
101
  ${CMAKE_COMMAND} -E rename
@@ -106,6 +112,116 @@ add_custom_command(
106
112
 
107
113
  add_custom_target(packaging_tarball DEPENDS ${COUCHBASE_CXX_CLIENT_TARBALL})
108
114
 
115
+ option(COUCHBASE_CXX_CLIENT_DEB_TARGETS "Enable targets for building DEBs" FALSE)
116
+ if(COUCHBASE_CXX_CLIENT_DEB_TARGETS)
117
+ find_program(DPKG_BUILDPACKAGE dpkg-buildpackage REQUIRED) # apt install -y dpkg-dev
118
+ find_program(SUDO sudo REQUIRED) # apt install -y sudo
119
+ find_program(COWBUILDER cowbuilder REQUIRED) # apt install -y cowbuilder
120
+
121
+ string(TIMESTAMP COUCHBASE_CXX_CLIENT_DEB_DATE "%a, %d %b %Y %H:%M:%S %z" UTC)
122
+
123
+ file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/packaging/workspace/debian/source/")
124
+
125
+ set(COUCHBASE_CXX_CLIENT_DEBIAN_CHANGELOG "${PROJECT_BINARY_DIR}/packaging/workspace/debian/changelog")
126
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/debian/changelog.in "${COUCHBASE_CXX_CLIENT_DEBIAN_CHANGELOG}" @ONLY)
127
+
128
+ file(COPY ${PROJECT_SOURCE_DIR}/cmake/debian/compat ${PROJECT_SOURCE_DIR}/cmake/debian/control
129
+ ${PROJECT_SOURCE_DIR}/cmake/debian/rules DESTINATION "${PROJECT_BINARY_DIR}/packaging/workspace/debian/")
130
+ file(COPY ${PROJECT_SOURCE_DIR}/cmake/debian/source/format
131
+ DESTINATION "${PROJECT_BINARY_DIR}/packaging/workspace/debian/source/")
132
+
133
+ set(COUCHBASE_CXX_CLIENT_DEBIAN_ORIG_TARBALL
134
+ "${PROJECT_BINARY_DIR}/packaging/couchbase-cxx-client_${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}.orig.tar.gz")
135
+ add_custom_command(
136
+ OUTPUT ${COUCHBASE_CXX_CLIENT_DEBIAN_ORIG_TARBALL}
137
+ WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/packaging"
138
+ COMMAND ${CMAKE_COMMAND} -E copy "${COUCHBASE_CXX_CLIENT_TARBALL}" "${COUCHBASE_CXX_CLIENT_DEBIAN_ORIG_TARBALL}"
139
+ DEPENDS ${COUCHBASE_CXX_CLIENT_TARBALL})
140
+
141
+ set(COUCHBASE_CXX_CLIENT_DEBIAN_TARBALL_EXTRACTED "${PROJECT_BINARY_DIR}/packaging/tarball_extracted.txt")
142
+ add_custom_command(
143
+ OUTPUT ${COUCHBASE_CXX_CLIENT_DEBIAN_TARBALL_EXTRACTED}
144
+ WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/packaging/workspace"
145
+ COMMAND ${TAR} --strip-components=1 -xf "${COUCHBASE_CXX_CLIENT_TARBALL}"
146
+ COMMAND touch ${COUCHBASE_CXX_CLIENT_DEBIAN_TARBALL_EXTRACTED}
147
+ DEPENDS ${COUCHBASE_CXX_CLIENT_TARBALL})
148
+
149
+ set(COUCHBASE_CXX_CLIENT_DEBIAN_DSC
150
+ "${PROJECT_BINARY_DIR}/packaging/couchbase-cxx-client_${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}-${COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE}.dsc"
151
+ )
152
+ add_custom_command(
153
+ OUTPUT ${COUCHBASE_CXX_CLIENT_DEBIAN_DSC}
154
+ WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/packaging/workspace"
155
+ COMMAND ${DPKG_BUILDPACKAGE} -us -uc
156
+ DEPENDS ${COUCHBASE_CXX_CLIENT_DEBIAN_ORIG_TARBALL} ${COUCHBASE_CXX_CLIENT_DEBIAN_TARBALL_EXTRACTED})
157
+
158
+ function(select_mirror_options distro options)
159
+ if(${distro} STREQUAL "bookworm")
160
+ set(${options}
161
+ --components
162
+ main
163
+ --mirror
164
+ https://ftp.debian.org/debian
165
+ PARENT_SCOPE)
166
+ else()
167
+ if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
168
+ set(${options}
169
+ --components
170
+ "main universe"
171
+ --mirror
172
+ http://ports.ubuntu.com/ubuntu-ports
173
+ PARENT_SCOPE)
174
+ else()
175
+ set(${options}
176
+ --components
177
+ "main universe"
178
+ --mirror
179
+ http://archive.ubuntu.com/ubuntu
180
+ PARENT_SCOPE)
181
+ endif()
182
+ endif()
183
+ endfunction()
184
+
185
+ set(cowbuilder_results "${PROJECT_BINARY_DIR}/packaging/results")
186
+ file(MAKE_DIRECTORY "${cowbuilder_results}")
187
+
188
+ list(
189
+ APPEND
190
+ COUCHBASE_CXX_CLIENT_SUPPORTED_DISTROS
191
+ "jammy"
192
+ "noble"
193
+ "bookworm")
194
+
195
+ set(cowbuilder_root "${PROJECT_BINARY_DIR}/packaging/root.cow")
196
+ set(last_output "")
197
+ foreach(distro ${COUCHBASE_CXX_CLIENT_SUPPORTED_DISTROS})
198
+ select_mirror_options(${distro} mirror_options)
199
+ set(timestamp "${PROJECT_BINARY_DIR}/packaging/${distro}_done.txt")
200
+ set(dependencies ${COUCHBASE_CXX_CLIENT_DEBIAN_DSC})
201
+
202
+ if(last_output)
203
+ list(APPEND dependencies ${last_output})
204
+ endif()
205
+
206
+ add_custom_command(
207
+ COMMENT "Building DEB for ${distro}"
208
+ OUTPUT ${timestamp}
209
+ WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/packaging"
210
+ COMMAND ${SUDO} ${CMAKE_COMMAND} -E rm -rf "${cowbuilder_root}"
211
+ COMMAND ${SUDO} ${COWBUILDER} --create --basepath "${cowbuilder_root}" --distribution ${distro} ${mirror_options}
212
+ COMMAND
213
+ ${SUDO} ${COWBUILDER} --build --basepath "${cowbuilder_root}" --buildresult
214
+ "${cowbuilder_results}/couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}-${COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE}.${distro}.${CMAKE_SYSTEM_PROCESSOR}"
215
+ --debbuildopts -j8 --debbuildopts "-us -uc" ${COUCHBASE_CXX_CLIENT_DEBIAN_DSC}
216
+ COMMAND touch ${timestamp}
217
+ DEPENDS ${dependencies})
218
+
219
+ set(last_output ${timestamp})
220
+ endforeach()
221
+
222
+ add_custom_target(packaging_deb DEPENDS ${last_output})
223
+ endif()
224
+
109
225
  option(COUCHBASE_CXX_CLIENT_RPM_TARGETS "Enable targets for building RPMs" FALSE)
110
226
  if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
111
227
  find_program(MOCK mock REQUIRED) # dnf install -y mock
@@ -131,22 +247,26 @@ if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
131
247
 
132
248
  add_custom_target(packaging_srpm DEPENDS ${COUCHBASE_CXX_CLIENT_SRPM})
133
249
 
134
- list(APPEND COUCHBASE_CXX_CLIENT_SUPPORTED_ROOTS
250
+ list(
251
+ APPEND
252
+ COUCHBASE_CXX_CLIENT_SUPPORTED_ROOTS
253
+ "opensuse-leap-15.5-${CMAKE_SYSTEM_PROCESSOR}"
135
254
  "rocky-9-${CMAKE_SYSTEM_PROCESSOR}"
255
+ "rocky-8-${CMAKE_SYSTEM_PROCESSOR}"
136
256
  "amazonlinux-2023-${CMAKE_SYSTEM_PROCESSOR}"
137
- )
257
+ "fedora-41-${CMAKE_SYSTEM_PROCESSOR}"
258
+ "fedora-40-${CMAKE_SYSTEM_PROCESSOR}")
138
259
 
139
260
  message(STATUS "Supported build roots for RPM packages: ${COUCHBASE_CXX_CLIENT_SUPPORTED_ROOTS}")
140
261
 
141
- # Build the chain of the dependencies from the timestamps, so that everything
142
- # will be executed one-by-one in order, because the mock cannot run multiple
143
- # roots simultaneously
262
+ # Build the chain of the dependencies from the timestamps, so that everything will be executed one-by-one in order,
263
+ # because the mock cannot run multiple roots simultaneously
144
264
  set(last_output "")
145
265
  foreach(root ${COUCHBASE_CXX_CLIENT_SUPPORTED_ROOTS})
146
266
  set(timestamp "${PROJECT_BINARY_DIR}/packaging/rpm/${root}/done.txt")
147
267
  set(dependencies ${COUCHBASE_CXX_CLIENT_SRPM})
148
268
 
149
- if (last_output)
269
+ if(last_output)
150
270
  list(APPEND dependencies ${last_output})
151
271
  endif()
152
272
 
@@ -154,8 +274,8 @@ if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
154
274
  COMMENT "Building RPM for ${root}"
155
275
  OUTPUT ${timestamp}
156
276
  WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/packaging"
157
- COMMAND ${MOCK} --rebuild --root=${root}
158
- --resultdir=${PROJECT_BINARY_DIR}/packaging/rpm/${root} "${COUCHBASE_CXX_CLIENT_SRPM}"
277
+ COMMAND ${MOCK} --rebuild --root=${root} --resultdir=${PROJECT_BINARY_DIR}/packaging/rpm/${root}
278
+ "${COUCHBASE_CXX_CLIENT_SRPM}"
159
279
  COMMAND touch ${timestamp}
160
280
  DEPENDS ${dependencies})
161
281
 
@@ -165,3 +285,50 @@ if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
165
285
  # add target that depends on the last root
166
286
  add_custom_target(packaging_rpm DEPENDS ${last_output})
167
287
  endif()
288
+
289
+ option(COUCHBASE_CXX_CLIENT_APK_TARGETS "Enable targets for building APKs (for Alpine Linux)" FALSE)
290
+ if(COUCHBASE_CXX_CLIENT_APK_TARGETS)
291
+ find_program(ABUILD abuild REQUIRED) # apk add alpine-sdk
292
+
293
+ set(COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}")
294
+ set(COUCHBASE_CXX_CLIENT_TARBALL_ALPINE
295
+ "${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE}.tar.gz")
296
+ if(${COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS} GREATER 0)
297
+ set(COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE
298
+ "couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}_p${COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS}")
299
+ set(COUCHBASE_CXX_CLIENT_TARBALL_ALPINE
300
+ "${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE}.tar.gz")
301
+ endif()
302
+
303
+ set(cxxcbc_apkbuild_file "${PROJECT_BINARY_DIR}/packaging/APKBUILD")
304
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/APKBUILD.in "${cxxcbc_apkbuild_file}" @ONLY)
305
+
306
+ if(NOT
307
+ "${COUCHBASE_CXX_CLIENT_TARBALL}"
308
+ STREQUAL
309
+ "${COUCHBASE_CXX_CLIENT_TARBALL_ALPINE}")
310
+ add_custom_command(
311
+ OUTPUT ${COUCHBASE_CXX_CLIENT_TARBALL_ALPINE}
312
+ WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/packaging"
313
+ COMMAND ${CMAKE_COMMAND} -E copy "${COUCHBASE_CXX_CLIENT_TARBALL}" "${COUCHBASE_CXX_CLIENT_TARBALL_ALPINE}"
314
+ DEPENDS ${COUCHBASE_CXX_CLIENT_TARBALL})
315
+ endif()
316
+
317
+ set(cxxcbc_apkbuild_checksum "${PROJECT_BINARY_DIR}/packaging/apk_checksum_updated.txt")
318
+ add_custom_command(
319
+ OUTPUT ${cxxcbc_apkbuild_checksum}
320
+ WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/packaging"
321
+ COMMAND ${ABUILD} checksum
322
+ COMMAND touch ${cxxcbc_apkbuild_checksum}
323
+ DEPENDS ${COUCHBASE_CXX_CLIENT_TARBALL_ALPINE} ${cxxcbc_apkbuild_file})
324
+
325
+ set(cxxcbc_apkbuild_timestamp "${PROJECT_BINARY_DIR}/packaging/apk_timestamp.txt")
326
+ add_custom_command(
327
+ OUTPUT ${cxxcbc_apkbuild_timestamp}
328
+ WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/packaging"
329
+ COMMAND ${ABUILD} -r
330
+ COMMAND touch ${cxxcbc_apkbuild_timestamp}
331
+ DEPENDS ${COUCHBASE_CXX_CLIENT_TARBALL_ALPINE} ${cxxcbc_apkbuild_checksum})
332
+
333
+ add_custom_target(packaging_apk DEPENDS ${cxxcbc_apkbuild_timestamp})
334
+ endif()
@@ -0,0 +1,10 @@
1
+ if(NOT MSVC)
2
+ if(APPLE)
3
+ set(CMAKE_MACOSX_RPATH ON)
4
+ endif()
5
+ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON)
6
+ list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" isSystemDir)
7
+ if("${isSystemDir}" STREQUAL "-1")
8
+ set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
9
+ endif()
10
+ endif()
@@ -15,7 +15,7 @@ if(COUCHBASE_CXX_CLIENT_ENABLE_VALGRIND)
15
15
  if(VALGRIND)
16
16
  set(VALGRIND_COMMAND "${VALGRIND}")
17
17
  set(VALGRIND_COMMAND_OPTIONS
18
- "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe"
18
+ "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe --suppressions=${PROJECT_SOURCE_DIR}/.valgrind_suppressions.txt"
19
19
  )
20
20
  set(MEMORYCHECK_COMMAND "${VALGRIND}")
21
21
  set(MEMORYCHECK_COMMAND_OPTIONS "${VALGRIND_COMMAND_OPTIONS}")
@@ -24,8 +24,30 @@ if(NOT COUCHBASE_CXX_CLIENT_GIT_DESCRIBE)
24
24
  endif()
25
25
  endif()
26
26
 
27
- string(TIMESTAMP COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP "%Y-%m-%dT%H:%M:%S" UTC)
28
- string(TIMESTAMP COUCHBASE_CXX_CLIENT_BUILD_DATE "%Y-%m-%d" UTC)
27
+ if(NOT COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP)
28
+ if(GIT)
29
+ execute_process(
30
+ COMMAND git describe --tags --abbrev=0 HEAD
31
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
32
+ RESULT_VARIABLE tag_result
33
+ OUTPUT_STRIP_TRAILING_WHITESPACE
34
+ OUTPUT_VARIABLE last_tag)
35
+
36
+ if (tag_result EQUAL 0)
37
+ execute_process(
38
+ COMMAND git log --max-count=1 --no-patch --format=%cd --date=format:%Y-%m-%dT%H:%M:%S ${last_tag}
39
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
40
+ OUTPUT_STRIP_TRAILING_WHITESPACE
41
+ OUTPUT_VARIABLE COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP)
42
+ endif()
43
+ endif()
44
+
45
+ if (NOT COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP)
46
+ string(TIMESTAMP COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP "%Y-%m-%dT%H:%M:%S" UTC)
47
+ endif()
48
+ endif()
49
+
50
+ string(REGEX REPLACE "T.*" "" COUCHBASE_CXX_CLIENT_BUILD_DATE "${COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP}")
29
51
 
30
52
  # set(couchbase_cxx_client_BUILD_NUMBER 142)
31
53
  # set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE "1.0.0-beta.4-27-g6807da0") #-> "couchbase_cxx_client-1.0.0-beta.4+142.27.6807da0"
@@ -36,6 +58,7 @@ string(TIMESTAMP COUCHBASE_CXX_CLIENT_BUILD_DATE "%Y-%m-%d" UTC)
36
58
  set(COUCHBASE_CXX_CLIENT_SEMVER "${couchbase_cxx_client_VERSION}")
37
59
  set(COUCHBASE_CXX_CLIENT_PACKAGE_VERSION "${couchbase_cxx_client_VERSION}")
38
60
  set(COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE "${couchbase_cxx_client_BUILD_NUMBER}")
61
+ set(COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS 0)
39
62
  if(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE MATCHES
40
63
  "^([0-9]+\\.[0-9]+\\.[0-9]+)(-([a-zA-Z0-9\\.]+))?(-([0-9]+)-g([a-zA-Z0-9]+))?$")
41
64
  set(COUCHBASE_CXX_CLIENT_SEMVER "${CMAKE_MATCH_1}")
@@ -45,6 +68,7 @@ if(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE MATCHES
45
68
  set(COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE "${CMAKE_MATCH_3}.${couchbase_cxx_client_BUILD_NUMBER}")
46
69
  endif()
47
70
  if(CMAKE_MATCH_5 AND CMAKE_MATCH_5 GREATER 0) # number_of_commits.build_number.sha1
71
+ set(COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS ${CMAKE_MATCH_5})
48
72
  set(COUCHBASE_CXX_CLIENT_SEMVER
49
73
  "${COUCHBASE_CXX_CLIENT_SEMVER}+${CMAKE_MATCH_5}.${couchbase_cxx_client_BUILD_NUMBER}.${CMAKE_MATCH_6}")
50
74
  if(CMAKE_MATCH_3) # pre-release
@@ -56,6 +80,8 @@ if(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE MATCHES
56
80
  endif()
57
81
  endif()
58
82
 
83
+ set(COUCHBASE_CXX_CLIENT_WRAPPER_UNIFIED_ID "" CACHE STRING "Unified ID for wrapper SDK formatted as '<name>/<version>'")
84
+
59
85
  configure_file(${PROJECT_SOURCE_DIR}/cmake/build_version.hxx.in
60
86
  ${PROJECT_BINARY_DIR}/generated/couchbase/build_version.hxx @ONLY)
61
87
  configure_file(${PROJECT_SOURCE_DIR}/cmake/build_config.hxx.in
@@ -32,5 +32,6 @@ constexpr auto COUCHBASE_CXX_CLIENT_VERSION_BUILD = @couchbase_cxx_client_BUILD_
32
32
  constexpr auto COUCHBASE_CXX_CLIENT_GIT_REVISION = "@COUCHBASE_CXX_CLIENT_GIT_REVISION@";
33
33
  constexpr auto COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT = "@COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT@";
34
34
  constexpr auto COUCHBASE_CXX_CLIENT_GIT_DESCRIBE = "@COUCHBASE_CXX_CLIENT_GIT_DESCRIBE@";
35
+ constexpr auto COUCHBASE_CXX_CLIENT_WRAPPER_UNIFIED_ID = "@COUCHBASE_CXX_CLIENT_WRAPPER_UNIFIED_ID@";
35
36
  #cmakedefine COUCHBASE_CXX_CLIENT_STATIC_STDLIB 1
36
37
  #cmakedefine COUCHBASE_CXX_CLIENT_STATIC_OPENSSL 1
@@ -1,3 +1,9 @@
1
+ %if 0%{?suse_version}
2
+ %global license_dir %{_datadir}/doc
3
+ %else
4
+ %global license_dir %{_docdir}
5
+ %endif
6
+
1
7
  Name: couchbase-cxx-client
2
8
  Summary: Couchbase C++ SDK
3
9
  Version: @COUCHBASE_CXX_CLIENT_PACKAGE_VERSION@
@@ -6,21 +12,31 @@ Vendor: Couchbase, Inc.
6
12
  Packager: Couchbase SDK Team <support@couchbase.com>
7
13
  License: ASL 2.0
8
14
  URL: https://docs.couchbase.com/cxx-sdk/current/hello-world/overview.html
15
+ %if 0%{?suse_version} == 1500
16
+ BuildRequires: gcc13, gcc13-c++
17
+ %else
9
18
  BuildRequires: gcc, gcc-c++
19
+ %endif
10
20
  BuildRequires: cmake >= 3.19
11
21
  Source0: @COUCHBASE_CXX_CLIENT_TARBALL_NAME@.tar.gz
12
22
 
23
+ %if 0%{?amzn}
24
+ # The additional linker flags break AmazonLinux
25
+ # https://bugzilla.redhat.com/show_bug.cgi?id=2043092
26
+ %undefine _package_note_flags
27
+ %endif
28
+
13
29
  %description
14
30
  This is the client and protocol library for Couchbase project.
15
31
 
16
32
  %package tools
17
- Summary: Couchbase C++ SDK - Tools
33
+ Summary: Couchbase C++ SDK, command line tools
18
34
  Requires: %{name}%{?_isa} = %{version}-%{release}
19
35
  %description -n %{name}-tools
20
36
  CLI tools from the Couchbase C++ SDK.
21
37
 
22
38
  %package devel
23
- Summary: Couchbase C++ SDK - Header files
39
+ Summary: Couchbase C++ SDK, development files
24
40
  Requires: %{name}%{?_isa} = %{version}-%{release}
25
41
  %description devel
26
42
  Development files for the Couchbase C++ SDK.
@@ -28,6 +44,13 @@ Development files for the Couchbase C++ SDK.
28
44
  %prep
29
45
  %autosetup -p1 -n@COUCHBASE_CXX_CLIENT_TARBALL_NAME@
30
46
  %cmake \
47
+ %if 0%{?rhel} == 8 || 0%{?rocky} == 8 || 0%{?ol} == 8
48
+ -S "." -B "redhat-linux-build" \
49
+ %endif
50
+ %if 0%{?suse_version} == 1500
51
+ -DCMAKE_C_COMPILER=gcc-13 \
52
+ -DCMAKE_CXX_COMPILER=g++-13 \
53
+ %endif
31
54
  -DBUILD_SHARED_LIBS=OFF \
32
55
  -DCOUCHBASE_CXX_CLIENT_INSTALL=ON \
33
56
  -DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON \
@@ -38,15 +61,32 @@ Development files for the Couchbase C++ SDK.
38
61
  -DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
39
62
 
40
63
  %build
64
+ %if 0%{?rhel} == 8 || 0%{?rocky} == 8 || 0%{?ol} == 8
65
+ /usr/bin/cmake --build "redhat-linux-build" -j${RPM_BUILD_NCPUS} --verbose
66
+ %else
67
+ %if 0%{?suse_version} == 1500
68
+ cd build
69
+ %endif
41
70
  %cmake_build
71
+ %endif
42
72
 
43
73
  %install
74
+ %if 0%{?rhel} == 8 || 0%{?rocky} == 8 || 0%{?ol} == 8
75
+ DESTDIR="%{buildroot}" /usr/bin/cmake --install "redhat-linux-build"
76
+ %else
44
77
  %cmake_install
78
+ %endif
79
+ %if 0%{?suse_version} == 1500
80
+ %{__mkdir_p} %{buildroot}%{license_dir}/tao/json %{buildroot}%{_libdir}/cmake
81
+ %{__mv} %{buildroot}%{license_dir}/taocpp-json/tao/json/LICENSE %{buildroot}%{license_dir}/tao/json/LICENSE
82
+ %{__mv} %{buildroot}%{_datadir}/taocpp-json/cmake %{buildroot}%{_libdir}/cmake/taocpp-json
83
+ %{__mv} %{buildroot}%{_datadir}/pegtl/cmake %{buildroot}%{_libdir}/cmake/pegtl
84
+ %endif
45
85
 
46
86
  %files
47
- %license %{_docdir}/couchbase_cxx_client/LICENSE.txt
48
- %license %{_docdir}/tao/pegtl/LICENSE
49
- %license %{_docdir}/tao/json/LICENSE
87
+ %license %{license_dir}/couchbase_cxx_client/LICENSE.txt
88
+ %license %{license_dir}/tao/pegtl/LICENSE
89
+ %license %{license_dir}/tao/json/LICENSE
50
90
  %{_libdir}/libcouchbase_cxx_client.so.*
51
91
 
52
92
  %files tools
@@ -62,4 +102,3 @@ Development files for the Couchbase C++ SDK.
62
102
  %changelog
63
103
  * @COUCHBASE_CXX_CLIENT_RPM_DATE@ Couchbase SDK Team <support@couchbase.com> - @COUCHBASE_CXX_CLIENT_PACKAGE_VERSION@-@COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE@
64
104
  - Automated build.
65
- %{_libdir}/libcouchbase_cxx_client_static.a
@@ -3,8 +3,8 @@ exec_prefix=@CMAKE_INSTALL_PREFIX@
3
3
  includedir=@CMAKE_INSTALL_PREFIX@/include
4
4
  libdir=@CMAKE_INSTALL_LIBDIR@
5
5
 
6
- Name: couchbase-cxx-client @COUCHBASE_CXX_CLIENT_SEMVER@
6
+ Name: couchbase-cxx-client @COUCHBASE_CXX_CLIENT_PKGCONFIG_VERSION@
7
7
  Description: Couchbase C++ SDK
8
- Version: @COUCHBASE_CXX_CLIENT_SEMVER@
8
+ Version: @COUCHBASE_CXX_CLIENT_PKGCONFIG_VERSION@
9
9
  Libs: -L${libdir} -lcouchbase_cxx_client
10
10
  Cflags: -I${includedir}
@@ -0,0 +1,5 @@
1
+ couchbase-cxx-client (@COUCHBASE_CXX_CLIENT_PACKAGE_VERSION@-@COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE@) unstable; urgency=medium
2
+
3
+ * Automated build.
4
+
5
+ -- Couchbase SDK Team <support@couchbase.com> @COUCHBASE_CXX_CLIENT_DEB_DATE@
@@ -0,0 +1,40 @@
1
+ Source: couchbase-cxx-client
2
+ Section: libs
3
+ Priority: optional
4
+ Maintainer: Couchbase SDK Team <support@couchbase.com>
5
+ Build-Depends: debhelper (>= 9), cmake, pkg-config
6
+ Standards-Version: 4.5.0
7
+ Vcs-Browser: https://github.com/couchbase/couchbase-cxx-client
8
+ Vcs-Git: https://github.com/couchbase/couchbase-cxx-client.git
9
+
10
+ Package: couchbase-cxx-client
11
+ Architecture: any
12
+ Multi-Arch: same
13
+ Depends: ${shlibs:Depends}, ${misc:Depends}
14
+ Description: Couchbase C++ SDK.
15
+ This is the client and protocol library for Couchbase project.
16
+
17
+ Package: couchbase-cxx-client-tools
18
+ Architecture: any
19
+ Multi-Arch: same
20
+ Section: utils
21
+ Depends: couchbase-cxx-client (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
22
+ Description: Couchbase C++ SDK, command line tools.
23
+ This is the command line tools for the client and protocol library for
24
+ Couchbase project.
25
+
26
+ Package: couchbase-cxx-client-dev
27
+ Architecture: any
28
+ Multi-Arch: same
29
+ Depends: couchbase-cxx-client (= ${binary:Version}), ${misc:Depends}
30
+ Description: Couchbase C++ SDK, development files.
31
+ This is the development files for the client and protocol library for
32
+ Couchbase project.
33
+
34
+ Package: couchbase-cxx-client-dbg
35
+ Architecture: any
36
+ Multi-Arch: same
37
+ Depends: couchbase-cxx-client (= ${binary:Version}), ${misc:Depends}
38
+ Description: Couchbase C++ SDK, debug symbols.
39
+ This is the debug symbols for the client and protocol library for Couchbase
40
+ project.
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/make -f
2
+
3
+ %:
4
+ dh $@ --buildsystem=cmake
5
+
6
+ override_dh_strip:
7
+ dh_strip -pcouchbase-cxx-client-tools -pcouchbase-cxx-client --dbg-package=couchbase-cxx-client-dbg
8
+ dh_strip --remaining-packages
9
+
10
+ override_dh_auto_configure:
11
+ echo "usr/include/couchbase" \
12
+ > debian/couchbase-cxx-client-dev.install
13
+ echo "usr/lib/$(DEB_HOST_MULTIARCH)/libcouchbase_cxx_client.so" \
14
+ >> debian/couchbase-cxx-client-dev.install
15
+ echo "usr/lib/$(DEB_HOST_MULTIARCH)/cmake" \
16
+ >> debian/couchbase-cxx-client-dev.install
17
+ echo "usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig" \
18
+ >> debian/couchbase-cxx-client-dev.install
19
+ echo "usr/bin/*" \
20
+ > debian/couchbase-cxx-client-tools.install
21
+ echo "usr/lib/$(DEB_HOST_MULTIARCH)/libcouchbase_cxx_client.so.*" \
22
+ > debian/couchbase-cxx-client.install
23
+ echo "usr/share/doc/tao/json/LICENSE" \
24
+ >> debian/couchbase-cxx-client.install
25
+ echo "usr/share/doc/tao/pegtl/LICENSE" \
26
+ >> debian/couchbase-cxx-client.install
27
+ echo "usr/share/doc/couchbase_cxx_client/LICENSE.txt" \
28
+ >> debian/couchbase-cxx-client.install
29
+ dh_auto_configure -- \
30
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
31
+ -DBUILD_SHARED_LIBS=OFF \
32
+ -DCOUCHBASE_CXX_CLIENT_INSTALL=ON \
33
+ -DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON \
34
+ -DCOUCHBASE_CXX_CLIENT_BUILD_EXAMPLES=OFF \
35
+ -DCOUCHBASE_CXX_CLIENT_BUILD_TESTS=OFF \
36
+ -DCOUCHBASE_CXX_CLIENT_BUILD_TOOLS=ON \
37
+ -DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=OFF \
38
+ -DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
39
+
40
+ override_dh_auto_build:
41
+ dh_auto_build
@@ -0,0 +1 @@
1
+ 3.0 (quilt)
@@ -132,7 +132,11 @@ public:
132
132
 
133
133
  auto free_form_http_request(const http_request& request,
134
134
  free_form_http_request_callback&& callback)
135
+ #ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
136
+ -> tl::expected<std::shared_ptr<pending_operation>, error_union>
137
+ #else
135
138
  -> tl::expected<std::shared_ptr<pending_operation>, std::error_code>
139
+ #endif
136
140
  {
137
141
  return cluster_agent_.free_form_http_request(request, std::move(callback));
138
142
  }
@@ -221,7 +225,11 @@ agent_group::search_query(const search_query_options& options, search_query_call
221
225
  auto
222
226
  agent_group::free_form_http_request(const http_request& request,
223
227
  free_form_http_request_callback&& callback)
228
+ #ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
229
+ -> tl::expected<std::shared_ptr<pending_operation>, error_union>
230
+ #else
224
231
  -> tl::expected<std::shared_ptr<pending_operation>, std::error_code>
232
+ #endif
225
233
  {
226
234
  return impl_->free_form_http_request(request, std::move(callback));
227
235
  }
@@ -70,7 +70,11 @@ public:
70
70
 
71
71
  auto free_form_http_request(const http_request& request,
72
72
  free_form_http_request_callback&& callback)
73
+ #ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
74
+ -> tl::expected<std::shared_ptr<pending_operation>, error_union>;
75
+ #else
73
76
  -> tl::expected<std::shared_ptr<pending_operation>, std::error_code>;
77
+ #endif
74
78
 
75
79
  auto wait_until_ready(std::chrono::milliseconds timeout,
76
80
  const wait_until_ready_options& options,