mirror of
https://github.com/hanzoai/datastore.git
synced 2026-09-26 13:55:07 +00:00
13,838 upstream commits, forward from the 26.6.1.1 fork point. 129 conflicts: 37 resolved mechanically (take upstream's file, re-apply the brand sweep) and 92 by hand where our fork and upstream had both changed the same code. The rule throughout: upstream owns the engine, we own the naming and a small set of deliberate deviations. Never resolve by discarding an upstream change — a dropped rename or a missed new parameter becomes a compile error a thousand files away. Deviations verified intact after the merge: ENABLE_XRAY still defaults OFF (CMakeLists.txt:105) X-Datastore-User read by the server (authenticateUserByHTTP.cpp) X-ClickHouse-* in src/ 0 hanzo/research present system.*_log retention bound present ArrowFlight rip held against upstream re-adding it Two things worth naming, because neither shows up as a conflict: src/CMakeLists.txt gained an UNGUARDED `add_object_library(datastore_storages_arrowflight Storages/ArrowFlight)` from upstream, for a directory our gRPC rip deleted. It sat outside every conflict hunk, so a resolver reading only the markers would sail straight past it into a CMake configure error. Removed; the Server/ArrowFlight sibling at line 474 stays because it is inside `if (TARGET ch_contrib::arrow_flight)`. The brand sweep had rewritten github.com/ClickHouse/ClickHouse issue links to github.com/Datastore/Datastore — a dead host. Those point at upstream's own tracker and are restored, alongside the contributors list, sql.clickhouse.com and the ClickHouse Inc copyright: attribution is theirs, not ours to rename. base/glibc-compatibility/memcpy/memcpy.h is deleted, not kept: upstream dropped it for LLVM-libc's, and our only change to it was a comment rebrand.
136 lines
5.1 KiB
CMake
136 lines
5.1 KiB
CMake
option (ENABLE_SSH "Enable support for libssh" ${ENABLE_LIBRARIES})
|
|
|
|
if (NOT ENABLE_SSH)
|
|
message(STATUS "Not using libssh")
|
|
return()
|
|
endif()
|
|
|
|
# CMake variables needed by libssh_version.h.cmake, update them when you update libssh
|
|
set(libssh_VERSION_MAJOR 0)
|
|
set(libssh_VERSION_MINOR 12)
|
|
set(libssh_VERSION_PATCH 0)
|
|
|
|
set(LIB_SOURCE_DIR "${Datastore_SOURCE_DIR}/contrib/libssh")
|
|
set(LIB_BINARY_DIR "${Datastore_BINARY_DIR}/contrib/libssh")
|
|
|
|
set(libssh_SRCS
|
|
${LIB_SOURCE_DIR}/src/agent.c
|
|
${LIB_SOURCE_DIR}/src/auth.c
|
|
${LIB_SOURCE_DIR}/src/base64.c
|
|
${LIB_SOURCE_DIR}/src/bignum.c
|
|
${LIB_SOURCE_DIR}/src/buffer.c
|
|
${LIB_SOURCE_DIR}/src/callbacks.c
|
|
${LIB_SOURCE_DIR}/src/chachapoly.c
|
|
${LIB_SOURCE_DIR}/src/channels.c
|
|
${LIB_SOURCE_DIR}/src/client.c
|
|
${LIB_SOURCE_DIR}/src/config.c
|
|
${LIB_SOURCE_DIR}/src/config_parser.c
|
|
${LIB_SOURCE_DIR}/src/connect.c
|
|
${LIB_SOURCE_DIR}/src/connector.c
|
|
${LIB_SOURCE_DIR}/src/curve25519.c
|
|
${LIB_SOURCE_DIR}/src/dh.c
|
|
${LIB_SOURCE_DIR}/src/ecdh.c
|
|
${LIB_SOURCE_DIR}/src/error.c
|
|
${LIB_SOURCE_DIR}/src/external/bcrypt_pbkdf.c
|
|
${LIB_SOURCE_DIR}/src/external/blowfish.c
|
|
${LIB_SOURCE_DIR}/src/external/chacha.c
|
|
${LIB_SOURCE_DIR}/src/external/poly1305.c
|
|
${LIB_SOURCE_DIR}/src/external/sntrup761.c
|
|
${LIB_SOURCE_DIR}/src/getpass.c
|
|
${LIB_SOURCE_DIR}/src/hybrid_mlkem.c
|
|
${LIB_SOURCE_DIR}/src/init.c
|
|
${LIB_SOURCE_DIR}/src/kdf.c
|
|
${LIB_SOURCE_DIR}/src/kex.c
|
|
${LIB_SOURCE_DIR}/src/known_hosts.c
|
|
${LIB_SOURCE_DIR}/src/knownhosts.c
|
|
${LIB_SOURCE_DIR}/src/legacy.c
|
|
${LIB_SOURCE_DIR}/src/log.c
|
|
${LIB_SOURCE_DIR}/src/match.c
|
|
${LIB_SOURCE_DIR}/src/messages.c
|
|
${LIB_SOURCE_DIR}/src/misc.c
|
|
${LIB_SOURCE_DIR}/src/mlkem.c
|
|
${LIB_SOURCE_DIR}/src/options.c
|
|
${LIB_SOURCE_DIR}/src/packet.c
|
|
${LIB_SOURCE_DIR}/src/packet_cb.c
|
|
${LIB_SOURCE_DIR}/src/packet_crypt.c
|
|
${LIB_SOURCE_DIR}/src/pcap.c
|
|
${LIB_SOURCE_DIR}/src/pki.c
|
|
${LIB_SOURCE_DIR}/src/pki_container_openssh.c
|
|
${LIB_SOURCE_DIR}/src/pki_ed25519_common.c
|
|
${LIB_SOURCE_DIR}/src/poll.c
|
|
${LIB_SOURCE_DIR}/src/scp.c
|
|
${LIB_SOURCE_DIR}/src/session.c
|
|
${LIB_SOURCE_DIR}/src/socket.c
|
|
${LIB_SOURCE_DIR}/src/string.c
|
|
${LIB_SOURCE_DIR}/src/threads.c
|
|
${LIB_SOURCE_DIR}/src/token.c
|
|
${LIB_SOURCE_DIR}/src/ttyopts.c
|
|
${LIB_SOURCE_DIR}/src/wrapper.c
|
|
# some files of libssh/src/ are missing - why?
|
|
|
|
${LIB_SOURCE_DIR}/src/threads/noop.c
|
|
${LIB_SOURCE_DIR}/src/threads/pthread.c
|
|
# files missing - why?
|
|
|
|
# LIBCRYPT specific
|
|
${LIB_SOURCE_DIR}/src/crypto_common.c
|
|
${LIB_SOURCE_DIR}/src/curve25519_crypto.c
|
|
${LIB_SOURCE_DIR}/src/dh_crypto.c
|
|
${LIB_SOURCE_DIR}/src/ecdh_crypto.c
|
|
${LIB_SOURCE_DIR}/src/getrandom_crypto.c
|
|
${LIB_SOURCE_DIR}/src/gzip.c
|
|
${LIB_SOURCE_DIR}/src/libcrypto.c
|
|
${LIB_SOURCE_DIR}/src/md_crypto.c
|
|
${LIB_SOURCE_DIR}/src/mlkem_crypto.c
|
|
${LIB_SOURCE_DIR}/src/pki_crypto.c
|
|
${LIB_SOURCE_DIR}/src/pki_context.c
|
|
${LIB_SOURCE_DIR}/src/sntrup761.c
|
|
${LIB_SOURCE_DIR}/src/threads/libcrypto.c
|
|
|
|
${LIB_SOURCE_DIR}/src/bind.c
|
|
${LIB_SOURCE_DIR}/src/bind_config.c
|
|
${LIB_SOURCE_DIR}/src/server.c
|
|
)
|
|
|
|
configure_file(${LIB_SOURCE_DIR}/include/libssh/libssh_version.h.cmake ${LIB_BINARY_DIR}/include/libssh/libssh_version.h @ONLY)
|
|
|
|
add_library(_ssh ${libssh_SRCS})
|
|
add_library(ch_contrib::ssh ALIAS _ssh)
|
|
|
|
target_link_libraries(_ssh PRIVATE OpenSSL::Crypto)
|
|
|
|
target_include_directories(_ssh PUBLIC "${LIB_SOURCE_DIR}/include" "${LIB_BINARY_DIR}/include")
|
|
|
|
# These headers need to be generated using the native build system on each platform.
|
|
if (OS_LINUX)
|
|
if (ARCH_AMD64)
|
|
if (USE_MUSL)
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/linux/x86-64-musl")
|
|
else()
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/linux/x86-64")
|
|
endif ()
|
|
elseif (ARCH_AARCH64)
|
|
if (USE_MUSL)
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/linux/aarch64-musl")
|
|
else()
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/linux/aarch64")
|
|
endif ()
|
|
elseif (ARCH_PPC64LE)
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/linux/ppc64le")
|
|
elseif (ARCH_S390X)
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/linux/s390x")
|
|
elseif (ARCH_RISCV64)
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/linux/riscv64")
|
|
elseif (ARCH_LOONGARCH64)
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/linux/loongarch64")
|
|
else ()
|
|
message(FATAL_ERROR "Platform is not supported")
|
|
endif ()
|
|
elseif (OS_DARWIN)
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/darwin")
|
|
elseif (OS_FREEBSD)
|
|
target_include_directories(_ssh PRIVATE "${Datastore_SOURCE_DIR}/contrib/libssh-cmake/freebsd")
|
|
else ()
|
|
message(FATAL_ERROR "Platform is not supported")
|
|
endif()
|