aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-extended/ceph/ceph_18.2.2.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-extended/ceph/ceph_18.2.2.bb')
-rw-r--r--recipes-extended/ceph/ceph_18.2.2.bb177
1 files changed, 177 insertions, 0 deletions
diff --git a/recipes-extended/ceph/ceph_18.2.2.bb b/recipes-extended/ceph/ceph_18.2.2.bb
new file mode 100644
index 00000000..e6c44188
--- /dev/null
+++ b/recipes-extended/ceph/ceph_18.2.2.bb
@@ -0,0 +1,177 @@
+SUMMARY = "User space components of the Ceph file system"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only & Apache-2.0 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 \
+ file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING;md5=5351120989d78252e65dc1a2a92e3617 \
+"
+inherit cmake pkgconfig python3native python3-dir systemd useradd
+# 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-fix-host-library-paths-were-used.patch \
+ file://ceph.conf \
+ file://0001-avoid-to_string-error.patch \
+ file://0001-delete-install-layout-deb.patch \
+ file://0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch \
+"
+
+SRC_URI[sha256sum] = "e70bb5246b4a5d7aa78eb548677a05cc21d0d47945ba2937fddc7511134ffb57"
+
+DEPENDS = "boost bzip2 curl cryptsetup expat gperf-native \
+ keyutils libaio libibverbs lua lz4 \
+ nspr nss ninja-native \
+ oath openldap openssl \
+ python3 python3-native python3-cython-native python3-pyyaml-native \
+ rabbitmq-c rocksdb snappy thrift udev \
+ valgrind xfsprogs zlib libgcc zstd re2 \
+"
+
+
+OECMAKE_C_COMPILER = "${@oecmake_map_compiler('CC', d)[0]} --sysroot=${RECIPE_SYSROOT}"
+OECMAKE_CXX_COMPILER = "${@oecmake_map_compiler('CXX', d)[0]} --sysroot=${RECIPE_SYSROOT}"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --user-group --home-dir /var/lib/ceph --shell /sbin/nologin ceph"
+
+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 \
+ cephfs-mirror@.service \
+ cephfs-mirror.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 \
+"
+
+EXTRA_OECMAKE += "-DWITH_MANPAGE=OFF \
+ -DWITH_JAEGER=OFF \
+ -DWITH_SYSTEM_ZSTD=ON \
+ -DWITH_FUSE=OFF \
+ -DWITH_SPDK=OFF \
+ -DWITH_LEVELDB=OFF \
+ -DWITH_LTTNG=OFF \
+ -DWITH_BABELTRACE=OFF \
+ -DWITH_TESTS=OFF \
+ -DWITH_RADOSGW_SELECT_PARQUET=OFF \
+ -DWITH_RADOSGW_ARROW_FLIGHT=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 \
+ -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \
+ -DWITH_REENTRANT_STRSIGNAL=ON \
+ -DWITH_PYTHON3=3.12 \
+ -DPYTHON_DESIRED=3 \
+ -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain.cmake \
+ "
+
+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
+ # echo "set( CMAKE_C_COMPILER_WORKS TRUE)" >> ${WORKDIR}/toolchain.cmake
+ # echo "set( CMAKE_CXX_COMPILER_FORCED TRUE)" >> ${WORKDIR}/toolchain.cmake
+ echo "set( CMAKE_C_COMPILER_FORCED TRUE )" >> ${WORKDIR}/toolchain.cmake
+}
+
+do_compile:prepend() {
+ export BUILD_DOC=1
+}
+
+do_install:prepend() {
+ export BUILD_DOC=1
+}
+
+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}/cephfs-top \
+ ${D}${sbindir}/ceph-volume ${D}${sbindir}/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}/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 \
+ ${libdir}/libcephsqlite.so \
+"
+
+FILES:${PN} += " \
+ /etc/tmpfiles.d/ceph-placeholder.conf \
+ /etc/default/volatiles/99_ceph-placeholder \
+"
+
+FILES:${PN}-dev = " \
+ ${includedir} \
+ ${libdir}/libcephfs.so \
+ ${libdir}/librados*.so \
+ ${libdir}/librbd.so \
+ ${libdir}/librgw.so \
+"
+
+FILES:${PN}-python = "\
+ ${PYTHON_SITEPACKAGES_DIR}/* \
+"
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-misc \
+ python3-modules \
+ python3-prettytable \
+ ${PN}-python \
+ gawk \
+ bash \
+"
+COMPATIBLE_HOST = "(x86_64).*"
+PACKAGES += " \
+ ${PN}-python \
+"
+INSANE_SKIP:${PN}-python += "ldflags buildpaths"
+INSANE_SKIP:${PN} += "dev-so"
+INSANE_SKIP:${PN}-dbg += "buildpaths"
+CCACHE_DISABLE = "1"
+
+CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd"