initial - kerberized kafka works

This commit is contained in:
Ilya Golshtein 2020-07-16 23:32:32 +03:00
parent 065db05665
commit d93f0c7548
8 changed files with 659 additions and 0 deletions

View File

@ -354,7 +354,9 @@ include (cmake/find/termcap.cmake)
# openssl, zlib before poco
include (cmake/find/sparsehash.cmake)
include (cmake/find/re2.cmake)
include (cmake/find/krb5.cmake)
include (cmake/find/libgsasl.cmake)
include (cmake/find/cyrus-sasl.cmake)
include (cmake/find/rdkafka.cmake)
include (cmake/find/amqpcpp.cmake)
include (cmake/find/capnp.cmake)

View File

@ -0,0 +1,17 @@
OPTION(ENABLE_CYRUS_SASL "Enable cyrus-sasl" ${ENABLE_LIBRARIES})
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cyrus-sasl/README")
message (WARNING "submodule contrib/cyrus-sasl is missing. to fix try run: \n git submodule update --init --recursive")
set (ENABLE_CYRUS_SASL 0)
endif ()
if (ENABLE_CYRUS_SASL)
set (USE_CYRUS_SASL 1)
set (CYRUS_SASL_LIBRARY sasl2)
set (CYRUS_SASL_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/cyrus-sasl/include")
endif ()
message (STATUS "Using krb5=${USE_KRB5}: ${CYRUS_SASL_INCLUDE_DIR} : ${CYRUS_SASL_LIBRARY}")

20
cmake/find/krb5.cmake Normal file
View File

@ -0,0 +1,20 @@
OPTION(ENABLE_KRB5 "Enable krb5" ${ENABLE_LIBRARIES})
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/krb5/README")
message (WARNING "submodule contrib/krb5 is missing. to fix try run: \n git submodule update --init --recursive")
set (ENABLE_KRB5 0)
endif ()
if (ENABLE_KRB5)
set (USE_KRB5 1)
set (KRB5_LIBRARY krb5)
set (KRB5_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/krb5/include")
list (APPEND KRB5_INCLUDE_DIR
"${ClickHouse_SOURCE_DIR}/contrib/krb5/src/include"
)
endif ()
message (STATUS "Using krb5=${USE_KRB5}: ${KRB5_INCLUDE_DIR} : ${KRB5_LIBRARY}")

View File

@ -311,3 +311,10 @@ if (USE_STATS)
add_subdirectory (stats-cmake)
add_subdirectory (gcem)
endif()
if (USE_KRB5)
add_subdirectory (krb5-cmake)
if (USE_CYRUS_SASL)
add_subdirectory (cyrus-sasl-cmake)
endif()
endif()

View File

@ -0,0 +1,120 @@
set(CYRUS_SASL_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/cyrus-sasl)
add_library(sasl2)
target_sources(sasl2 PRIVATE
${CYRUS_SASL_SOURCE_DIR}/plugins/gssapi.c
${CYRUS_SASL_SOURCE_DIR}/plugins/gssapiv2_init.c
${CYRUS_SASL_SOURCE_DIR}/common/plugin_common.c
${CYRUS_SASL_SOURCE_DIR}/lib/common.c
${CYRUS_SASL_SOURCE_DIR}/lib/canonusr.c
${CYRUS_SASL_SOURCE_DIR}/lib/server.c
${CYRUS_SASL_SOURCE_DIR}/lib/config.c
${CYRUS_SASL_SOURCE_DIR}/lib/auxprop.c
${CYRUS_SASL_SOURCE_DIR}/lib/saslutil.c
${CYRUS_SASL_SOURCE_DIR}/lib/external.c
${CYRUS_SASL_SOURCE_DIR}/lib/seterror.c
${CYRUS_SASL_SOURCE_DIR}/lib/md5.c
${CYRUS_SASL_SOURCE_DIR}/lib/dlopen.c
${CYRUS_SASL_SOURCE_DIR}/lib/client.c
${CYRUS_SASL_SOURCE_DIR}/lib/checkpw.c
)
target_include_directories(sasl2 PUBLIC
${CYRUS_SASL_SOURCE_DIR}/plugins
${CYRUS_SASL_SOURCE_DIR}
${CYRUS_SASL_SOURCE_DIR}/include
${CYRUS_SASL_SOURCE_DIR}/lib
${CYRUS_SASL_SOURCE_DIR}/sasldb
${CYRUS_SASL_SOURCE_DIR}/common
${CYRUS_SASL_SOURCE_DIR}/saslauthd
${CYRUS_SASL_SOURCE_DIR}/sample
${CYRUS_SASL_SOURCE_DIR}/utils
${CYRUS_SASL_SOURCE_DIR}/tests
)
target_compile_definitions(sasl2 PUBLIC
HAVE_CONFIG_H
PLUGINDIR="/usr/local/lib/sasl2"
# PIC
# PLUGINDIR="../plugins/.libs"
OBSOLETE_CRAM_ATTR=1
SASLAUTHD_CONF_FILE_DEFAULT="/usr/local/etc/saslauthd.conf"
CONFIGDIR="/usr/local/lib/sasl2:/usr/local/etc/sasl2"
OBSOLETE_DIGEST_ATTR=1
LIBSASL_EXPORTS=1
)
# add_executable(client)
# target_sources(client PUBLIC
# ${CMAKE_CURRENT_SOURCE_DIR}/sample/client.c
# ${CMAKE_CURRENT_SOURCE_DIR}/sample/common.c
# )
# target_include_directories(client PUBLIC
# ${CYRUS_SASL_SOURCE_DIR}/plugins
# ${CYRUS_SASL_SOURCE_DIR}
# ${CYRUS_SASL_SOURCE_DIR}/include
# ${CYRUS_SASL_SOURCE_DIR}/lib
# ${CYRUS_SASL_SOURCE_DIR}/sasldb
# ${CYRUS_SASL_SOURCE_DIR}/common
# ${CYRUS_SASL_SOURCE_DIR}/saslauthd
# ${CYRUS_SASL_SOURCE_DIR}/sample
# ${CYRUS_SASL_SOURCE_DIR}/utils
# ${CYRUS_SASL_SOURCE_DIR}/tests
# )
# target_compile_definitions(client PUBLIC
# HAVE_CONFIG_H
# PLUGINDIR="/usr/local/lib/sasl2"
# # PIC
# # PLUGINDIR="../plugins/.libs"
# OBSOLETE_CRAM_ATTR=1
# SASLAUTHD_CONF_FILE_DEFAULT="/usr/local/etc/saslauthd.conf"
# CONFIGDIR="/usr/local/lib/sasl2:/usr/local/etc/sasl2"
# OBSOLETE_DIGEST_ATTR=1
# LIBSASL_EXPORTS=1
# )
# target_link_libraries(client PRIVATE
# ${PROJECT_NAME}
# dl
# krb5
# gssapi_krb5
# )
# add_executable(server)
# target_sources(server PUBLIC
# ${CMAKE_CURRENT_SOURCE_DIR}/sample/server.c
# ${CMAKE_CURRENT_SOURCE_DIR}/sample/common.c
# )
# target_include_directories(server PUBLIC
# ${CYRUS_SASL_SOURCE_DIR}/plugins
# ${CYRUS_SASL_SOURCE_DIR}
# ${CYRUS_SASL_SOURCE_DIR}/include
# ${CYRUS_SASL_SOURCE_DIR}/lib
# ${CYRUS_SASL_SOURCE_DIR}/sasldb
# ${CYRUS_SASL_SOURCE_DIR}/common
# ${CYRUS_SASL_SOURCE_DIR}/saslauthd
# ${CYRUS_SASL_SOURCE_DIR}/sample
# ${CYRUS_SASL_SOURCE_DIR}/utils
# ${CYRUS_SASL_SOURCE_DIR}/tests
# )
# target_compile_definitions(server PUBLIC
# HAVE_CONFIG_H
# PLUGINDIR="/usr/local/lib/sasl2"
# # PIC
# # PLUGINDIR="../plugins/.libs"
# OBSOLETE_CRAM_ATTR=1
# SASLAUTHD_CONF_FILE_DEFAULT="/usr/local/etc/saslauthd.conf"
# CONFIGDIR="/usr/local/lib/sasl2:/usr/local/etc/sasl2"
# OBSOLETE_DIGEST_ATTR=1
# LIBSASL_EXPORTS=1
# )
# target_link_libraries(server PRIVATE
# krb5
# gssapi_krb5
# ${PROJECT_NAME}
# dl
# )

View File

@ -0,0 +1,482 @@
set(KRB5_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/krb5/src)
add_library(krb5)
target_sources(krb5 PRIVATE
${KRB5_SOURCE_DIR}/util/et/et_name.c
${KRB5_SOURCE_DIR}/util/et/com_err.c
${KRB5_SOURCE_DIR}/util/et/error_message.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_inq_names.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_rel_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_unwrap_aead.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_set_name_attr.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_glue.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_imp_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/gssd_pname_to_uid.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_authorize_localname.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_prf.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_acquire_cred_with_pw.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_set_cred_option.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_map_name_to_any.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_inq_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_rel_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_seal.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_delete_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_context_time.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_get_name_attr.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_mech_invoke.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_unwrap_iov.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_exp_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_init_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_accept_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_verify.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_sign.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_mechname.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_mechattr.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_complete_auth_token.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_wrap_aead.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_inq_cred_oid.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_rel_buffer.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_initialize.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_export_name_comp.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_set_context_option.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_acquire_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_acquire_cred_imp_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_imp_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_inq_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_set_neg_mechs.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_inq_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_export_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_oid_ops.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_inq_context_oid.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_del_name_attr.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_decapsulate_token.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_compare_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_rel_name_mapping.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_imp_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_dup_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_export_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_wrap_iov.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_rel_oid_set.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_unseal.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_store_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_buffer_set.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_canon_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_dsp_status.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_dsp_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_dsp_name_ext.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_saslname.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_process_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue/g_encapsulate_token.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/delete_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/lucid_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/duplicate_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/get_tkt_flags.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/set_allowable_enctypes.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/k5sealiov.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/gssapi_err_krb5.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/canon_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/inq_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/export_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/inq_names.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/prf.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/k5sealv3iov.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/store_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/import_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/export_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/naming_exts.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/s4u_gss_glue.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/rel_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/k5unsealiov.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/gssapi_krb5.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/disp_status.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/import_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/k5seal.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/accept_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/import_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/process_context_token.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/disp_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/wrap_size_limit.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/krb5_gss_glue.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/util_crypt.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/set_ccache.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/export_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/rel_oid.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/val_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/context_time.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/cred_store.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/iakerb.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/copy_ccache.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/init_sec_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/indicate_mechs.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/inq_context.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/util_seed.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/util_seqnum.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/compare_name.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/ser_sctx.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/k5sealv3.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/acquire_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/k5unseal.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/rel_cred.c
${KRB5_SOURCE_DIR}/lib/gssapi/krb5/util_cksum.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/disp_com_err_status.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/gssapi_generic.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/rel_oid_set.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/oid_ops.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/util_buffer.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/util_buffer_set.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/util_set.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/util_token.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/gssapi_err_generic.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/disp_major_status.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/util_seqstate.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/util_errmap.c
${KRB5_SOURCE_DIR}/lib/gssapi/generic/rel_buffer.c
${KRB5_SOURCE_DIR}/lib/gssapi/spnego/spnego_mech.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/prng.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/enc_dk_cmac.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/crc32.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/checksum_cbc.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/enctype_util.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/enc_etm.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/combine_keys.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/default_state.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/decrypt_iov.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/checksum_dk_cmac.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/etypes.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/old_api_glue.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/cksumtypes.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/prf_cmac.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/enc_old.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/decrypt.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/prf_dk.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/s2k_des.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/checksum_unkeyed.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/crypto_length.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/block_size.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/string_to_key.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/verify_checksum.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/crypto_libinit.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/derive.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/random_to_key.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/verify_checksum_iov.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/checksum_confounder.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/checksum_length.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/enc_dk_hmac.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/make_checksum.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/prf_des.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/prf.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/coll_proof_cksum.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/enc_rc4.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/cf2.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/aead.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/encrypt_iov.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/cksumtype_to_string.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/key.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/enc_raw.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/keylengths.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/checksum_hmac_md5.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/keyed_cksum.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/keyed_checksum_types.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/prf_aes2.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/state.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/checksum_dk_hmac.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/encrypt.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/checksum_etm.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/make_random_key.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/string_to_cksumtype.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/mandatory_sumtype.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/make_checksum_iov.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/s2k_rc4.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/valid_cksumtype.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/nfold.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/prng_fortuna.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/encrypt_length.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/cmac.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/keyblocks.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/prf_rc4.c
${KRB5_SOURCE_DIR}/lib/crypto/krb/s2k_pbkdf2.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/enc_provider/aes.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/enc_provider/des.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/enc_provider/rc4.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/enc_provider/des3.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/enc_provider/camellia.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/sha256.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/hmac.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/pbkdf2.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/init.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/stubs.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/hash_provider/hash_crc32.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/hash_provider/hash_evp.c
${KRB5_SOURCE_DIR}/lib/crypto/openssl/des/des_keys.c
${KRB5_SOURCE_DIR}/util/support/fake-addrinfo.c
${KRB5_SOURCE_DIR}/util/support/k5buf.c
${KRB5_SOURCE_DIR}/util/support/hex.c
${KRB5_SOURCE_DIR}/util/support/threads.c
${KRB5_SOURCE_DIR}/util/support/utf8.c
${KRB5_SOURCE_DIR}/util/support/hashtab.c
${KRB5_SOURCE_DIR}/util/support/dir_filenames.c
${KRB5_SOURCE_DIR}/util/support/base64.c
${KRB5_SOURCE_DIR}/util/support/strerror_r.c
${KRB5_SOURCE_DIR}/util/support/plugins.c
${KRB5_SOURCE_DIR}/util/support/path.c
${KRB5_SOURCE_DIR}/util/support/init-addrinfo.c
${KRB5_SOURCE_DIR}/util/support/json.c
${KRB5_SOURCE_DIR}/util/support/errors.c
${KRB5_SOURCE_DIR}/util/support/utf8_conv.c
${KRB5_SOURCE_DIR}/util/support/strlcpy.c
${KRB5_SOURCE_DIR}/util/support/gmt_mktime.c
${KRB5_SOURCE_DIR}/util/support/zap.c
${KRB5_SOURCE_DIR}/util/support/bcmp.c
${KRB5_SOURCE_DIR}/util/profile/prof_tree.c
${KRB5_SOURCE_DIR}/util/profile/prof_file.c
${KRB5_SOURCE_DIR}/util/profile/prof_parse.c
${KRB5_SOURCE_DIR}/util/profile/prof_get.c
${KRB5_SOURCE_DIR}/util/profile/prof_set.c
${KRB5_SOURCE_DIR}/util/profile/prof_err.c
${KRB5_SOURCE_DIR}/util/profile/prof_init.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/fwd_tgt.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/conv_creds.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/fast.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ser_adata.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_tick.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/enc_keyhelper.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ser_actx.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/init_ctx.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/preauth2.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_princ.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/parse_host_string.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/pr_to_salt.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/rd_req.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/pac_sign.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_addrs.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/conv_princ.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/rd_rep.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/str_conv.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/gic_opt.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/recvauth.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_cksum.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ai_authdata.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ser_ctx.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/appdefault.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/bld_princ.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/in_tkt_sky.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_creds.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/auth_con.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_key.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/kdc_rep_dc.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/mk_cred.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/gic_keytab.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/rd_req_dec.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/set_realm.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/preauth_sam2.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/libdef_parse.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/privsafe.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ser_auth.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/val_renew.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/addr_order.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/authdata_dec.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/walk_rtree.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/gen_subkey.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_auth.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/chpw.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/mk_req.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/allow_weak.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/mk_rep.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/mk_priv.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/s4u_authdata.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/preauth_otp.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/init_keyblock.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ser_addr.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/encrypt_tk.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/s4u_creds.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/srv_dec_tkt.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/rd_priv.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/authdata_enc.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/authdata_exp.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/decode_kdc.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/decrypt_tk.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/enc_helper.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/mk_req_ext.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ser_key.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/preauth_encts.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/send_tgs.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ser_cksum.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/tgtname.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/encode_kdc.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/rd_cred.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/rd_safe.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/preauth_pkinit.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/srv_rcache.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/chk_trans.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/etype_list.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/get_creds.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/ser_princ.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/gic_pwd.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/authdata.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/gen_save_subkey.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/vfy_increds.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/addr_comp.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/kfree.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/response_items.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/serialize.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/cammac_util.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/gc_via_tkt.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_ctx.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/sendauth.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/addr_srch.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/mk_safe.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/preauth_ec.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/bld_pr_ext.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/random_str.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/sname_match.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/princ_comp.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/get_in_tkt.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/gen_seqnum.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/cp_key_cnt.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/mk_error.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_athctr.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/deltat.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/get_etype_info.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/plugin.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/kerrs.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/vic_opt.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/unparse.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/parse.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/rd_error.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/pac.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/valid_times.c
${KRB5_SOURCE_DIR}/lib/krb5/krb/copy_data.c
${KRB5_SOURCE_DIR}/lib/krb5/os/hostrealm.c
${KRB5_SOURCE_DIR}/lib/krb5/os/thread_safe.c
${KRB5_SOURCE_DIR}/lib/krb5/os/krbfileio.c
${KRB5_SOURCE_DIR}/lib/krb5/os/toffset.c
${KRB5_SOURCE_DIR}/lib/krb5/os/hostaddr.c
${KRB5_SOURCE_DIR}/lib/krb5/os/ustime.c
${KRB5_SOURCE_DIR}/lib/krb5/os/timeofday.c
${KRB5_SOURCE_DIR}/lib/krb5/os/ccdefname.c
${KRB5_SOURCE_DIR}/lib/krb5/os/full_ipadr.c
${KRB5_SOURCE_DIR}/lib/krb5/os/read_pwd.c
${KRB5_SOURCE_DIR}/lib/krb5/os/trace.c
${KRB5_SOURCE_DIR}/lib/krb5/os/localauth_k5login.c
${KRB5_SOURCE_DIR}/lib/krb5/os/localauth_rule.c
${KRB5_SOURCE_DIR}/lib/krb5/os/localaddr.c
${KRB5_SOURCE_DIR}/lib/krb5/os/hostrealm_dns.c
${KRB5_SOURCE_DIR}/lib/krb5/os/hostrealm_domain.c
${KRB5_SOURCE_DIR}/lib/krb5/os/sn2princ.c
${KRB5_SOURCE_DIR}/lib/krb5/os/net_write.c
${KRB5_SOURCE_DIR}/lib/krb5/os/gen_rname.c
${KRB5_SOURCE_DIR}/lib/krb5/os/net_read.c
${KRB5_SOURCE_DIR}/lib/krb5/os/accessor.c
${KRB5_SOURCE_DIR}/lib/krb5/os/hostrealm_profile.c
${KRB5_SOURCE_DIR}/lib/krb5/os/c_ustime.c
${KRB5_SOURCE_DIR}/lib/krb5/os/expand_path.c
${KRB5_SOURCE_DIR}/lib/krb5/os/port2ip.c
${KRB5_SOURCE_DIR}/lib/krb5/os/changepw.c
${KRB5_SOURCE_DIR}/lib/krb5/os/unlck_file.c
${KRB5_SOURCE_DIR}/lib/krb5/os/gen_port.c
${KRB5_SOURCE_DIR}/lib/krb5/os/localauth_an2ln.c
${KRB5_SOURCE_DIR}/lib/krb5/os/genaddrs.c
${KRB5_SOURCE_DIR}/lib/krb5/os/init_os_ctx.c
${KRB5_SOURCE_DIR}/lib/krb5/os/localauth.c
${KRB5_SOURCE_DIR}/lib/krb5/os/locate_kdc.c
${KRB5_SOURCE_DIR}/lib/krb5/os/prompter.c
${KRB5_SOURCE_DIR}/lib/krb5/os/ktdefname.c
${KRB5_SOURCE_DIR}/lib/krb5/os/realm_dom.c
${KRB5_SOURCE_DIR}/lib/krb5/os/dnssrv.c
${KRB5_SOURCE_DIR}/lib/krb5/os/mk_faddr.c
# ${KRB5_SOURCE_DIR}/lib/krb5/os/dnsglue.c
${KRB5_SOURCE_DIR}/lib/krb5/os/sendto_kdc.c
${KRB5_SOURCE_DIR}/lib/krb5/os/hostrealm_registry.c
${KRB5_SOURCE_DIR}/lib/krb5/os/write_msg.c
${KRB5_SOURCE_DIR}/lib/krb5/os/localauth_names.c
${KRB5_SOURCE_DIR}/lib/krb5/os/read_msg.c
${KRB5_SOURCE_DIR}/lib/krb5/os/lock_file.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccselect.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccselect_realm.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ser_cc.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccdefops.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/cc_retr.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccselect_k5identity.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/cccopy.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccfns.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/cc_file.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccbase.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/cccursor.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccdefault.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/cc_memory.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccmarshal.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccselect_hostname.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/cc_dir.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/cc_keyring.c
${KRB5_SOURCE_DIR}/lib/krb5/ccache/cc_kcm.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/ktadd.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/ktbase.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/ktdefault.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/kt_memory.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/ktfns.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/ktremove.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/read_servi.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/kt_file.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/kt_srvtab.c
${KRB5_SOURCE_DIR}/lib/krb5/keytab/ktfr_entry.c
${KRB5_SOURCE_DIR}/lib/krb5/error_tables/k5e1_err.c
${KRB5_SOURCE_DIR}/lib/krb5/error_tables/kdb5_err.c
${KRB5_SOURCE_DIR}/lib/krb5/error_tables/asn1_err.c
${KRB5_SOURCE_DIR}/lib/krb5/error_tables/krb5_err.c
${KRB5_SOURCE_DIR}/lib/krb5/error_tables/krb524_err.c
${KRB5_SOURCE_DIR}/lib/krb5/error_tables/kv5m_err.c
${KRB5_SOURCE_DIR}/lib/krb5/rcache/rc_base.c
${KRB5_SOURCE_DIR}/lib/krb5/rcache/rc_conv.c
${KRB5_SOURCE_DIR}/lib/krb5/rcache/rc_dfl.c
${KRB5_SOURCE_DIR}/lib/krb5/rcache/rcdef.c
${KRB5_SOURCE_DIR}/lib/krb5/rcache/ser_rc.c
${KRB5_SOURCE_DIR}/lib/krb5/rcache/rc_none.c
${KRB5_SOURCE_DIR}/lib/krb5/rcache/rcfns.c
${KRB5_SOURCE_DIR}/lib/krb5/rcache/rc_io.c
${KRB5_SOURCE_DIR}/lib/krb5/unicode/ucstr.c
${KRB5_SOURCE_DIR}/lib/krb5/unicode/ucdata.c
${KRB5_SOURCE_DIR}/lib/krb5/unicode/urestubs.c
${KRB5_SOURCE_DIR}/lib/krb5/unicode/ure.c
${KRB5_SOURCE_DIR}/lib/krb5/asn.1/asn1_encode.c
${KRB5_SOURCE_DIR}/lib/krb5/asn.1/asn1_k_encode.c
${KRB5_SOURCE_DIR}/lib/krb5/asn.1/ldap_key_seq.c
${KRB5_SOURCE_DIR}/lib/krb5/krb5_libinit.c
)
target_include_directories(krb5 PRIVATE
${KRB5_SOURCE_DIR}
${KRB5_SOURCE_DIR}/include
${KRB5_SOURCE_DIR}/lib/gssapi/mechglue
${KRB5_SOURCE_DIR}/lib/gssapi
${KRB5_SOURCE_DIR}/lib/gssapi/generic
${KRB5_SOURCE_DIR}/lib/gssapi/krb5
${KRB5_SOURCE_DIR}/lib/gssapi/spnego
${KRB5_SOURCE_DIR}/util/et
${KRB5_SOURCE_DIR}/lib/crypto/openssl
${KRB5_SOURCE_DIR}/lib/crypto/krb
${KRB5_SOURCE_DIR}/util/profile
${KRB5_SOURCE_DIR}/lib/krb5/ccache/ccapi
${KRB5_SOURCE_DIR}/lib/krb5/ccache
${KRB5_SOURCE_DIR}/lib/krb5/keytab
${KRB5_SOURCE_DIR}/lib/krb5/rcache
${KRB5_SOURCE_DIR}/lib/krb5/unicode
${KRB5_SOURCE_DIR}/lib/krb5/os
${OPENSSL_INCLUDE_DIR}
)
target_compile_definitions(krb5 PRIVATE
KRB5_PRIVATE
HAVE_CONFIG_H
_GSS_STATIC_LINK=1
KRB5_DEPRECATED=1
# SHARED
LOCALEDIR="/usr/local/share/locale"
BINDIR="/usr/local/bin"
SBINDIR="/usr/local/sbin"
LIBDIR="/usr/local/lib"
# DYNOBJEXT=".so"
)
# target_link_libraries(krb5 PRIVATE resolv)

View File

@ -65,6 +65,7 @@
#define WITH_SASL_SCRAM 1
// WITH_SASL_OAUTHBEARER
#define WITH_SASL_OAUTHBEARER 1
#define WITH_SASL_CYRUS 1
// crc32chw
#if !defined(__PPC__)
#define WITH_CRC32C_HW 1

View File

@ -259,6 +259,8 @@ target_link_libraries(clickhouse_common_io
roaring
)
if (USE_RDKAFKA)
dbms_target_link_libraries(PRIVATE ${CPPKAFKA_LIBRARY} ${RDKAFKA_LIBRARY})
if(NOT USE_INTERNAL_RDKAFKA_LIBRARY)
@ -270,6 +272,14 @@ if (USE_AMQPCPP)
dbms_target_link_libraries(PUBLIC amqp-cpp)
endif()
if (USE_CYRUS_SASL)
dbms_target_link_libraries(PRIVATE ${CYRUS_SASL_LIBRARY})
endif()
if (USE_KRB5)
dbms_target_link_libraries(PRIVATE ${KRB5_LIBRARY})
endif()
if(RE2_INCLUDE_DIR)
target_include_directories(clickhouse_common_io SYSTEM BEFORE PUBLIC ${RE2_INCLUDE_DIR})
endif()