Files
Alexis Williams a8e085905b dragonflydb: 1.34.2 -> 1.39.0
Fixes CVE-2026-54341 (RESTORE operations may crash the server; affects
versions < 1.39), and brings the package up to the current release.

The vendored dependency patches are regenerated against the v1.39.0
helio/dragonfly CMake files, which changed a large number of third-party
declarations:

- Pin abseil-cpp to 20250512.1, the release helio's in-tree patches target
  (nixpkgs' abseil-cpp now tracks a newer version the patches no longer apply
  to), and bump the vendored aws-sdk-cpp and jsoncons pins.
- hnswlib now comes from dragonfly's fork rather than nixpkgs, matching
  upstream's switch away from nmslib's hnswlib.
- Vendor the new snowball stemmer dependency (built in-tree); nixpkgs'
  libstemmer is an older snowball release.
- Drop the mimalloc 2.1.6 and jemalloc pins, which helio no longer builds.
- Disable aws-sdk-cpp's git-dependent submodule-version enforcement, which
  cannot run in the sandbox (the source is already fetched at the exact tag
  with submodules).

Assisted-by: Claude Code (Claude Opus 4.8)
2026-06-27 14:29:32 -07:00

129 lines
5.0 KiB
Diff

diff --git a/src/external_libs.cmake b/src/external_libs.cmake
index 5a98540..1c5ab6d 100644
--- a/src/external_libs.cmake
+++ b/src/external_libs.cmake
@@ -1,7 +1,6 @@
add_third_party(
lua
- GIT_REPOSITORY https://github.com/dragonflydb/lua
- GIT_TAG Dragonfly-5.4.6a
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/lua/. <SOURCE_DIR>
CONFIGURE_COMMAND echo
BUILD_IN_SOURCE 1
BUILD_COMMAND ${DFLY_TOOLS_MAKE} all
@@ -19,20 +18,16 @@ endif()
add_third_party(
dconv
- GIT_REPOSITORY https://github.com/google/double-conversion
- # URL https://github.com/google/double-conversion/archive/refs/tags/v3.3.1.tar.gz
- GIT_TAG 0604b4c
- PATCH_COMMAND ${SED_REPL} "/static const std::ctype/d"
- <SOURCE_DIR>/double-conversion/string-to-double.cc
- COMMAND ${SED_REPL} "/std::use_facet</d" <SOURCE_DIR>/double-conversion/string-to-double.cc
- COMMAND ${SED_REPL} "s/cType.tolower/std::tolower/g" <SOURCE_DIR>/double-conversion/string-to-double.cc
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/dconv/. <SOURCE_DIR>
+ PATCH_COMMAND echo
+ CMAKE_PASS_FLAGS "-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
LIB libdouble-conversion.a
)
add_third_party(
reflex
- URL https://github.com/Genivia/RE-flex/archive/refs/tags/v5.2.2.tar.gz
- PATCH_COMMAND autoreconf -fi
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/reflex/. <SOURCE_DIR>
+ PATCH_COMMAND echo
CONFIGURE_COMMAND <SOURCE_DIR>/configure --disable-avx2 --prefix=${THIRD_PARTY_LIB_DIR}/reflex
CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER}
)
@@ -41,16 +36,14 @@ set(REFLEX "${THIRD_PARTY_LIB_DIR}/reflex/bin/reflex")
add_third_party(
jsoncons
- GIT_REPOSITORY https://github.com/dragonflydb/jsoncons
- GIT_TAG Dragonfly1.5.0
- GIT_SHALLOW 1
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/jsoncons/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DJSONCONS_BUILD_TESTS=OFF -DJSONCONS_HAS_POLYMORPHIC_ALLOCATOR=ON"
LIB "none"
)
add_third_party(
lz4
- URL https://github.com/lz4/lz4/archive/refs/tags/v1.10.0.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/lz4/. <SOURCE_DIR>
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND echo skip
@@ -65,7 +58,7 @@ set(MIMALLOC_C_FLAGS "-O3 -g -DMI_STAT=1 -DNDEBUG")
file(MAKE_DIRECTORY ${MIMALLOC_INCLUDE_DIR})
ExternalProject_Add(mimalloc2_project
- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.2.4.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/mimalloc224/. <SOURCE_DIR>
DOWNLOAD_DIR ${THIRD_PARTY_DIR}/mimalloc2
SOURCE_DIR ${THIRD_PARTY_DIR}/mimalloc2
# INSTALL_DIR ${MIMALLOC_ROOT_DIR}
@@ -119,23 +112,21 @@ set_target_properties(TRDP::mimalloc2 PROPERTIES IMPORTED_LOCATION ${MIMALLOC_RO
add_third_party(
croncpp
- URL https://github.com/mariusbancila/croncpp/archive/refs/tags/v2023.03.30.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/croncpp/. <SOURCE_DIR>
LIB "none"
)
if (WITH_SEARCH)
add_third_party(
uni-algo
- URL https://github.com/uni-algo/uni-algo/archive/refs/tags/v1.0.0.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/uni-algo/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DCMAKE_CXX_STANDARD:STRING=20"
)
add_third_party(
hnswlib
- GIT_REPOSITORY https://github.com/dragonflydb/hnswlib.git
- # HEAD of dragonfly branch
- GIT_TAG d07dd1da2bf48b85d2f03b8396193ad7120f75c2
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/hnswlib/. <SOURCE_DIR>
BUILD_COMMAND echo SKIP
INSTALL_COMMAND cp -R <SOURCE_DIR>/hnswlib ${THIRD_PARTY_LIB_DIR}/hnswlib/include/
@@ -145,7 +136,7 @@ if (WITH_SEARCH)
# No autoconf/cmake/install in upstream Makefile; manual install copy.
add_third_party(
stemmer
- URL https://github.com/snowballstem/snowball/archive/refs/tags/v3.0.1.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/stemmer/. <SOURCE_DIR>
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND echo skip
BUILD_COMMAND ${DFLY_TOOLS_MAKE} -j4 CFLAGS=-O3\ -fPIC libstemmer.a
@@ -159,21 +150,20 @@ endif()
add_third_party(
fast_float
- URL https://github.com/fastfloat/fast_float/archive/refs/tags/v5.2.0.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/fast_float/. <SOURCE_DIR>
LIB "none"
)
add_third_party(
flatbuffers
- URL https://github.com/google/flatbuffers/archive/refs/tags/v23.5.26.tar.gz
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/flatbuffers/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF
-DFLATBUFFERS_BUILD_FLATC=OFF"
)
add_third_party(
hdr_histogram
- GIT_REPOSITORY https://github.com/HdrHistogram/HdrHistogram_c/
- GIT_TAG 652d51bcc36744fd1a6debfeb1a8a5f58b14022c
+ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/hdr_histogram/. <SOURCE_DIR>
CMAKE_PASS_FLAGS "-DHDR_LOG_REQUIRED=OFF -DHDR_HISTOGRAM_BUILD_PROGRAMS=OFF
-DHDR_HISTOGRAM_INSTALL_SHARED=OFF"
LIB libhdr_histogram_static.a