for encryption, aws s3 provides an "encryption" context to vary per-object
keys. The encryption context is a base64 encoded json structure, which
must be converted to a determinstic form -- "canonical json". This
requires converting all strings to a normalized canonical form: "utf-8 nfc",
it also requires thta keys in objects be sorted in a fixed order; so some
form of sorting based on nfc.
It turns out that libicu was the best way to produce utf-8 nfc (boost also
provides a mechanism, but it has many quirks). So, here are the hooks
to pull the system libicu into the build.
Fixes: http://tracker.ceph.com/issues/48746
Signed-off-by: Marcus Watts <mwatts@redhat.com>
BuildRequires: libxml2-devel
BuildRequires: make
BuildRequires: ncurses-devel
+BuildRequires: libicu-devel
BuildRequires: parted
BuildRequires: patch
BuildRequires: perl
# Crimson libgnutls28-dev,
# Crimson libhwloc-dev,
libibverbs-dev,
+ libicu-dev,
librdmacm-dev,
libkeyutils-dev,
libldap2-dev,
)
endfunction()
+find_package(ICU 52.0 COMPONENTS uc REQUIRED)
+
set(librgw_common_srcs
services/svc_finisher.cc
services/svc_bi_rados.cc
target_include_directories(rgw_common PUBLIC "${CMAKE_SOURCE_DIR}/src/fmt/include")
target_include_directories(rgw_common PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw")
target_include_directories(rgw_common PRIVATE "${LUA_INCLUDE_DIR}")
+target_include_directories(rgw_common SYSTEM PRIVATE "${ICU_INCLUDE_DIRS}")
set(librgw_kmip_srcs
${CURL_LIBRARIES}
${EXPAT_LIBRARIES}
${OPENLDAP_LIBRARIES} ${CRYPTO_LIBS}
+ ICU::uc
OATH::OATH)
if(WITH_CURL_OPENSSL)