summaryrefslogtreecommitdiffstats
path: root/recipes-extended/ceph/ceph_git.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-extended/ceph/ceph_git.bb')
-rw-r--r--recipes-extended/ceph/ceph_git.bb196
1 files changed, 196 insertions, 0 deletions
diff --git a/recipes-extended/ceph/ceph_git.bb b/recipes-extended/ceph/ceph_git.bb
new file mode 100644
index 00000000..2eaa335a
--- /dev/null
+++ b/recipes-extended/ceph/ceph_git.bb
@@ -0,0 +1,196 @@
1SUMMARY = "User space components of the Ceph file system"
2LICENSE = "LGPL-2.1-only & GPL-2.0-only & Apache-2.0 & MIT"
3LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 \
4 file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://COPYING;md5=bf502a28c9b8d6430c8952a583a2c896 \
6"
7inherit cmake pkgconfig python3native python3-dir systemd useradd
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.
10
11SRC_URI = "gitsm://github.com/ceph/ceph.git;protocol=https;branch=main \
12 file://0001-fix-host-library-paths-were-used.patch \
13 file://ceph.conf \
14 file://0001-delete-install-layout-deb.patch \
15 file://0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch \
16 file://0001-cepth-node-proxy-specify-entrypoint-executable.patch \
17 file://0001-rados-setup.py-allow-incompatible-pointer-types.patch \
18 file://0001-rgw-setup.py-allow-incompatible-pointer-types.patch \
19 "
20
21SRCREV = "a53e858fd7cc6fd8c04f37d503ce9ed7080f2da6"
22PV = "20.0.0+git"
23
24S = "${WORKDIR}/git"
25
26DEPENDS = "boost bzip2 curl cryptsetup expat gperf-native \
27 keyutils libaio libibverbs lua lz4 \
28 nspr nss ninja-native \
29 oath openldap openssl \
30 python3 python3-native python3-cython-native python3-pyyaml-native \
31 rabbitmq-c snappy thrift udev \
32 valgrind xfsprogs zlib libgcc zstd re2 \
33 lmdb autoconf-native automake-native \
34"
35
36
37OECMAKE_C_COMPILER = "${@oecmake_map_compiler('CC', d)[0]} --sysroot=${RECIPE_SYSROOT}"
38OECMAKE_CXX_COMPILER = "${@oecmake_map_compiler('CXX', d)[0]} --sysroot=${RECIPE_SYSROOT}"
39
40USERADD_PACKAGES = "${PN}"
41USERADD_PARAM:${PN} = "--system --user-group --home-dir /var/lib/ceph --shell /sbin/nologin ceph"
42
43SYSTEMD_SERVICE:${PN} = " \
44 ceph-radosgw@.service \
45 ceph-radosgw.target \
46 ceph-mon@.service \
47 ceph-mon.target \
48 ceph-mds@.service \
49 ceph-mds.target \
50 ceph-osd@.service \
51 ceph-osd.target \
52 cephfs-mirror@.service \
53 cephfs-mirror.target \
54 ceph.target \
55 ceph-rbd-mirror@.service \
56 ceph-rbd-mirror.target \
57 ceph-volume@.service \
58 ceph-mgr@.service \
59 ceph-mgr.target \
60 ceph-crash.service \
61 ceph-exporter.service \
62 rbdmap.service \
63 ceph-immutable-object-cache@.service \
64 ceph-immutable-object-cache.target \
65"
66
67EXTRA_OECMAKE += "-DWITH_MANPAGE=OFF \
68 -DWITH_JAEGER=OFF \
69 -DWITH_SYSTEM_ZSTD=ON \
70 -DWITH_FUSE=OFF \
71 -DWITH_SPDK=OFF \
72 -DWITH_LEVELDB=OFF \
73 -DWITH_LTTNG=OFF \
74 -DWITH_BABELTRACE=OFF \
75 -DWITH_TESTS=OFF \
76 -DWITH_RADOSGW_SELECT_PARQUET=OFF \
77 -DWITH_RADOSGW_ARROW_FLIGHT=OFF \
78 -DWITH_MGR=OFF \
79 -DWITH_MGR_DASHBOARD_FRONTEND=OFF \
80 -DWITH_SYSTEM_BOOST=ON \
81 -DWITH_RDMA=OFF \
82 -DWITH_RBD=OFF \
83 -DWITH_KRBD=OFF \
84 -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
85 -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \
86 -DWITH_REENTRANT_STRSIGNAL=ON \
87 -DWITH_PYTHON3=3.13 \
88 -DPYTHON_DESIRED=3 \
89 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain.cmake \
90 -DCEPHADM_BUNDLED_DEPENDENCIES=none \
91 "
92
93# -DWITH_SYSTEM_ROCKSDB=ON
94
95do_configure:prepend () {
96 echo "set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )" >> ${WORKDIR}/toolchain.cmake
97 echo "set( CMAKE_DESTDIR \"${D}\" )" >> ${WORKDIR}/toolchain.cmake
98 echo "set( PYTHON_SITEPACKAGES_DIR \"${PYTHON_SITEPACKAGES_DIR}\" )" >> ${WORKDIR}/toolchain.cmake
99 # echo "set( CMAKE_C_COMPILER_WORKS TRUE)" >> ${WORKDIR}/toolchain.cmake
100 # echo "set( CMAKE_CXX_COMPILER_FORCED TRUE)" >> ${WORKDIR}/toolchain.cmake
101 echo "set( CMAKE_C_COMPILER_FORCED TRUE )" >> ${WORKDIR}/toolchain.cmake
102
103 echo "set( WITH_QATDRV OFF )" >> ${WORKDIR}/toolchain.cmake
104 echo "set( WITH_QATZIP OFF )" >> ${WORKDIR}/toolchain.cmake
105 echo "set( WITH_LIBURING OFF )" >> ${WORKDIR}/toolchain.cmake
106 echo "set( WITH_QATLIB OFF )" >> ${WORKDIR}/toolchain.cmake
107 # echo "set( WITH_SYSTEM_ROCKSDB TRUE )" >> ${WORKDIR}/toolchain.cmake
108}
109
110do_compile:prepend() {
111 export BUILD_DOC=1
112}
113
114do_install:prepend() {
115 export BUILD_DOC=1
116}
117
118do_install:append () {
119 sed -i -e 's:^#!/usr/bin/python$:&3:' \
120 -e 's:${WORKDIR}.*python3:${bindir}/python3:' \
121 ${D}${bindir}/ceph ${D}${bindir}/ceph-crash \
122 ${D}${bindir}/cephfs-top \
123 ${D}${sbindir}/ceph-volume ${D}${sbindir}/ceph-volume-systemd
124 find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::'
125 install -d ${D}${sysconfdir}/ceph
126 install -m 644 ${UNPACKDIR}/ceph.conf ${D}${sysconfdir}/ceph/
127 install -d ${D}${systemd_unitdir}
128 mv ${D}${libexecdir}/ceph/ceph-osd-prestart.sh ${D}${libdir}/ceph
129 mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph
130 # WITH_FUSE is set to OFF, remove ceph-fuse related units
131 rm ${D}${systemd_unitdir}/system/ceph-fuse.target ${D}${systemd_unitdir}/system/ceph-fuse@.service
132}
133
134do_install:append:class-target () {
135 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
136 install -d ${D}${sysconfdir}/tmpfiles.d
137 echo "d /var/lib/ceph/crash/posted 0755 root root - -" > ${D}${sysconfdir}/tmpfiles.d/ceph-placeholder.conf
138 fi
139
140 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
141 install -d ${D}${sysconfdir}/default/volatiles
142 echo "d root root 0755 /var/lib/ceph/crash/posted none" > ${D}${sysconfdir}/default/volatiles/99_ceph-placeholder
143 fi
144}
145
146pkg_postinst:${PN}() {
147 if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then
148 ${sysconfdir}/init.d/populate-volatile.sh update
149 fi
150}
151
152FILES:${PN} += "\
153 ${libdir}/rados-classes/*.so.* \
154 ${libdir}/ceph/compressor/*.so \
155 ${libdir}/rados-classes/*.so \
156 ${libdir}/ceph/*.so \
157 ${libdir}/*.so \
158 ${libdir}/libcephsqlite.so \
159"
160
161FILES:${PN} += " \
162 /etc/tmpfiles.d/ceph-placeholder.conf \
163 /etc/default/volatiles/99_ceph-placeholder \
164"
165
166FILES:${PN}-dev = " \
167 ${includedir} \
168 ${libdir}/libcephfs.so \
169 ${libdir}/librados*.so \
170 ${libdir}/librbd.so \
171 ${libdir}/librgw.so \
172 ${libdir}/pkgconfig/cephfs.pc \
173"
174
175FILES:${PN}-python = "\
176 ${PYTHON_SITEPACKAGES_DIR}/* \
177"
178RDEPENDS:${PN} += "\
179 python3-core \
180 python3-misc \
181 python3-modules \
182 python3-prettytable \
183 ${PN}-python \
184 gawk \
185 bash \
186"
187COMPATIBLE_HOST = "(x86_64).*"
188PACKAGES += " \
189 ${PN}-python \
190"
191INSANE_SKIP:${PN}-python += "ldflags buildpaths"
192INSANE_SKIP:${PN} += "dev-so"
193INSANE_SKIP:${PN}-dbg += "buildpaths"
194CCACHE_DISABLE = "1"
195
196CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd"