diff options
Diffstat (limited to 'recipes-extended/ceph/ceph_git.bb')
-rw-r--r-- | recipes-extended/ceph/ceph_git.bb | 196 |
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 @@ | |||
1 | SUMMARY = "User space components of the Ceph file system" | ||
2 | LICENSE = "LGPL-2.1-only & GPL-2.0-only & Apache-2.0 & MIT" | ||
3 | LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 \ | ||
4 | file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | ||
5 | file://COPYING;md5=bf502a28c9b8d6430c8952a583a2c896 \ | ||
6 | " | ||
7 | inherit 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 | |||
11 | SRC_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 | |||
21 | SRCREV = "a53e858fd7cc6fd8c04f37d503ce9ed7080f2da6" | ||
22 | PV = "20.0.0+git" | ||
23 | |||
24 | S = "${WORKDIR}/git" | ||
25 | |||
26 | DEPENDS = "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 | |||
37 | OECMAKE_C_COMPILER = "${@oecmake_map_compiler('CC', d)[0]} --sysroot=${RECIPE_SYSROOT}" | ||
38 | OECMAKE_CXX_COMPILER = "${@oecmake_map_compiler('CXX', d)[0]} --sysroot=${RECIPE_SYSROOT}" | ||
39 | |||
40 | USERADD_PACKAGES = "${PN}" | ||
41 | USERADD_PARAM:${PN} = "--system --user-group --home-dir /var/lib/ceph --shell /sbin/nologin ceph" | ||
42 | |||
43 | SYSTEMD_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 | |||
67 | EXTRA_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 | |||
95 | do_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 | |||
110 | do_compile:prepend() { | ||
111 | export BUILD_DOC=1 | ||
112 | } | ||
113 | |||
114 | do_install:prepend() { | ||
115 | export BUILD_DOC=1 | ||
116 | } | ||
117 | |||
118 | do_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 | |||
134 | do_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 | |||
146 | pkg_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 | |||
152 | FILES:${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 | |||
161 | FILES:${PN} += " \ | ||
162 | /etc/tmpfiles.d/ceph-placeholder.conf \ | ||
163 | /etc/default/volatiles/99_ceph-placeholder \ | ||
164 | " | ||
165 | |||
166 | FILES:${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 | |||
175 | FILES:${PN}-python = "\ | ||
176 | ${PYTHON_SITEPACKAGES_DIR}/* \ | ||
177 | " | ||
178 | RDEPENDS:${PN} += "\ | ||
179 | python3-core \ | ||
180 | python3-misc \ | ||
181 | python3-modules \ | ||
182 | python3-prettytable \ | ||
183 | ${PN}-python \ | ||
184 | gawk \ | ||
185 | bash \ | ||
186 | " | ||
187 | COMPATIBLE_HOST = "(x86_64).*" | ||
188 | PACKAGES += " \ | ||
189 | ${PN}-python \ | ||
190 | " | ||
191 | INSANE_SKIP:${PN}-python += "ldflags buildpaths" | ||
192 | INSANE_SKIP:${PN} += "dev-so" | ||
193 | INSANE_SKIP:${PN}-dbg += "buildpaths" | ||
194 | CCACHE_DISABLE = "1" | ||
195 | |||
196 | CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd" | ||