mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2024-09-20 11:23:16 +00:00
testing/ceph19: new aport
* first release candidate for ceph 19 * move ceph.mount into its own sub package
This commit is contained in:
parent
67e55e1747
commit
892ff4b919
19 changed files with 1921 additions and 0 deletions
259
testing/ceph19/10-isal.patch
Normal file
259
testing/ceph19/10-isal.patch
Normal file
|
@ -0,0 +1,259 @@
|
|||
diff -Nurp a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
|
||||
--- a/src/common/CMakeLists.txt 2024-07-27 19:25:51.996571738 +0000
|
||||
+++ b/src/common/CMakeLists.txt 2024-07-27 20:13:53.191996427 +0000
|
||||
@@ -212,9 +212,8 @@ if(HAVE_INTEL)
|
||||
list(APPEND crc32_srcs
|
||||
crc32c_intel_fast.c)
|
||||
if(HAVE_NASM_X64)
|
||||
- set(CMAKE_ASM_FLAGS "-i ${PROJECT_SOURCE_DIR}/src/isa-l/include/ ${CMAKE_ASM_FLAGS}")
|
||||
+# set(CMAKE_ASM_FLAGS "-i ${PROJECT_SOURCE_DIR}/src/isa-l/include/ ${CMAKE_ASM_FLAGS}")
|
||||
list(APPEND crc32_srcs
|
||||
- ${PROJECT_SOURCE_DIR}/src/isa-l/crc/crc32_iscsi_00.asm
|
||||
crc32c_intel_fast_zero_asm.s)
|
||||
endif(HAVE_NASM_X64)
|
||||
elseif(HAVE_POWER8)
|
||||
@@ -239,6 +238,10 @@ endif()
|
||||
target_link_libraries(crc32
|
||||
arch)
|
||||
|
||||
+if(HAVE_NASM_X64)
|
||||
+pkg_check_modules(ISAL IMPORTED_TARGET libisal)
|
||||
+target_link_libraries(crc32 PkgConfig::ISAL)
|
||||
+endif(HAVE_NASM_X64)
|
||||
add_library(common_utf8 STATIC utf8.c)
|
||||
|
||||
if(HAVE_KEYUTILS)
|
||||
diff -Nurp a/src/compressor/zlib/CMakeLists.txt b/src/compressor/zlib/CMakeLists.txt
|
||||
--- a/src/compressor/zlib/CMakeLists.txt 2024-07-27 19:25:51.998571765 +0000
|
||||
+++ b/src/compressor/zlib/CMakeLists.txt 2024-07-27 20:06:34.792969004 +0000
|
||||
@@ -5,77 +5,11 @@ if(HAVE_INTEL_SSE4_1 AND HAVE_NASM_X64_A
|
||||
set(zlib_sources
|
||||
CompressionPluginZlib.cc
|
||||
ZlibCompressor.cc
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/hufftables_c.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/adler32_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/flatten_ll.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_inflate.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/huff_codes.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc_base_aliases.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc64_base.c
|
||||
- )
|
||||
- list(APPEND zlib_sources
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_body.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_finish.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body_h1_gr_bt.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_finish.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/rfc1951_lookup.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/adler32_sse.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/adler32_avx2_4.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_multibinary.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_update_histogram_01.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_update_histogram_04.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_decode_block_stateless_01.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_decode_block_stateless_04.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_inflate_multibinary.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df_04.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df_06.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/proc_heap.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_deflate_hash.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_gen_icf_map_lh1_06.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_gen_icf_map_lh1_04.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_set_long_icf_fg_04.asm
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_set_long_icf_fg_06.asm
|
||||
)
|
||||
elseif(HAVE_ARMV8_SIMD)
|
||||
- set(zlib_asm_sources
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_inflate_multibinary_arm64.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_multibinary_arm64.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_deflate_body_aarch64.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_deflate_finish_aarch64.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/isal_deflate_icf_body_hash_hist.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/isal_deflate_icf_finish_hash_hist.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_set_long_icf_fg.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/isal_update_histogram.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_deflate_hash_aarch64.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_decode_huffman_code_block_aarch64.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_isal_adler32_neon.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/encode_df.S
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/gen_icf_map.S
|
||||
- )
|
||||
set(zlib_sources
|
||||
CompressionPluginZlib.cc
|
||||
ZlibCompressor.cc
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/hufftables_c.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/adler32_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/flatten_ll.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/encode_df.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_icf_body.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/igzip_inflate.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/huff_codes.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/proc_heap_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/igzip/aarch64/igzip_multibinary_aarch64_dispatcher.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc_base_aliases.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc_base.c
|
||||
- ${CMAKE_SOURCE_DIR}/src/isa-l/crc/crc64_base.c
|
||||
${zlib_asm_sources}
|
||||
)
|
||||
set_source_files_properties(${zlib_asm_sources} PROPERTIES
|
||||
@@ -89,8 +23,13 @@ else()
|
||||
)
|
||||
endif()
|
||||
|
||||
+pkg_check_modules(ISAL IMPORTED_TARGET libisal)
|
||||
add_library(ceph_zlib SHARED ${zlib_sources})
|
||||
target_link_libraries(ceph_zlib ZLIB::ZLIB compressor $<$<PLATFORM_ID:Windows>:ceph-common>)
|
||||
+if(HAVE_NASM_X64_AVX2 OR HAVE_ARMV8_SIMD)
|
||||
+target_link_libraries(ceph_zlib PkgConfig::ISAL)
|
||||
+endif()
|
||||
+
|
||||
if(HAVE_QATZIP AND HAVE_QAT)
|
||||
target_link_libraries(ceph_zlib qat_compressor)
|
||||
endif()
|
||||
diff -Nurp a/src/compressor/zlib/ZlibCompressor.cc b/src/compressor/zlib/ZlibCompressor.cc
|
||||
--- a/src/compressor/zlib/ZlibCompressor.cc 2024-07-27 19:25:52.003571834 +0000
|
||||
+++ b/src/compressor/zlib/ZlibCompressor.cc 2024-07-27 20:07:44.992931520 +0000
|
||||
@@ -16,7 +16,7 @@
|
||||
#include "common/debug.h"
|
||||
#include "ZlibCompressor.h"
|
||||
#include "osd/osd_types.h"
|
||||
-#include "isa-l/include/igzip_lib.h"
|
||||
+#include "isa-l/igzip_lib.h"
|
||||
#ifdef HAVE_QATZIP
|
||||
#include "compressor/QatAccel.h"
|
||||
#endif
|
||||
diff -Nurp a/src/compressor/zstd/ZstdCompressor.h b/src/compressor/zstd/ZstdCompressor.h
|
||||
--- a/src/compressor/zstd/ZstdCompressor.h 2024-07-27 19:25:52.005571861 +0000
|
||||
+++ b/src/compressor/zstd/ZstdCompressor.h 2024-07-27 19:28:09.601450158 +0000
|
||||
@@ -16,7 +16,7 @@
|
||||
#define CEPH_ZSTDCOMPRESSOR_H
|
||||
|
||||
#define ZSTD_STATIC_LINKING_ONLY
|
||||
-#include "zstd/lib/zstd.h"
|
||||
+#include "zstd.h"
|
||||
|
||||
#include "include/buffer.h"
|
||||
#include "include/encoding.h"
|
||||
diff -Nurp a/src/erasure-code/isa/CMakeLists.txt b/src/erasure-code/isa/CMakeLists.txt
|
||||
--- a/src/erasure-code/isa/CMakeLists.txt 2024-07-27 19:25:52.000571793 +0000
|
||||
+++ b/src/erasure-code/isa/CMakeLists.txt 2024-07-27 19:28:09.599450130 +0000
|
||||
@@ -1,59 +1,10 @@
|
||||
# ISA
|
||||
set(isal_src_dir ${CMAKE_SOURCE_DIR}/src/isa-l)
|
||||
-include_directories(${isal_src_dir}/include)
|
||||
+# include_directories(${isal_src_dir}/include)
|
||||
|
||||
if(HAVE_NASM_X64_AVX2)
|
||||
- set(CMAKE_ASM_FLAGS "-i ${isal_src_dir}/include/ ${CMAKE_ASM_FLAGS}")
|
||||
+ # set(CMAKE_ASM_FLAGS "-i ${isal_src_dir}/include/ ${CMAKE_ASM_FLAGS}")
|
||||
set(isa_srcs
|
||||
- ${isal_src_dir}/erasure_code/ec_base.c
|
||||
- ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_dot_prod_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_2vect_mad_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_3vect_mad_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_4vect_mad_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_5vect_mad_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_6vect_mad_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_mad_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/ec_highlevel_func.c
|
||||
- ${isal_src_dir}/erasure_code/gf_2vect_mad_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_3vect_mad_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_4vect_mad_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_5vect_mad_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_6vect_mad_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_mad_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/ec_multibinary.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_2vect_mad_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_3vect_mad_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_4vect_mad_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_5vect_mad_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_6vect_mad_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_mad_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx2.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_mul_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_mul_sse.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx512.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_2vect_mad_avx512.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx512.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_3vect_mad_avx512.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx512.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_4vect_mad_avx512.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx512.asm
|
||||
- ${isal_src_dir}/erasure_code/gf_vect_mad_avx512.asm
|
||||
ErasureCodeIsa.cc
|
||||
ErasureCodeIsaTableCache.cc
|
||||
ErasureCodePluginIsa.cc
|
||||
@@ -61,22 +12,6 @@ if(HAVE_NASM_X64_AVX2)
|
||||
)
|
||||
elseif(HAVE_ARMV8_SIMD)
|
||||
set(isa_srcs
|
||||
- ${isal_src_dir}/erasure_code/ec_base.c
|
||||
- ${isal_src_dir}/erasure_code/aarch64/ec_aarch64_highlevel_func.c
|
||||
- ${isal_src_dir}/erasure_code/aarch64/ec_aarch64_dispatcher.c
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_2vect_dot_prod_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_2vect_mad_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_3vect_dot_prod_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_3vect_mad_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_4vect_dot_prod_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_4vect_mad_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_5vect_dot_prod_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_5vect_mad_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_6vect_mad_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_vect_dot_prod_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_vect_mad_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/gf_vect_mul_neon.S
|
||||
- ${isal_src_dir}/erasure_code/aarch64/ec_multibinary_arm.S
|
||||
ErasureCodeIsa.cc
|
||||
ErasureCodeIsaTableCache.cc
|
||||
ErasureCodePluginIsa.cc
|
||||
@@ -88,10 +23,14 @@ elseif(HAVE_ARMV8_SIMD)
|
||||
)
|
||||
endif()
|
||||
|
||||
+pkg_check_modules(ISAL IMPORTED_TARGET libisal)
|
||||
add_library(ec_isa SHARED
|
||||
${isa_srcs}
|
||||
$<TARGET_OBJECTS:erasure_code_objs>)
|
||||
target_link_libraries(ec_isa ${EXTRALIBS})
|
||||
+if(HAVE_NASM_X64_AVX2 OR HAVE_ARMV8_SIMD)
|
||||
+target_link_libraries(ec_isa PkgConfig::ISAL)
|
||||
+endif()
|
||||
set_target_properties(ec_isa PROPERTIES
|
||||
INSTALL_RPATH "")
|
||||
install(TARGETS ec_isa DESTINATION ${erasure_plugin_dir})
|
||||
diff -Nurp a/src/erasure-code/isa/ErasureCodeIsa.cc b/src/erasure-code/isa/ErasureCodeIsa.cc
|
||||
--- a/src/erasure-code/isa/ErasureCodeIsa.cc 2024-07-27 19:25:52.001571806 +0000
|
||||
+++ b/src/erasure-code/isa/ErasureCodeIsa.cc 2024-07-27 19:28:09.600450144 +0000
|
||||
@@ -25,7 +25,7 @@ using namespace ceph;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
extern "C" {
|
||||
-#include "isa-l/include/erasure_code.h"
|
||||
+#include "isa-l/erasure_code.h"
|
||||
}
|
||||
// -----------------------------------------------------------------------------
|
||||
#define dout_context g_ceph_context
|
43
testing/ceph19/10-isal_crypto.patch
Normal file
43
testing/ceph19/10-isal_crypto.patch
Normal file
|
@ -0,0 +1,43 @@
|
|||
diff -Nurp a/src/crypto/isa-l/CMakeLists.txt b/src/crypto/isa-l/CMakeLists.txt
|
||||
--- a/src/crypto/isa-l/CMakeLists.txt 2023-10-07 11:38:41.978488294 +0000
|
||||
+++ b/src/crypto/isa-l/CMakeLists.txt 2023-10-07 11:42:58.266169084 +0000
|
||||
@@ -3,33 +3,19 @@ set(CMAKE_ASM_FLAGS "-i ${isal_dir}/aes/
|
||||
|
||||
set(isal_crypto_plugin_srcs
|
||||
isal_crypto_accel.cc
|
||||
- isal_crypto_plugin.cc
|
||||
- ${isal_dir}/aes/cbc_pre.c
|
||||
- ${isal_dir}/aes/cbc_multibinary.asm
|
||||
- ${isal_dir}/aes/keyexp_128.asm
|
||||
- ${isal_dir}/aes/keyexp_192.asm
|
||||
- ${isal_dir}/aes/keyexp_256.asm
|
||||
- ${isal_dir}/aes/keyexp_multibinary.asm
|
||||
- ${isal_dir}/aes/cbc_dec_128_x4_sse.asm
|
||||
- ${isal_dir}/aes/cbc_dec_128_x8_avx.asm
|
||||
- ${isal_dir}/aes/cbc_dec_192_x4_sse.asm
|
||||
- ${isal_dir}/aes/cbc_dec_192_x8_avx.asm
|
||||
- ${isal_dir}/aes/cbc_dec_256_x4_sse.asm
|
||||
- ${isal_dir}/aes/cbc_dec_256_x8_avx.asm
|
||||
- ${isal_dir}/aes/cbc_enc_128_x4_sb.asm
|
||||
- ${isal_dir}/aes/cbc_enc_128_x8_sb.asm
|
||||
- ${isal_dir}/aes/cbc_enc_192_x4_sb.asm
|
||||
- ${isal_dir}/aes/cbc_enc_192_x8_sb.asm
|
||||
- ${isal_dir}/aes/cbc_enc_256_x4_sb.asm
|
||||
- ${isal_dir}/aes/cbc_enc_256_x8_sb.asm)
|
||||
+ isal_crypto_plugin.cc)
|
||||
|
||||
if(HAVE_NASM_X64)
|
||||
add_dependencies(crypto_plugins ceph_crypto_isal)
|
||||
endif(HAVE_NASM_X64)
|
||||
|
||||
add_library(ceph_crypto_isal SHARED ${isal_crypto_plugin_srcs})
|
||||
-target_include_directories(ceph_crypto_isal PRIVATE ${isal_dir}/include)
|
||||
|
||||
+if(HAVE_NASM_X64)
|
||||
+find_package(PkgConfig)
|
||||
+pkg_check_modules(ISALCRYPTO REQUIRED IMPORTED_TARGET libisal_crypto)
|
||||
+target_link_libraries(ceph_crypto_isal PkgConfig::ISALCRYPTO)
|
||||
+endif(HAVE_NASM_X64)
|
||||
target_link_libraries(ceph_crypto_isal PRIVATE spawn)
|
||||
|
||||
set_target_properties(ceph_crypto_isal PROPERTIES
|
15
testing/ceph19/10-musl-fixes.patch
Normal file
15
testing/ceph19/10-musl-fixes.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
fix for musl
|
||||
|
||||
diff -Nurp a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc
|
||||
--- a/src/tools/rbd_nbd/rbd-nbd.cc 2020-11-21 08:06:35.834423310 +0000
|
||||
+++ b/src/tools/rbd_nbd/rbd-nbd.cc 2020-11-21 08:21:12.067978842 +0000
|
||||
@@ -576,7 +576,8 @@ private:
|
||||
for (unsigned i = 0; i < cmdline.size(); i++) {
|
||||
char *arg = &cmdline[i];
|
||||
if (i == 0) {
|
||||
- if (strcmp(basename(arg) , "rbd-nbd") != 0) {
|
||||
+ const char *fname = strrchr(arg, '/');
|
||||
+ if (strcmp(fname ? fname+1 : arg, "rbd-nbd") != 0) {
|
||||
return -EINVAL;
|
||||
}
|
||||
} else {
|
74
testing/ceph19/10-seastar.patch
Normal file
74
testing/ceph19/10-seastar.patch
Normal file
|
@ -0,0 +1,74 @@
|
|||
diff -Nurp a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
--- a/src/CMakeLists.txt 2024-07-27 20:23:55.379291046 +0000
|
||||
+++ b/src/CMakeLists.txt 2024-07-27 20:25:46.359819714 +0000
|
||||
@@ -367,41 +367,6 @@ set_target_properties(Boost::MPL PROPERT
|
||||
"BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS;BOOST_MPL_LIMIT_LIST_SIZE=30")
|
||||
|
||||
if(WITH_SEASTAR)
|
||||
- find_package(c-ares 1.13.0 QUIET)
|
||||
- if(NOT c-ares_FOUND)
|
||||
- message(STATUS "Could not find c-ares, will build it")
|
||||
- include(Buildc-ares)
|
||||
- build_c_ares()
|
||||
- endif()
|
||||
- macro(find_package name)
|
||||
- if(NOT TARGET ${name})
|
||||
- _find_package(${ARGV})
|
||||
- endif()
|
||||
- endmacro ()
|
||||
- set(Seastar_API_LEVEL "6" CACHE STRING "" FORCE)
|
||||
- set(Seastar_HWLOC OFF CACHE BOOL "" FORCE)
|
||||
- set(Seastar_STD_OPTIONAL_VARIANT_STRINGVIEW ON CACHE BOOL "" FORCE)
|
||||
- if(Seastar_DPDK)
|
||||
- find_package(dpdk QUIET)
|
||||
- if(NOT DPDK_FOUND)
|
||||
- include(BuildDPDK)
|
||||
- build_dpdk(${CMAKE_BINARY_DIR}/src/dpdk)
|
||||
- endif()
|
||||
- endif()
|
||||
- list(APPEND Seastar_CXX_FLAGS
|
||||
- "-DSEASTAR_NO_EXCEPTION_HACK"
|
||||
- "-Wno-error"
|
||||
- "-Wno-sign-compare"
|
||||
- "-Wno-attributes"
|
||||
- "-Wno-pessimizing-move"
|
||||
- "-Wno-address-of-packed-member"
|
||||
- "-Wno-non-virtual-dtor")
|
||||
- set(Seastar_CXX_FLAGS "${Seastar_CXX_FLAGS}" CACHE STRING "" FORCE)
|
||||
- add_subdirectory(seastar)
|
||||
- # create the directory so cmake won't complain when looking at the imported
|
||||
- # target: Seastar exports this directory created at build-time
|
||||
- file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/seastar/gen/include")
|
||||
- file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/seastar/gen/src")
|
||||
add_subdirectory(crimson)
|
||||
endif()
|
||||
|
||||
diff -Nurp a/src/crimson/CMakeLists.txt b/src/crimson/CMakeLists.txt
|
||||
--- a/src/crimson/CMakeLists.txt 2024-07-27 20:23:55.380291060 +0000
|
||||
+++ b/src/crimson/CMakeLists.txt 2024-07-27 20:24:14.390552917 +0000
|
||||
@@ -6,10 +6,11 @@ if((CMAKE_CXX_COMPILER_ID STREQUAL GNU A
|
||||
list(APPEND crimson_cflag_definitions
|
||||
"BOOST_ASIO_DISABLE_CONCEPTS")
|
||||
endif()
|
||||
+pkg_check_modules(SEASTAR IMPORTED_TARGET seastar)
|
||||
set_target_properties(crimson::cflags PROPERTIES
|
||||
INTERFACE_COMPILE_DEFINITIONS "${crimson_cflag_definitions}"
|
||||
INTERFACE_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:CXX>:-Wno-non-virtual-dtor>
|
||||
- INTERFACE_LINK_LIBRARIES Seastar::seastar)
|
||||
+ INTERFACE_LINK_LIBRARIES PkgConfig::SEASTAR)
|
||||
|
||||
set(crimson_common_srcs
|
||||
common/assert.cc
|
||||
diff -Nurp a/src/crimson/os/alienstore/CMakeLists.txt b/src/crimson/os/alienstore/CMakeLists.txt
|
||||
--- a/src/crimson/os/alienstore/CMakeLists.txt 2024-07-27 20:23:55.382291087 +0000
|
||||
+++ b/src/crimson/os/alienstore/CMakeLists.txt 2024-07-27 20:24:14.390552917 +0000
|
||||
@@ -2,8 +2,7 @@ include_directories(SYSTEM "${CMAKE_SOUR
|
||||
|
||||
add_library(alien::cflags INTERFACE IMPORTED)
|
||||
set_target_properties(alien::cflags PROPERTIES
|
||||
- INTERFACE_COMPILE_DEFINITIONS "WITH_SEASTAR;WITH_ALIEN"
|
||||
- INTERFACE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:Seastar::seastar,INTERFACE_INCLUDE_DIRECTORIES>)
|
||||
+ INTERFACE_COMPILE_DEFINITIONS "WITH_SEASTAR;WITH_ALIEN")
|
||||
|
||||
set(crimson_alien_common_srcs
|
||||
${PROJECT_SOURCE_DIR}/src/common/admin_socket.cc
|
70
testing/ceph19/10-xxhash.patch
Normal file
70
testing/ceph19/10-xxhash.patch
Normal file
|
@ -0,0 +1,70 @@
|
|||
diff -Nurp a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
--- a/src/CMakeLists.txt 2024-07-27 20:20:32.740499875 +0000
|
||||
+++ b/src/CMakeLists.txt 2024-07-27 20:20:52.206768005 +0000
|
||||
@@ -414,7 +414,6 @@ set(libcommon_files
|
||||
${CMAKE_BINARY_DIR}/src/include/ceph_ver.h
|
||||
ceph_ver.c
|
||||
global/global_context.cc
|
||||
- xxHash/xxhash.c
|
||||
common/error_code.cc
|
||||
common/tracer.cc
|
||||
log/Log.cc
|
||||
@@ -449,6 +448,8 @@ add_library(common-objs OBJECT ${libcomm
|
||||
target_compile_definitions(common-objs PRIVATE
|
||||
$<TARGET_PROPERTY:${FMT_LIB},INTERFACE_COMPILE_DEFINITIONS>)
|
||||
add_dependencies(common-objs legacy-option-headers)
|
||||
+pkg_check_modules(XXHASH IMPORTED_TARGET libxxhash)
|
||||
+target_link_libraries(common-objs PkgConfig::XXHASH)
|
||||
|
||||
if(WITH_JAEGER)
|
||||
add_dependencies(common-objs jaeger_base)
|
||||
diff -Nurp a/src/common/Checksummer.h b/src/common/Checksummer.h
|
||||
--- a/src/common/Checksummer.h 2024-07-27 20:20:32.742499903 +0000
|
||||
+++ b/src/common/Checksummer.h 2024-07-27 20:20:52.206768005 +0000
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "include/byteorder.h"
|
||||
#include "include/ceph_assert.h"
|
||||
|
||||
-#include "xxHash/xxhash.h"
|
||||
+#include "xxhash.h"
|
||||
|
||||
class Checksummer {
|
||||
public:
|
||||
diff -Nurp a/src/crimson/CMakeLists.txt b/src/crimson/CMakeLists.txt
|
||||
--- a/src/crimson/CMakeLists.txt 2024-07-27 20:20:32.746499958 +0000
|
||||
+++ b/src/crimson/CMakeLists.txt 2024-07-27 20:21:52.466598032 +0000
|
||||
@@ -122,7 +122,6 @@ add_library(crimson-common STATIC
|
||||
${PROJECT_SOURCE_DIR}/src/osd/OSDMap.cc
|
||||
${PROJECT_SOURCE_DIR}/src/osd/PGPeeringEvent.cc
|
||||
${PROJECT_SOURCE_DIR}/src/common/scrub_types.cc
|
||||
- ${PROJECT_SOURCE_DIR}/src/xxHash/xxhash.c
|
||||
${crimson_common_srcs}
|
||||
$<TARGET_OBJECTS:common_mountcephfs_objs>
|
||||
$<TARGET_OBJECTS:common-options-objs>)
|
||||
@@ -146,10 +145,12 @@ if(NOT WITH_SYSTEM_BOOST)
|
||||
list(APPEND crimson_common_deps ${ZLIB_LIBRARIES})
|
||||
endif()
|
||||
|
||||
+pkg_check_modules(XXHASH IMPORTED_TARGET libxxhash)
|
||||
target_link_libraries(crimson-common
|
||||
PUBLIC
|
||||
${crimson_common_public_deps}
|
||||
PRIVATE
|
||||
+ PkgConfig::XXHASH
|
||||
crc32 arch
|
||||
${crimson_common_deps}
|
||||
OpenSSL::Crypto)
|
||||
diff -Nurp a/src/os/CMakeLists.txt b/src/os/CMakeLists.txt
|
||||
--- a/src/os/CMakeLists.txt 2024-07-27 20:20:32.744499930 +0000
|
||||
+++ b/src/os/CMakeLists.txt 2024-07-27 20:20:52.207768019 +0000
|
||||
@@ -46,8 +46,9 @@ if(HAVE_LIBZFS)
|
||||
list(APPEND libos_srcs $<TARGET_OBJECTS:os_zfs_objs>)
|
||||
endif()
|
||||
|
||||
+pkg_check_modules(XXHASH IMPORTED_TARGET libxxhash)
|
||||
add_library(os STATIC ${libos_srcs})
|
||||
-target_link_libraries(os blk)
|
||||
+target_link_libraries(os blk PkgConfig::XXHASH)
|
||||
|
||||
target_link_libraries(os heap_profiler kv)
|
||||
|
34
testing/ceph19/11-dump_time_header_impl.patch
Normal file
34
testing/ceph19/11-dump_time_header_impl.patch
Normal file
|
@ -0,0 +1,34 @@
|
|||
Patch by Robin Mueller
|
||||
|
||||
The strftime method of the libmusl writes 'UTC' instead of 'GMT' when
|
||||
the character Z is used in the format pattern, and it looks like the
|
||||
S3 clients don't like 'UTC' in the date strings.
|
||||
|
||||
This patch replaces 'UTC' with 'GMT' at the relevant location.
|
||||
|
||||
--- a/src/rgw/rgw_rest.cc 2021-07-08 16:03:56.000000000 +0200
|
||||
+++ b/src/rgw/rgw_rest.cc 2021-08-19 09:48:30.339492024 +0200
|
||||
@@ -436,8 +436,21 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
- return strftime(timestr, sizeof(timestr),
|
||||
- "%a, %d %b %Y %H:%M:%S %Z", tmp);
|
||||
+ size_t len = strftime(timestr, sizeof(timestr),
|
||||
+ "%a, %d %b %Y %H:%M:%S %Z", tmp);
|
||||
+
|
||||
+ int position = 0;
|
||||
+ while (timestr[position] != 'U' && len - position > 3)
|
||||
+ position++;
|
||||
+
|
||||
+ if (len - position == 3) {
|
||||
+ char substr[4];
|
||||
+ memcpy(substr, ×tr[position], 4);
|
||||
+
|
||||
+ if (strcmp(substr, "UTC") == 0)
|
||||
+ memcpy(×tr[position], "GMT", 3);
|
||||
+ }
|
||||
+ return len;
|
||||
}
|
||||
|
||||
void dump_time_header(struct req_state *s, const char *name, real_time t)
|
93
testing/ceph19/11-lfs.patch
Normal file
93
testing/ceph19/11-lfs.patch
Normal file
|
@ -0,0 +1,93 @@
|
|||
--- a/src/common/buffer.cc
|
||||
+++ b/src/common/buffer.cc
|
||||
@@ -1680,7 +1680,7 @@
|
||||
if (len > st.st_size - off) {
|
||||
len = st.st_size - off;
|
||||
}
|
||||
- ssize_t ret = lseek64(fd, off, SEEK_SET);
|
||||
+ ssize_t ret = lseek(fd, off, SEEK_SET);
|
||||
if (ret != (ssize_t)off) {
|
||||
return -errno;
|
||||
}
|
||||
@@ -1804,7 +1804,7 @@
|
||||
#ifdef HAVE_PWRITEV
|
||||
r = ::pwritev(fd, vec, veclen, offset);
|
||||
#else
|
||||
- r = ::lseek64(fd, offset, SEEK_SET);
|
||||
+ r = ::lseek(fd, offset, SEEK_SET);
|
||||
if (r != offset) {
|
||||
return -errno;
|
||||
}
|
||||
@@ -1969,7 +1969,7 @@
|
||||
|
||||
int buffer::list::write_fd(int fd, uint64_t offset) const
|
||||
{
|
||||
- int r = ::lseek64(fd, offset, SEEK_SET);
|
||||
+ int r = ::lseek(fd, offset, SEEK_SET);
|
||||
if (r != offset)
|
||||
return -errno;
|
||||
|
||||
--- a/src/os/fs/FS.cc
|
||||
+++ b/src/os/fs/FS.cc
|
||||
@@ -170,7 +170,7 @@
|
||||
// fall back to writing zeros
|
||||
ceph::bufferlist bl;
|
||||
bl.append_zero(length);
|
||||
- r = ::lseek64(fd, offset, SEEK_SET);
|
||||
+ r = ::lseek(fd, offset, SEEK_SET);
|
||||
if (r < 0) {
|
||||
r = -errno;
|
||||
goto out;
|
||||
--- a/src/tools/cephfs/Dumper.cc
|
||||
+++ b/src/tools/cephfs/Dumper.cc
|
||||
@@ -137,8 +137,8 @@
|
||||
}
|
||||
|
||||
// write the data
|
||||
- off64_t seeked = ::lseek64(fd, start, SEEK_SET);
|
||||
- if (seeked == (off64_t)-1) {
|
||||
+ off_t seeked = ::lseek(fd, start, SEEK_SET);
|
||||
+ if (seeked == (off_t)-1) {
|
||||
r = errno;
|
||||
derr << "Error " << r << " (" << cpp_strerror(r) << ") seeking to 0x" << std::hex << start << std::dec << dendl;
|
||||
::close(fd);
|
||||
@@ -402,7 +402,7 @@
|
||||
while (left > 0) {
|
||||
// Read
|
||||
bufferlist j;
|
||||
- lseek64(fd, pos, SEEK_SET);
|
||||
+ lseek(fd, pos, SEEK_SET);
|
||||
uint64_t l = std::min<uint64_t>(left, 1024*1024);
|
||||
j.read_fd(fd, l);
|
||||
|
||||
--- a/src/tools/rbd/action/Export.cc
|
||||
+++ b/src/tools/rbd/action/Export.cc
|
||||
@@ -360,7 +360,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- uint64_t chkret = lseek64(m_fd, m_dest_offset, SEEK_SET);
|
||||
+ uint64_t chkret = lseek(m_fd, m_dest_offset, SEEK_SET);
|
||||
if (chkret != m_dest_offset) {
|
||||
cerr << "rbd: error seeking destination image to offset "
|
||||
<< m_dest_offset << std::endl;
|
||||
@@ -545,7 +545,7 @@
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
- uint64_t chkret = lseek64(fd, file_size, SEEK_SET);
|
||||
+ uint64_t chkret = lseek(fd, file_size, SEEK_SET);
|
||||
if (chkret != file_size)
|
||||
r = errno;
|
||||
}
|
||||
--- a/src/tools/rbd/action/Import.cc
|
||||
+++ b/src/tools/rbd/action/Import.cc
|
||||
@@ -339,7 +339,7 @@
|
||||
}
|
||||
} else {
|
||||
// lseek to skip this tag
|
||||
- off64_t offs = lseek64(fd, length, SEEK_CUR);
|
||||
+ off_t offs = lseek(fd, length, SEEK_CUR);
|
||||
if (offs < 0) {
|
||||
return -errno;
|
||||
}
|
53
testing/ceph19/11-parse_rfc1123_alt.patch
Normal file
53
testing/ceph19/11-parse_rfc1123_alt.patch
Normal file
|
@ -0,0 +1,53 @@
|
|||
Patch by Robin Mueller
|
||||
|
||||
libmusl doesn't support the z character in the format pattern for strptime this
|
||||
is a special functionality of glibc.
|
||||
|
||||
patch is slightly adapted version of glibc code:
|
||||
https://elixir.bootlin.com/glibc/latest/source/time/strptime_l.c#L776
|
||||
|
||||
--- a/src/rgw/rgw_common.cc 2021-07-08 16:03:56.000000000 +0200
|
||||
+++ b/src/rgw/rgw_common.cc 2021-08-18 13:08:22.938903459 +0200
|
||||
@@ -531,7 +531,41 @@
|
||||
{
|
||||
// FIPS zeroization audit 20191115: this memset is not security related.
|
||||
memset(t, 0, sizeof(*t));
|
||||
- return check_str_end(strptime(s, "%a, %d %b %Y %H:%M:%S %z", t));
|
||||
+ s = strptime(s, "%a, %d %b %Y %H:%M:%S", t);
|
||||
+ if (s) {
|
||||
+ s++;
|
||||
+ int val;
|
||||
+ val = 0;
|
||||
+ while (isspace(*s))
|
||||
+ ++s;
|
||||
+ if (*s == 'Z') {
|
||||
+ ++s;
|
||||
+ t->tm_gmtoff = 0;
|
||||
+ } else {
|
||||
+ if (*s != '+' && *s != '-')
|
||||
+ return false;
|
||||
+ bool neg = *s++ == '-';
|
||||
+ int n = 0;
|
||||
+ while (n < 4 && *s >= '0' && *s <= '9') {
|
||||
+ val = val * 10 + *s++ - '0';
|
||||
+ ++n;
|
||||
+ if (*s == ':' && n == 2 && isdigit (*(s + 1)))
|
||||
+ ++s;
|
||||
+ }
|
||||
+ if (n == 2)
|
||||
+ val *= 100;
|
||||
+ else if (n != 4)
|
||||
+ /* Only two or four digits recognized. */
|
||||
+ return false;
|
||||
+ else if (val % 100 >= 60)
|
||||
+ /* Minutes valid range is 0 through 59. */
|
||||
+ return false;
|
||||
+ t->tm_gmtoff = (val / 100) * 3600 + (val % 100) * 60;
|
||||
+ if (neg)
|
||||
+ t->tm_gmtoff = -t->tm_gmtoff;
|
||||
+ }
|
||||
+ }
|
||||
+ return check_str_end(s);
|
||||
}
|
||||
|
||||
bool parse_rfc2616(const char *s, struct tm *t)
|
21
testing/ceph19/21-yarn.patch
Normal file
21
testing/ceph19/21-yarn.patch
Normal file
|
@ -0,0 +1,21 @@
|
|||
diff -Nurp a/src/pybind/mgr/dashboard/frontend/CMakeLists.txt b/src/pybind/mgr/dashboard/frontend/CMakeLists.txt
|
||||
--- a/src/pybind/mgr/dashboard/frontend/CMakeLists.txt 2023-10-24 11:56:46.686189574 +0000
|
||||
+++ b/src/pybind/mgr/dashboard/frontend/CMakeLists.txt 2023-10-24 12:01:01.169464299 +0000
|
||||
@@ -83,7 +83,7 @@ endif(WITH_SYSTEM_NPM)
|
||||
|
||||
add_npm_command(
|
||||
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/node_modules"
|
||||
- COMMAND CYPRESS_CACHE_FOLDER=${CMAKE_SOURCE_DIR}/build/src/pybind/mgr/dashboard/cypress NG_CLI_ANALYTICS=false npm ci -f ${mgr-dashboard-userconfig}
|
||||
+ COMMAND CYPRESS_CACHE_FOLDER=${CMAKE_SOURCE_DIR}/build/src/pybind/mgr/dashboard/cypress NG_CLI_ANALYTICS=false yarn install --network-timeout 600000 --frozen-lockfile ${mgr-dashboard-userconfig}
|
||||
DEPENDS package.json
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "dashboard frontend dependencies are being installed"
|
||||
@@ -116,7 +116,7 @@ endif()
|
||||
|
||||
add_npm_command(
|
||||
OUTPUT "${frontend_dist_dir}"
|
||||
- COMMAND DASHBOARD_FRONTEND_LANGS="${DASHBOARD_FRONTEND_LANGS}" npm run build:localize -- ${npm_args}
|
||||
+ COMMAND DASHBOARD_FRONTEND_LANGS="${DASHBOARD_FRONTEND_LANGS}" yarn run build:localize ${npm_args}
|
||||
DEPENDS ${frontend_src} node_modules
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "dashboard frontend is being created"
|
17
testing/ceph19/35-fix_ErasureCodeShec.patch
Normal file
17
testing/ceph19/35-fix_ErasureCodeShec.patch
Normal file
|
@ -0,0 +1,17 @@
|
|||
patch by Vladimir Bashkirtsev
|
||||
|
||||
diff -uNr ceph-15.2.4/src/erasure-code/shec/ErasureCodeShec.cc ceph-15.2.4-fix_ErasureCodeShec/src/erasure-code/shec/ErasureCodeShec.cc
|
||||
--- ceph-15.2.4/src/erasure-code/shec/ErasureCodeShec.cc 2020-07-01 01:10:51.000000000 +0930
|
||||
+++ ceph-15.2.4-fix_ErasureCodeShec/src/erasure-code/shec/ErasureCodeShec.cc 2020-11-14 00:46:20.029488684 +1030
|
||||
@@ -197,7 +197,10 @@
|
||||
}
|
||||
unsigned int k = get_data_chunk_count();
|
||||
unsigned int m = get_chunk_count() - k;
|
||||
- unsigned blocksize = (*chunks.begin()).second.length();
|
||||
+ unsigned blocksize = 0;
|
||||
+ if (chunks.size() > 0) {
|
||||
+ blocksize = (*chunks.begin()).second.length();
|
||||
+ }
|
||||
for (unsigned int i = 0; i < k + m; i++) {
|
||||
if (chunks.find(i) == chunks.end()) {
|
||||
bufferlist tmp;
|
26
testing/ceph19/47-bcrypt.patch
Normal file
26
testing/ceph19/47-bcrypt.patch
Normal file
|
@ -0,0 +1,26 @@
|
|||
https://gitlab.alpinelinux.org/alpine/aports/-/issues/15620
|
||||
|
||||
diff -Nurp a/src/pybind/mgr/dashboard/services/access_control.py b/src/pybind/mgr/dashboard/services/access_control.py
|
||||
--- a/src/pybind/mgr/dashboard/services/access_control.py 2024-01-03 00:12:46.140405728 +0000
|
||||
+++ b/src/pybind/mgr/dashboard/services/access_control.py 2024-01-03 00:14:22.825611708 +0000
|
||||
@@ -12,7 +12,7 @@ from datetime import datetime, timedelta
|
||||
from string import ascii_lowercase, ascii_uppercase, digits, punctuation
|
||||
from typing import List, Optional, Sequence
|
||||
|
||||
-import bcrypt
|
||||
+import bcrypt_ceph as bcrypt
|
||||
from mgr_module import CLICheckNonemptyFileInput, CLIReadCommand, CLIWriteCommand
|
||||
from mgr_util import password_hash
|
||||
|
||||
diff -Nurp a/src/pybind/mgr/mgr_util.py b/src/pybind/mgr/mgr_util.py
|
||||
--- a/src/pybind/mgr/mgr_util.py 2024-01-03 00:11:59.903829031 +0000
|
||||
+++ b/src/pybind/mgr/mgr_util.py 2024-01-03 00:13:56.113278518 +0000
|
||||
@@ -3,7 +3,7 @@ import os
|
||||
if 'UNITTEST' in os.environ:
|
||||
import tests
|
||||
|
||||
-import bcrypt
|
||||
+import bcrypt_ceph as bcrypt
|
||||
import cephfs
|
||||
import contextlib
|
||||
import datetime
|
761
testing/ceph19/APKBUILD
Normal file
761
testing/ceph19/APKBUILD
Normal file
|
@ -0,0 +1,761 @@
|
|||
# Contributor: John Coyle <dx9err@gmail.com>
|
||||
# Contributor: Iggy Jackson <iggy@kws1.com>
|
||||
# Contributor: Duncan Bellamy <dunk@denkimushi.com>
|
||||
# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
|
||||
_pkgname=ceph
|
||||
pkgver=19.1.1
|
||||
pkgrel=0
|
||||
_majorver=${pkgver%%.*}
|
||||
pkgname=$_pkgname$_majorver
|
||||
pkgdesc="Ceph is a distributed object store and file system, version $_majorver"
|
||||
pkgusers="ceph"
|
||||
pkggroups="ceph"
|
||||
url="https://ceph.io/en/"
|
||||
# 32-bit: needs more patching specific to 32bit builds
|
||||
arch="all !armhf !armv7 !x86"
|
||||
# https://github.com/ceph/ceph/blob/master/COPYING
|
||||
license="LGPL-2.1-only AND LGPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-only AND CC-BY-SA-1.0 AND BSL-1.0 AND GPL-2.0-or-later WITH Autoconf-exception-2.0 AND BSD-3-Clause AND MIT AND custom"
|
||||
depends="$pkgname-mds=$pkgver-r$pkgrel $pkgname-mgr=$pkgver-r$pkgrel $pkgname-mon=$pkgver-r$pkgrel $pkgname-osd=$pkgver-r$pkgrel"
|
||||
builddir="$srcdir/ceph-$pkgver"
|
||||
_lua=5.4
|
||||
_base_deps="
|
||||
cryptsetup
|
||||
e2fsprogs
|
||||
logrotate
|
||||
parted
|
||||
psmisc
|
||||
xfsprogs
|
||||
"
|
||||
_osd_daemon_deps="fuse snappy lz4-libs"
|
||||
_osd_tools_deps="lz4-libs"
|
||||
_ceph_volume_deps="$pkgname-common=$pkgver-r$pkgrel $pkgname-osd-tools=$pkgver-r$pkgrel lvm2 py3-$pkgname-common=$pkgver-r$pkgrel"
|
||||
_ceph_test_deps="
|
||||
gtest-dev
|
||||
py3-coverage
|
||||
py3-flake8
|
||||
py3-nodeenv
|
||||
py3-pytest
|
||||
py3-tox
|
||||
py3-yaml
|
||||
xmlstarlet
|
||||
"
|
||||
_dashboard_deps="
|
||||
py3-bcrypt-ceph
|
||||
py3-cherrypy
|
||||
py3-more-itertools
|
||||
py3-openssl
|
||||
py3-prettytable
|
||||
py3-requests
|
||||
py3-routes
|
||||
py3-yaml
|
||||
"
|
||||
_mgr_modules_deps="
|
||||
py3-bcrypt-ceph
|
||||
py3-cherrypy
|
||||
py3-dateutil
|
||||
py3-natsort
|
||||
py3-openssl
|
||||
py3-pecan
|
||||
py3-requests
|
||||
py3-werkzeug
|
||||
"
|
||||
_arrow_deps="apache-arrow-dev c-ares-dev re2-dev"
|
||||
makedepends="
|
||||
acl-dev
|
||||
argp-standalone
|
||||
bc
|
||||
boost-dev
|
||||
btrfs-progs
|
||||
bzip2-dev
|
||||
cmake
|
||||
coreutils
|
||||
cryptsetup-dev
|
||||
cunit-dev
|
||||
curl-dev
|
||||
cython
|
||||
diffutils
|
||||
doxygen
|
||||
eudev-dev
|
||||
expat-dev
|
||||
fcgi-dev
|
||||
flex
|
||||
fmt-dev
|
||||
fuse-dev
|
||||
git
|
||||
graphviz-dev
|
||||
gperf
|
||||
isa-l-dev
|
||||
jq
|
||||
keyutils-dev
|
||||
libaio-dev
|
||||
libatomic_ops-dev
|
||||
libcap-dev
|
||||
libcap-ng-dev
|
||||
libedit-dev
|
||||
librdkafka-dev
|
||||
libnl3-dev
|
||||
libtirpc-dev
|
||||
libtool
|
||||
liburing-dev
|
||||
libxml2-dev
|
||||
linux-headers
|
||||
lmdb-dev
|
||||
lua$_lua-dev
|
||||
lvm2-dev
|
||||
lz4-dev
|
||||
nasm
|
||||
nodejs
|
||||
npm
|
||||
nss-dev
|
||||
oath-toolkit-dev
|
||||
openldap-dev
|
||||
openssl-dev>3
|
||||
procps
|
||||
python3-dev
|
||||
py3-setuptools
|
||||
py3-sphinx
|
||||
rabbitmq-c-dev
|
||||
readline-dev
|
||||
rocksdb7-dev
|
||||
rpcgen
|
||||
samurai
|
||||
snappy-dev
|
||||
sqlite-dev
|
||||
userspace-rcu-dev
|
||||
util-linux-dev
|
||||
xfsprogs-dev
|
||||
xxhash-dev
|
||||
yarn
|
||||
zstd-dev
|
||||
$_dashboard_deps
|
||||
$_mgr_modules_deps
|
||||
$_base_deps
|
||||
$_osd_daemon_deps
|
||||
$_osd_tools_deps
|
||||
$_ceph_volume_deps
|
||||
$_ceph_test_deps
|
||||
$_arrow_deps
|
||||
"
|
||||
case "$CARCH" in
|
||||
aarch64|x86_64) makedepends="$makedepends isa-l_crypto-dev" ;;
|
||||
esac
|
||||
source="https://download.ceph.com/tarballs/ceph-$pkgver.tar.gz
|
||||
ceph.confd
|
||||
ceph.initd
|
||||
10-isal_crypto.patch
|
||||
10-isal.patch
|
||||
10-musl-fixes.patch
|
||||
10-xxhash.patch
|
||||
11-dump_time_header_impl.patch
|
||||
11-lfs.patch
|
||||
11-parse_rfc1123_alt.patch
|
||||
21-yarn.patch
|
||||
35-fix_ErasureCodeShec.patch
|
||||
47-bcrypt.patch
|
||||
gcc13.patch
|
||||
gcc14.patch
|
||||
boost-url.patch
|
||||
ppc64le.patch
|
||||
"
|
||||
# to prevent things from installing wrong ceph libs, since they have the same SOMAJOR
|
||||
sonameprefix="ceph$_majorver:so:"
|
||||
options="!check" # todo
|
||||
subpackages="
|
||||
$pkgname-doc
|
||||
$pkgname-base
|
||||
$pkgname-common
|
||||
$pkgname-mds
|
||||
$pkgname-mgr-diskprediction-local:mgr_diskpredicton_local:noarch
|
||||
$pkgname-mgr-modules-core:mgr_modules_core:noarch
|
||||
$pkgname-mgr-rook:mgr_rook:noarch
|
||||
$pkgname-mgr-k8events:mgr_k8events:noarch
|
||||
$pkgname-mgr
|
||||
$pkgname-mon::noarch
|
||||
$pkgname-mon-daemon:mon_daemon
|
||||
$pkgname-mon-tools:mon_tools
|
||||
$pkgname-mount:ceph_mount
|
||||
$pkgname-fuse:ceph_fuse
|
||||
$pkgname-openrc
|
||||
$pkgname-osd::noarch
|
||||
$pkgname-osd-daemon:osd_daemon
|
||||
$pkgname-osd-tools:osd_tools
|
||||
$pkgname-volume:ceph_volume:noarch
|
||||
$pkgname-radosgw
|
||||
$pkgname-bash-completion:bash_completion:noarch
|
||||
$pkgname-dev
|
||||
$pkgname-user::noarch
|
||||
$pkgname-utils
|
||||
$pkgname-cephadm::noarch
|
||||
cephfs$_majorver-mirror:mirror
|
||||
cephfs$_majorver-shell:shell:noarch
|
||||
cephfs$_majorver-top:top:noarch
|
||||
rbd-fuse$_majorver:rbd_fuse
|
||||
rbd-mirror$_majorver:rbd_mirror
|
||||
rbd-nbd$_majorver:rbd_nbd
|
||||
librbd$_majorver:librbd
|
||||
libcephfs$_majorver:libcephfs
|
||||
libcephsqlite$_majorver:libcephsqlite
|
||||
librados$_majorver:librados
|
||||
py3-rados$_majorver:_py3_rados
|
||||
libradosstriper$_majorver:libradosstriper
|
||||
py3-rbd$_majorver:_py3_rbd
|
||||
py3-cephfs$_majorver:_py3_cephfs
|
||||
py3-$pkgname-common:_py3_ceph_common:noarch
|
||||
"
|
||||
case "$CARCH" in
|
||||
riscv64) ;;
|
||||
*) subpackages="$pkgname-mgr-dashboard:mgr_dashboard:noarch $subpackages" ;;
|
||||
esac
|
||||
|
||||
# Whether this package is the default (latest) ceph version.
|
||||
_default_ceph="no"
|
||||
|
||||
if [ "$_default_ceph" = yes ]; then
|
||||
provides="ceph=$pkgver-r$pkgrel"
|
||||
replaces="ceph"
|
||||
subpackages="$subpackages ceph-dev:_dev"
|
||||
fi
|
||||
|
||||
_ceph_uid=167
|
||||
_ceph_gid=167
|
||||
|
||||
_py3_sitelib() {
|
||||
python3 -c "import site; print(site.getsitepackages()[0])"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
rm -r src/isa-l
|
||||
rm -r src/xxHash
|
||||
}
|
||||
|
||||
build() {
|
||||
export CEPH_BUILD_VIRTUALENV="$builddir"
|
||||
export CFLAGS="${CFLAGS/-fno-plt} -O2 -DNDEBUG"
|
||||
export CXXFLAGS="${CXXFLAGS/-fno-plt} -O2 -DNDEBUG -Wno-deprecated-declarations -fno-permissive"
|
||||
|
||||
case "$CARCH" in
|
||||
riscv64) local _dash="OFF" ;;
|
||||
*) local _dash="ON" ;;
|
||||
esac
|
||||
|
||||
cmake -B build -G Ninja -Wno-dev \
|
||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
|
||||
-DCMAKE_INSTALL_LOCALSTATEDIR=/var \
|
||||
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
|
||||
-DNINJA_MAX_COMPILE_JOBS=$JOBS \
|
||||
-DALLOCATOR=libc \
|
||||
-DENABLE_GIT_VERSION=OFF \
|
||||
-DLUA_LIBRARIES=/usr/lib/lua"$_lua"/liblua.so \
|
||||
-DWITH_BABELTRACE=OFF \
|
||||
-DWITH_JAEGER=OFF \
|
||||
-DWITH_LTTNG=OFF \
|
||||
-DWITH_MANPAGE=ON \
|
||||
-DWITH_MGR_DASHBOARD_FRONTEND="$_dash" \
|
||||
-DWITH_PYTHON3=3 \
|
||||
-DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
|
||||
-DWITH_RADOSGW_SELECT_PARQUET=ON \
|
||||
-DWITH_RADOSGW_POSIX=OFF \
|
||||
-DWITH_RDMA=OFF \
|
||||
-DWITH_REENTRANT_STRSIGNAL=ON \
|
||||
-DWITH_SEASTAR=OFF \
|
||||
-DWITH_SPDK=OFF \
|
||||
-DWITH_SYSTEMD=OFF \
|
||||
-DWITH_CEPHFS_SHELL=ON \
|
||||
-DWITH_SYSTEM_ARROW=ON \
|
||||
-DWITH_SYSTEM_BOOST=ON \
|
||||
-DWITH_SYSTEM_FMT=OFF \
|
||||
-DWITH_SYSTEM_LIBURING=ON \
|
||||
-DWITH_SYSTEM_NPM=ON \
|
||||
-DWITH_SYSTEM_ROCKSDB=ON \
|
||||
-DWITH_SYSTEM_ZSTD=ON \
|
||||
-DWITH_QATLIB=OFF \
|
||||
-DWITH_QATZIP=OFF \
|
||||
-DWITH_TESTS="$(want_check && echo ON || echo OFF)" \
|
||||
-DWITH_THREAD_SAFE_RES_QUERY=ON
|
||||
|
||||
export NODE_OPTIONS="--openssl-legacy-provider"
|
||||
cmake --build build --target common-options-objs
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
|
||||
# remove the upstream init file and put in openrc ones
|
||||
rm -f "$pkgdir"/etc/init.d/ceph
|
||||
install -D -m 755 "$srcdir"/"$_pkgname".initd "$pkgdir"/etc/init.d/ceph
|
||||
install -D -m 644 "$srcdir"/"$_pkgname".confd "$pkgdir"/etc/conf.d/ceph
|
||||
|
||||
# move mount.* binaries to /sbin
|
||||
mkdir -p "$pkgdir"/sbin
|
||||
mv "$pkgdir"/usr/sbin/mount.* "$pkgdir"/sbin
|
||||
|
||||
install -m 644 -D src/etc-rbdmap "$pkgdir"/etc/ceph/rbdmap
|
||||
install -m 644 -D src/logrotate.conf "$pkgdir"/etc/logrotate.d/ceph
|
||||
install -m 644 -D etc/sysctl/90-ceph-osd.conf "$pkgdir"/etc/sysctl.d/90-ceph-osd.conf
|
||||
|
||||
# udev rules
|
||||
install -m 644 -D udev/50-rbd.rules "$pkgdir"/usr/lib/udev/rules.d/50-rbd.rules
|
||||
# sudoers.d
|
||||
install -m 600 -D sudoers.d/ceph-smartctl "$pkgdir"/etc/sudoers.d/ceph-smartctl
|
||||
|
||||
# delete systemd related stuff
|
||||
rm -f "$pkgdir"/usr/sbin/ceph-volume-systemd
|
||||
|
||||
# move docs to docs
|
||||
mkdir -p "$pkgdir"/usr/share/doc/ceph/dashboard
|
||||
mv "$pkgdir"/usr/share/ceph/mgr/dashboard/*.rst "$pkgdir"/usr/share/doc/ceph/dashboard/
|
||||
mv "$pkgdir"/usr/share/ceph/mgr/cephadm/HACKING.rst "$pkgdir"/usr/share/doc/ceph/cephadm-HACKING.rst
|
||||
}
|
||||
|
||||
check() {
|
||||
cd "$builddir"/build
|
||||
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
|
||||
}
|
||||
|
||||
_dev() {
|
||||
mkdir -p "$subpkgdir"
|
||||
depends="$pkgname-dev=$pkgver-r$pkgrel"
|
||||
}
|
||||
|
||||
# This subpackage is a little weird and a side effect of trying to keep
|
||||
# the daemon packages as small as possible. We might be able to roll this into
|
||||
# the base/common package later if we can slim those down or break them up in a
|
||||
# different way
|
||||
user() {
|
||||
pkgdesc="Minimal package to create a user for other ceph packages."
|
||||
depends=""
|
||||
install="$pkgname-user.pre-install"
|
||||
_default_replace_majorversion
|
||||
|
||||
mkdir -p "$subpkgdir"
|
||||
}
|
||||
|
||||
base() {
|
||||
pkgdesc="Base is the package that includes all the files shared amongst ceph servers"
|
||||
depends="$_base_deps
|
||||
$pkgname-user=$pkgver-r$pkgrel
|
||||
$pkgname-common=$pkgver-r$pkgrel
|
||||
librbd$_majorver=$pkgver-r$pkgrel
|
||||
librados$_majorver=$pkgver-r$pkgrel
|
||||
libcephfs$_majorver=$pkgver-r$pkgrel
|
||||
"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-crash \
|
||||
usr/bin/crushtool \
|
||||
usr/bin/*maptool \
|
||||
usr/bin/ceph-kvstore-tool \
|
||||
usr/bin/ceph-run \
|
||||
usr/sbin/ceph-create-keys \
|
||||
usr/libexec/ceph/ceph_common.sh \
|
||||
usr/lib/rados-classes/*.so* \
|
||||
usr/lib/ceph/erasure-code/libec_*.so* \
|
||||
usr/lib/ceph/compressor/libceph_*.so* \
|
||||
usr/lib/ceph/crypto/libceph_*.so* \
|
||||
usr/lib/ceph/extblkdev/*.so* \
|
||||
etc/logrotate.d/ceph
|
||||
for dir in crash crash/posted tmp bootstrap-osd bootstrap-mds \
|
||||
bootstrap-rgw bootstrap-mgr bootstrap-rbd \
|
||||
bootstrap-rbd-mirror; do
|
||||
|
||||
install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/lib/ceph/$dir
|
||||
done
|
||||
}
|
||||
|
||||
common() {
|
||||
pkgdesc="Common utilities to mount and interact with a ceph storage cluster."
|
||||
depends="py3-cephfs$_majorver=$pkgver-r$pkgrel
|
||||
py3-prettytable
|
||||
py3-rados$_majorver=$pkgver-r$pkgrel
|
||||
py3-rbd$_majorver=$pkgver-r$pkgrel
|
||||
"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph \
|
||||
usr/bin/ceph-authtool \
|
||||
usr/bin/ceph-conf \
|
||||
usr/bin/ceph-rbdnamer \
|
||||
usr/bin/rados \
|
||||
usr/bin/rbd \
|
||||
usr/bin/rbdmap \
|
||||
usr/share/ceph/*.ceph.com* \
|
||||
etc/ceph/rbdmap
|
||||
|
||||
amove "$(_py3_sitelib)"/ceph_argparse.py* "$(_py3_sitelib)"/ceph_daemon.py*
|
||||
|
||||
amove usr/lib/udev/rules.d/50-rbd.rules
|
||||
install -m 3770 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/log/ceph
|
||||
install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/lib/ceph
|
||||
}
|
||||
|
||||
mds() {
|
||||
pkgdesc="Metadata server daemon for the Ceph distributed file system."
|
||||
depends="$pkgname-base=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-mds
|
||||
install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/lib/ceph/mds
|
||||
}
|
||||
|
||||
mon() {
|
||||
pkgdesc="Cluster monitor daemon virtual package for the Ceph distributed file system."
|
||||
depends="$pkgname-base=$pkgver-r$pkgrel
|
||||
$pkgname-mon-daemon=$pkgver-r$pkgrel
|
||||
$pkgname-mon-tools=$pkgver-r$pkgrel
|
||||
"
|
||||
_default_replace_majorversion
|
||||
|
||||
mkdir -p "$subpkgdir"
|
||||
}
|
||||
|
||||
mon_daemon() {
|
||||
pkgdesc="Cluster monitor daemon for the Ceph distributed file system."
|
||||
depends="$pkgname-user=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-mon
|
||||
install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/lib/ceph/mon
|
||||
}
|
||||
|
||||
mon_tools() {
|
||||
pkgdesc="Cluster monitor tools for the Ceph distributed file system."
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-monstore-tool
|
||||
install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/lib/ceph/mon
|
||||
}
|
||||
|
||||
ceph_fuse() {
|
||||
pkgdesc="FUSE based client for Ceph distributed network file system."
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-fuse sbin/mount.fuse.ceph
|
||||
}
|
||||
|
||||
ceph_mount() {
|
||||
pkgdesc="CephFS mount tools"
|
||||
depends="librados$_majorver=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove sbin/mount.ceph
|
||||
}
|
||||
|
||||
rbd_fuse() {
|
||||
pkgdesc="FUSE based client to map Ceph rbd images to files."
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/rbd-fuse
|
||||
}
|
||||
|
||||
rbd_mirror() {
|
||||
pkgdesc="Daemon for mirroring RBD images between Ceph clusters."
|
||||
depends="$pkgname-common=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/rbd-mirror
|
||||
}
|
||||
|
||||
rbd_nbd() {
|
||||
pkgdesc="NBD based client to map Ceph rbd images to local device."
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/rbd-nbd
|
||||
}
|
||||
|
||||
radosgw() {
|
||||
pkgdesc="Rados REST gateway which implements Amazon's S3 and OpenStack's Swift APIs."
|
||||
depends="$pkgname-common=$pkgver-r$pkgrel oath-toolkit-liboath"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/radosgw*
|
||||
amove usr/bin/rgw-*
|
||||
mkdir -p "$subpkgdir"/var/lib/ceph/radosgw
|
||||
}
|
||||
|
||||
osd() {
|
||||
pkgdesc="Object storage daemon virtual package for the Ceph distributed file system."
|
||||
depends="$pkgname-osd-daemon=$pkgver-r$pkgrel
|
||||
$pkgname-osd-tools=$pkgver-r$pkgrel
|
||||
$pkgname-volume=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
mkdir -p "$subpkgdir"
|
||||
}
|
||||
|
||||
osd_daemon() {
|
||||
pkgdesc="Object storage daemon for the Ceph distributed file system."
|
||||
depends="$_osd_daemon_deps $pkgname-user=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-osd \
|
||||
usr/libexec/ceph/ceph-osd-prestart.sh \
|
||||
etc/sudoers.d/ceph-smartctl \
|
||||
etc/sysctl.d/90-ceph-osd.conf
|
||||
install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/lib/ceph/osd
|
||||
}
|
||||
|
||||
osd_tools() {
|
||||
pkgdesc="Object storage daemon tools for the Ceph distributed file system."
|
||||
depends="$pkgname-base=$pkgver-r$pkgrel $_osd_tools_deps"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-clsinfo usr/bin/ceph-*-tool
|
||||
install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/lib/ceph/osd
|
||||
}
|
||||
|
||||
ceph_volume() {
|
||||
pkgdesc="ceph-volume tool for the Ceph distributed file system."
|
||||
depends="$_ceph_volume_deps"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/sbin/ceph-volume \
|
||||
"$(_py3_sitelib)"/ceph_volume "$(_py3_sitelib)"/ceph_volume-*
|
||||
}
|
||||
|
||||
librados() {
|
||||
pkgdesc="RADOS distributed object store client library"
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/lib/librados.so.* usr/lib/ceph/libceph-common.so.*
|
||||
}
|
||||
|
||||
_py3_rados() {
|
||||
pkgdesc="Python libraries for the RADOS object store"
|
||||
depends=py3-$pkgname-common=$pkgver-r$pkgrel
|
||||
_default_replace_majorversion
|
||||
|
||||
amove "$(_py3_sitelib)"/rados*
|
||||
}
|
||||
|
||||
libradosstriper() {
|
||||
pkgdesc="RADOS striping library"
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/lib/libradosstriper.so.*
|
||||
}
|
||||
|
||||
librbd() {
|
||||
pkgdesc="RADOS block device client library"
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/lib/librbd.so.*
|
||||
}
|
||||
|
||||
_py3_rbd() {
|
||||
pkgdesc="Python libraries for the RADOS block device"
|
||||
depends="py3-rados$_majorver=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove "$(_py3_sitelib)"/rbd*
|
||||
}
|
||||
|
||||
libcephsqlite() {
|
||||
pkgdesc="SQLite Virtual File System (VFS) on top of RADOS"
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/lib/libcephsqlite.so*
|
||||
}
|
||||
|
||||
libcephfs() {
|
||||
pkgdesc="Ceph distributed file system client library"
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/lib/libcephfs.so.*
|
||||
}
|
||||
|
||||
mirror() {
|
||||
pkgdesc="daemon for mirroring CephFS directory snapshots between Ceph clusters"
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
amove /usr/bin/cephfs-mirror
|
||||
}
|
||||
|
||||
shell() {
|
||||
pkgdesc="interactive shell for the Ceph distributed file system"
|
||||
depends="py3-rados$_majorver=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove "$(_py3_sitelib)"/cephfs_shell*
|
||||
amove /usr/bin/cephfs-shell
|
||||
}
|
||||
|
||||
top() {
|
||||
pkgdesc="top like utility to display various filesystem metrics in realtime"
|
||||
depends="py3-rados$_majorver=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove "$(_py3_sitelib)"/cephfs_top*
|
||||
amove /usr/bin/cephfs-top
|
||||
}
|
||||
|
||||
_py3_cephfs() {
|
||||
pkgdesc="Python libraries for Ceph distributed file system"
|
||||
depends="py3-rados$_majorver=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove "$(_py3_sitelib)"/cephfs*
|
||||
}
|
||||
|
||||
_py3_ceph_common() {
|
||||
pkgdesc="Python dependencies for $pkgname distributed file system"
|
||||
depends="py3-setuptools py3-yaml"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove "$(_py3_sitelib)"/ceph-*.egg-info "$(_py3_sitelib)"/ceph
|
||||
}
|
||||
|
||||
utils() {
|
||||
pkgdesc="Ceph utils and recovery tools"
|
||||
depends="$pkgname-common=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-diff-sorted \
|
||||
usr/bin/ceph-post-file \
|
||||
usr/bin/ceph-syn \
|
||||
usr/bin/cephfs-data-scan \
|
||||
usr/bin/ceph-dencoder \
|
||||
usr/lib/ceph/denc \
|
||||
usr/bin/cephfs-journal-tool \
|
||||
usr/bin/cephfs-table-tool \
|
||||
usr/bin/rbd-replay* \
|
||||
usr/bin/crushdiff
|
||||
}
|
||||
|
||||
bash_completion() {
|
||||
pkgdesc="Bash completions for Ceph"
|
||||
depends=
|
||||
_default_replace_majorversion
|
||||
|
||||
install_if="ceph=$pkgver-r$pkgrel bash-completion"
|
||||
amove etc/bash_completion.d/*
|
||||
}
|
||||
|
||||
mgr_dashboard() {
|
||||
pkgdesc="Dashboard module for ceph-mgr"
|
||||
depends="
|
||||
$pkgname-common=$pkgver-r$pkgrel
|
||||
$pkgname-mgr=$pkgver-r$pkgrel
|
||||
$_dashboard_deps
|
||||
"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/share/ceph/mgr/dashboard
|
||||
}
|
||||
|
||||
mgr_diskpredicton_local() {
|
||||
pkgdesc="diskprediction-local module for ceph-mgr"
|
||||
depends="$pkgname-mgr=$pkgver-r$pkgrel
|
||||
py3-numpy
|
||||
py3-scikit-learn
|
||||
py3-scipy
|
||||
"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/share/ceph/mgr/diskprediction_local
|
||||
}
|
||||
|
||||
mgr_modules_core() {
|
||||
pkgdesc="ceph manager modules which are always enabled"
|
||||
depends="
|
||||
$_mgr_modules_deps
|
||||
"
|
||||
_default_replace_majorversion
|
||||
|
||||
local _mod="alerts balancer crash devicehealth influx insights iostat localpool mirroring nfs orchestrator \
|
||||
osd_perf_query osd_support pg_autoscaler progress prometheus rbd_support restful selftest snap_schedule \
|
||||
stats status telegraf telemetry test_orchestrator volumes zabbix"
|
||||
for _m in ${_mod}; do
|
||||
amove usr/share/ceph/mgr/"$_m"
|
||||
done
|
||||
}
|
||||
|
||||
mgr_rook() {
|
||||
pkgdesc="rook module for ceph-mgr"
|
||||
depends="$pkgname-mgr=$pkgver-r$pkgrel
|
||||
py3-jsonpatch
|
||||
py3-kubernetes"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/share/ceph/mgr/rook
|
||||
}
|
||||
|
||||
mgr_k8events() {
|
||||
pkgdesc="kubernetes events module for ceph-mgr"
|
||||
depends="$pkgname-mgr=$pkgver-r$pkgrel
|
||||
py3-kubernetes
|
||||
py3-yaml"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/share/ceph/mgr/k8sevents
|
||||
}
|
||||
|
||||
mgr() {
|
||||
pkgdesc="Ceph Manager Daemon"
|
||||
depends="$pkgname-base=$pkgver-r$pkgrel
|
||||
$pkgname-mgr-modules-core=$pkgver-r$pkgrel"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/bin/ceph-mgr usr/share/ceph/mgr
|
||||
|
||||
install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
|
||||
"$subpkgdir"/var/lib/ceph/mgr
|
||||
}
|
||||
|
||||
cephadm() {
|
||||
pkgdesc="cephadm tool $pkgver"
|
||||
depends="lvm2"
|
||||
_default_replace_majorversion
|
||||
|
||||
amove usr/sbin/cephadm
|
||||
}
|
||||
|
||||
_default_replace_majorversion() {
|
||||
if [ "$_default_ceph" = "yes" ]; then
|
||||
local stripped="${subpkgname/"$_majorver"/}"
|
||||
# we want to replace both the generic name (ceph-) and the prior major (ceph1X-)
|
||||
replaces="$stripped ${subpkgname/"$_majorver"/"$(( _majorver - 1 ))"}"
|
||||
provides="$stripped=$pkgver-r$pkgrel"
|
||||
fi
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
1c50a1860a20917a563244ff50ff1a503f369921a7608b9ddf84107fb71e8f5c580cef183f45b35eb4f889eda36608dad2a26e29b0950dfaf8205b60a0fb4c18 ceph-19.1.1.tar.gz
|
||||
110bdbcb40216c7ed155a8d23020784741b4992d895f4f04a146d275506e4e68053854d3b063b41e9c9b3e3e4f95b6b90602f92c185c853c0d8f47ad0c6b7121 ceph.confd
|
||||
ce5f162501f6b67fe254546dddf880d1a5b1d1a0fa69e0b1918de17e8da45c5c6124512b8cbd98b76f29d931403de0d11c5ffd330ed8ee1f4dc75bb04baecae3 ceph.initd
|
||||
9d41023c3265b78186457810ce62562455358d48775da2a382e13212b1e9f50bc909a36806d728a2dd2028c1529e1aa802b92699fe1fc5cb2df07c7086a3d4a8 10-isal_crypto.patch
|
||||
1edb30da73fa99d8f20889bd5a0f1405019c7268190bc6c2b10dc3835f5301bf15692f6bbf11174b9c780c07678ea848e81b3b727d6966bbb76107c2b8000601 10-isal.patch
|
||||
94687578411bf0de1b17555ed81c188c88ea63ac4a25993bd8fde9cf68afbbfbdec7b2d7c54fdcfbd4aed4eb78754e8061c308955596cbe037ff15b575874cc6 10-musl-fixes.patch
|
||||
54ff5e84b3b6fea2e259b74d4cba9c0bedda89ad6b11ec8be24507bca1c6175912b71b9006ea616af8d7527ae7339c24d74c68b4379ebc110b1315d0e3d47f85 10-xxhash.patch
|
||||
211e6f5f8fc962878196ec917984781eb4a8a9495bcc8d1729b34ac66abd2d4a0b7388ae2caee9d5deb664d54860d120a37215924625e82eac9bfca16179667a 11-dump_time_header_impl.patch
|
||||
149cdeccedcd9cf951769814a93b2eea654fd98361853ae040c18862e133c4419d3cf0de2d77dc5328e9c437122424159c6384c74e55e297309f58ae9933e36f 11-lfs.patch
|
||||
253a7bf9fa6a68547f2c9269570be86aa659ef75ab0ed4c9d1a53be70de1ca6079508f19fe5ddb02ed9edda349e121037f8ed4d6b5b0e640edaab863ce6b280d 11-parse_rfc1123_alt.patch
|
||||
b947a8f13e08b1cfaad82906ac04fa875c651cff660e64c43c7ba52eedb2a79fb2dc276f8e3ac9ee7d1264414bcee78640ec0cfc31600394313ddb0c6baf76c8 21-yarn.patch
|
||||
abb3cab9c01cc3d6d42a9858678059a8c9c43bda2649bf97b489fdc205eb10ae27f9fb7302062e0fb41f5cffddbfc2ae529130569034f373732a0a5d33aba86e 35-fix_ErasureCodeShec.patch
|
||||
71ffe6f3263b3546bb3d3593981a288ee8136d44f8c1e734ecfae65b71ea3f7c91e6040c337f237fa41269328378c955e93ed13b9d35e0ad8efd785b75d0f595 47-bcrypt.patch
|
||||
afef1cc7e43f500d95d2ffd1687cfcb756e9d8dec729186a25d513d4401b38f00edac922562a161575b1da1a65ded3e99d01cf34f9bc329f6d08cf2b896acd0c gcc13.patch
|
||||
7dbb53629339d702e604314102ae3908ba8adfb0f850858e88727ab13d1e8081ea426048f1c9293fadc0551a4c38954bcaf0a44e37122db9b21355aa4033215b gcc14.patch
|
||||
8290fdfe74573ad5558066425f59185230f040e01c6a5437116b27715914dc56fda86a1b73fbed7abf727a574f1d50fe643c62958d9ce7162e769b6eaf880d80 boost-url.patch
|
||||
c2e047da6f721bf64053571bbad60c5948a2bfd7c28f01b4816a274c2f0b8a60812344030d9b2cfd224edaf54fcfa94858d7ba5d3c0d3e2519585f3e61d34cda ppc64le.patch
|
||||
"
|
58
testing/ceph19/boost-url.patch
Normal file
58
testing/ceph19/boost-url.patch
Normal file
|
@ -0,0 +1,58 @@
|
|||
diff -Nurp a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt 2024-07-28 07:11:18.290388744 +0000
|
||||
+++ b/CMakeLists.txt 2024-07-28 07:13:12.491899849 +0000
|
||||
@@ -666,7 +666,7 @@ option(WITH_SYSTEM_BOOST "require and bu
|
||||
# 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)
|
||||
diff -Nurp a/src/mds/BoostUrlImpl.cc b/src/mds/BoostUrlImpl.cc
|
||||
--- a/src/mds/BoostUrlImpl.cc 2024-07-28 07:12:56.769692199 +0000
|
||||
+++ b/src/mds/BoostUrlImpl.cc 1970-01-01 00:00:00.000000000 +0000
|
||||
@@ -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 -Nurp a/src/mds/CMakeLists.txt b/src/mds/CMakeLists.txt
|
||||
--- a/src/mds/CMakeLists.txt 2024-07-28 07:11:18.298388851 +0000
|
||||
+++ b/src/mds/CMakeLists.txt 2024-07-28 07:14:59.747316408 +0000
|
||||
@@ -45,12 +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
|
||||
- heap_profiler cpu_profiler osdc ${LUA_LIBRARIES})
|
||||
+ heap_profiler cpu_profiler osdc ${LUA_LIBRARIES}
|
||||
+ Boost::url)
|
||||
target_include_directories(mds PRIVATE "${LUA_INCLUDE_DIR}")
|
||||
diff -Nurp a/src/test/mds/CMakeLists.txt b/src/test/mds/CMakeLists.txt
|
||||
--- a/src/test/mds/CMakeLists.txt 2024-07-28 07:11:18.303388917 +0000
|
||||
+++ b/src/test/mds/CMakeLists.txt 2024-07-28 07:13:12.492899862 +0000
|
||||
@@ -18,11 +18,10 @@ target_link_libraries(unittest_mds_sessi
|
||||
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
|
17
testing/ceph19/ceph.confd
Normal file
17
testing/ceph19/ceph.confd
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Original source: https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-cluster/ceph/files/ceph.confd-r5
|
||||
|
||||
# Example
|
||||
|
||||
# default ceph conf file
|
||||
#ceph_conf="/etc/ceph/ceph.conf"
|
||||
|
||||
# Set RADOSGW_WANT_NAME_PARAM=y in order to make the init script add
|
||||
# a --name=client.${RC_SVCNAME} parameter to command_args for radosgw.*
|
||||
# service instances. This will make the service use a key by the name
|
||||
# of client.${RC_SVCNAME} instead of the default client.admin key.
|
||||
# A setting like this in the ceph config file can be used to customize
|
||||
# the rgw_data and keyring paths used by radosgw instances:
|
||||
# [client]
|
||||
# rgw_data = /var/lib/ceph/radosgw/$cluster-$id
|
||||
# keyring = /var/lib/ceph/radosgw/$cluster-$id/keyring
|
||||
RADOSGW_WANT_NAME_PARAM=n
|
118
testing/ceph19/ceph.initd
Normal file
118
testing/ceph19/ceph.initd
Normal file
|
@ -0,0 +1,118 @@
|
|||
#!/sbin/openrc-run
|
||||
|
||||
# Original source: https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-cluster/ceph/files/ceph.initd-r12
|
||||
|
||||
# make sure /etc/conf.d/ceph gets loaded for ceph-mon etc
|
||||
_CONFD_FILE="${RC_SERVICE%/*}/../conf.d/${RC_SVCNAME%-*}"
|
||||
if [ -r "${_CONFD_FILE}" ]; then
|
||||
. "${_CONFD_FILE}" || exit 1
|
||||
fi
|
||||
|
||||
: "${ceph_conf:=/etc/ceph/ceph.conf}"
|
||||
daemon_type="${RC_SVCNAME#ceph-}"
|
||||
daemon_type="${daemon_type%%.*}"
|
||||
daemon_id="${RC_SVCNAME#ceph-*.}"
|
||||
daemon_id="${daemon_id:-0}"
|
||||
: "${rundir:=/run/ceph}"
|
||||
: "${user:=ceph}"
|
||||
: "${group:=ceph}"
|
||||
: "${rc_ulimit:=-n 1048576 -u 1048576}"
|
||||
|
||||
pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid"
|
||||
daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid"
|
||||
|
||||
command="/usr/bin/${RC_SVCNAME%%.*}"
|
||||
command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}"
|
||||
extra_commands="${extra_commands} reload"
|
||||
command_args_foreground="--foreground"
|
||||
|
||||
retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}"
|
||||
start_stop_daemon_args="--user ${user} --group ${group}"
|
||||
supervise_daemon_args="--user ${user} --group ${group}"
|
||||
|
||||
: "${supervisor:=supervise-daemon}"
|
||||
: "${stdout:=/var/log/ceph/ceph}"
|
||||
: "${stderr:=/var/log/ceph/ceph}"
|
||||
: "${respawn_delay:=10}"
|
||||
: "${respawn_max:=5}"
|
||||
: "${respawn_period:=1800}"
|
||||
|
||||
: "${osd_respawn_delay:=15}"
|
||||
: "{osd_respawn_max:=10}"
|
||||
|
||||
: "{radosgw_respawn_max:=5}"
|
||||
: "${radosgw_respawn_period:=30}"
|
||||
|
||||
depend() {
|
||||
use dns logger
|
||||
after net ntpd ntp-client chronyd
|
||||
before netmount
|
||||
}
|
||||
|
||||
is_type_valid() {
|
||||
case ${daemon_type} in
|
||||
mon|mds|osd|mgr|radosgw) return 0;;
|
||||
*) return 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
local log_dir
|
||||
export CEPH_CONF="${ceph_conf}"
|
||||
|
||||
checkpath -d -q -o "${user}:${group}" "${rundir}"
|
||||
|
||||
if ! is_type_valid ;then
|
||||
eerror "Please give valid Ceph Server Type: mds, mon, osd"
|
||||
return 1
|
||||
|
||||
elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then
|
||||
eerror "${daemon_type}.${daemon_id} is still running, refusing to start"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ -n "${bluestore_osd_fsid}" ]; then
|
||||
einfo "Mounting Bluestore"
|
||||
ceph-volume lvm activate "${daemon_id}" "${bluestore_osd_fsid}" --no-systemd
|
||||
fi
|
||||
|
||||
if [ "${daemon_type}" = radosgw ] && [ "${RADOSGW_WANT_NAME_PARAM}" = y ]; then
|
||||
command_args="${command_args} --name client.${daemon_id}"
|
||||
fi
|
||||
|
||||
local arg_name arg_val repl_arg_name
|
||||
for arg_name in stdout stderr respawn_delay respawn_max respawn_period; do
|
||||
eval arg_val="\${${daemon_type}_${arg_name}}"
|
||||
|
||||
if [ -z "${arg_val}" ]; then
|
||||
eval arg_val="\${${arg_name}}"
|
||||
else
|
||||
eval "${arg_name}=\"${arg_val}\""
|
||||
fi
|
||||
|
||||
if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then
|
||||
local log_file log_postfix
|
||||
log_postfix=".${daemon_id}-${arg_name}.log"
|
||||
log_file="${arg_val}"
|
||||
|
||||
if [ "${log_file}" != /dev/null ]; then
|
||||
log_file="${log_file}${log_postfix}"
|
||||
|
||||
log_dir="$(dirname "${log_file}")"
|
||||
checkpath -m 0755 -o "${user}:${group}" -d "${log_dir}"
|
||||
fi
|
||||
|
||||
repl_arg_name="$(printf -- "%s\n" "${arg_name}" | tr _ -)"
|
||||
supervise_daemon_args="${supervise_daemon_args} --${repl_arg_name}=${log_file}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
reload() {
|
||||
ebegin "Reloading Ceph ${daemon_type}.${daemon_id}"
|
||||
start-stop-daemon --signal 1 "${start_stop_daemon_args}"
|
||||
eend ${?}
|
||||
}
|
||||
|
||||
# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet:
|
||||
|
5
testing/ceph19/ceph19-user.pre-install
Normal file
5
testing/ceph19/ceph19-user.pre-install
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
addgroup ceph -g 167 -S 2>/dev/null
|
||||
adduser ceph -u 167 -S -G ceph -s /sbin/nologin -h /var/lib/ceph -g "Ceph Daemons" 2> /dev/null
|
||||
exit 0
|
31
testing/ceph19/gcc13.patch
Normal file
31
testing/ceph19/gcc13.patch
Normal file
|
@ -0,0 +1,31 @@
|
|||
--- a/src/include/buffer_fwd.h
|
||||
+++ b/src/include/buffer_fwd.h
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef BUFFER_FWD_H
|
||||
#define BUFFER_FWD_H
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace ceph {
|
||||
namespace buffer {
|
||||
inline namespace v15_2_0 {
|
||||
--- a/src/client/Trace.h
|
||||
+++ b/src/client/Trace.h
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
+#include <cstdint>
|
||||
#include <list>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
--- a/src/common/pretty_binary.cc
|
||||
+++ b/src/common/pretty_binary.cc
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "pretty_binary.h"
|
||||
#include <stdexcept>
|
||||
#include <sstream>
|
||||
+#include <cstdint>
|
||||
|
||||
std::string pretty_binary_string_reverse(const std::string& pretty)
|
||||
{
|
141
testing/ceph19/gcc14.patch
Normal file
141
testing/ceph19/gcc14.patch
Normal file
|
@ -0,0 +1,141 @@
|
|||
From 0eace4ea9ea42412d4d6a16d24a8660642e41173 Mon Sep 17 00:00:00 2001
|
||||
From: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
||||
Date: Wed, 24 Jan 2024 17:22:44 +0000
|
||||
Subject: [PATCH] common/dout: fix FTBFS on GCC 14
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The following problem has been reported by Kaleb Keithley:
|
||||
|
||||
```
|
||||
/builddir/build/BUILD/ceph-18.2.1/src/osd/osd_types.h: In lambda function:
|
||||
/builddir/build/BUILD/ceph-18.2.1/src/common/dout.h:184:73: error: call to non-‘constexpr’ function ‘virtual unsigned int DoutPrefixProvider::get_subsys() const’
|
||||
184 | dout_impl(pdpp->get_cct(), ceph::dout::need_dynamic(pdpp->get_subsys()), v) \
|
||||
| ~~~~~~~~~~~~~~~~^~
|
||||
/builddir/build/BUILD/ceph-18.2.1/src/common/dout.h:155:58: note: in definition of macro ‘dout_impl’
|
||||
155 | return (cctX->_conf->subsys.template should_gather<sub, v>()); \
|
||||
| ^~~
|
||||
/builddir/build/BUILD/ceph-18.2.1/src/osd/osd_types.h:3617:3: note: in expansion of macro ‘ldpp_dout’
|
||||
3617 | ldpp_dout(dpp, 10) << "build_prior all_probe " << all_probe << dendl;
|
||||
| ^~~~~~~~~
|
||||
```
|
||||
|
||||
For details of the problem and the idea behind the fix,
|
||||
please refer to the comment this commit brings to `dout.h`.
|
||||
|
||||
The minimized replicator that the facilitated Goldbot-based
|
||||
investigation:
|
||||
|
||||
```cpp
|
||||
namespace ceph::dout {
|
||||
|
||||
template<typename T>
|
||||
struct dynamic_marker_t {
|
||||
T value;
|
||||
// constexpr ctor isn't needed as it's an aggregate type
|
||||
constexpr operator T() const { return value; }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
constexpr dynamic_marker_t<T> need_dynamic(T&& t) {
|
||||
return dynamic_marker_t<T>{ std::forward<T>(t) };
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
struct is_dynamic : public std::false_type {};
|
||||
|
||||
template<typename T>
|
||||
struct is_dynamic<dynamic_marker_t<T>> : public std::true_type {};
|
||||
|
||||
} // ceph::dout
|
||||
|
||||
struct subsys_t {
|
||||
template <unsigned SubV, int LvlV>
|
||||
bool should_gather() const {
|
||||
return true;
|
||||
}
|
||||
bool should_gather(const unsigned sub, int level) const {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
static subsys_t subsys;
|
||||
|
||||
do { \
|
||||
const bool should_gather = [&](const auto cctX) { \
|
||||
if constexpr (ceph::dout::is_dynamic<decltype(sub)>::value || \
|
||||
ceph::dout::is_dynamic<decltype(v)>::value) { \
|
||||
std::cout << "the dynamic path" << std::endl; \
|
||||
return subsys.should_gather(sub, v); \
|
||||
} else { \
|
||||
/* The parentheses are **essential** because commas in angle \
|
||||
* brackets are NOT ignored on macro expansion! A language's \
|
||||
* limitation, sorry. */ \
|
||||
std::cout << "the static path" << std::endl; \
|
||||
/*return subsys.should_gather(sub, v);*/ \
|
||||
return (subsys.template should_gather<sub, v>()); \
|
||||
} \
|
||||
}(cct); \
|
||||
} while (0)
|
||||
|
||||
if (decltype(auto) pdpp = (dpp); pdpp) /* workaround -Wnonnull-compare for 'this' */ \
|
||||
dout_impl(42, sub, v)
|
||||
|
||||
if (decltype(auto) pdpp = (dpp); pdpp) /* workaround -Wnonnull-compare for 'this' */ \
|
||||
dout_impl(42, ceph::dout::need_dynamic(42), v)
|
||||
|
||||
int main() {
|
||||
std::random_device dev;
|
||||
std::mt19937 rng(dev());
|
||||
std::uniform_int_distribution<std::mt19937::result_type> dist6(1,6); // distribution in range [1, 6]
|
||||
|
||||
int sub = dist6(rng);
|
||||
ldpp_dout("mocked out", sub);
|
||||
//ldpp_subdout("mocked out", 4, 3);
|
||||
}
|
||||
```
|
||||
|
||||
Fixes: https://tracker.ceph.com/issues/64050
|
||||
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
||||
---
|
||||
src/common/dout.h | 20 +++++++++++++++-----
|
||||
1 file changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/common/dout.h b/src/common/dout.h
|
||||
index 4cd60efff8fef..6516060c5438e 100644
|
||||
--- a/src/common/dout.h
|
||||
+++ b/src/common/dout.h
|
||||
@@ -144,17 +144,27 @@ struct is_dynamic<dynamic_marker_t<T>> : public std::true_type {};
|
||||
#else
|
||||
#define dout_impl(cct, sub, v) \
|
||||
do { \
|
||||
- const bool should_gather = [&](const auto cctX) { \
|
||||
- if constexpr (ceph::dout::is_dynamic<decltype(sub)>::value || \
|
||||
- ceph::dout::is_dynamic<decltype(v)>::value) { \
|
||||
+ const bool should_gather = [&](const auto cctX, auto sub_, auto v_) { \
|
||||
+ /* The check is performed on `sub_` and `v_` to leverage the C++'s \
|
||||
+ * guarantee on _discarding_ one of blocks of `if constexpr`, which \
|
||||
+ * includes also the checks for ill-formed code (`should_gather<>` \
|
||||
+ * must not be feed with non-const expresions), BUT ONLY within \
|
||||
+ * a template (thus the generic lambda) and under the restriction \
|
||||
+ * it's dependant on a parameter of this template). \
|
||||
+ * GCC prior to v14 was not enforcing these restrictions. */ \
|
||||
+ if constexpr (ceph::dout::is_dynamic<decltype(sub_)>::value || \
|
||||
+ ceph::dout::is_dynamic<decltype(v_)>::value) { \
|
||||
return cctX->_conf->subsys.should_gather(sub, v); \
|
||||
} else { \
|
||||
+ constexpr auto sub_helper = static_cast<decltype(sub_)>(sub); \
|
||||
+ constexpr auto v_helper = static_cast<decltype(v_)>(v); \
|
||||
/* The parentheses are **essential** because commas in angle \
|
||||
* brackets are NOT ignored on macro expansion! A language's \
|
||||
* limitation, sorry. */ \
|
||||
- return (cctX->_conf->subsys.template should_gather<sub, v>()); \
|
||||
+ return (cctX->_conf->subsys.template should_gather<sub_helper, \
|
||||
+ v_helper>()); \
|
||||
} \
|
||||
- }(cct); \
|
||||
+ }(cct, sub, v); \
|
||||
\
|
||||
if (should_gather) { \
|
||||
ceph::logging::MutableEntry _dout_e(v, sub); \
|
85
testing/ceph19/ppc64le.patch
Normal file
85
testing/ceph19/ppc64le.patch
Normal file
|
@ -0,0 +1,85 @@
|
|||
From 188612538ea06890d27321a5550c93a817ea9bc2 Mon Sep 17 00:00:00 2001
|
||||
From: Guna K Kambalimath <Guna.Kambalimath@ibm.com>
|
||||
Date: Tue, 20 Aug 2024 15:36:52 +0530
|
||||
Subject: [PATCH] Fixes build failure on IBM Power
|
||||
|
||||
---
|
||||
src/common/CMakeLists.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
|
||||
index c3fd51d26468f..8b9f3339e3885 100644
|
||||
--- a/src/common/CMakeLists.txt
|
||||
+++ b/src/common/CMakeLists.txt
|
||||
@@ -225,6 +225,7 @@ elseif(HAVE_POWER8)
|
||||
list(APPEND crc32_srcs
|
||||
crc32c_ppc_asm.S
|
||||
crc32c_ppc_fast_zero_asm.S)
|
||||
+ set_source_files_properties(crc32c_ppc_asm.S PROPERTIES COMPILE_FLAGS -D__ASSEMBLY__)
|
||||
endif(HAVE_PPC64LE)
|
||||
elseif(HAVE_ARMV8_CRC)
|
||||
list(APPEND crc32_srcs
|
||||
From 83782c9ba033ce9008df287281f1c66dbf8ee28e Mon Sep 17 00:00:00 2001
|
||||
From: Guna K Kambalimath <Guna.Kambalimath@ibm.com>
|
||||
Date: Tue, 20 Aug 2024 17:27:44 +0530
|
||||
Subject: [PATCH] Remove dynamic linking for power
|
||||
|
||||
---
|
||||
src/arch/CMakeLists.txt | 6 +++++-
|
||||
src/common/CMakeLists.txt | 6 +++++-
|
||||
2 files changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/arch/CMakeLists.txt b/src/arch/CMakeLists.txt
|
||||
index e95d9bbb81fa8..d0e635dcd65e6 100644
|
||||
--- a/src/arch/CMakeLists.txt
|
||||
+++ b/src/arch/CMakeLists.txt
|
||||
@@ -11,4 +11,8 @@ elseif(HAVE_S390X)
|
||||
list(APPEND arch_srcs s390x.c)
|
||||
endif()
|
||||
|
||||
-add_library(arch OBJECT ${arch_srcs})
|
||||
+if(HAVE_POWER8)
|
||||
+ add_library(arch STATIC ${arch_srcs})
|
||||
+else()
|
||||
+ add_library(arch OBJECT ${arch_srcs})
|
||||
+endif()
|
||||
\ No newline at end of file
|
||||
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
|
||||
index 8b9f3339e3885..6cdbb169f2105 100644
|
||||
--- a/src/common/CMakeLists.txt
|
||||
+++ b/src/common/CMakeLists.txt
|
||||
@@ -237,7 +237,11 @@ elseif(HAVE_S390X)
|
||||
)
|
||||
endif(HAVE_INTEL)
|
||||
|
||||
-add_library(crc32 OBJECT ${crc32_srcs})
|
||||
+if(HAVE_POWER8)
|
||||
+ add_library(crc32 STATIC ${crc32_srcs})
|
||||
+else()
|
||||
+ add_library(crc32 OBJECT ${crc32_srcs})
|
||||
+endif()
|
||||
|
||||
if(HAVE_ARMV8_CRC)
|
||||
set_target_properties(crc32 PROPERTIES
|
||||
From 0efec175a0abc764a4aa883f27d2c13488f668c6 Mon Sep 17 00:00:00 2001
|
||||
From: Guna K Kambalimath <Guna.Kambalimath@ibm.com>
|
||||
Date: Tue, 20 Aug 2024 17:38:54 +0530
|
||||
Subject: [PATCH] Removing set properties
|
||||
|
||||
---
|
||||
src/common/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
|
||||
index 6cdbb169f2105..b25b4bff570a3 100644
|
||||
--- a/src/common/CMakeLists.txt
|
||||
+++ b/src/common/CMakeLists.txt
|
||||
@@ -225,7 +225,7 @@ elseif(HAVE_POWER8)
|
||||
list(APPEND crc32_srcs
|
||||
crc32c_ppc_asm.S
|
||||
crc32c_ppc_fast_zero_asm.S)
|
||||
- set_source_files_properties(crc32c_ppc_asm.S PROPERTIES COMPILE_FLAGS -D__ASSEMBLY__)
|
||||
+ #set_source_files_properties(crc32c_ppc_asm.S PROPERTIES COMPILE_FLAGS -D__ASSEMBLY__)
|
||||
endif(HAVE_PPC64LE)
|
||||
elseif(HAVE_ARMV8_CRC)
|
||||
list(APPEND crc32_srcs
|
Loading…
Reference in a new issue