diff options
| author | Boris P. Korzun <drtr0jan@yandex.ru> | 2026-08-20 07:47:00 +0000 |
|---|---|---|
| committer | Dima Panov <fluffy@FreeBSD.org> | 2026-08-20 07:51:55 +0000 |
| commit | accbb1aec3b96bacbe74a0006d89bc1d3c8254cb (patch) | |
| tree | bbf7c85347ea17cf10c784dc45cfed46b09b2d2f | |
| parent | bd5fba2a8423b10957411684495e789138203a94 (diff) | |
databases/foundationdb*: Revive, repair and update to latest stable releases
Fix build on aarch64
Assign to new maintainer
PR: 295233
55 files changed, 1224 insertions, 4 deletions
@@ -4836,10 +4836,6 @@ lang/python39||2025-11-01|Has expired: Upgrade to a newer Python version. 3.9 is devel/py-pyjq|textproc/py-jq|2025-11-01|Removed: Depended on expired Python version 3.9 and does not build with newer Python devel/py-ctags||2025-11-01|Removed: Depended on expired Python version 3.9 and does not build with newer Python net-im/tdlib-purple||2025-11-01|Remove broken port -databases/foundationdb71-client||2025-11-01|Remove broken port -databases/foundationdb71-server||2025-11-01|Remove broken port -databases/foundationdb73-client||2025-11-01|Remove broken port -databases/foundationdb73-server||2025-11-01|Remove broken port databases/erlfdb||2025-11-01|Depends on removed port databases/foundationdb71-client www/mitmproxy||2025-11-02|Remove broken port net-im/signald|net-im/signal-cli|2025-11-02|Has expired: this project is no longer actively maintained. Use signal-cli instead diff --git a/databases/Makefile b/databases/Makefile index b5df929c73be..fde2246c0f46 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -73,6 +73,10 @@ SUBDIR += firebird40-server SUBDIR += fmptools SUBDIR += fortytwo-bdb + SUBDIR += foundationdb71-client + SUBDIR += foundationdb71-server + SUBDIR += foundationdb73-client + SUBDIR += foundationdb73-server SUBDIR += frece SUBDIR += freetds SUBDIR += freetds-devel diff --git a/databases/foundationdb71-client/Makefile b/databases/foundationdb71-client/Makefile new file mode 100644 index 000000000000..32c672953a27 --- /dev/null +++ b/databases/foundationdb71-client/Makefile @@ -0,0 +1,10 @@ +PORTNAME= foundationdb + +COMMENT= FoundationDB client + +MASTERDIR= ${.CURDIR}/../foundationdb71-server + +_CLIENT_ONLY= yes +_COMPONENT= client + +.include "${MASTERDIR}/Makefile" diff --git a/databases/foundationdb71-server/Makefile b/databases/foundationdb71-server/Makefile new file mode 100644 index 000000000000..9399e77a5f13 --- /dev/null +++ b/databases/foundationdb71-server/Makefile @@ -0,0 +1,119 @@ +PORTNAME?= foundationdb +DISTVERSION= 7.1.67 +CATEGORIES?= databases +MASTER_SITES= SF/boost/boost/${BOOST_VERSION}:boost +PKGNAMESUFFIX?= ${DISTVERSION:C/([0-9]+)\.([0-9]+).*/\1\2/}-${_COMPONENT} +DISTFILES= boost_${BOOST_VERSION_UNDER}${EXTRACT_SUFX}:boost + +MAINTAINER?= drtr0jan@yandex.ru +COMMENT?= FoundationDB is a large-scale distributed database +WWW= https://www.foundationdb.org/ + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= aarch64 amd64 +ONLY_FOR_ARCHS_REASON= not yet ported to anything else + +BUILD_DEPENDS= bash:shells/bash \ + msgpack-cxx>0:devel/msgpack-cxx \ + toml11>=4.0.0:devel/toml11 +LIB_DEPENDS= libeio.so:devel/libeio + +USES= cmake compiler:c++20-lang llvm mono:build python:build \ + shebangfix ssl +USE_GITHUB= yes +GH_ACCOUNT= apple +GH_PROJECT= foundationdb +USE_LDCONFIG= yes + +.if !defined(_CLIENT_ONLY) +_SERVER_ONLY= yes +_COMPONENT= server +USE_RC_SUBR= foundationdb +RUN_DEPENDS+= fdbcli:databases/${PORTNAME}${DISTVERSION:C/([0-9]+)\.([0-9]+).*/\1\2/}-client +SUB_FILES+= foundationdb.conf +.endif + +SHEBANG_FILES= bindings/c/generate_asm.py + +# Bundle last supported Boost release +BOOST_VERSION= 1.78.0 +BOOST_VERSION_UNDER= ${BOOST_VERSION:C/\./_/g} + +CMAKE_ARGS= -DBOOST_SOURCE_DIR=${WRKDIR}/boost_${BOOST_VERSION_UNDER} \ + -DOPENSSL_ROOT_DIR=${OPENSSLLIB} +CMAKE_OFF= BUILD_DOCUMENTATION BUILD_GO_BINDING BUILD_JAVA_BINDING \ + BUILD_PYTHON_BINDING BUILD_RUBY_BINDING DISABLE_TLS \ + SSD_ROCKSDB_EXPERIMENTAL USE_DTRACE USE_JEMALLOC + +MAKE_ENV= MONO_REGISTRY_PATH=/tmp/registry + +CONFLICTS+= ${PORTNAME}*-${_COMPONENT}* + +SUB_LIST= ${SUB_FDB} + +FOUNDATIONDB_USER?= ${PORTNAME} +FOUNDATIONDB_GROUP?= ${PORTNAME} +FOUNDATIONDB_DBDIR?= /var/db/${PORTNAME} +FOUNDATIONDB_LOGDIR?= /var/log/${PORTNAME} + +.if ${FOUNDATIONDB_USER} == ${PORTNAME} +USERS= ${FOUNDATIONDB_USER} +.endif +.if ${FOUNDATIONDB_GROUP} == ${PORTNAME} +GROUPS= ${FOUNDATIONDB_GROUP} +.endif + +PLIST= ${PKGDIR}/pkg-plist-${_COMPONENT} +PLIST_SUB= ${SUB_FDB} + +SUB_FDB= FOUNDATIONDB_USER=${FOUNDATIONDB_USER} \ + FOUNDATIONDB_GROUP=${FOUNDATIONDB_GROUP} \ + FOUNDATIONDB_DBDIR=${FOUNDATIONDB_DBDIR} \ + FOUNDATIONDB_LOGDIR=${FOUNDATIONDB_LOGDIR} + +.include <bsd.port.pre.mk> + +post-patch: +.if ${COMPILER_TYPE} == clang + @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ + ${WRKSRC}/../boost_${BOOST_VERSION_UNDER}/boost/container_hash/hash.hpp +.endif + +do-install: + @${MKDIR} ${STAGEDIR}${ETCDIR} +.if defined(_SERVER_ONLY) + ${MKDIR} ${STAGEDIR}${FOUNDATIONDB_DBDIR} + ${MKDIR} ${STAGEDIR}${FOUNDATIONDB_LOGDIR} + ${INSTALL_DATA} ${WRKDIR}/foundationdb.conf ${STAGEDIR}${ETCDIR}/foundationdb.conf.sample +. for f in fdbserver fdbmonitor + ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/${f} ${STAGEDIR}${PREFIX}/sbin/ +. endfor +.endif # _SERVER_ONLY +.if defined(_CLIENT_ONLY) + ${MKDIR} ${STAGEDIR}${PREFIX}/include/foundationdb + ${MKDIR} ${STAGEDIR}${PREFIX}/lib/foundationdb/backup_agent + ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/fdbcli ${STAGEDIR}${PREFIX}/bin/ +. for l in libfdb_c.so + ${INSTALL_LIB} ${WRKDIR}/.build/lib/${l} ${STAGEDIR}/${PREFIX}/lib/ +. endfor +. for i in fdb_c.h fdb_c_internal.h fdb_c_types.h + ${INSTALL_DATA} ${WRKSRC}/bindings/c/foundationdb/${i} \ + ${STAGEDIR}/${PREFIX}/include/foundationdb/ +. endfor +. for i in fdb_c_options.g.h + ${INSTALL_DATA} ${WRKDIR}/.build/bindings/c/foundationdb/${i} \ + ${STAGEDIR}/${PREFIX}/include/foundationdb/ +. endfor + ${INSTALL_DATA} ${WRKSRC}/fdbclient/vexillographer/fdb.options \ + ${STAGEDIR}/${PREFIX}/include/foundationdb/ + ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/fdbbackup \ + ${STAGEDIR}${PREFIX}/lib/foundationdb/backup_agent/backup_agent +. for s in fdbbackup fdbrestore fdbdr dr_agent + ${RLN} ${STAGEDIR}${PREFIX}/lib/foundationdb/backup_agent/backup_agent \ + ${STAGEDIR}${PREFIX}/bin/${s} +. endfor +.endif # _CLIENT_ONLY + +.include <bsd.port.post.mk> diff --git a/databases/foundationdb71-server/distinfo b/databases/foundationdb71-server/distinfo new file mode 100644 index 000000000000..46f9c03e46b9 --- /dev/null +++ b/databases/foundationdb71-server/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1745610360 +SHA256 (boost_1_78_0.tar.gz) = 94ced8b72956591c4775ae2207a9763d3600b30d9d7446562c552f0a14a63be7 +SIZE (boost_1_78_0.tar.gz) = 131140716 +SHA256 (apple-foundationdb-7.1.67_GH0.tar.gz) = d97a5b576d8c2f645fe1396a351bfb4eeeef6437f0be706d93e44cfb02081ddc +SIZE (apple-foundationdb-7.1.67_GH0.tar.gz) = 11750707 diff --git a/databases/foundationdb71-server/files/foundationdb.conf.in b/databases/foundationdb71-server/files/foundationdb.conf.in new file mode 100644 index 000000000000..1df7fe1cf17f --- /dev/null +++ b/databases/foundationdb71-server/files/foundationdb.conf.in @@ -0,0 +1,47 @@ +## foundationdb.conf +## +## Configuration file for FoundationDB server processes +## Full documentation is available at +## https://apple.github.io/foundationdb/configuration.html#the-configuration-file + +[fdbmonitor] +user = %%FOUNDATIONDB_USER%% +group = %%FOUNDATIONDB_GROUP%% + +[general] +restart-delay = 60 +## by default, restart-backoff = restart-delay-reset-interval = restart-delay +# initial-restart-delay = 0 +# restart-backoff = 60 +# restart-delay-reset-interval = 60 +cluster-file = %%ETCDIR%%/fdb.cluster +# delete-envvars = +# kill-on-configuration-change = true + +## Default parameters for individual fdbserver processes +[fdbserver] +command = %%PREFIX%%/sbin/fdbserver +public-address = auto:$ID +listen-address = public +datadir = %%FOUNDATIONDB_DBDIR%%/data/$ID +logdir = %%FOUNDATIONDB_LOGDIR%% +# logsize = 10MiB +# maxlogssize = 100MiB +# machine-id = +# datacenter-id = +# class = +# memory = 8GiB +# storage-memory = 1GiB +# cache-memory = 2GiB +# metrics-cluster = +# metrics-prefix = + +## An individual fdbserver process with id 4500 +## Parameters set here override defaults from the [fdbserver] section +[fdbserver.4500] + +[backup_agent] +command = %%PREFIX%%/lib/foundationdb/backup_agent/backup_agent +logdir = %%FOUNDATIONDB_LOGDIR%% + +[backup_agent.1] diff --git a/databases/foundationdb71-server/files/foundationdb.in b/databases/foundationdb71-server/files/foundationdb.in new file mode 100644 index 000000000000..719582a235d2 --- /dev/null +++ b/databases/foundationdb71-server/files/foundationdb.in @@ -0,0 +1,42 @@ +#!/bin/sh + +# PROVIDE: foundationdb +# REQUIRE: LOGIN +# BEFORE: securelevel +# KEYWORD: shutdown + +# Add the following line to /etc/rc.conf to enable `foundationdb': +# +#foundationdb_enable="YES" +# +# Define config file here to run with different config file: +# +#foundationdb_config="xxxxx" +# + +. /etc/rc.subr + +name="foundationdb" +rcvar="${name}_enable" + +load_rc_config "$name" + +: ${foundationdb_enable="NO"} +: ${foundationdb_user="%%FOUNDATIONDB_USER%%"} +: ${foundationdb_group="%%FOUNDATIONDB_GROUP%%"} +: ${foundationdb_config="%%PREFIX%%/etc/foundationdb/foundationdb.conf"} + +start_precmd="foundationdb_start_precmd" + +pidfile="/var/run/fdbmonitor.pid" +command=%%PREFIX%%/sbin/fdbmonitor +command_args="--conffile ${foundationdb_config} --lockfile ${pidfile} --daemonize" + +foundationdb_start_precmd() +{ + if [ ! -e "${pidfile}" ]; then + install -m 0600 -o "${foundationdb_user}" -g "${foundationdb_group}" /dev/null "${pidfile}" + fi +} + +run_rc_command $1 diff --git a/databases/foundationdb71-server/files/patch-CMakeLists.txt b/databases/foundationdb71-server/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..064d0c3354ee --- /dev/null +++ b/databases/foundationdb71-server/files/patch-CMakeLists.txt @@ -0,0 +1,15 @@ +--- CMakeLists.txt.orig 2024-01-17 13:58:04 UTC ++++ CMakeLists.txt +@@ -184,8 +184,10 @@ else() + endif() + add_subdirectory(fdbbackup) + add_subdirectory(contrib) +-add_subdirectory(tests) +-add_subdirectory(flowbench EXCLUDE_FROM_ALL) ++#add_subdirectory(tests) ++if(WITH_FLOWBENCH) ++ add_subdirectory(flowbench EXCLUDE_FROM_ALL) ++endif() + if(WITH_PYTHON AND WITH_C_BINDING) + add_subdirectory(bindings) + endif() diff --git a/databases/foundationdb71-server/files/patch-bindings_CMakeLists.txt b/databases/foundationdb71-server/files/patch-bindings_CMakeLists.txt new file mode 100644 index 000000000000..1d01226f4f63 --- /dev/null +++ b/databases/foundationdb71-server/files/patch-bindings_CMakeLists.txt @@ -0,0 +1,10 @@ +--- bindings/CMakeLists.txt.orig 2024-01-17 13:58:04 UTC ++++ bindings/CMakeLists.txt +@@ -15,6 +15,6 @@ endif() + if(WITH_RUBY_BINDING) + add_subdirectory(ruby) + endif() +-if(NOT WIN32 AND NOT OPEN_FOR_IDE) ++if(FALSE) + package_bindingtester() + endif() diff --git a/databases/foundationdb71-server/files/patch-bindings_c_CMakeLists.txt b/databases/foundationdb71-server/files/patch-bindings_c_CMakeLists.txt new file mode 100644 index 000000000000..605231ce16cd --- /dev/null +++ b/databases/foundationdb71-server/files/patch-bindings_c_CMakeLists.txt @@ -0,0 +1,11 @@ +--- bindings/c/CMakeLists.txt.orig 2024-01-17 13:58:04 UTC ++++ bindings/c/CMakeLists.txt +@@ -78,7 +78,7 @@ if(WIN32) + endif() + + # The tests don't build on windows +-if(NOT WIN32) ++if(FALSE) + set(MAKO_SRCS + test/mako/mako.c + test/mako/mako.h diff --git a/databases/foundationdb71-server/files/patch-cmake_CompileBoost.cmake b/databases/foundationdb71-server/files/patch-cmake_CompileBoost.cmake new file mode 100644 index 000000000000..ad32b7f7e8c4 --- /dev/null +++ b/databases/foundationdb71-server/files/patch-cmake_CompileBoost.cmake @@ -0,0 +1,11 @@ +--- cmake/CompileBoost.cmake.orig 2025-01-15 16:19:53 UTC ++++ cmake/CompileBoost.cmake +@@ -51,6 +51,8 @@ function(compile_boost) + ExternalProject_add("${COMPILE_BOOST_TARGET}Project" + URL "https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2" + URL_HASH SHA256=8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc ++ DOWNLOAD_COMMAND "" ++ SOURCE_DIR ${BOOST_SOURCE_DIR} + CONFIGURE_COMMAND ${BOOTSTRAP_COMMAND} ${BOOTSTRAP_ARGS} --with-libraries=${BOOTSTRAP_LIBRARIES} --with-toolset=${BOOST_TOOLSET} + BUILD_COMMAND ${B2_COMMAND} link=static ${COMPILE_BOOST_BUILD_ARGS} --prefix=${BOOST_INSTALL_DIR} ${USER_CONFIG_FLAG} install + BUILD_IN_SOURCE ON diff --git a/databases/foundationdb71-server/files/patch-cmake_FDBComponents.cmake b/databases/foundationdb71-server/files/patch-cmake_FDBComponents.cmake new file mode 100644 index 000000000000..eee7b533d680 --- /dev/null +++ b/databases/foundationdb71-server/files/patch-cmake_FDBComponents.cmake @@ -0,0 +1,32 @@ +--- cmake/FDBComponents.cmake.orig 2025-01-15 16:19:53 UTC ++++ cmake/FDBComponents.cmake +@@ -24,7 +24,7 @@ else() + if(DISABLE_TLS) + set(WITH_TLS OFF) + else() +- set(OPENSSL_USE_STATIC_LIBS TRUE) ++ set(OPENSSL_USE_STATIC_LIBS FALSE) + if(WIN32) + set(OPENSSL_MSVC_STATIC_RT ON) + endif() +@@ -204,6 +204,12 @@ endif() + endif() + + ################################################################################ ++# misc optional components ++################################################################################ ++ ++set(WITH_FLOWBENCH OFF) ++ ++################################################################################ + # Coroutine implementation + ################################################################################ + +@@ -248,6 +254,7 @@ function(print_components) + message(STATUS "Build Documentation (make html): ${WITH_DOCUMENTATION}") + message(STATUS "Build Python sdist (make package): ${WITH_PYTHON_BINDING}") + message(STATUS "Configure CTest (depends on Python): ${WITH_PYTHON}") ++ message(STATUS "Build with FlowBench: ${WITH_FLOWBENCH}") + message(STATUS "Build with RocksDB: ${WITH_ROCKSDB_EXPERIMENTAL}") + message(STATUS "Build with AWS SDK: ${WITH_AWS_BACKUP}") + message(STATUS "=========================================") diff --git a/databases/foundationdb71-server/files/patch-cmake_GetMsgpack.cmake b/databases/foundationdb71-server/files/patch-cmake_GetMsgpack.cmake new file mode 100644 index 000000000000..adfc467bd72b --- /dev/null +++ b/databases/foundationdb71-server/files/patch-cmake_GetMsgpack.cmake @@ -0,0 +1,17 @@ +--- cmake/GetMsgpack.cmake.orig 2023-09-26 04:25:05 UTC ++++ cmake/GetMsgpack.cmake +@@ -1,9 +1,13 @@ + find_package(msgpack 3.3.0 EXACT QUIET CONFIG) ++find_package(msgpackc-cxx 4.0.0...<6 QUIET CONFIG) ++find_package(msgpack-cxx 6 QUIET CONFIG) + + add_library(msgpack INTERFACE) + +-if(msgpack_FOUND) ++if(msgpack_FOUND OR msgpackc-cxx_FOUND) + target_link_libraries(msgpack INTERFACE msgpackc-cxx) ++elseif(msgpack-cxx_FOUND) ++ target_link_libraries(msgpack INTERFACE msgpack-cxx) + else() + include(ExternalProject) + ExternalProject_add(msgpackProject diff --git a/databases/foundationdb71-server/files/patch-fdbmonitor_CMakeLists.txt b/databases/foundationdb71-server/files/patch-fdbmonitor_CMakeLists.txt new file mode 100644 index 000000000000..0029dfe979b9 --- /dev/null +++ b/databases/foundationdb71-server/files/patch-fdbmonitor_CMakeLists.txt @@ -0,0 +1,8 @@ +--- fdbmonitor/CMakeLists.txt.orig 2024-01-17 13:58:04 UTC ++++ fdbmonitor/CMakeLists.txt +@@ -60,4 +60,4 @@ endif() + add_custom_target(generate_profile + COMMAND ${CMAKE_BINARY_DIR}/contrib/generate_profile.sh ${CMAKE_BINARY_DIR}) + +-add_dependencies(generate_profile fdbmonitor fdbserver mako fdbcli) ++add_dependencies(generate_profile fdbmonitor fdbserver fdbcli) diff --git a/databases/foundationdb71-server/files/patch-fdbmonitor_fdbmonitor.cpp b/databases/foundationdb71-server/files/patch-fdbmonitor_fdbmonitor.cpp new file mode 100644 index 000000000000..862461539f53 --- /dev/null +++ b/databases/foundationdb71-server/files/patch-fdbmonitor_fdbmonitor.cpp @@ -0,0 +1,42 @@ +--- fdbmonitor/fdbmonitor.cpp.orig 2022-09-19 11:42:41 UTC ++++ fdbmonitor/fdbmonitor.cpp +@@ -27,6 +27,8 @@ + + #ifdef __linux__ + #include <sys/prctl.h> ++#elif defined(__FreeBSD__) ++#include <sys/procctl.h> + #endif + + #include <sys/wait.h> +@@ -751,6 +753,10 @@ void start_process(Command* cmd, ProcessID id, uid_t u + signal(SIGHUP, SIG_DFL); + signal(SIGINT, SIG_DFL); + signal(SIGTERM, SIG_DFL); ++#ifdef __linux__ ++ signal(SIGCHLD, SIG_DFL); ++#endif ++ sigprocmask(SIG_SETMASK, mask, nullptr); + + /* All output in this block should be to stdout (for SevInfo messages) or stderr (for SevError messages) */ + /* Using log_msg() or log_err() from the child will cause the logs to be written incorrectly */ +@@ -780,13 +786,15 @@ void start_process(Command* cmd, ProcessID id, uid_t u + } + + #ifdef __linux__ +- signal(SIGCHLD, SIG_DFL); +- +- sigprocmask(SIG_SETMASK, mask, nullptr); +- + /* death of our parent raises SIGHUP */ + prctl(PR_SET_PDEATHSIG, SIGHUP); + if (getppid() == 1) /* parent already died before prctl */ ++ exit(0); ++#elif defined(__FreeBSD__) ++ /* death of our parent raises SIGHUP */ ++ const int sig = SIGHUP; ++ procctl(P_PID, 0, PROC_PDEATHSIG_CTL, (void*)&sig); ++ if (getppid() == 1) /* parent already died before procctl */ + exit(0); + #endif + diff --git a/databases/foundationdb71-server/files/patch-fdbserver_FDBExecHelper.actor.cpp b/databases/foundationdb71-server/files/patch-fdbserver_FDBExecHelper.actor.cpp new file mode 100644 index 000000000000..4950f7fd5e8b --- /dev/null +++ b/databases/foundationdb71-server/files/patch-fdbserver_FDBExecHelper.actor.cpp @@ -0,0 +1,32 @@ +--- fdbserver/FDBExecHelper.actor.cpp.orig 2022-09-19 11:42:41 UTC ++++ fdbserver/FDBExecHelper.actor.cpp +@@ -18,6 +18,14 @@ + * limitations under the License. + */ + ++#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__INTEL_COMPILER) ++#define BOOST_SYSTEM_NO_LIB ++#define BOOST_DATE_TIME_NO_LIB ++#define BOOST_REGEX_NO_LIB ++#include <boost/process.hpp> ++#endif ++#include <boost/algorithm/string.hpp> ++ + #include "flow/TLSConfig.actor.h" + #include "flow/Trace.h" + #include "flow/Platform.h" +@@ -33,14 +41,6 @@ + #include "fdbserver/FDBExecHelper.actor.h" + #include "fdbserver/Knobs.h" + #include "fdbserver/RemoteIKeyValueStore.actor.h" +- +-#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__INTEL_COMPILER) +-#define BOOST_SYSTEM_NO_LIB +-#define BOOST_DATE_TIME_NO_LIB +-#define BOOST_REGEX_NO_LIB +-#include <boost/process.hpp> +-#endif +-#include <boost/algorithm/string.hpp> + + #include "flow/actorcompiler.h" // This must be the last #include. + diff --git a/databases/foundationdb71-server/files/patch-fdbserver_SimulatedCluster.actor.cpp b/databases/foundationdb71-server/files/patch-fdbserver_SimulatedCluster.actor.cpp new file mode 100644 index 000000000000..7ca782695a2e --- /dev/null +++ b/databases/foundationdb71-server/files/patch-fdbserver_SimulatedCluster.actor.cpp @@ -0,0 +1,11 @@ +--- fdbserver/SimulatedCluster.actor.cpp.orig 2025-01-15 16:19:53 UTC ++++ fdbserver/SimulatedCluster.actor.cpp +@@ -87,7 +87,7 @@ class TestConfig { + // environment details + class TestConfig { + class ConfigBuilder { +- using value_type = toml::basic_value<toml::discard_comments>; ++ using value_type = toml::value; + using base_variant = std::variant<int, bool, std::string, std::vector<int>, ConfigDBType>; + using types = + variant_map<variant_concat<base_variant, variant_map<base_variant, Optional>>, std::add_pointer_t>; diff --git a/databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp b/databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp new file mode 100644 index 000000000000..dde4d5b10b81 --- /dev/null +++ b/databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp @@ -0,0 +1,30 @@ +--- fdbserver/fdbserver.actor.cpp.orig 2025-01-15 16:19:53 UTC ++++ fdbserver/fdbserver.actor.cpp +@@ -84,7 +84,11 @@ + #if defined(__linux__) || defined(__FreeBSD__) + #include <execinfo.h> + #include <signal.h> ++#if defined(__linux__) + #include <sys/prctl.h> ++#elif defined(__FreeBSD__) ++#include <sys/procctl.h> ++#endif + #ifdef ALLOC_INSTRUMENTATION + #include <cxxabi.h> + #endif +@@ -2244,9 +2248,14 @@ int main(int argc, char* argv[]) { + f = result; + } else if (role == ServerRole::FlowProcess) { + TraceEvent(SevDebug, "StartingFlowProcess").detail("From", "fdbserver"); +-#if defined(__linux__) || defined(__FreeBSD__) ++#if defined(__linux__) + prctl(PR_SET_PDEATHSIG, SIGTERM); + if (getppid() == 1) /* parent already died before prctl */ ++ flushAndExit(FDB_EXIT_SUCCESS); ++#elif defined(__FreeBSD__) ++ const int sig = SIGTERM; ++ procctl(P_PID, 0, PROC_PDEATHSIG_CTL, (void*)&sig); ++ if (getppid() == 1) /* parent already died before procctl */ + flushAndExit(FDB_EXIT_SUCCESS); + #endif + diff --git a/databases/foundationdb71-server/files/patch-flow_Platform.h b/databases/foundationdb71-server/files/patch-flow_Platform.h new file mode 100644 index 000000000000..5b7352a7f5e3 --- /dev/null +++ b/databases/foundationdb71-server/files/patch-flow_Platform.h @@ -0,0 +1,24 @@ +--- flow/Platform.h.orig 2025-01-15 16:19:53 UTC ++++ flow/Platform.h +@@ -461,18 +461,20 @@ inline static uint64_t timestampCounter() { + + #ifdef __FreeBSD__ + #if !(__has_builtin(__rdtsc)) ++#if defined(__amd64__) + inline static uint64_t __rdtsc() { + uint64_t lo, hi; + asm("rdtsc" : "=a"(lo), "=d"(hi)); + return (lo | (hi << 32)); + } +-#endif + #elif defined(__powerpc64__) || defined(__ppc64__) + inline static uint64_t __rdtsc() { + uint64_t tb; + __asm__ volatile("mfspr %0, 268" : "=r"(tb)); + return tb; + } ++#endif ++#endif + #endif + + #if defined(__linux__) diff --git a/databases/foundationdb71-server/pkg-descr b/databases/foundationdb71-server/pkg-descr new file mode 100644 index 000000000000..a695625ee101 --- /dev/null +++ b/databases/foundationdb71-server/pkg-descr @@ -0,0 +1,8 @@ +FoundationDB is a distributed database designed to handle large volumes of +structured data across clusters of commodity servers. It organizes data as an +ordered key-value store and employs ACID transactions for all operations. It is +especially well-suited for read/write workloads but also has excellent +performance for write-intensive workloads. Users interact with the database +using API language binding. + +To learn more about FoundationDB, visit https://www.foundationdb.org diff --git a/databases/foundationdb71-server/pkg-plist-client b/databases/foundationdb71-server/pkg-plist-client new file mode 100644 index 000000000000..ec18ef5e72a7 --- /dev/null +++ b/databases/foundationdb71-server/pkg-plist-client @@ -0,0 +1,13 @@ +bin/dr_agent +bin/fdbbackup +bin/fdbcli +bin/fdbdr +bin/fdbrestore +include/foundationdb/fdb_c.h +include/foundationdb/fdb_c_internal.h +include/foundationdb/fdb_c_options.g.h +include/foundationdb/fdb_c_types.h +include/foundationdb/fdb.options +lib/foundationdb/backup_agent/backup_agent +lib/libfdb_c.so +@dir(%%FOUNDATIONDB_USER%%,%%FOUNDATIONDB_GROUP%%,755) %%ETCDIR%% diff --git a/databases/foundationdb71-server/pkg-plist-server b/databases/foundationdb71-server/pkg-plist-server new file mode 100644 index 000000000000..665afe1db04d --- /dev/null +++ b/databases/foundationdb71-server/pkg-plist-server @@ -0,0 +1,6 @@ +sbin/fdbmonitor +sbin/fdbserver +@sample %%ETCDIR%%/foundationdb.conf.sample +@dir(%%FOUNDATIONDB_USER%%,%%FOUNDATIONDB_GROUP%%,755) %%ETCDIR%% +@dir(%%FOUNDATIONDB_USER%%,%%FOUNDATIONDB_GROUP%%,755) %%FOUNDATIONDB_DBDIR%% +@dir(%%FOUNDATIONDB_USER%%,%%FOUNDATIONDB_GROUP%%,755) %%FOUNDATIONDB_LOGDIR%% diff --git a/databases/foundationdb73-client/Makefile b/databases/foundationdb73-client/Makefile new file mode 100644 index 000000000000..74aa62e118cd --- /dev/null +++ b/databases/foundationdb73-client/Makefile @@ -0,0 +1,10 @@ +PORTNAME= foundationdb + +COMMENT= FoundationDB client + +MASTERDIR= ${.CURDIR}/../foundationdb73-server + +_CLIENT_ONLY= yes +_COMPONENT= client + +.include "${MASTERDIR}/Makefile" diff --git a/databases/foundationdb73-server/Makefile b/databases/foundationdb73-server/Makefile new file mode 100644 index 000000000000..bb17e12a1eda --- /dev/null +++ b/databases/foundationdb73-server/Makefile @@ -0,0 +1,124 @@ +PORTNAME?= foundationdb +DISTVERSION= 7.3.77 +CATEGORIES?= databases +MASTER_SITES= SF/boost/boost/${BOOST_VERSION}:boost +PKGNAMESUFFIX?= ${DISTVERSION:C/([0-9]+)\.([0-9]+).*/\1\2/}-${_COMPONENT} +DISTFILES= boost_${BOOST_VERSION_UNDER}${EXTRACT_SUFX}:boost + +MAINTAINER?= drtr0jan@yandex.ru +COMMENT?= FoundationDB is a large-scale distributed database +WWW= https://www.foundationdb.org/ + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= aarch64 amd64 +ONLY_FOR_ARCHS_REASON= not yet ported to anything else + +BUILD_DEPENDS= bash:shells/bash \ + msgpack-cxx>0:devel/msgpack-cxx \ + toml11>4.0.0:devel/toml11 +LIB_DEPENDS= libeio.so:devel/libeio \ + libfmt.so:devel/libfmt + +USES= cmake compiler:c++20-lang llvm mono:build python:build \ + shebangfix ssl +USE_GITHUB= yes +GH_ACCOUNT= apple +GH_PROJECT= foundationdb +USE_LDCONFIG= yes + +.if !defined(_CLIENT_ONLY) +_SERVER_ONLY= yes +_COMPONENT= server +USE_RC_SUBR= foundationdb +RUN_DEPENDS+= fdbcli:databases/${PORTNAME}${DISTVERSION:C/([0-9]+)\.([0-9]+).*/\1\2/}-client +SUB_FILES+= foundationdb.conf +.endif + +SHEBANG_FILES= bindings/c/generate_asm.py + +# Bundle last supported Boost release +BOOST_VERSION= 1.78.0 +BOOST_VERSION_UNDER= ${BOOST_VERSION:C/\./_/g} + +CMAKE_ARGS= -DBOOST_SOURCE_DIR=${WRKDIR}/boost_${BOOST_VERSION_UNDER} \ + -DOPENSSL_ROOT_DIR=${OPENSSLLIB} +CMAKE_OFF= BUILD_DOCUMENTATION BUILD_GO_BINDING BUILD_JAVA_BINDING \ + BUILD_PYTHON_BINDING BUILD_RUBY_BINDING DISABLE_TLS \ + SSD_ROCKSDB_EXPERIMENTAL USE_DTRACE USE_JEMALLOC + +MAKE_ENV= MONO_REGISTRY_PATH=/tmp/registry + +CONFLICTS+= ${PORTNAME}*-${_COMPONENT}* + +SUB_LIST= ${SUB_FDB} + +FOUNDATIONDB_USER?= ${PORTNAME} +FOUNDATIONDB_GROUP?= ${PORTNAME} +FOUNDATIONDB_DBDIR?= /var/db/${PORTNAME} +FOUNDATIONDB_LOGDIR?= /var/log/${PORTNAME} + +.if ${FOUNDATIONDB_USER} == ${PORTNAME} +USERS= ${FOUNDATIONDB_USER} +.endif +.if ${FOUNDATIONDB_GROUP} == ${PORTNAME} +GROUPS= ${FOUNDATIONDB_GROUP} +.endif + +PLIST= ${PKGDIR}/pkg-plist-${_COMPONENT} +PLIST_SUB= ${SUB_FDB} + +SUB_FDB= FOUNDATIONDB_USER=${FOUNDATIONDB_USER} \ + FOUNDATIONDB_GROUP=${FOUNDATIONDB_GROUP} \ + FOUNDATIONDB_DBDIR=${FOUNDATIONDB_DBDIR} \ + FOUNDATIONDB_LOGDIR=${FOUNDATIONDB_LOGDIR} + +.include <bsd.port.pre.mk> + +post-patch: +.if ${COMPILER_TYPE} == clang + @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ + ${WRKSRC}/../boost_${BOOST_VERSION_UNDER}/boost/container_hash/hash.hpp +.endif + +do-install: + @${MKDIR} ${STAGEDIR}${ETCDIR} +.if defined(_SERVER_ONLY) + ${MKDIR} ${STAGEDIR}${FOUNDATIONDB_DBDIR} + ${MKDIR} ${STAGEDIR}${FOUNDATIONDB_LOGDIR} + ${INSTALL_DATA} ${WRKDIR}/foundationdb.conf \ + ${STAGEDIR}${ETCDIR}/foundationdb.conf.sample +. for f in fdbserver fdbmonitor + ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/${f} \ + ${STAGEDIR}${PREFIX}/sbin/ +. endfor +.endif # _SERVER_ONLY +.if defined(_CLIENT_ONLY) + ${MKDIR} ${STAGEDIR}${PREFIX}/include/foundationdb + ${MKDIR} ${STAGEDIR}${PREFIX}/lib/foundationdb/backup_agent + ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/fdbcli \ + ${STAGEDIR}${PREFIX}/bin/ +. for l in libfdb_c.so libfdb_c_shim.so + ${INSTALL_LIB} ${WRKDIR}/.build/lib/${l} \ + ${STAGEDIR}/${PREFIX}/lib/ +. endfor +. for i in fdb_c.h fdb_c_internal.h fdb_c_shim.h fdb_c_types.h + ${INSTALL_DATA} ${WRKSRC}/bindings/c/foundationdb/${i} \ + ${STAGEDIR}/${PREFIX}/include/foundationdb/ +. endfor +. for i in fdb_c_apiversion.g.h fdb_c_options.g.h + ${INSTALL_DATA} ${WRKDIR}/.build/bindings/c/foundationdb/${i} \ + ${STAGEDIR}/${PREFIX}/include/foundationdb/ +. endfor + ${INSTALL_DATA} ${WRKSRC}/fdbclient/vexillographer/fdb.options \ + ${STAGEDIR}/${PREFIX}/include/foundationdb/ + ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/fdbbackup \ + ${STAGEDIR}${PREFIX}/lib/foundationdb/backup_agent/backup_agent +. for s in fdbbackup fdbrestore fdbdr dr_agent + ${RLN} ${STAGEDIR}${PREFIX}/lib/foundationdb/backup_agent/backup_agent \ + ${STAGEDIR}${PREFIX}/bin/${s} +. endfor +.endif # _CLIENT_ONLY + +.include <bsd.port.post.mk> diff --git a/databases/foundationdb73-server/distinfo b/databases/foundationdb73-server/distinfo new file mode 100644 index 000000000000..a4c4e4be1d56 --- /dev/null +++ b/databases/foundationdb73-server/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1786440980 +SHA256 (boost_1_78_0.tar.gz) = 94ced8b72956591c4775ae2207a9763d3600b30d9d7446562c552f0a14a63be7 +SIZE (boost_1_78_0.tar.gz) = 131140716 +SHA256 (apple-foundationdb-7.3.77_GH0.tar.gz) = 5e5a5c6d9d0e7f510861aa8aa39f00ff0f35ad0bbb53340207cf9ddfcdf27300 +SIZE (apple-foundationdb-7.3.77_GH0.tar.gz) = 13152243 diff --git a/databases/foundationdb73-server/files/foundationdb.conf.in b/databases/foundationdb73-server/files/foundationdb.conf.in new file mode 100644 index 000000000000..1df7fe1cf17f --- /dev/null +++ b/databases/foundationdb73-server/files/foundationdb.conf.in @@ -0,0 +1,47 @@ +## foundationdb.conf +## +## Configuration file for FoundationDB server processes +## Full documentation is available at +## https://apple.github.io/foundationdb/configuration.html#the-configuration-file + +[fdbmonitor] +user = %%FOUNDATIONDB_USER%% +group = %%FOUNDATIONDB_GROUP%% + +[general] +restart-delay = 60 +## by default, restart-backoff = restart-delay-reset-interval = restart-delay +# initial-restart-delay = 0 +# restart-backoff = 60 +# restart-delay-reset-interval = 60 +cluster-file = %%ETCDIR%%/fdb.cluster +# delete-envvars = +# kill-on-configuration-change = true + +## Default parameters for individual fdbserver processes +[fdbserver] +command = %%PREFIX%%/sbin/fdbserver +public-address = auto:$ID +listen-address = public +datadir = %%FOUNDATIONDB_DBDIR%%/data/$ID +logdir = %%FOUNDATIONDB_LOGDIR%% +# logsize = 10MiB +# maxlogssize = 100MiB +# machine-id = +# datacenter-id = +# class = +# memory = 8GiB +# storage-memory = 1GiB +# cache-memory = 2GiB +# metrics-cluster = +# metrics-prefix = + +## An individual fdbserver process with id 4500 +## Parameters set here override defaults from the [fdbserver] section +[fdbserver.4500] + +[backup_agent] +command = %%PREFIX%%/lib/foundationdb/backup_agent/backup_agent +logdir = %%FOUNDATIONDB_LOGDIR%% + +[backup_agent.1] diff --git a/databases/foundationdb73-server/files/foundationdb.in b/databases/foundationdb73-server/files/foundationdb.in new file mode 100644 index 000000000000..719582a235d2 --- /dev/null +++ b/databases/foundationdb73-server/files/foundationdb.in @@ -0,0 +1,42 @@ +#!/bin/sh + +# PROVIDE: foundationdb +# REQUIRE: LOGIN +# BEFORE: securelevel +# KEYWORD: shutdown + +# Add the following line to /etc/rc.conf to enable `foundationdb': +# +#foundationdb_enable="YES" +# +# Define config file here to run with different config file: +# +#foundationdb_config="xxxxx" +# + +. /etc/rc.subr + +name="foundationdb" +rcvar="${name}_enable" + +load_rc_config "$name" + +: ${foundationdb_enable="NO"} +: ${foundationdb_user="%%FOUNDATIONDB_USER%%"} +: ${foundationdb_group="%%FOUNDATIONDB_GROUP%%"} +: ${foundationdb_config="%%PREFIX%%/etc/foundationdb/foundationdb.conf"} + +start_precmd="foundationdb_start_precmd" + +pidfile="/var/run/fdbmonitor.pid" +command=%%PREFIX%%/sbin/fdbmonitor +command_args="--conffile ${foundationdb_config} --lockfile ${pidfile} --daemonize" + +foundationdb_start_precmd() +{ + if [ ! -e "${pidfile}" ]; then + install -m 0600 -o "${foundationdb_user}" -g "${foundationdb_group}" /dev/null "${pidfile}" + fi +} + +run_rc_command $1 diff --git a/databases/foundationdb73-server/files/patch-CMakeLists.txt b/databases/foundationdb73-server/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..ca88d0ad7354 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-CMakeLists.txt @@ -0,0 +1,15 @@ +--- CMakeLists.txt.orig 2024-01-09 21:06:41 UTC ++++ CMakeLists.txt +@@ -193,8 +193,10 @@ else() + endif() + add_subdirectory(fdbbackup) + add_subdirectory(metacluster) +-add_subdirectory(tests) +-add_subdirectory(flowbench EXCLUDE_FROM_ALL) ++#add_subdirectory(tests) ++if(WITH_FLOWBENCH) ++ add_subdirectory(flowbench EXCLUDE_FROM_ALL) ++endif() + if(WITH_PYTHON AND WITH_C_BINDING) + add_subdirectory(bindings) + endif() diff --git a/databases/foundationdb73-server/files/patch-bindings_CMakeLists.txt b/databases/foundationdb73-server/files/patch-bindings_CMakeLists.txt new file mode 100644 index 000000000000..3ca56cdf6cbd --- /dev/null +++ b/databases/foundationdb73-server/files/patch-bindings_CMakeLists.txt @@ -0,0 +1,11 @@ +--- bindings/CMakeLists.txt.orig 2024-01-09 21:06:41 UTC ++++ bindings/CMakeLists.txt +@@ -15,7 +15,7 @@ endif() + if(WITH_RUBY_BINDING) + add_subdirectory(ruby) + endif() +-if(NOT WIN32 AND NOT OPEN_FOR_IDE) ++if(FALSE) + package_bindingtester() + package_bindingtester2() + endif() diff --git a/databases/foundationdb73-server/files/patch-bindings_c_CMakeLists.txt b/databases/foundationdb73-server/files/patch-bindings_c_CMakeLists.txt new file mode 100644 index 000000000000..abf28118094b --- /dev/null +++ b/databases/foundationdb73-server/files/patch-bindings_c_CMakeLists.txt @@ -0,0 +1,64 @@ +--- bindings/c/CMakeLists.txt.orig 2024-01-09 21:06:41 UTC ++++ bindings/c/CMakeLists.txt +@@ -100,7 +100,7 @@ if(WIN32) + endif() + + # The tests don't build on windows +-if(NOT WIN32) ++if(FALSE) + set(MAKO_SRCS + test/mako/admin_server.hpp + test/mako/admin_server.cpp +@@ -212,7 +212,7 @@ if(NOT WIN32) + + target_include_directories(fdb_c_api_tester_impl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/foundationdb/ ${CMAKE_SOURCE_DIR}/flow/include ${CMAKE_BINARY_DIR}/flow/include) + target_link_libraries(fdb_c_api_tester_impl PRIVATE fdb_cpp toml11_target Threads::Threads fmt::fmt boost_target) +- if(NOT APPLE) ++ if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_link_libraries(fdb_c_api_tester_impl PRIVATE stdc++fs) + endif() + target_link_libraries(fdb_c_api_tester_impl PRIVATE SimpleOpt) +@@ -439,6 +439,11 @@ elseif(NOT WIN32 AND NOT APPLE) # Linux Only + ${SHIM_LIB_OUTPUT_DIR}/libfdb_c.so.tramp.S) + + set(IMPLIBSO_SRC_DIR ${CMAKE_SOURCE_DIR}/contrib/Implib.so) ++ ++ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64") ++ set(CMAKE_SYSTEM_PROCESSOR "x86_64") ++ endif() ++ + set(IMPLIBSO_SRC + ${IMPLIBSO_SRC_DIR}/implib-gen.py + ${IMPLIBSO_SRC_DIR}/arch/common/init.cpp.tpl +@@ -464,31 +469,6 @@ elseif(NOT WIN32 AND NOT APPLE) # Linux Only + $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/foundationdb>) +- +- add_executable(fdb_c_shim_unit_tests) +- target_link_libraries(fdb_c_shim_unit_tests PRIVATE fdb_c_shim fdb_c_unit_tests_impl) +- +- add_executable(fdb_c_shim_api_tester) +- target_link_libraries(fdb_c_shim_api_tester PRIVATE fdb_c_shim fdb_c_api_tester_impl) +- +- add_executable(fdb_c_shim_lib_tester test/shim_lib_tester.cpp) +- target_link_libraries(fdb_c_shim_lib_tester PRIVATE fdb_c_shim SimpleOpt fdb_cpp Threads::Threads) +- target_include_directories(fdb_c_shim_lib_tester PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/foundationdb/ ${CMAKE_SOURCE_DIR}/flow/include) +- +- set(SHIM_LIB_TEST_EXTRA_OPTIONS "") +- if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR USE_SANITIZER) +- list(APPEND SHIM_LIB_TEST_EXTRA_OPTIONS --disable-prev-version-tests) +- endif() +- +- add_python_venv_test(NAME fdb_c_shim_library_tests +- COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/test/fdb_c_shim_tests.py +- --build-dir ${CMAKE_BINARY_DIR} +- --unit-tests-bin $<TARGET_FILE:fdb_c_shim_unit_tests> +- --api-tester-bin $<TARGET_FILE:fdb_c_shim_api_tester> +- --shim-lib-tester-bin $<TARGET_FILE:fdb_c_shim_lib_tester> +- --api-test-dir ${CMAKE_SOURCE_DIR}/bindings/c/test/apitester/tests +- ${SHIM_LIB_TEST_EXTRA_OPTIONS} +- ) + + endif() # End Linux only + diff --git a/databases/foundationdb73-server/files/patch-bindings_c_test_apitester_TesterWorkload.cpp b/databases/foundationdb73-server/files/patch-bindings_c_test_apitester_TesterWorkload.cpp new file mode 100644 index 000000000000..0e58990da95d --- /dev/null +++ b/databases/foundationdb73-server/files/patch-bindings_c_test_apitester_TesterWorkload.cpp @@ -0,0 +1,11 @@ +--- bindings/c/test/apitester/TesterWorkload.cpp.orig 2023-11-07 15:13:56 UTC ++++ bindings/c/test/apitester/TesterWorkload.cpp +@@ -172,7 +172,7 @@ void WorkloadBase::error(const std::string& msg) { + fmt::print(stderr, "[{}] ERROR: {}\n", workloadId, msg); + numErrors++; + if (numErrors > maxErrors && !failed) { +- fmt::print(stderr, "[{}] ERROR: Stopping workload after {} errors\n", workloadId, numErrors); ++ fmt::print(stderr, "[{}] ERROR: Stopping workload after {} errors\n", workloadId, numErrors.load()); + failed = true; + } + } diff --git a/databases/foundationdb73-server/files/patch-bindings_c_test_mako_mako.cpp b/databases/foundationdb73-server/files/patch-bindings_c_test_mako_mako.cpp new file mode 100644 index 000000000000..fb8018344a8f --- /dev/null +++ b/databases/foundationdb73-server/files/patch-bindings_c_test_mako_mako.cpp @@ -0,0 +1,11 @@ +--- bindings/c/test/mako/mako.cpp.orig 2023-11-07 15:13:56 UTC ++++ bindings/c/test/mako/mako.cpp +@@ -2378,7 +2378,7 @@ int statsProcessMain(Arguments const& args, + fmt::fprintf(fp, "\"txntrace\": %d,", args.txntrace); + fmt::fprintf(fp, "\"txntagging\": %d,", args.txntagging); + fmt::fprintf(fp, "\"txntagging_prefix\": \"%s\",", args.txntagging_prefix); +- fmt::fprintf(fp, "\"streaming_mode\": %d,", args.streaming_mode); ++ fmt::fprintf(fp, "\"streaming_mode\": %d,", static_cast<int>(args.streaming_mode)); + fmt::fprintf(fp, "\"disable_ryw\": %d,", args.disable_ryw); + fmt::fprintf(fp, "\"transaction_timeout_db\": %d,", args.transaction_timeout_db); + fmt::fprintf(fp, "\"transaction_timeout_tx\": %d,", args.transaction_timeout_tx); diff --git a/databases/foundationdb73-server/files/patch-cmake_CompileBoost.cmake b/databases/foundationdb73-server/files/patch-cmake_CompileBoost.cmake new file mode 100644 index 000000000000..81e2fc9e3966 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-cmake_CompileBoost.cmake @@ -0,0 +1,11 @@ +--- cmake/CompileBoost.cmake.orig 2025-07-02 21:14:39 UTC ++++ cmake/CompileBoost.cmake +@@ -60,6 +60,8 @@ function(compile_boost) + + set(BOOST_INSTALL_DIR "${CMAKE_BINARY_DIR}/boost_install") + ExternalProject_add("${COMPILE_BOOST_TARGET}Project" ++ SOURCE_DIR ${BOOST_SOURCE_DIR} ++ DOWNLOAD_COMMAND "" + URL "https://archives.boost.io/release/1.78.0/source/boost_1_78_0.tar.bz2" + URL_HASH SHA256=8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc + CONFIGURE_COMMAND ${BOOTSTRAP_COMMAND} diff --git a/databases/foundationdb73-server/files/patch-cmake_FDBComponents.cmake b/databases/foundationdb73-server/files/patch-cmake_FDBComponents.cmake new file mode 100644 index 000000000000..a6d65269edf7 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-cmake_FDBComponents.cmake @@ -0,0 +1,32 @@ +--- cmake/FDBComponents.cmake.orig 2026-04-16 19:21:39 UTC ++++ cmake/FDBComponents.cmake +@@ -28,7 +28,7 @@ set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + # Statically link OpenSSL to FDB, see + # https://cmake.org/cmake/help/v3.24/module/FindOpenSSL.html + # Without the flags, OpenSSL is dynamically linked. +-set(OPENSSL_USE_STATIC_LIBS TRUE) ++set(OPENSSL_USE_STATIC_LIBS FALSE) + if (WIN32) + set(OPENSSL_MSVC_STATIC_RT ON) + endif() +@@ -199,6 +199,12 @@ endif() + endif() + + ################################################################################ ++# misc optional components ++################################################################################ ++ ++set(WITH_FLOWBENCH OFF) ++ ++################################################################################ + # Coroutine implementation + ################################################################################ + +@@ -242,6 +248,7 @@ function(print_components) + message(STATUS "Build Documentation (make html): ${WITH_DOCUMENTATION}") + message(STATUS "Build Python sdist (make package): ${WITH_PYTHON_BINDING}") + message(STATUS "Configure CTest (depends on Python): ${WITH_PYTHON}") ++ message(STATUS "Build with FlowBench: ${WITH_FLOWBENCH}") + message(STATUS "Build with RocksDB: ${WITH_ROCKSDB_EXPERIMENTAL}") + message(STATUS "Build with AWS SDK: ${WITH_AWS_BACKUP}") + message(STATUS "=========================================") diff --git a/databases/foundationdb73-server/files/patch-cmake_GetMsgpack.cmake b/databases/foundationdb73-server/files/patch-cmake_GetMsgpack.cmake new file mode 100644 index 000000000000..adfc467bd72b --- /dev/null +++ b/databases/foundationdb73-server/files/patch-cmake_GetMsgpack.cmake @@ -0,0 +1,17 @@ +--- cmake/GetMsgpack.cmake.orig 2023-09-26 04:25:05 UTC ++++ cmake/GetMsgpack.cmake +@@ -1,9 +1,13 @@ + find_package(msgpack 3.3.0 EXACT QUIET CONFIG) ++find_package(msgpackc-cxx 4.0.0...<6 QUIET CONFIG) ++find_package(msgpack-cxx 6 QUIET CONFIG) + + add_library(msgpack INTERFACE) + +-if(msgpack_FOUND) ++if(msgpack_FOUND OR msgpackc-cxx_FOUND) + target_link_libraries(msgpack INTERFACE msgpackc-cxx) ++elseif(msgpack-cxx_FOUND) ++ target_link_libraries(msgpack INTERFACE msgpack-cxx) + else() + include(ExternalProject) + ExternalProject_add(msgpackProject diff --git a/databases/foundationdb73-server/files/patch-fdbcli_CMakeLists.txt b/databases/foundationdb73-server/files/patch-fdbcli_CMakeLists.txt new file mode 100644 index 000000000000..7289dd326b82 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbcli_CMakeLists.txt @@ -0,0 +1,11 @@ +--- fdbcli/CMakeLists.txt.orig 2024-01-09 21:06:41 UTC ++++ fdbcli/CMakeLists.txt +@@ -25,7 +25,7 @@ if(NOT OPEN_FOR_IDE) + endif() + endif() + +-if (NOT WIN32 AND NOT OPEN_FOR_IDE) ++if(FALSE) + add_dependencies(fdbcli external_client) + + add_fdbclient_test( diff --git a/databases/foundationdb73-server/files/patch-fdbcli_StatusCommand.actor.cpp b/databases/foundationdb73-server/files/patch-fdbcli_StatusCommand.actor.cpp new file mode 100644 index 000000000000..321b16ded9fa --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbcli_StatusCommand.actor.cpp @@ -0,0 +1,31 @@ +--- fdbcli/StatusCommand.actor.cpp.orig 2025-07-02 21:14:39 UTC ++++ fdbcli/StatusCommand.actor.cpp +@@ -18,6 +18,8 @@ + * limitations under the License. + */ + ++#include <ctime> ++ + #include "fdbcli/fdbcli.actor.h" + #include "fmt/chrono.h" + #include "fmt/core.h" +@@ -1142,7 +1144,7 @@ void printStatus(StatusObjectReader statusObj, + auto value = fmt::format("{}.{} dumped at {:%H:%M}. Total {} bytes.", + epoch, + seqNo, +- fmt::localtime(dumpTs), ++ *std::localtime(&dumpTs), + sizeInBytes); + outputString += "\n Last Manifest - " + value; + } else { +@@ -1171,8 +1173,8 @@ void printStatus(StatusObjectReader statusObj, + std::string error = statusObjBlobRestore["blob_full_restore_error"].get_str(); + int64_t startTs = statusObjBlobRestore["blob_full_restore_start_ts"].get_int64(); + int64_t phaseStartTs = statusObjBlobRestore["blob_full_restore_phase_start_ts"].get_int64(); +- std::string tsShortStr = fmt::format("{:%H:%M}", fmt::localtime(phaseStartTs)); +- std::string tsLongStr = fmt::format("{:%m/%d/%y %H:%M:%S}", fmt::localtime(phaseStartTs)); ++ std::string tsShortStr = fmt::format("{:%H:%M}", *std::localtime(&phaseStartTs)); ++ std::string tsLongStr = fmt::format("{:%m/%d/%y %H:%M:%S}", *std::localtime(&phaseStartTs)); + + switch (statusObjBlobRestore["blob_full_restore_phase"].get_int()) { + case BlobRestorePhase::INIT: diff --git a/databases/foundationdb73-server/files/patch-fdbclient_SpecialKeySpace.actor.cpp b/databases/foundationdb73-server/files/patch-fdbclient_SpecialKeySpace.actor.cpp new file mode 100644 index 000000000000..533fcfa7ced8 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbclient_SpecialKeySpace.actor.cpp @@ -0,0 +1,11 @@ +--- fdbclient/SpecialKeySpace.actor.cpp.orig 2026-04-16 19:21:39 UTC ++++ fdbclient/SpecialKeySpace.actor.cpp +@@ -3049,7 +3049,7 @@ ACTOR Future<Void> validateSpecialSubrangeRead(ReadYou + // Test + RangeResult testResult = wait(ryw->getRange(testBegin, testEnd, limits, Snapshot::True, reverse)); + if (testResult != expectedResult) { +- fmt::print("Reverse: {}\n", reverse); ++ fmt::print("Reverse: {}\n", static_cast<bool>(reverse)); + fmt::print("Original range: [{}, {})\n", begin.toString(), end.toString()); + fmt::print("Original result:\n"); + for (const auto& kr : result) { diff --git a/databases/foundationdb73-server/files/patch-fdbmonitor_CMakeLists.txt b/databases/foundationdb73-server/files/patch-fdbmonitor_CMakeLists.txt new file mode 100644 index 000000000000..032c67f6976c --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbmonitor_CMakeLists.txt @@ -0,0 +1,8 @@ +--- fdbmonitor/CMakeLists.txt.orig 2024-01-09 21:06:41 UTC ++++ fdbmonitor/CMakeLists.txt +@@ -62,4 +62,4 @@ endif() + add_custom_target(generate_profile + COMMAND ${CMAKE_BINARY_DIR}/contrib/generate_profile.sh ${CMAKE_BINARY_DIR}) + +-add_dependencies(generate_profile fdbmonitor fdbserver mako fdbcli) ++add_dependencies(generate_profile fdbmonitor fdbserver fdbcli) diff --git a/databases/foundationdb73-server/files/patch-fdbmonitor_fdbmonitor.cpp b/databases/foundationdb73-server/files/patch-fdbmonitor_fdbmonitor.cpp new file mode 100644 index 000000000000..f442e287838d --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbmonitor_fdbmonitor.cpp @@ -0,0 +1,43 @@ +--- fdbmonitor/fdbmonitor.cpp.orig 2026-04-16 19:21:39 UTC ++++ fdbmonitor/fdbmonitor.cpp +@@ -27,6 +27,8 @@ + + #ifdef __linux__ + #include <sys/prctl.h> ++#elif defined(__FreeBSD__) ++#include<sys/procctl.h> + #endif + + #include <sys/wait.h> +@@ -758,7 +760,10 @@ void start_process(Command* cmd, ProcessID id, uid_t u + signal(SIGHUP, SIG_DFL); + signal(SIGINT, SIG_DFL); + signal(SIGTERM, SIG_DFL); +- ++#ifdef __linux__ ++ signal(SIGCHLD, SIG_DFL); ++#endif ++ sigprocmask(SIG_SETMASK, mask, nullptr); + /* All output in this block should be to stdout (for SevInfo messages) or stderr (for SevError messages) */ + /* Using log_msg() or log_err() from the child will cause the logs to be written incorrectly */ + dup2(cmd->pipes[0][1], fileno(stdout)); +@@ -787,13 +792,15 @@ void start_process(Command* cmd, ProcessID id, uid_t u + } + + #ifdef __linux__ +- signal(SIGCHLD, SIG_DFL); +- +- sigprocmask(SIG_SETMASK, mask, nullptr); +- + /* death of our parent raises SIGHUP */ + prctl(PR_SET_PDEATHSIG, SIGHUP); + if (getppid() == 1) /* parent already died before prctl */ ++ exit(0); ++#elif defined(__FreeBSD__) ++ /* death of our parent raises SIGHUP */ ++ const int sig = SIGHUP; ++ procctl(P_PID, 0, PROC_PDEATHSIG_CTL, (void*)&sig); ++ if (getppid() == 1) /* parent already died before procctl */ + exit(0); + #endif + diff --git a/databases/foundationdb73-server/files/patch-fdbrpc_CMakeLists.txt b/databases/foundationdb73-server/files/patch-fdbrpc_CMakeLists.txt new file mode 100644 index 000000000000..5bd11609f7cd --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbrpc_CMakeLists.txt @@ -0,0 +1,9 @@ +--- fdbrpc/CMakeLists.txt.orig 2025-07-02 21:14:39 UTC ++++ fdbrpc/CMakeLists.txt +@@ -85,5 +85,3 @@ endif() + add_dependencies(fdbrpc_sampling_actors fdbrpc_actors) + add_dependencies(tokensign_actors fdbrpc_actors) + endif() +- +-add_subdirectory(tests) +\ No newline at end of file diff --git a/databases/foundationdb73-server/files/patch-fdbrpc_IPAllowList.cpp b/databases/foundationdb73-server/files/patch-fdbrpc_IPAllowList.cpp new file mode 100644 index 000000000000..4d1f4b8db7a4 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbrpc_IPAllowList.cpp @@ -0,0 +1,10 @@ +--- fdbrpc/IPAllowList.cpp.orig 2025-07-02 21:14:39 UTC ++++ fdbrpc/IPAllowList.cpp +@@ -26,6 +26,7 @@ + + #include <fmt/printf.h> + #include <fmt/format.h> ++#include <fmt/ranges.h> + #include <bitset> + + namespace { diff --git a/databases/foundationdb73-server/files/patch-fdbrpc_TokenCache.actor.cpp b/databases/foundationdb73-server/files/patch-fdbrpc_TokenCache.actor.cpp new file mode 100644 index 000000000000..c5c68ae2cd16 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbrpc_TokenCache.actor.cpp @@ -0,0 +1,10 @@ +--- fdbrpc/TokenCache.actor.cpp.orig 2025-07-02 21:14:39 UTC ++++ fdbrpc/TokenCache.actor.cpp +@@ -17,6 +17,7 @@ + #include <boost/unordered_set.hpp> + + #include <fmt/format.h> ++#include <fmt/ranges.h> + #include <list> + #include <deque> + diff --git a/databases/foundationdb73-server/files/patch-fdbserver_BlobWorker.actor.cpp b/databases/foundationdb73-server/files/patch-fdbserver_BlobWorker.actor.cpp new file mode 100644 index 000000000000..40a93448f5da --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbserver_BlobWorker.actor.cpp @@ -0,0 +1,33 @@ +--- fdbserver/BlobWorker.actor.cpp.orig 2023-11-07 15:13:56 UTC ++++ fdbserver/BlobWorker.actor.cpp +@@ -585,8 +585,8 @@ ACTOR Future<Void> updateGranuleSplitState(Transaction + fmt::print("Updating granule {0} split state from {1} {2} -> {3}\n", + currentGranuleID.toString(), + parentGranuleID.toString(), +- currentState, +- newState); ++ static_cast<int>(currentState), ++ static_cast<int>(newState)); + } + + Key myStateKey = blobGranuleSplitKeyFor(parentGranuleID, currentGranuleID); +@@ -631,8 +631,8 @@ ACTOR Future<Void> updateGranuleSplitState(Transaction + fmt::print("Ignoring granule {0} split state from {1} {2} -> {3}\n", + currentGranuleID.toString(), + parentGranuleID.toString(), +- currentState, +- newState); ++ static_cast<int>(currentState), ++ static_cast<int>(newState)); + } + + return Void(); +@@ -5422,7 +5422,7 @@ ACTOR Future<Void> blobWorkerCore(BlobWorkerInterface + assignReq.keyRange.end.printable(), + assignReq.managerEpoch, + assignReq.managerSeqno, +- assignReq.type); ++ static_cast<int>(assignReq.type)); + } + + if (self->managerEpochOk(assignReq.managerEpoch)) { diff --git a/databases/foundationdb73-server/files/patch-fdbserver_QuietDatabase.actor.cpp b/databases/foundationdb73-server/files/patch-fdbserver_QuietDatabase.actor.cpp new file mode 100644 index 000000000000..826811354f12 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbserver_QuietDatabase.actor.cpp @@ -0,0 +1,21 @@ +--- fdbserver/QuietDatabase.actor.cpp.orig 2025-07-02 21:14:39 UTC ++++ fdbserver/QuietDatabase.actor.cpp +@@ -22,6 +22,9 @@ + #include <vector> + #include <map> + ++#include <boost/lexical_cast.hpp> ++#include <fmt/ranges.h> ++ + #include "fdbclient/FDBOptions.g.h" + #include "fdbclient/SystemData.h" + #include "fdbrpc/simulator.h" +@@ -35,7 +38,7 @@ + #include "fdbserver/Knobs.h" + #include "fdbserver/WorkerInterface.actor.h" + #include "fdbclient/ManagementAPI.actor.h" +-#include <boost/lexical_cast.hpp> ++ + #include "flow/actorcompiler.h" // This must be the last #include. + + ACTOR Future<std::vector<WorkerDetails>> getWorkers(Reference<AsyncVar<ServerDBInfo> const> dbInfo, int flags = 0) { diff --git a/databases/foundationdb73-server/files/patch-fdbserver_SimulatedCluster.actor.cpp b/databases/foundationdb73-server/files/patch-fdbserver_SimulatedCluster.actor.cpp new file mode 100644 index 000000000000..7c677e30a91c --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbserver_SimulatedCluster.actor.cpp @@ -0,0 +1,11 @@ +--- fdbserver/SimulatedCluster.actor.cpp.orig 2025-07-02 21:14:39 UTC ++++ fdbserver/SimulatedCluster.actor.cpp +@@ -116,7 +116,7 @@ class TestConfig : public BasicTestConfig { + // environment details + class TestConfig : public BasicTestConfig { + class ConfigBuilder { +- using value_type = toml::basic_value<toml::discard_comments>; ++ using value_type = toml::value; + using base_variant = std:: + variant<int, float, double, bool, std::string, std::vector<int>, std::vector<std::string>, ConfigDBType>; + using types = diff --git a/databases/foundationdb73-server/files/patch-fdbserver_storageserver.actor.cpp b/databases/foundationdb73-server/files/patch-fdbserver_storageserver.actor.cpp new file mode 100644 index 000000000000..20dc7f631b06 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbserver_storageserver.actor.cpp @@ -0,0 +1,20 @@ +--- fdbserver/storageserver.actor.cpp.orig 2026-04-16 19:21:39 UTC ++++ fdbserver/storageserver.actor.cpp +@@ -3637,7 +3637,7 @@ ACTOR Future<std::pair<ChangeFeedStreamReply, bool>> g + req.rangeID.printable().substr(0, 6), + req.id.toString().substr(0, 8), + foundVersion ? "key" : "version", +- DEBUG_CF_MISSING_VERSION, ++ static_cast<int64_t>(DEBUG_CF_MISSING_VERSION), + req.range.begin.printable(), + req.range.end.printable(), + req.begin, +@@ -3657,7 +3657,7 @@ ACTOR Future<std::pair<ChangeFeedStreamReply, bool>> g + data->thisServerID.toString().substr(0, 4), + req.rangeID.printable().substr(0, 6), + req.id.toString().substr(0, 8), +- DEBUG_CF_MISSING_VERSION, ++ static_cast<int64_t>(DEBUG_CF_MISSING_VERSION), + req.range.begin.printable(), + req.range.end.printable(), + req.begin, diff --git a/databases/foundationdb73-server/files/patch-fdbserver_tester.actor.cpp b/databases/foundationdb73-server/files/patch-fdbserver_tester.actor.cpp new file mode 100644 index 000000000000..38568d011f74 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-fdbserver_tester.actor.cpp @@ -0,0 +1,11 @@ +--- fdbserver/tester.actor.cpp.orig 2025-07-02 21:14:39 UTC ++++ fdbserver/tester.actor.cpp +@@ -31,6 +31,8 @@ + #include <map> + #include <streambuf> + #include <numeric> ++ ++#include <fmt/ranges.h> + #include <toml.hpp> + + #include "flow/ActorCollection.h" diff --git a/databases/foundationdb73-server/files/patch-flow_MkCertCli.cpp b/databases/foundationdb73-server/files/patch-flow_MkCertCli.cpp new file mode 100644 index 000000000000..5bf38da98632 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-flow_MkCertCli.cpp @@ -0,0 +1,11 @@ +--- flow/MkCertCli.cpp.orig 2023-11-07 15:13:56 UTC ++++ flow/MkCertCli.cpp +@@ -216,7 +216,7 @@ int main(int argc, char** argv) { + fmt::print(stderr, "ERROR: unknown option '{}'\n", args.OptionText()); + return FDB_EXIT_ERROR; + default: +- fmt::print(stderr, "ERROR: unknown error {} with option '{}'\n", err, args.OptionText()); ++ fmt::print(stderr, "ERROR: unknown error {} with option '{}'\n", static_cast<int>(err), args.OptionText()); + return FDB_EXIT_ERROR; + } + } else { diff --git a/databases/foundationdb73-server/files/patch-flow_Platform.actor.cpp b/databases/foundationdb73-server/files/patch-flow_Platform.actor.cpp new file mode 100644 index 000000000000..d2e22e30dac9 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-flow_Platform.actor.cpp @@ -0,0 +1,21 @@ +--- flow/Platform.actor.cpp.orig 2026-04-16 19:21:39 UTC ++++ flow/Platform.actor.cpp +@@ -1980,6 +1980,9 @@ std::vector<std::string> getEnvironmentKnobOptions() { + } + + std::vector<std::string> getEnvironmentKnobOptions() { ++#if defined(__FreeBSD__) ++ extern char** environ; ++#endif + constexpr const size_t ENVKNOB_PREFIX_LEN = sizeof(ENVIRONMENT_KNOB_OPTION_PREFIX) - 1; + std::vector<std::string> knobOptions; + #if defined(_WIN32) +@@ -1995,7 +1998,7 @@ std::vector<std::string> getEnvironmentKnobOptions() { + } + #else + char** e = nullptr; +-#ifdef __linux__ ++#if defined(__linux__) || defined(__FreeBSD__) + e = environ; + #elif defined(__APPLE__) + e = *_NSGetEnviron(); diff --git a/databases/foundationdb73-server/files/patch-flow_include_flow_Platform.h b/databases/foundationdb73-server/files/patch-flow_include_flow_Platform.h new file mode 100644 index 000000000000..ef844380089a --- /dev/null +++ b/databases/foundationdb73-server/files/patch-flow_include_flow_Platform.h @@ -0,0 +1,24 @@ +--- flow/include/flow/Platform.h.orig 2026-04-16 19:21:39 UTC ++++ flow/include/flow/Platform.h +@@ -503,18 +503,20 @@ inline static uint64_t timestampCounter() { + + #ifdef __FreeBSD__ + #if !(__has_builtin(__rdtsc)) ++#if defined(__amd64__) + inline static uint64_t __rdtsc() { + uint64_t lo, hi; + asm("rdtsc" : "=a"(lo), "=d"(hi)); + return (lo | (hi << 32)); + } +-#endif + #elif defined(__powerpc64__) || defined(__ppc64__) + inline static uint64_t __rdtsc() { + uint64_t tb; + __asm__ volatile("mfspr %0, 268" : "=r"(tb)); + return tb; + } ++#endif ++#endif + #endif + + #if defined(__linux__) diff --git a/databases/foundationdb73-server/files/patch-flow_include_flow_Traceable.h b/databases/foundationdb73-server/files/patch-flow_include_flow_Traceable.h new file mode 100644 index 000000000000..fd4b2ebf0302 --- /dev/null +++ b/databases/foundationdb73-server/files/patch-flow_include_flow_Traceable.h @@ -0,0 +1,12 @@ +--- flow/include/flow/Traceable.h.orig 2025-07-02 21:14:39 UTC ++++ flow/include/flow/Traceable.h +@@ -255,8 +255,7 @@ struct FormatUsingTraceable : fmt::formatter<std::stri + // Adapter to redirect fmt::formatter calls to Traceable for a supported type + template <typename T> + struct FormatUsingTraceable : fmt::formatter<std::string> { +- template <typename FormatContext> +- auto format(const T& val, FormatContext& ctx) { ++ auto format(const T& val, fmt::format_context& ctx) const { + return fmt::formatter<std::string>::format(Traceable<T>::toString(val), ctx); + } + }; diff --git a/databases/foundationdb73-server/pkg-descr b/databases/foundationdb73-server/pkg-descr new file mode 100644 index 000000000000..a695625ee101 --- /dev/null +++ b/databases/foundationdb73-server/pkg-descr @@ -0,0 +1,8 @@ +FoundationDB is a distributed database designed to handle large volumes of +structured data across clusters of commodity servers. It organizes data as an +ordered key-value store and employs ACID transactions for all operations. It is +especially well-suited for read/write workloads but also has excellent +performance for write-intensive workloads. Users interact with the database +using API language binding. + +To learn more about FoundationDB, visit https://www.foundationdb.org diff --git a/databases/foundationdb73-server/pkg-plist-client b/databases/foundationdb73-server/pkg-plist-client new file mode 100644 index 000000000000..0d5cc12eba93 --- /dev/null +++ b/databases/foundationdb73-server/pkg-plist-client @@ -0,0 +1,16 @@ +bin/dr_agent +bin/fdbbackup +bin/fdbcli +bin/fdbdr +bin/fdbrestore +include/foundationdb/fdb_c.h +include/foundationdb/fdb_c_apiversion.g.h +include/foundationdb/fdb_c_internal.h +include/foundationdb/fdb_c_options.g.h +include/foundationdb/fdb_c_shim.h +include/foundationdb/fdb_c_types.h +include/foundationdb/fdb.options +lib/foundationdb/backup_agent/backup_agent +lib/libfdb_c.so +lib/libfdb_c_shim.so +@dir(%%FOUNDATIONDB_USER%%,%%FOUNDATIONDB_GROUP%%,755) %%ETCDIR%% diff --git a/databases/foundationdb73-server/pkg-plist-server b/databases/foundationdb73-server/pkg-plist-server new file mode 100644 index 000000000000..665afe1db04d --- /dev/null +++ b/databases/foundationdb73-server/pkg-plist-server @@ -0,0 +1,6 @@ +sbin/fdbmonitor +sbin/fdbserver +@sample %%ETCDIR%%/foundationdb.conf.sample +@dir(%%FOUNDATIONDB_USER%%,%%FOUNDATIONDB_GROUP%%,755) %%ETCDIR%% +@dir(%%FOUNDATIONDB_USER%%,%%FOUNDATIONDB_GROUP%%,755) %%FOUNDATIONDB_DBDIR%% +@dir(%%FOUNDATIONDB_USER%%,%%FOUNDATIONDB_GROUP%%,755) %%FOUNDATIONDB_LOGDIR%% |
