1 FILESEXTRAPATHS_prepend := "${THISDIR}/${BP}:${THISDIR}/files:"
3 inherit python3native python3-dir
5 DISTRO_FEATURES_BACKFILL_CONSIDERED_remove = "sysvinit"
8 file://0001-ceph-rebase-on-stx.3.0-and-warrior.patch \
10 file://ceph-init-wrapper.sh \
11 file://ceph-preshutdown.sh \
13 file://mgr-restful-plugin.py \
14 file://starlingx-docker-override.conf \
15 file://ceph.conf.pmon \
16 file://ceph-manage-journal.py \
17 file://ceph-radosgw.service \
19 file://mgr-restful-plugin.service \
20 file://rados.runtime.decode.error.patch \
22 DEPENDS = "boost rdma-core bzip2 curl expat gperf-native \
24 nspr nss oath openldap openssl \
25 python3 python3-cython-native rocksdb snappy udev \
26 python-cython-native valgrind xfsprogs zlib \
29 RDEPENDS_${PN} += " rdma-core python3-core python3 xfsprogs-mkfs python3-prettytable"
32 EXTRA_OECMAKE = "-DWITH_MANPAGE=OFF \
37 -DWITH_BABELTRACE=OFF \
42 -DMGR_PYTHON_VERSION=3 \
43 -DWITH_MGR_DASHBOARD_FRONTEND=OFF \
44 -DWITH_SYSTEM_BOOST=ON \
45 -DWITH_SYSTEM_ROCKSDB=ON \
47 -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
50 # TODO: Should be fixed in either boost package or CMake files.
51 #do_configure_prepend() {
52 # ln -f -s ${WORKDIR}/recipe-sysroot/usr/lib/libboost_python35.so \
53 # ${WORKDIR}/recipe-sysroot/usr/lib/libboost_python.so
56 do_install_append () {
57 install -d ${D}${sysconfdir}/ceph
58 install -m 0644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/
59 install -m 0644 ${WORKDIR}/ceph-radosgw.service ${D}${systemd_system_unitdir}/ceph-radosgw@.service
60 install -m 0644 ${WORKDIR}/ceph.service ${D}${systemd_system_unitdir}
61 install -m 0644 ${WORKDIR}/mgr-restful-plugin.service ${D}${systemd_system_unitdir}
63 install -m 0700 ${WORKDIR}/ceph-manage-journal.py ${D}${sbindir}/ceph-manage-journal
64 install -Dm 0750 ${WORKDIR}/mgr-restful-plugin.py ${D}${sysconfdir}/rc.d/init.d/mgr-restful-plugin
65 install -Dm 0750 ${WORKDIR}/mgr-restful-plugin.py ${D}${sysconfdir}/init.d/mgr-restful-plugin
66 install -m 0750 ${WORKDIR}/ceph.conf.pmon ${D}${sysconfdir}/ceph/
68 install -d -m 0750 ${D}${sysconfdir}/services.d/controller
69 install -d -m 0750 ${D}${sysconfdir}/services.d/storage
70 install -d -m 0750 ${D}${sysconfdir}/services.d/worker
72 install -m 0750 ${WORKDIR}/ceph.sh ${D}${sysconfdir}/services.d/controller
73 install -m 0750 ${WORKDIR}/ceph.sh ${D}${sysconfdir}/services.d/storage
74 install -m 0750 ${WORKDIR}/ceph.sh ${D}${sysconfdir}/services.d/worker
76 install -Dm 0750 ${WORKDIR}/ceph-init-wrapper.sh ${D}${sysconfdir}/rc.d/init.d/ceph-init-wrapper
77 install -Dm 0750 ${WORKDIR}/ceph-init-wrapper.sh ${D}${sysconfdir}/init.d/ceph-init-wrapper
78 sed -i -e 's|/usr/lib64|${libdir}|' ${D}${sysconfdir}/rc.d/init.d/ceph-init-wrapper ${D}${sysconfdir}/init.d/ceph-init-wrapper
80 install -m 0700 ${WORKDIR}/ceph-preshutdown.sh ${D}${sbindir}/ceph-preshutdown.sh
82 install -Dm 0644 ${WORKDIR}/starlingx-docker-override.conf ${D}${systemd_system_unitdir}/docker.service.d/starlingx-docker-override.conf
84 install -m 0644 -D ${S}/src/etc-rbdmap ${D}${sysconfdir}/ceph/rbdmap
85 install -m 0644 -D ${S}/etc/sysconfig/ceph ${D}${sysconfdir}/sysconfig/ceph
86 install -m 0644 -D ${S}/src/logrotate.conf ${D}${sysconfdir}/logrotate.d/ceph
88 install -m 0644 -D ${S}/COPYING ${D}${docdir}/ceph/COPYING
89 install -m 0644 -D ${S}/etc/sysctl/90-ceph-osd.conf ${D}${libdir}/sysctl.d/90-ceph-osd.conf
90 install -m 0644 -D ${S}/udev/50-rbd.rules ${D}${libdir}/udev/rules.d/50-rbd.rules
91 # install -m 0644 -D ${S}/udev/60-ceph-by-parttypeuuid.rules ${D}${libdir}/udev/rules.d/60-ceph-by-parttypeuuid.rules
93 mkdir -p ${D}${localstatedir}/ceph
94 mkdir -p ${D}${localstatedir}/log/ceph
95 mkdir -p ${D}${localstatedir}/lib/ceph/tmp
96 mkdir -p ${D}${localstatedir}/lib/ceph/mon
97 mkdir -p ${D}${localstatedir}/lib/ceph/osd
98 mkdir -p ${D}${localstatedir}/lib/ceph/mds
99 mkdir -p ${D}${localstatedir}/lib/ceph/mgr
100 mkdir -p ${D}${localstatedir}/lib/ceph/radosgw
101 mkdir -p ${D}${localstatedir}/lib/ceph/bootstrap-osd
102 mkdir -p ${D}${localstatedir}/lib/ceph/bootstrap-mds
103 mkdir -p ${D}${localstatedir}/lib/ceph/bootstrap-rgw
104 mkdir -p ${D}${localstatedir}/lib/ceph/bootstrap-mgr
105 mkdir -p ${D}${localstatedir}/lib/ceph/bootstrap-rbd
106 mkdir -p ${D}${localstatedir}/lib/ceph/crash/posted
108 install -m 0755 -d ${D}/${sysconfdir}/tmpfiles.d
109 echo "d ${localstatedir}/run/ceph 0755 ceph ceph -" >> ${D}/${sysconfdir}/tmpfiles.d/ceph.conf
111 install -m 0755 ${D}${libdir}/ceph/ceph_common.sh ${D}${libexecdir}/ceph
113 install -m 0750 -D ${S}/src/init-radosgw ${D}${sysconfdir}/rc.d/init.d/ceph-radosgw
114 install -m 0750 -D ${S}/src/init-radosgw ${D}${sysconfdir}/init.d/ceph-radosgw
115 sed -i '/### END INIT INFO/a SYSTEMCTL_SKIP_REDIRECT=1' ${D}${sysconfdir}/rc.d/init.d/ceph-radosgw
116 sed -i '/### END INIT INFO/a SYSTEMCTL_SKIP_REDIRECT=1' ${D}${sysconfdir}/init.d/ceph-radosgw
117 install -m 0750 -D ${S}/src/init-rbdmap ${D}${sysconfdir}/rc.d/init.d/rbdmap
118 install -m 0750 -D ${S}/src/init-rbdmap ${D}${sysconfdir}/init.d/rbdmap
119 install -m 0750 -D ${B}/bin/init-ceph ${D}${sysconfdir}/rc.d/init.d/ceph
120 install -m 0750 -D ${B}/bin/init-ceph ${D}${sysconfdir}/init.d/ceph
121 install -d -m 0750 ${D}${localstatedir}/log/radosgw
123 sed -i -e 's:${WORKDIR}.*python3:${bindir}/python3:' ${D}${bindir}/ceph
124 # sed -i -e 's:${WORKDIR}.*python3:${bindir}/python3:' ${D}${bindir}/ceph-disk
125 # sed -i -e 's:${WORKDIR}.*python3:${bindir}/python3:' ${D}${bindir}/ceph-detect-init
127 sed -i -e 's:${WORKDIR}.*python3:${bindir}/python3:' ${D}${bindir}/ceph-crash
128 sed -i -e 's:${WORKDIR}.*python3:${bindir}/python3:' ${D}${bindir}/ceph-volume
129 sed -i -e 's:${WORKDIR}.*python3:${bindir}/python3:' ${D}${bindir}/ceph-volume-systemd
130 #sed -i -e '1s:python$:python3:' ${D}${bindir}/ceph-volume
131 #sed -i -e '1s:python$:python3:' ${D}${bindir}/ceph-volume-systemd
132 sed -i -e 's:/sbin/:/bin/:' ${D}${systemd_system_unitdir}/ceph-volume@.service
135 TARGET_CC_ARCH += "${LDFLAGS}"
142 ${docdir}/ceph/COPYING \
143 ${libdir}/sysctl.d/90-ceph-osd.conf \
144 ${libdir}/udev/rules.d/50-rbd.rules \
145 ${libdir}/udev/rules.d/60-ceph-by-parttypeuuid.rules \
146 ${systemd_system_unitdir}/mgr-restful-plugin.service \
147 ${systemd_system_unitdir}/ceph-radosgw@.service \
148 ${systemd_system_unitdir}/ceph.service \
149 ${systemd_system_unitdir}/docker.service.d/starlingx-docker-override.conf \
150 home/root/cluster/ceph-mon_config.sh \
151 home/root/cluster/ceph-mgr_manual.sh \
152 home/root/cluster/ceph-volume_manual.sh \