summaryrefslogtreecommitdiffstats
path: root/recipes-extended/ceph/ceph_18.2.0.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-extended/ceph/ceph_18.2.0.bb')
-rw-r--r--recipes-extended/ceph/ceph_18.2.0.bb79
1 files changed, 42 insertions, 37 deletions
diff --git a/recipes-extended/ceph/ceph_18.2.0.bb b/recipes-extended/ceph/ceph_18.2.0.bb
index 35188106..3dd75a51 100644
--- a/recipes-extended/ceph/ceph_18.2.0.bb
+++ b/recipes-extended/ceph/ceph_18.2.0.bb
@@ -4,15 +4,16 @@ LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24
4 file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 4 file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://COPYING;md5=5351120989d78252e65dc1a2a92e3617 \ 5 file://COPYING;md5=5351120989d78252e65dc1a2a92e3617 \
6" 6"
7inherit cmake pkgconfig python3native python3-dir systemd 7inherit cmake pkgconfig python3native python3-dir systemd useradd
8# Disable python pybind support for ceph temporary, when corss compiling pybind, 8# Disable python pybind support for ceph temporary, when corss compiling pybind,
9# pybind mix cmake and python setup environment, would case a lot of errors. 9# pybind mix cmake and python setup environment, would case a lot of errors.
10 10
11SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \ 11SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \
12 file://0001-ceph-fix-build-errors-for-cross-compile.patch \
13 file://0001-fix-host-library-paths-were-used.patch \ 12 file://0001-fix-host-library-paths-were-used.patch \
14 file://ceph.conf \ 13 file://ceph.conf \
15 file://0001-cmake-add-support-for-python3.11.patch \ 14 file://0001-avoid-to_string-error.patch \
15 file://0001-delete-install-layout-deb.patch \
16 file://0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch \
16" 17"
17 18
18SRC_URI[sha256sum] = "495b63e1146c604018ae0cb29bf769b5d6235e3c95849c43513baf12bba1364d" 19SRC_URI[sha256sum] = "495b63e1146c604018ae0cb29bf769b5d6235e3c95849c43513baf12bba1364d"
@@ -23,8 +24,16 @@ DEPENDS = "boost bzip2 curl cryptsetup expat gperf-native \
23 oath openldap openssl \ 24 oath openldap openssl \
24 python3 python3-native python3-cython-native python3-pyyaml-native \ 25 python3 python3-native python3-cython-native python3-pyyaml-native \
25 rabbitmq-c rocksdb snappy thrift udev \ 26 rabbitmq-c rocksdb snappy thrift udev \
26 valgrind xfsprogs zlib libgcc \ 27 valgrind xfsprogs zlib libgcc zstd re2 \
27" 28"
29
30
31OECMAKE_C_COMPILER = "${@oecmake_map_compiler('CC', d)[0]} --sysroot=${RECIPE_SYSROOT}"
32OECMAKE_CXX_COMPILER = "${@oecmake_map_compiler('CXX', d)[0]} --sysroot=${RECIPE_SYSROOT}"
33
34USERADD_PACKAGES = "${PN}"
35USERADD_PARAM:${PN} = "--system --user-group --home-dir /var/lib/ceph --shell /sbin/nologin ceph"
36
28SYSTEMD_SERVICE:${PN} = " \ 37SYSTEMD_SERVICE:${PN} = " \
29 ceph-radosgw@.service \ 38 ceph-radosgw@.service \
30 ceph-radosgw.target \ 39 ceph-radosgw.target \
@@ -34,6 +43,8 @@ SYSTEMD_SERVICE:${PN} = " \
34 ceph-mds.target \ 43 ceph-mds.target \
35 ceph-osd@.service \ 44 ceph-osd@.service \
36 ceph-osd.target \ 45 ceph-osd.target \
46 cephfs-mirror@.service \
47 cephfs-mirror.target \
37 ceph.target \ 48 ceph.target \
38 ceph-rbd-mirror@.service \ 49 ceph-rbd-mirror@.service \
39 ceph-rbd-mirror.target \ 50 ceph-rbd-mirror.target \
@@ -45,15 +56,18 @@ SYSTEMD_SERVICE:${PN} = " \
45 ceph-immutable-object-cache@.service \ 56 ceph-immutable-object-cache@.service \
46 ceph-immutable-object-cache.target \ 57 ceph-immutable-object-cache.target \
47" 58"
48OECMAKE_GENERATOR = "Unix Makefiles"
49 59
50EXTRA_OECMAKE = "-DWITH_MANPAGE=OFF \ 60EXTRA_OECMAKE += "-DWITH_MANPAGE=OFF \
61 -DWITH_JAEGER=OFF \
62 -DWITH_SYSTEM_ZSTD=ON \
51 -DWITH_FUSE=OFF \ 63 -DWITH_FUSE=OFF \
52 -DWITH_SPDK=OFF \ 64 -DWITH_SPDK=OFF \
53 -DWITH_LEVELDB=OFF \ 65 -DWITH_LEVELDB=OFF \
54 -DWITH_LTTNG=OFF \ 66 -DWITH_LTTNG=OFF \
55 -DWITH_BABELTRACE=OFF \ 67 -DWITH_BABELTRACE=OFF \
56 -DWITH_TESTS=OFF \ 68 -DWITH_TESTS=OFF \
69 -DWITH_RADOSGW_SELECT_PARQUET=OFF \
70 -DWITH_RADOSGW_ARROW_FLIGHT=OFF \
57 -DWITH_MGR=OFF \ 71 -DWITH_MGR=OFF \
58 -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ 72 -DWITH_MGR_DASHBOARD_FRONTEND=OFF \
59 -DWITH_SYSTEM_BOOST=ON \ 73 -DWITH_SYSTEM_BOOST=ON \
@@ -67,34 +81,6 @@ EXTRA_OECMAKE = "-DWITH_MANPAGE=OFF \
67 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain.cmake \ 81 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain.cmake \
68 " 82 "
69 83
70EXTRA_OECMAKE += "-DThrift_INCLUDE_DIR:PATH=${STAGING_INCDIR} \
71 -DThrift_LIBRARIES:PATH=${STAGING_LIBDIR} \
72 "
73
74# retired options:
75# -DPython3_VERSION=${PYTHON_BASEVERSION}
76# -DPython3_USE_STATIC_LIBS=FALSE
77# -DPython3_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}
78# -DPython3_LIBRARY:PATH=${PYTHON_LIBRARY}
79# -DPython3_ROOT_DIR:PATH=${PYTHON_SITEPACKAGES_DIR}
80# -DPython3_EXECUTABLE:PATH="${PYTHON}"
81
82CXXFLAGS += "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}"
83CFLAGS += "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}"
84
85export STAGING_DIR_HOST
86
87do_compile:prepend() {
88 cmake_runcmake_build --target legacy-option-headers
89}
90
91# do_compile() {
92# ninja -v ${PARALLEL_MAKE}
93# }
94do_compile() {
95 cmake_runcmake_build --target all
96}
97
98do_configure:prepend () { 84do_configure:prepend () {
99 echo "set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )" >> ${WORKDIR}/toolchain.cmake 85 echo "set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )" >> ${WORKDIR}/toolchain.cmake
100 echo "set( CMAKE_DESTDIR \"${D}\" )" >> ${WORKDIR}/toolchain.cmake 86 echo "set( CMAKE_DESTDIR \"${D}\" )" >> ${WORKDIR}/toolchain.cmake
@@ -104,16 +90,24 @@ do_configure:prepend () {
104 echo "set( CMAKE_C_COMPILER_FORCED TRUE )" >> ${WORKDIR}/toolchain.cmake 90 echo "set( CMAKE_C_COMPILER_FORCED TRUE )" >> ${WORKDIR}/toolchain.cmake
105} 91}
106 92
93do_compile:prepend() {
94 export BUILD_DOC=1
95}
96
97do_install:prepend() {
98 export BUILD_DOC=1
99}
100
107do_install:append () { 101do_install:append () {
108 sed -i -e 's:^#!/usr/bin/python$:&3:' \ 102 sed -i -e 's:^#!/usr/bin/python$:&3:' \
109 -e 's:${WORKDIR}.*python3:${bindir}/python3:' \ 103 -e 's:${WORKDIR}.*python3:${bindir}/python3:' \
110 ${D}${bindir}/ceph ${D}${bindir}/ceph-crash \ 104 ${D}${bindir}/ceph ${D}${bindir}/ceph-crash \
111 ${D}${bindir}/ceph-volume ${D}${bindir}/ceph-volume-systemd 105 ${D}${bindir}/cephfs-top \
106 ${D}${sbindir}/ceph-volume ${D}${sbindir}/ceph-volume-systemd
112 find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::' 107 find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::'
113 install -d ${D}${sysconfdir}/ceph 108 install -d ${D}${sysconfdir}/ceph
114 install -m 644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/ 109 install -m 644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/
115 install -d ${D}${systemd_unitdir} 110 install -d ${D}${systemd_unitdir}
116 mv ${D}${libexecdir}/systemd/system ${D}${systemd_unitdir}
117 mv ${D}${libexecdir}/ceph/ceph-osd-prestart.sh ${D}${libdir}/ceph 111 mv ${D}${libexecdir}/ceph/ceph-osd-prestart.sh ${D}${libdir}/ceph
118 mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph 112 mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph
119 # WITH_FUSE is set to OFF, remove ceph-fuse related units 113 # WITH_FUSE is set to OFF, remove ceph-fuse related units
@@ -143,6 +137,7 @@ FILES:${PN} += "\
143 ${libdir}/ceph/compressor/*.so \ 137 ${libdir}/ceph/compressor/*.so \
144 ${libdir}/rados-classes/*.so \ 138 ${libdir}/rados-classes/*.so \
145 ${libdir}/ceph/*.so \ 139 ${libdir}/ceph/*.so \
140 ${libdir}/libcephsqlite.so \
146" 141"
147 142
148FILES:${PN} += " \ 143FILES:${PN} += " \
@@ -150,6 +145,14 @@ FILES:${PN} += " \
150 /etc/default/volatiles/99_ceph-placeholder \ 145 /etc/default/volatiles/99_ceph-placeholder \
151" 146"
152 147
148FILES:${PN}-dev = " \
149 ${includedir} \
150 ${libdir}/libcephfs.so \
151 ${libdir}/librados*.so \
152 ${libdir}/librbd.so \
153 ${libdir}/librgw.so \
154"
155
153FILES:${PN}-python = "\ 156FILES:${PN}-python = "\
154 ${PYTHON_SITEPACKAGES_DIR}/* \ 157 ${PYTHON_SITEPACKAGES_DIR}/* \
155" 158"
@@ -160,13 +163,15 @@ RDEPENDS:${PN} += "\
160 python3-prettytable \ 163 python3-prettytable \
161 ${PN}-python \ 164 ${PN}-python \
162 gawk \ 165 gawk \
166 bash \
163" 167"
164COMPATIBLE_HOST = "(x86_64).*" 168COMPATIBLE_HOST = "(x86_64).*"
165PACKAGES += " \ 169PACKAGES += " \
166 ${PN}-python \ 170 ${PN}-python \
167" 171"
168INSANE_SKIP:${PN}-python += "ldflags" 172INSANE_SKIP:${PN}-python += "ldflags buildpaths"
169INSANE_SKIP:${PN} += "dev-so" 173INSANE_SKIP:${PN} += "dev-so"
174INSANE_SKIP:${PN}-dbg += "buildpaths"
170CCACHE_DISABLE = "1" 175CCACHE_DISABLE = "1"
171 176
172CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd" 177CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd"