From daee285d75f483a03a5db527280f116bb40a3a43 Mon Sep 17 00:00:00 2001 From: Saul Wold Date: Fri, 23 Apr 2021 10:01:39 -0700 Subject: ceph: Upgrade to 16.2.1 This updates the Ceph version to 16.2.1 which required a couple changes to base code via a rebased patch which also disabled the sanity check due to it not working correctly, but the actual compile worked. Also added a new patch to add soversion information for the new libcephsqlite library so it would be packaged correctly Added fixex for new python script to adjust #! from the native path and moved the ceph-python package in order for it to get the correct set of files before the ceph package. Signed-off-by: Saul Wold Signed-off-by: Bruce Ashfield --- .../0001-add-missing-include-for-atomic-bool.patch | 25 --- ...1-ceph-fix-build-errors-for-cross-compile.patch | 125 ++++++++----- .../0001-cmake-add-support-for-python3.9.patch | 30 ---- .../0001-fix-host-library-paths-were-used.patch | 58 +++--- ...phsqlite-Add-library-soversion-properties.patch | 31 ++++ recipes-extended/ceph/ceph_15.2.9.bb | 145 --------------- recipes-extended/ceph/ceph_16.2.1.bb | 199 +++++++++++++++++++++ 7 files changed, 341 insertions(+), 272 deletions(-) delete mode 100644 recipes-extended/ceph/ceph/0001-add-missing-include-for-atomic-bool.patch delete mode 100644 recipes-extended/ceph/ceph/0001-cmake-add-support-for-python3.9.patch create mode 100644 recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch delete mode 100644 recipes-extended/ceph/ceph_15.2.9.bb create mode 100644 recipes-extended/ceph/ceph_16.2.1.bb diff --git a/recipes-extended/ceph/ceph/0001-add-missing-include-for-atomic-bool.patch b/recipes-extended/ceph/ceph/0001-add-missing-include-for-atomic-bool.patch deleted file mode 100644 index ffcbc583..00000000 --- a/recipes-extended/ceph/ceph/0001-add-missing-include-for-atomic-bool.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 502be73be3c3645094525aa552f5e53d8782a004 Mon Sep 17 00:00:00 2001 -From: Sakib Sajal -Date: Fri, 28 Aug 2020 19:36:19 -0400 -Subject: [PATCH] add missing include for atomic - -Signed-off-by: Sakib Sajal ---- - src/tools/rbd/action/Bench.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/tools/rbd/action/Bench.cc b/src/tools/rbd/action/Bench.cc -index aa6edbc1..90c551c1 100644 ---- a/src/tools/rbd/action/Bench.cc -+++ b/src/tools/rbd/action/Bench.cc -@@ -9,6 +9,7 @@ - #include "common/ceph_mutex.h" - #include "include/types.h" - #include "global/signal_handler.h" -+#include - #include - #include - #include --- -2.27.0 - diff --git a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch b/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch index 4d54549f..00c7e5b9 100644 --- a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch +++ b/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch @@ -1,10 +1,15 @@ -From 4712fe18405ffea31405308357a8e7fca358bcce Mon Sep 17 00:00:00 2001 +From 2a3ccc8079040a7e783b8a9091618878e7cf0719 Mon Sep 17 00:00:00 2001 From: Dengke Du Date: Mon, 11 Mar 2019 09:14:09 +0800 Subject: [PATCH] ceph: fix build errors for cross compile 1. set the cross compile sysroot to find the rocksdb library 2. correct the install path for library in Distutils.cmake +3. remove / disable the sanity_check(), for some reasong the + sanity check gets the wrong settings and will not link + correctly, but the actual build works correctly, this needs + more investigation later, earlier versions of the patch also + removed it but no comment on why. (sgw) Upstream-Status: Inappropriate [oe specific] @@ -14,18 +19,20 @@ Adjust context for v14.2.3 Signed-off-by: He Zhe Signed-off-by: Sakib Sajal +Signed-off-by: Saul Wold + --- cmake/modules/Distutils.cmake | 25 +++++-------------------- cmake/modules/FindRocksDB.cmake | 4 ++-- src/compressor/zstd/CMakeLists.txt | 2 +- - src/pybind/cephfs/setup.py | 8 -------- - src/pybind/rados/setup.py | 8 -------- - src/pybind/rbd/setup.py | 8 -------- - src/pybind/rgw/setup.py | 8 -------- - 7 files changed, 8 insertions(+), 55 deletions(-) + src/pybind/cephfs/setup.py | 18 +++++------------- + src/pybind/rados/setup.py | 11 ++--------- + src/pybind/rbd/setup.py | 18 +++++------------- + src/pybind/rgw/setup.py | 18 +++++------------- + 7 files changed, 25 insertions(+), 71 deletions(-) diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake -index 5fe929499d..802eb37e32 100644 +index ff01aaf81..18656c5a5 100644 --- a/cmake/modules/Distutils.cmake +++ b/cmake/modules/Distutils.cmake @@ -18,17 +18,8 @@ function(distutils_install_module name) @@ -39,9 +46,9 @@ index 5fe929499d..802eb37e32 100644 - list(APPEND options - --root=\$ENV{DESTDIR} - --single-version-externally-managed) -- if(NOT \"${DU_INSTALL_SCRIPT}\" STREQUAL \"\") -- list(APPEND options --install-script=${DU_INSTALL_SCRIPT}) -- endif() +- endif() +- if(NOT \"${DU_INSTALL_SCRIPT}\" STREQUAL \"\") +- list(APPEND options --install-script=${DU_INSTALL_SCRIPT}) - endif() + list(APPEND options --root=${CMAKE_DESTDIR}) + list(APPEND options --install-lib=${PYTHON_SITEPACKAGES_DIR}) @@ -51,7 +58,7 @@ index 5fe929499d..802eb37e32 100644 @@ -50,7 +41,7 @@ function(distutils_add_cython_module target name src) # Note: no quotes, otherwise distutils will execute "/usr/bin/ccache gcc" # CMake's implicit conversion between strings and lists is wonderful, isn't it? - string(REPLACE " " ";" cflags ${CMAKE_C_FLAGS}) + set(cflags ${COMPILE_OPTIONS}) - list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w) + list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w --sysroot=${CMAKE_SYSROOT}) # This little bit of magic wipes out __Pyx_check_single_interpreter() @@ -75,7 +82,7 @@ index 5fe929499d..802eb37e32 100644 COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py diff --git a/cmake/modules/FindRocksDB.cmake b/cmake/modules/FindRocksDB.cmake -index c5dd3dfaf6..be38597af2 100644 +index c5dd3dfaf..be38597af 100644 --- a/cmake/modules/FindRocksDB.cmake +++ b/cmake/modules/FindRocksDB.cmake @@ -9,9 +9,9 @@ @@ -91,7 +98,7 @@ index c5dd3dfaf6..be38597af2 100644 if(ROCKSDB_INCLUDE_DIR AND EXISTS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h") foreach(ver "MAJOR" "MINOR" "PATCH") diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt -index a5ebdaf538..a234068150 100644 +index b53b0d944..4955711a9 100644 --- a/src/compressor/zstd/CMakeLists.txt +++ b/src/compressor/zstd/CMakeLists.txt @@ -9,7 +9,7 @@ ExternalProject_Add(zstd_ext @@ -104,81 +111,111 @@ index a5ebdaf538..a234068150 100644 -G${CMAKE_GENERATOR} BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py -index 19ae6c329a..c9a25ccfff 100755 +index c3d40df05..24c26c3ed 100755 --- a/src/pybind/cephfs/setup.py +++ b/src/pybind/cephfs/setup.py -@@ -135,14 +135,6 @@ def check_sanity(): +@@ -137,19 +137,11 @@ def check_sanity(): finally: shutil.rmtree(tmp_dir) - --if 'BUILD_DOC' in os.environ.keys(): -- pass +-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: +- ext_args = {} +- cython_constants = dict(BUILD_DOC=True) +- cythonize_args = dict(compile_time_env=cython_constants) -elif check_sanity(): -- pass +- ext_args = get_python_flags(['cephfs']) +- cython_constants = dict(BUILD_DOC=False) +- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")] +- cythonize_args = dict(compile_time_env=cython_constants, +- include_path=include_path) -else: - sys.exit(1) -- ++ext_args = get_python_flags(['cephfs']) ++cython_constants = dict(BUILD_DOC=False) ++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")] ++cythonize_args = dict(compile_time_env=cython_constants, ++ include_path=include_path) + cmdclass = {} try: - from Cython.Build import cythonize diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py -index e2c5696404..4e99d26721 100755 +index 0d1047825..cff85a063 100755 --- a/src/pybind/rados/setup.py +++ b/src/pybind/rados/setup.py -@@ -134,14 +134,6 @@ def check_sanity(): +@@ -131,15 +131,8 @@ def check_sanity(): finally: shutil.rmtree(tmp_dir) - --if 'BUILD_DOC' in os.environ.keys(): -- pass +-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: +- ext_args = {} +- cython_constants = dict(BUILD_DOC=True) -elif check_sanity(): -- pass +- ext_args = get_python_flags(['rados']) +- cython_constants = dict(BUILD_DOC=False) -else: - sys.exit(1) -- ++ext_args = get_python_flags(['rados']) ++cython_constants = dict(BUILD_DOC=False) + cmdclass = {} try: - from Cython.Build import cythonize diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py -index 634484f140..f5bbbdab4f 100755 +index 73ea4555f..e7f57ddb5 100755 --- a/src/pybind/rbd/setup.py +++ b/src/pybind/rbd/setup.py -@@ -133,14 +133,6 @@ def check_sanity(): +@@ -135,19 +135,11 @@ def check_sanity(): finally: shutil.rmtree(tmp_dir) - --if 'BUILD_DOC' in os.environ.keys(): -- pass +-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: +- ext_args = {} +- cython_constants = dict(BUILD_DOC=True) +- cythonize_args = dict(compile_time_env=cython_constants) -elif check_sanity(): -- pass +- ext_args = get_python_flags(['rados', 'rbd']) +- cython_constants = dict(BUILD_DOC=False) +- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")] +- cythonize_args = dict(compile_time_env=cython_constants, +- include_path=include_path) -else: - sys.exit(1) -- ++ext_args = get_python_flags(['rados', 'rbd']) ++cython_constants = dict(BUILD_DOC=False) ++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")] ++cythonize_args = dict(compile_time_env=cython_constants, ++ include_path=include_path) + cmdclass = {} try: - from Cython.Build import cythonize diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py -index eb1591a460..b9f2428cf9 100755 +index 663604e8f..489c9ba1f 100755 --- a/src/pybind/rgw/setup.py +++ b/src/pybind/rgw/setup.py -@@ -134,14 +134,6 @@ def check_sanity(): +@@ -135,19 +135,11 @@ def check_sanity(): finally: shutil.rmtree(tmp_dir) - --if 'BUILD_DOC' in os.environ.keys(): -- pass +-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: +- ext_args = {} +- cython_constants = dict(BUILD_DOC=True) +- cythonize_args = dict(compile_time_env=cython_constants) -elif check_sanity(): -- pass +- ext_args = get_python_flags(['rados', 'rgw']) +- cython_constants = dict(BUILD_DOC=False) +- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")] +- cythonize_args = dict(compile_time_env=cython_constants, +- include_path=include_path) -else: - sys.exit(1) -- ++ext_args = get_python_flags(['rados', 'rgw']) ++cython_constants = dict(BUILD_DOC=False) ++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")] ++cythonize_args = dict(compile_time_env=cython_constants, ++ include_path=include_path) + cmdclass = {} try: - from Cython.Build import cythonize --- -2.20.1 - diff --git a/recipes-extended/ceph/ceph/0001-cmake-add-support-for-python3.9.patch b/recipes-extended/ceph/ceph/0001-cmake-add-support-for-python3.9.patch deleted file mode 100644 index d9116c4f..00000000 --- a/recipes-extended/ceph/ceph/0001-cmake-add-support-for-python3.9.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 1060f2e4362ebd6db23870d442dcd158d219ee92 Mon Sep 17 00:00:00 2001 -From: Yanfei Xu -Date: Tue, 10 Nov 2020 17:17:30 +0800 -Subject: [PATCH] cmake: add support for python3.9 - -add support for python3.9. - -Upstream-Status: Pending - -Signed-off-by: Yanfei Xu ---- - cmake/modules/FindPython/Support.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cmake/modules/FindPython/Support.cmake b/cmake/modules/FindPython/Support.cmake -index 6584699b79..c05bbe3306 100644 ---- a/cmake/modules/FindPython/Support.cmake -+++ b/cmake/modules/FindPython/Support.cmake -@@ -17,7 +17,7 @@ if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR) - message (FATAL_ERROR "FindPython: INTERNAL ERROR") - endif() - if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 3) -- set(_${_PYTHON_PREFIX}_VERSIONS 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0) -+ set(_${_PYTHON_PREFIX}_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0) - elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 2) - set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0) - else() --- -2.18.2 - diff --git a/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch b/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch index 310bfa47..1062ae71 100644 --- a/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch +++ b/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch @@ -1,4 +1,4 @@ -From bbf1cba8feb0e43492a1f6a6b31d024117cad262 Mon Sep 17 00:00:00 2001 +From a7f56278dd4762c56cccd559e260e51092763cac Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Mon, 13 Apr 2020 23:35:41 -0700 Subject: [PATCH] fix host library paths were used @@ -8,6 +8,7 @@ Test the existence of recipe-sysrooot, add it back if lost Upstream-Status: Inappropriate [oe specific] Signed-off-by: Hongxu Jia + --- src/pybind/cephfs/setup.py | 6 +++++- src/pybind/rados/setup.py | 6 +++++- @@ -16,11 +17,11 @@ Signed-off-by: Hongxu Jia 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py -index c9a25ccf..972f936c 100755 +index 87cdeb473..5144c8441 100755 --- a/src/pybind/cephfs/setup.py +++ b/src/pybind/cephfs/setup.py -@@ -63,9 +63,13 @@ def get_python_flags(libs): - distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), []) +@@ -65,10 +65,14 @@ def get_python_flags(libs): + filter(lambda lib: lib.startswith('-l'), py_libs)] compiler = new_compiler() distutils.sysconfig.customize_compiler(compiler) + libpl = distutils.sysconfig.get_config_var('LIBPL') @@ -29,17 +30,18 @@ index c9a25ccf..972f936c 100755 + libpl = sysroot + libpl return dict( include_dirs=[distutils.sysconfig.get_python_inc()], -- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'), -+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl], - libraries=libs + [lib.replace('-l', '') for lib in py_libs], + library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'), +- libraries=libs + py_libs, ++ libraries=libs + [lib.replace('-l', '') for lib in py_libs], extra_compile_args=filter_unsupported_flags( compiler.compiler[0], + compiler.compiler[1:] + distutils.sysconfig.get_config_var('CFLAGS').split()), diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py -index 4e99d267..de24f766 100755 +index feafb605d..82aff5154 100755 --- a/src/pybind/rados/setup.py +++ b/src/pybind/rados/setup.py -@@ -66,9 +66,13 @@ def get_python_flags(libs): - distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), []) +@@ -63,10 +63,14 @@ def get_python_flags(libs): + filter(lambda lib: lib.startswith('-l'), py_libs)] compiler = new_compiler() distutils.sysconfig.customize_compiler(compiler) + libpl = distutils.sysconfig.get_config_var('LIBPL') @@ -48,17 +50,18 @@ index 4e99d267..de24f766 100755 + libpl = sysroot + libpl return dict( include_dirs=[distutils.sysconfig.get_python_inc()], -- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'), -+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl], - libraries=libs + [lib.replace('-l', '') for lib in py_libs], + library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'), +- libraries=libs + py_libs, ++ libraries=libs + [lib.replace('-l', '') for lib in py_libs], extra_compile_args=filter_unsupported_flags( compiler.compiler[0], + compiler.compiler[1:] + distutils.sysconfig.get_config_var('CFLAGS').split()), diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py -index f5bbbdab..a1f70e1d 100755 +index b9c6a78d2..4ef714f8d 100755 --- a/src/pybind/rbd/setup.py +++ b/src/pybind/rbd/setup.py -@@ -63,9 +63,13 @@ def get_python_flags(libs): - distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), []) +@@ -65,10 +65,14 @@ def get_python_flags(libs): + filter(lambda lib: lib.startswith('-l'), py_libs)] compiler = new_compiler() distutils.sysconfig.customize_compiler(compiler) + libpl = distutils.sysconfig.get_config_var('LIBPL') @@ -67,17 +70,18 @@ index f5bbbdab..a1f70e1d 100755 + libpl = sysroot + libpl return dict( include_dirs=[distutils.sysconfig.get_python_inc()], -- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'), -+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl], - libraries=libs + [lib.replace('-l', '') for lib in py_libs], + library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'), +- libraries=libs + py_libs, ++ libraries=libs + [lib.replace('-l', '') for lib in py_libs], extra_compile_args=filter_unsupported_flags( compiler.compiler[0], + compiler.compiler[1:] + distutils.sysconfig.get_config_var('CFLAGS').split()), diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py -index b9f2428c..f5119f73 100755 +index 695038c0e..2521f0cbb 100755 --- a/src/pybind/rgw/setup.py +++ b/src/pybind/rgw/setup.py -@@ -64,9 +64,13 @@ def get_python_flags(libs): - distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), []) +@@ -65,10 +65,14 @@ def get_python_flags(libs): + filter(lambda lib: lib.startswith('-l'), py_libs)] compiler = new_compiler() distutils.sysconfig.customize_compiler(compiler) + libpl = distutils.sysconfig.get_config_var('LIBPL') @@ -86,11 +90,9 @@ index b9f2428c..f5119f73 100755 + libpl = sysroot + libpl return dict( include_dirs=[distutils.sysconfig.get_python_inc()], -- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'), -+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl], - libraries=libs + [lib.replace('-l', '') for lib in py_libs], + library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'), +- libraries=libs + py_libs, ++ libraries=libs + [lib.replace('-l', '') for lib in py_libs], extra_compile_args=filter_unsupported_flags( compiler.compiler[0], --- -2.21.0 - + compiler.compiler[1:] + distutils.sysconfig.get_config_var('CFLAGS').split()), diff --git a/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch b/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch new file mode 100644 index 00000000..2c9cd114 --- /dev/null +++ b/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch @@ -0,0 +1,31 @@ +From ce36ce7d1c0f954d1532a759f4d7b09d87287dac Mon Sep 17 00:00:00 2001 +From: Saul Wold +Date: Thu, 22 Apr 2021 08:05:57 -0700 +Subject: [PATCH] libcephsqlite: Add library soversion properties + +This additional properties are needed to ensure the library +is installed with an soversion so that when the library is +packaged it gets packaged corectly in the ceph package and +ceph-dev package as the link. + +Upstream-Status: pending +Signed-off-by: Saul Wold +--- + src/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 37db48f86..8dc7bdb56 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -804,6 +804,10 @@ if(WITH_LIBCEPHSQLITE) + set(cephsqlite_srcs libcephsqlite.cc SimpleRADOSStriper.cc) + add_library(cephsqlite ${CEPH_SHARED} ${cephsqlite_srcs}) + target_link_libraries(cephsqlite PRIVATE cls_lock_client librados ceph-common SQLite3::SQLite3 ${EXTRALIBS}) ++ set_target_properties(cephsqlite PROPERTIES ++ OUTPUT_NAME cephsqlite ++ VERSION 1.0.0 ++ SOVERSION 1) + install(TARGETS cephsqlite DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif(WITH_LIBCEPHSQLITE) + diff --git a/recipes-extended/ceph/ceph_15.2.9.bb b/recipes-extended/ceph/ceph_15.2.9.bb deleted file mode 100644 index 0d821f0b..00000000 --- a/recipes-extended/ceph/ceph_15.2.9.bb +++ /dev/null @@ -1,145 +0,0 @@ -SUMMARY = "User space components of the Ceph file system" -LICENSE = "LGPLv2.1 & GPLv2 & Apache-2.0 & MIT" -LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 \ - file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING;md5=4eb012c221c5fd4b760029a2981a6754 \ -" -inherit cmake python3native python3-dir systemd -# Disable python pybind support for ceph temporary, when corss compiling pybind, -# pybind mix cmake and python setup environment, would case a lot of errors. - -SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \ - file://0001-ceph-fix-build-errors-for-cross-compile.patch \ - file://0001-fix-host-library-paths-were-used.patch \ - file://ceph.conf \ - file://0001-add-missing-include-for-atomic-bool.patch \ - file://0001-cmake-add-support-for-python3.9.patch \ -" - -SRC_URI[md5sum] = "5a949b91199efe130bfe2e57f200eacd" -SRC_URI[sha256sum] = "ea7fa2be68b3570c5c3aa02774dca27de20b6f20a8498f65e5c4ef375a209ace" -SRC_URI[sha1sum] = "0503649d7c7d9268cb61b03bbe839106988f87d7" -SRC_URI[sha384sum] = "57208c126ea8e640c3979073fd64ce58606f17b4b7ed2e005b0792bdfd51b13391af325658d0f68f961f94175d93e891" -SRC_URI[sha512sum] = "1f55b0a13bf06df782831d0c9d5f8617c22442ab97fb186e6ccb08183e02bf1756caf8633fa6b1cf156c3fb7b1bdff90a60a1249adfad0b9450036e2329bf8ff" - -DEPENDS = "boost bzip2 curl expat gperf-native \ - keyutils libaio libibverbs lz4 \ - nspr nss \ - oath openldap openssl \ - python3 python3-cython-native rabbitmq-c rocksdb snappy udev \ - valgrind xfsprogs zlib \ -" -SYSTEMD_SERVICE_${PN} = " \ - ceph-radosgw@.service \ - ceph-radosgw.target \ - ceph-mon@.service \ - ceph-mon.target \ - ceph-mds@.service \ - ceph-mds.target \ - ceph-osd@.service \ - ceph-osd.target \ - ceph.target \ - ceph-rbd-mirror@.service \ - ceph-rbd-mirror.target \ - ceph-volume@.service \ - ceph-mgr@.service \ - ceph-mgr.target \ - ceph-crash.service \ - rbdmap.service \ - ceph-immutable-object-cache@.service \ - ceph-immutable-object-cache.target \ -" -OECMAKE_GENERATOR = "Unix Makefiles" - -EXTRA_OECMAKE = "-DWITH_MANPAGE=OFF \ - -DWITH_FUSE=OFF \ - -DWITH_SPDK=OFF \ - -DWITH_LEVELDB=OFF \ - -DWITH_LTTNG=OFF \ - -DWITH_BABELTRACE=OFF \ - -DWITH_TESTS=OFF \ - -DWITH_MGR=OFF \ - -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ - -DWITH_SYSTEM_BOOST=ON \ - -DWITH_SYSTEM_ROCKSDB=ON \ - -DWITH_RDMA=OFF \ - -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \ - -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 \ - -DPython3_EXECUTABLE=${PYTHON} \ - -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \ - -DWITH_REENTRANT_STRSIGNAL=ON \ -" - -export STAGING_DIR_HOST - -do_configure_prepend () { - echo "set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )" >> ${WORKDIR}/toolchain.cmake - echo "set( CMAKE_DESTDIR \"${D}\" )" >> ${WORKDIR}/toolchain.cmake - echo "set( PYTHON_SITEPACKAGES_DIR \"${PYTHON_SITEPACKAGES_DIR}\" )" >> ${WORKDIR}/toolchain.cmake -} - -do_install_append () { - sed -i -e 's:^#!/usr/bin/python$:&3:' \ - -e 's:${WORKDIR}.*python3:${bindir}/python3:' \ - ${D}${bindir}/ceph ${D}${bindir}/ceph-crash \ - ${D}${bindir}/ceph-volume ${D}${bindir}/ceph-volume-systemd - find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::' - install -d ${D}${sysconfdir}/ceph - install -m 644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/ - install -d ${D}${systemd_unitdir} - mv ${D}${libexecdir}/systemd/system ${D}${systemd_unitdir} - mv ${D}${libexecdir}/ceph/ceph-osd-prestart.sh ${D}${libdir}/ceph - mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph - # WITH_FUSE is set to OFF, remove ceph-fuse related units - rm ${D}${systemd_unitdir}/system/ceph-fuse.target ${D}${systemd_unitdir}/system/ceph-fuse@.service -} - -do_install_append_class-target () { - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d - echo "d /var/lib/ceph/crash/posted 0755 root root - -" > ${D}${sysconfdir}/tmpfiles.d/ceph-placeholder.conf - fi - - if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/default/volatiles - echo "d root root 0755 /var/lib/ceph/crash/posted none" > ${D}${sysconfdir}/default/volatiles/99_ceph-placeholder - fi -} - -pkg_postinst_${PN}() { - if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then - ${sysconfdir}/init.d/populate-volatile.sh update - fi -} - -FILES_${PN} += "\ - ${libdir}/rados-classes/*.so.* \ - ${libdir}/ceph/compressor/*.so \ - ${libdir}/rados-classes/*.so \ - ${libdir}/ceph/*.so \ -" - -FILES_${PN} += " \ - /etc/tmpfiles.d/ceph-placeholder.conf \ - /etc/default/volatiles/99_ceph-placeholder \ -" - -FILES_${PN}-python = "\ - ${PYTHON_SITEPACKAGES_DIR}/* \ -" -RDEPENDS_${PN} += "\ - python3-core \ - python3-misc \ - python3-modules \ - python3-prettytable \ - ${PN}-python \ -" -COMPATIBLE_HOST = "(x86_64).*" -PACKAGES += " \ - ${PN}-python \ -" -INSANE_SKIP_${PN}-python += "ldflags" -INSANE_SKIP_${PN} += "dev-so" -CCACHE_DISABLE = "1" - -CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd" diff --git a/recipes-extended/ceph/ceph_16.2.1.bb b/recipes-extended/ceph/ceph_16.2.1.bb new file mode 100644 index 00000000..ec62c7b2 --- /dev/null +++ b/recipes-extended/ceph/ceph_16.2.1.bb @@ -0,0 +1,199 @@ +# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'. +# The following is the difference between the old and the new license text. +# Please update the LICENSE value if needed, and summarize the changes in +# the commit message via 'License-Update:' tag. +# (example: 'License-Update: copyright years updated.') +# +# The changes: +# +# --- COPYING +# +++ COPYING +# @@ -7,6 +7,11 @@ +# Copyright: (c) 2004-2010 by Sage Weil +# License: LGPL-2.1 or LGPL-3 (see COPYING-LGPL2.1 and COPYING-LGPL3) +# +# +Files: cmake/modules/FindPython* +# +Copyright: +# + Copyright 2000-2020 Kitware, Inc. and Contributors +# +License: BSD 3-clause +# + +# Files: cmake/modules/FindLTTngUST.cmake +# Copyright: +# Copyright 2016 Kitware, Inc. +# @@ -31,6 +36,10 @@ +# Files: src/include/ceph_hash.cc +# Copyright: None +# License: Public domain +# + +# +Files: src/include/rados.h, except ceph_stable_mod(), which is public domain +# +Copyright: the authors +# +License: LGPL-2.1 or LGPL-3 (see COPYING-LGPL2.1 and COPYING-LGPL3) +# +# Files: src/common/bloom_filter.hpp +# Copyright: Copyright (C) 2000 Arash Partow +# @@ -191,4 +200,17 @@ +# +# Files: src/include/function2.hpp +# Copyright: 2015-2018, Denis Blank +# -License: Boost Software License, Version 1.0+License: Boost Software License, Version 1.0 +# + +# +Files: src/include/expected.hpp +# +Copyright: 2017, Simon Brand +# +License: CC0 +# + +# +Files: src/include/uses_allocator.h +# +Copyright: 2016, Pablo Halpern +# +License: Boost Software License, Version 1.0 +# + +# +Files: src/common/async/bind_allocator.h +# +Copyright: 2020 Red Hat +# + 2003-2019 Christopher M. Kohlhoff +# +License: Boost Software License, Version 1.0 +# +# + +SUMMARY = "User space components of the Ceph file system" +LICENSE = "LGPLv2.1 & GPLv2 & Apache-2.0 & MIT" +LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 \ + file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING;md5=d140fb1fedb53047f0d0830883e7af9f \ + " +#inherit cmake setuptools3 systemd +inherit cmake distutils3-base systemd + +# Disable python pybind support for ceph temporary, when corss compiling pybind, +# pybind mix cmake and python setup environment, would case a lot of errors. + +SRC_URI[sha256sum] = "30ff943287361b4c3f0a9bf8bcd4399751b91434eec7d602ce6e93c42c741be3" +SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \ + file://0001-ceph-fix-build-errors-for-cross-compile.patch \ + file://0001-fix-host-library-paths-were-used.patch \ + file://ceph.conf \ + file://0001-libcephsqlite-Add-library-soversion-properties.patch \ + " + +SRC_URI[sha1sum] = "f8cc85e4cc519d7e469a0c3c8327bd1675f0b287" +SRC_URI[sha384sum] = "29a75a733e5ae8039a5ad603558a9707e36b8c337419039ee97351cdbad57875fa57a365fcde29124cee72734608e245" +SRC_URI[sha512sum] = "aeb9a91c33221c64ea24603dc88cab346bf0abdf0d41ff85c2e1cf134130737ec1fab1246be0a2fa3af8a655ae1dabb69688855f229f54438e60cb8098175b8e" + +DEPENDS = "boost bzip2 curl expat gperf-native \ + keyutils libaio libibverbs lz4 \ + nspr nss \ + oath openldap openssl \ + python3 python3-cython-native rabbitmq-c rocksdb snappy udev \ + valgrind xfsprogs zlib \ + lua cryptsetup \ +" +SYSTEMD_SERVICE_${PN} = " \ + ceph-radosgw@.service \ + ceph-radosgw.target \ + ceph-mon@.service \ + ceph-mon.target \ + ceph-mds@.service \ + ceph-mds.target \ + ceph-osd@.service \ + ceph-osd.target \ + ceph.target \ + ceph-rbd-mirror@.service \ + ceph-rbd-mirror.target \ + ceph-volume@.service \ + ceph-mgr@.service \ + ceph-mgr.target \ + ceph-crash.service \ + rbdmap.service \ + ceph-immutable-object-cache@.service \ + ceph-immutable-object-cache.target \ +" +OECMAKE_GENERATOR = "Unix Makefiles" + +EXTRA_OECMAKE = "-DWITH_MANPAGE=OFF \ + -DWITH_FUSE=OFF \ + -DWITH_SPDK=OFF \ + -DWITH_LEVELDB=OFF \ + -DWITH_LTTNG=OFF \ + -DWITH_BABELTRACE=OFF \ + -DWITH_TESTS=OFF \ + -DWITH_MGR=OFF \ + -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ + -DWITH_SYSTEM_BOOST=ON \ + -DWITH_SYSTEM_ROCKSDB=ON \ + -DWITH_RDMA=OFF \ + -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \ + -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 \ + -DPython3_EXECUTABLE=${PYTHON} \ + -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \ + -DWITH_REENTRANT_STRSIGNAL=ON \ +" + +export STAGING_DIR_HOST + +do_configure_prepend () { + echo "set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )" >> ${WORKDIR}/toolchain.cmake + echo "set( CMAKE_DESTDIR \"${D}\" )" >> ${WORKDIR}/toolchain.cmake + echo "set( PYTHON_SITEPACKAGES_DIR \"${PYTHON_SITEPACKAGES_DIR}\" )" >> ${WORKDIR}/toolchain.cmake +} + +do_install_append () { + sed -i -e 's:^#!/usr/bin/python$:&3:' \ + -e 's:${WORKDIR}.*python3:${bindir}/python3:' \ + ${D}${bindir}/ceph ${D}${bindir}/ceph-crash \ + ${D}${bindir}/ceph-volume ${D}${bindir}/ceph-volume-systemd + find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::' + install -d ${D}${sysconfdir}/ceph + install -m 644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/ + install -d ${D}${systemd_unitdir} + mv ${D}${libexecdir}/systemd/system ${D}${systemd_unitdir} + mv ${D}${libexecdir}/ceph/ceph-osd-prestart.sh ${D}${libdir}/ceph + mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph + # WITH_FUSE is set to OFF, remove ceph-fuse related units + rm ${D}${systemd_unitdir}/system/ceph-fuse.target ${D}${systemd_unitdir}/system/ceph-fuse@.service +} + +do_install_append_class-target () { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /var/lib/ceph/crash/posted 0755 root root - -" > ${D}${sysconfdir}/tmpfiles.d/ceph-placeholder.conf + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/default/volatiles + echo "d root root 0755 /var/lib/ceph/crash/posted none" > ${D}${sysconfdir}/default/volatiles/99_ceph-placeholder + fi +} + +pkg_postinst_${PN}() { + if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi +} + +FILES_${PN} += "\ + ${libdir}/rados-classes/*.so.* \ + ${libdir}/ceph/compressor/*.so \ + ${libdir}/rados-classes/*.so \ + ${libdir}/ceph/*.so \ +" + +FILES_${PN} += " \ + /etc/tmpfiles.d/ceph-placeholder.conf \ + /etc/default/volatiles/99_ceph-placeholder \ +" + +FILES_${PN}-python = "\ + ${PYTHON_SITEPACKAGES_DIR}/* \ +" +RDEPENDS_${PN} += "\ + python3-core \ + python3-misc \ + python3-modules \ + python3-prettytable \ + ${PN}-python \ + gawk \ +" +COMPATIBLE_HOST = "(x86_64).*" +PACKAGE_BEFORE_PN += "${PN}-python" +INSANE_SKIP_${PN}-python += "ldflags" +INSANE_SKIP_${PN} += "dev-so" +CCACHE_DISABLE = "1" + +CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd" -- cgit v1.2.3-54-g00ecf