summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCasey Bodley <cbodley@users.noreply.github.com>2024-06-27 17:35:32 +0200
committerGitHub <noreply@github.com>2024-06-27 17:35:32 +0200
commit0a1d0933ad393691b894e83dfc824927da201b46 (patch)
treefebe866d64976bc7e4d21c9c649c23aae7e838c6
parentMerge PR #53755 into main (diff)
parentsubmodule: Remove boost_redis submodule (diff)
downloadceph-0a1d0933ad393691b894e83dfc824927da201b46.tar.xz
ceph-0a1d0933ad393691b894e83dfc824927da201b46.zip
Merge pull request #57581 from adamemerson/wip-boost-1.85
build: Bump boost version to 1.85 Reviewed-by: Casey Bodley <cbodley@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
-rw-r--r--.gitmodules3
-rw-r--r--CMakeLists.txt16
-rw-r--r--cmake/modules/BuildBoost.cmake13
-rw-r--r--cmake/modules/FindBoost.cmake18
-rwxr-xr-xinstall-deps.sh5
-rwxr-xr-xmake-dist4
m---------src/boost_redis0
-rw-r--r--src/mds/BoostUrlImpl.cc8
-rw-r--r--src/mds/CMakeLists.txt3
-rw-r--r--src/rgw/CMakeLists.txt4
-rw-r--r--src/test/mds/CMakeLists.txt3
-rwxr-xr-xwin32_deps_build.sh27
12 files changed, 41 insertions, 63 deletions
diff --git a/.gitmodules b/.gitmodules
index 0f10aaa96ed..7aa350efe28 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -75,6 +75,3 @@
[submodule "src/qatzip"]
path = src/qatzip
url = https://github.com/intel/qatzip.git
-[submodule "src/boost_redis"]
- path = src/boost_redis
- url = https://github.com/boostorg/redis.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 62aaad94dc8..a6e7c0b3d6d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -282,7 +282,10 @@ if(WITH_LIBURING)
build_uring()
endif()
# enable uring in boost::asio
- add_compile_definitions("BOOST_ASIO_HAS_IO_URING")
+
+ if(CMAKE_SYSTEM_VERSION VERSION_GREATER_EQUAL "5.10")
+ add_compile_definitions("BOOST_ASIO_HAS_IO_URING")
+ endif()
endif()
CMAKE_DEPENDENT_OPTION(WITH_BLUESTORE_PMEM "Enable PMDK libraries" OFF
@@ -699,7 +702,7 @@ option(WITH_SYSTEM_BOOST "require and build with system Boost" OFF)
# Boost::thread depends on Boost::atomic, so list it explicitly.
set(BOOST_COMPONENTS
atomic chrono thread system regex random program_options date_time
- iostreams context coroutine)
+ iostreams context coroutine url)
set(BOOST_HEADER_COMPONENTS container)
if(WITH_MGR)
@@ -728,7 +731,7 @@ if(WITH_SYSTEM_BOOST)
if(BOOST_ROOT AND CMAKE_LIBRARY_ARCHITECTURE)
set(BOOST_LIBRARYDIR "${BOOST_ROOT}/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
endif()
- find_package(Boost 1.82 COMPONENTS ${BOOST_COMPONENTS} REQUIRED)
+ find_package(Boost 1.85 COMPONENTS ${BOOST_COMPONENTS} REQUIRED)
if(NOT ENABLE_SHARED)
set_property(TARGET Boost::iostreams APPEND PROPERTY
INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
@@ -742,16 +745,11 @@ else()
set(BOOST_J ${DEFAULT_BOOST_J} CACHE STRING "max jobs for Boost build") # override w/-DBOOST_J=<n>
set(Boost_USE_STATIC_LIBS ON)
include(BuildBoost)
- build_boost(1.82
+ build_boost(1.85
COMPONENTS ${BOOST_COMPONENTS} ${BOOST_HEADER_COMPONENTS})
endif()
include_directories(BEFORE SYSTEM ${Boost_INCLUDE_DIRS})
-if(Boost_VERSION VERSION_LESS 1.84)
- # This is a workaround for https://github.com/boostorg/phoenix/issues/111
- add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-DBOOST_PHOENIX_STL_TUPLE_H_>)
-endif()
-
# dashboard angular2 frontend
option(WITH_MGR_DASHBOARD_FRONTEND "Build the mgr/dashboard frontend using `npm`" ON)
option(WITH_SYSTEM_NPM "Assume that dashboard build tools already installed through packages" OFF)
diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
index 3b3b2688426..380c55445d6 100644
--- a/cmake/modules/BuildBoost.cmake
+++ b/cmake/modules/BuildBoost.cmake
@@ -155,18 +155,19 @@ function(do_build_boost root_dir version)
check_boost_version("${PROJECT_SOURCE_DIR}/src/boost" ${version})
set(source_dir
SOURCE_DIR "${PROJECT_SOURCE_DIR}/src/boost")
- elseif(version VERSION_GREATER 1.82)
+ elseif(version VERSION_GREATER 1.85)
message(FATAL_ERROR "Unknown BOOST_REQUESTED_VERSION: ${version}")
else()
message(STATUS "boost will be downloaded...")
# NOTE: If you change this version number make sure the package is available
# at the three URLs below (may involve uploading to download.ceph.com)
- set(boost_version 1.82.0)
- set(boost_sha256 a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6)
+ set(boost_version 1.85.0)
+ set(boost_sha256 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617)
string(REPLACE "." "_" boost_version_underscore ${boost_version} )
- string(JOIN " " boost_url
- https://boostorg.jfrog.io/artifactory/main/release/${boost_version}/source/boost_${boost_version_underscore}.tar.bz2
- https://download.ceph.com/qa/boost_${boost_version_underscore}.tar.bz2)
+ list(APPEND boost_url
+ https://download.ceph.com/qa/boost_${boost_version_underscore}.tar.bz2
+ https://archives.boost.io//release/${boost_version}/source/boost_${boost_version_underscore}.tar.bz2
+ https://boostorg.jfrog.io/artifactory/main/release/${boost_version}/source/boost_${boost_version_underscore}.tar.bz2)
set(source_dir
URL ${boost_url}
URL_HASH SHA256=${boost_sha256}
diff --git a/cmake/modules/FindBoost.cmake b/cmake/modules/FindBoost.cmake
index ba63e24ddba..6d9b87f844d 100644
--- a/cmake/modules/FindBoost.cmake
+++ b/cmake/modules/FindBoost.cmake
@@ -1380,6 +1380,21 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_TIMER_DEPENDENCIES chrono)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(Boost_VERSION_STRING VERSION_LESS 1.84.0)
+ set(_Boost_CONTRACT_DEPENDENCIES thread chrono)
+ set(_Boost_COROUTINE_DEPENDENCIES context)
+ set(_Boost_FIBER_DEPENDENCIES context)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_JSON_DEPENDENCIES container)
+ set(_Boost_LOG_DEPENDENCIES log_setup filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+ set(_Boost_THREAD_DEPENDENCIES chrono atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono)
+ set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
else()
set(_Boost_CONTRACT_DEPENDENCIES thread chrono)
set(_Boost_COROUTINE_DEPENDENCIES context)
@@ -1394,7 +1409,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_THREAD_DEPENDENCIES chrono atomic)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.84.0 AND NOT Boost_NO_WARN_NEW_VERSIONS)
+ if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.86.0 AND NOT Boost_NO_WARN_NEW_VERSIONS)
message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
endif()
endif()
@@ -1669,6 +1684,7 @@ else()
# _Boost_COMPONENT_HEADERS. See the instructions at the top of
# _Boost_COMPONENT_DEPENDENCIES.
set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
+ "1.85.0" "1.85" "1.84.0" "1.84"
"1.83.0" "1.83" "1.82.0" "1.82" "1.81.0" "1.81" "1.80.0" "1.80" "1.79.0" "1.79"
"1.78.0" "1.78" "1.77.0" "1.77" "1.76.0" "1.76" "1.75.0" "1.75" "1.74.0" "1.74"
"1.73.0" "1.73" "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69"
diff --git a/install-deps.sh b/install-deps.sh
index 0f112d2d92d..d5eafba48cc 100755
--- a/install-deps.sh
+++ b/install-deps.sh
@@ -141,7 +141,7 @@ function install_pkg_on_ubuntu {
fi
}
-boost_ver=1.82
+boost_ver=1.85
function clean_boost_on_ubuntu {
ci_debug "Running clean_boost_on_ubuntu() in install-deps.sh"
@@ -198,7 +198,7 @@ function install_boost_on_ubuntu {
fi
local codename=$1
local project=libboost
- local sha1=2804368f5b807ba8334b0ccfeb8af191edeb996f
+ local sha1=55f34507d322314fb0294629b7c0bb406de07aec
install_pkg_on_ubuntu \
$project \
$sha1 \
@@ -220,6 +220,7 @@ function install_boost_on_ubuntu {
ceph-libboost-test${boost_ver}-dev \
ceph-libboost-thread${boost_ver}-dev \
ceph-libboost-timer${boost_ver}-dev \
+ ceph-libboost-url${boost_ver}-dev \
|| ci_debug "ceph-libboost package unavailable, you can build the submodule"
}
diff --git a/make-dist b/make-dist
index fde1773c9b1..e874436a5e7 100755
--- a/make-dist
+++ b/make-dist
@@ -191,8 +191,8 @@ ln -s . $outfile
tar cvf $outfile.version.tar $outfile/src/.git_version $outfile/ceph.spec
# NOTE: If you change this version number make sure the package is available
# at the three URLs referenced below (may involve uploading to download.ceph.com)
-boost_version=1.82.0
-download_boost $boost_version a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6 \
+boost_version=1.85.0
+download_boost $boost_version 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617 \
https://download.ceph.com/qa \
https://archives.boost.io/release/$boost_version/source
download_liburing 2.5 456f5f882165630f0dc7b75e8fd53bd01a955d5d4720729b4323097e6e9f2a98 \
diff --git a/src/boost_redis b/src/boost_redis
deleted file mode 160000
-Subproject 78792199efad17f1756603f929daa2930c45694
diff --git a/src/mds/BoostUrlImpl.cc b/src/mds/BoostUrlImpl.cc
deleted file mode 100644
index 479f4c6d75d..00000000000
--- a/src/mds/BoostUrlImpl.cc
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * https://www.boost.org/doc/libs/1_82_0/libs/url/doc/html/url/overview.html#url.overview.requirements
- *
- * To use the library as header-only; that is, to eliminate the requirement
- * to link a program to a static or dynamic Boost.URL library,
- * simply place the following line in exactly one source file in your project.
- */
-#include <boost/url/src.hpp>
diff --git a/src/mds/CMakeLists.txt b/src/mds/CMakeLists.txt
index ffa9dc28d8a..f3980c7e04b 100644
--- a/src/mds/CMakeLists.txt
+++ b/src/mds/CMakeLists.txt
@@ -45,13 +45,12 @@ set(mds_srcs
QuiesceDbManager.cc
QuiesceAgent.cc
MDSRankQuiesce.cc
- BoostUrlImpl.cc
${CMAKE_SOURCE_DIR}/src/common/TrackedOp.cc
${CMAKE_SOURCE_DIR}/src/common/MemoryModel.cc
${CMAKE_SOURCE_DIR}/src/osdc/Journaler.cc
${CMAKE_SOURCE_DIR}/src/mgr/MDSPerfMetricTypes.cc)
add_library(mds STATIC ${mds_srcs})
target_link_libraries(mds PRIVATE
- legacy-option-headers
+ legacy-option-headers Boost::url
heap_profiler cpu_profiler osdc ${LUA_LIBRARIES})
target_include_directories(mds PRIVATE "${LUA_INCLUDE_DIR}")
diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt
index 13e8970aeaf..f91fbaed430 100644
--- a/src/rgw/CMakeLists.txt
+++ b/src/rgw/CMakeLists.txt
@@ -310,10 +310,6 @@ target_include_directories(rgw_common
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
PUBLIC "${LUA_INCLUDE_DIR}")
-if(WITH_RADOSGW_D4N)
- target_include_directories(rgw_common SYSTEM PUBLIC "${CMAKE_SOURCE_DIR}/src/boost_redis/include")
-endif()
-
if(WITH_RADOSGW_KAFKA_ENDPOINT)
# used by rgw_kafka.cc
target_link_libraries(rgw_common
diff --git a/src/test/mds/CMakeLists.txt b/src/test/mds/CMakeLists.txt
index f80abe75083..18ebb648e68 100644
--- a/src/test/mds/CMakeLists.txt
+++ b/src/test/mds/CMakeLists.txt
@@ -18,11 +18,10 @@ target_link_libraries(unittest_mds_sessionfilter mds osdc ceph-common global ${B
add_executable(unittest_mds_quiesce_db
TestQuiesceDb.cc
../../../src/mds/QuiesceDbManager.cc
- ../../../src/mds/BoostUrlImpl.cc
$<TARGET_OBJECTS:unit-main>
)
add_ceph_unittest(unittest_mds_quiesce_db)
-target_link_libraries(unittest_mds_quiesce_db ceph-common global)
+target_link_libraries(unittest_mds_quiesce_db ceph-common global Boost::url)
# unittest_mds_quiesce_agent
add_executable(unittest_mds_quiesce_agent
diff --git a/win32_deps_build.sh b/win32_deps_build.sh
index 491eb28093f..49d26710dd0 100755
--- a/win32_deps_build.sh
+++ b/win32_deps_build.sh
@@ -16,9 +16,9 @@ sslDir="${depsToolsetDir}/openssl"
sslSrcDir="${depsSrcDir}/openssl"
# For now, we'll keep the version number within the file path when not using git.
-boostUrl="https://download.ceph.com/qa/boost_1_82_0.tar.bz2"
-boostSha256Sum="a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6"
-boostSrcDir="${depsSrcDir}/boost_1_82_0"
+boostUrl="https://download.ceph.com/qa/boost_1_85_0.tar.bz2"
+boostSha256Sum="7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617"
+boostSrcDir="${depsSrcDir}/boost_1_85_0"
boostDir="${depsToolsetDir}/boost"
zlibDir="${depsToolsetDir}/zlib"
zlibSrcDir="${depsSrcDir}/zlib"
@@ -225,27 +225,6 @@ patch -N boost/thread/pthread/thread_data.hpp <<EOL
#endif
EOL
-# https://github.com/boostorg/stacktrace/pull/140
-# https://github.com/boostorg/stacktrace/issues/133
-patch -N boost/stacktrace/detail/frame_msvc.ipp <<'EOL'
---- boost/stacktrace/detail/frame_msvc.ipp 2023-08-18 12:29:37.127229733 +0000
-+++ boost/stacktrace/detail/frame_msvc.ipp.new 2023-08-18 12:28:23.713294554 +0000
-@@ -28,9 +28,13 @@
-
-
- #ifdef __CRT_UUID_DECL // for __MINGW32__
-+#if !defined(__MINGW32__) || \
-+ (!defined(__clang__) && __GNUC__ < 12) || \
-+ (defined(__clang__) && __clang_major__ < 16)
- __CRT_UUID_DECL(IDebugClient,0x27fe5639,0x8407,0x4f47,0x83,0x64,0xee,0x11,0x8f,0xb0,0x8a,0xc8)
- __CRT_UUID_DECL(IDebugControl,0x5182e668,0x105e,0x416e,0xad,0x92,0x24,0xef,0x80,0x04,0x24,0xba)
- __CRT_UUID_DECL(IDebugSymbols,0x8c31e98c,0x983a,0x48a5,0x90,0x16,0x6f,0xe5,0xd6,0x67,0xa9,0x50)
-+#endif
- #elif defined(DEFINE_GUID) && !defined(BOOST_MSVC)
- DEFINE_GUID(IID_IDebugClient,0x27fe5639,0x8407,0x4f47,0x83,0x64,0xee,0x11,0x8f,0xb0,0x8a,0xc8);
- DEFINE_GUID(IID_IDebugControl,0x5182e668,0x105e,0x416e,0xad,0x92,0x24,0xef,0x80,0x04,0x24,0xba);
-EOL
-
./bootstrap.sh
if [[ $ENABLE_SHARED == "ON" ]]; then