This updates the Ceph version to 16.2.0 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
Signed-off-by: Saul Wold <[email protected]> --- ...h-fix-build-errors-for-cross-compile.patch | 119 ++++++++++++++---- ...ite-Add-library-soversion-properties.patch | 31 +++++ recipes-extended/ceph/ceph_16.2.0.bb | 22 ++-- 3 files changed, 138 insertions(+), 34 deletions(-) create mode 100644 recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch 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 7764a2b..00c7e5b 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 04b53b669dbd75c9a90bf7f8ae2b47ff96176239 Mon Sep 17 00:00:00 2001 +From 2a3ccc8079040a7e783b8a9091618878e7cf0719 Mon Sep 17 00:00:00 2001 From: Dengke Du <[email protected]> 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,16 +19,17 @@ Adjust context for v14.2.3 Signed-off-by: He Zhe <[email protected]> Signed-off-by: Sakib Sajal <[email protected]> +Signed-off-by: Saul Wold <[email protected]> --- cmake/modules/Distutils.cmake | 25 +++++-------------------- cmake/modules/FindRocksDB.cmake | 4 ++-- src/compressor/zstd/CMakeLists.txt | 2 +- - src/pybind/cephfs/setup.py | 1 - - src/pybind/rados/setup.py | 1 - - src/pybind/rbd/setup.py | 1 - - src/pybind/rgw/setup.py | 1 - - 7 files changed, 8 insertions(+), 27 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 ff01aaf81..18656c5a5 100644 @@ -105,50 +111,111 @@ index b53b0d944..4955711a9 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 c3d40df05..87cdeb473 100755 +index c3d40df05..24c26c3ed 100755 --- a/src/pybind/cephfs/setup.py +++ b/src/pybind/cephfs/setup.py -@@ -137,7 +137,6 @@ def check_sanity(): +@@ -137,19 +137,11 @@ def check_sanity(): finally: shutil.rmtree(tmp_dir) - - if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: - ext_args = {} - cython_constants = dict(BUILD_DOC=True) +-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(): +- 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: diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py -index 0d1047825..feafb605d 100755 +index 0d1047825..cff85a063 100755 --- a/src/pybind/rados/setup.py +++ b/src/pybind/rados/setup.py -@@ -131,7 +131,6 @@ def check_sanity(): +@@ -131,15 +131,8 @@ def check_sanity(): finally: shutil.rmtree(tmp_dir) - - if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: - ext_args = {} - cython_constants = dict(BUILD_DOC=True) +-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: +- ext_args = {} +- cython_constants = dict(BUILD_DOC=True) +-elif check_sanity(): +- 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: diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py -index 73ea4555f..b9c6a78d2 100755 +index 73ea4555f..e7f57ddb5 100755 --- a/src/pybind/rbd/setup.py +++ b/src/pybind/rbd/setup.py -@@ -135,7 +135,6 @@ def check_sanity(): +@@ -135,19 +135,11 @@ def check_sanity(): finally: shutil.rmtree(tmp_dir) - - if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: - ext_args = {} - cython_constants = dict(BUILD_DOC=True) +-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(): +- 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: diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py -index 663604e8f..695038c0e 100755 +index 663604e8f..489c9ba1f 100755 --- a/src/pybind/rgw/setup.py +++ b/src/pybind/rgw/setup.py -@@ -135,7 +135,6 @@ def check_sanity(): +@@ -135,19 +135,11 @@ def check_sanity(): finally: shutil.rmtree(tmp_dir) - - if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ: - ext_args = {} - cython_constants = dict(BUILD_DOC=True) +-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(): +- 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: 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 0000000..2c9cd11 --- /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 <[email protected]> +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 <[email protected]> +--- + 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_16.2.0.bb b/recipes-extended/ceph/ceph_16.2.0.bb index 806a03f..d55e602 100644 --- a/recipes-extended/ceph/ceph_16.2.0.bb +++ b/recipes-extended/ceph/ceph_16.2.0.bb @@ -58,7 +58,9 @@ LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING;md5=d140fb1fedb53047f0d0830883e7af9f \ " -inherit cmake python3native python3-dir systemd +#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. @@ -66,14 +68,9 @@ 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[md5sum] = "5a949b91199efe130bfe2e57f200eacd" -#SRC_URI[sha256sum] = "ea7fa2be68b3570c5c3aa02774dca27de20b6f20a8498f65e5c4ef375a209ace" -#SRC_URI[sha1sum] = "0503649d7c7d9268cb61b03bbe839106988f87d7" -#SRC_URI[sha384sum] = "57208c126ea8e640c3979073fd64ce58606f17b4b7ed2e005b0792bdfd51b13391af325658d0f68f961f94175d93e891" -#SRC_URI[sha512sum] = "1f55b0a13bf06df782831d0c9d5f8617c22442ab97fb186e6ccb08183e02bf1756caf8633fa6b1cf156c3fb7b1bdff90a60a1249adfad0b9450036e2329bf8ff" -SRC_URI[sha256sum] = "dfeee542536607220dc2ca49f47c41127c8562dea234a886625e0f7ee1524904" SRC_URI[sha1sum] = "f8cc85e4cc519d7e469a0c3c8327bd1675f0b287" SRC_URI[sha384sum] = "29a75a733e5ae8039a5ad603558a9707e36b8c337419039ee97351cdbad57875fa57a365fcde29124cee72734608e245" SRC_URI[sha512sum] = "aeb9a91c33221c64ea24603dc88cab346bf0abdf0d41ff85c2e1cf134130737ec1fab1246be0a2fa3af8a655ae1dabb69688855f229f54438e60cb8098175b8e" @@ -149,6 +146,13 @@ do_install_append () { 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/[email protected] + + for i in ${D}${bindir}/* ${D}${sbindir}/*; do + if [ -f "$i" ]; then + sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${DISTUTILS_PYTHON}:g $i + sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i + fi + done } do_install_append_class-target () { @@ -173,7 +177,8 @@ FILES_${PN} += "\ ${libdir}/rados-classes/*.so.* \ ${libdir}/ceph/compressor/*.so \ ${libdir}/rados-classes/*.so \ - ${libdir}/ceph/*.so \ + ${libdir}/ceph/*.so \ + ${libdir}/libcephsqlite.so \ " FILES_${PN} += " \ @@ -190,6 +195,7 @@ RDEPENDS_${PN} += "\ python3-modules \ python3-prettytable \ ${PN}-python \ + gawk \ " COMPATIBLE_HOST = "(x86_64).*" PACKAGES += " \ -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#6437): https://lists.yoctoproject.org/g/meta-virtualization/message/6437 Mute This Topic: https://lists.yoctoproject.org/mt/82294036/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
