diff options
Diffstat (limited to 'meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb')
-rw-r--r-- | meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb new file mode 100644 index 0000000000..ab08322805 --- /dev/null +++ b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb | |||
@@ -0,0 +1,227 @@ | |||
1 | SUMMARY = "A subproject of Apache NiFi to collect data where it originates." | ||
2 | DESCRIPTION = "MiNiFi--a subproject of Apache NiFi--is a complementary \ | ||
3 | data collection approach that supplements the core tenets of NiFi in dataflow \ | ||
4 | management, focusing on the collection of data at the source of its creation." | ||
5 | HOMEPAGE = "https://nifi.apache.org/minifi/index.html" | ||
6 | SECTION = "console/network" | ||
7 | LICENSE = "Apache-2.0" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=4c5fc3bbd872752266d21f5f167ce297" | ||
9 | |||
10 | SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git;protocol=https;branch=main \ | ||
11 | git://github.com/martinmoene/expected-lite.git;protocol=https;branch=master;name=expected-lite;destsuffix=${S}/thirdparty/expected-lite-src \ | ||
12 | git://github.com/ericniebler/range-v3.git;protocol=https;branch=master;name=range-v3;destsuffix=${S}/thirdparty/range-v3-src \ | ||
13 | git://github.com/Neargye/magic_enum.git;protocol=https;branch=master;name=magic-enum;destsuffix=${S}/thirdparty/magic-enum-src \ | ||
14 | git://github.com/p-ranav/argparse.git;protocol=https;branch=master;name=argparse;destsuffix=${S}/thirdparty/argparse-src \ | ||
15 | git://github.com/gsl-lite/gsl-lite.git;protocol=https;branch=master;name=gsl-lite;destsuffix=${S}/thirdparty/gsl-lite-src \ | ||
16 | git://github.com/HowardHinnant/date.git;protocol=https;branch=master;name=date;destsuffix=${S}/thirdparty/date-src \ | ||
17 | git://github.com/chriskohlhoff/asio.git;protocol=https;branch=master;name=asio;destsuffix=${S}/thirdparty/asio-src \ | ||
18 | git://github.com/fmtlib/fmt.git;protocol=https;branch=master;name=fmt;destsuffix=${S}/thirdparty/fmt-src \ | ||
19 | git://github.com/gabime/spdlog.git;protocol=https;branch=v1.x;name=spdlog;destsuffix=${S}/thirdparty/spdlog-src \ | ||
20 | ${DEBIAN_MIRROR}/main/o/ossp-uuid/ossp-uuid_1.6.2.orig.tar.gz;name=ossp-uuid;subdir=${S}/thirdparty \ | ||
21 | https://download.libsodium.org/libsodium/releases/libsodium-1.0.19.tar.gz;name=libsodium;subdir=${S}/thirdparty \ | ||
22 | file://0001-Do-not-use-bundled-packages.patch \ | ||
23 | file://0002-Fix-osspuuid-build.patch \ | ||
24 | file://0003-Fix-libsodium-build.patch \ | ||
25 | file://0004-Pass-noline-flag-to-flex.patch \ | ||
26 | file://0005-generateVersion.sh-set-correct-buildrev.patch \ | ||
27 | file://0006-CMakeLists.txt-do-not-use-ccache.patch \ | ||
28 | file://0007-libsodium-aarch64-set-compiler-attributes-after-including-arm_.patch \ | ||
29 | file://systemd-volatile.conf \ | ||
30 | file://sysvinit-volatile.conf \ | ||
31 | " | ||
32 | |||
33 | # minifi-cpp: 0.99.1 | ||
34 | SRCREV = "78d53ed154c71f1fabbaff0366d44ed3b32754e6" | ||
35 | # expected-lite: 0.6.3 | ||
36 | SRCREV_expected-lite = "c8ffab649ba56e43c731b7017a69ddaebe2e1893" | ||
37 | # range-v3: 0.12.0 | ||
38 | SRCREV_range-v3 = "a81477931a8aa2ad025c6bda0609f38e09e4d7ec" | ||
39 | # magic-enum: 0.9.6 | ||
40 | SRCREV_magic-enum = "dd6a39d0ba1852cf06907e0f0573a2a10d23c2ad" | ||
41 | # argparse: 3.0 | ||
42 | SRCREV_argparse = "af442b4da0cd7a07b56fa709bd16571889dc7fda" | ||
43 | # gsl-lite: 0.41.0 | ||
44 | SRCREV_gsl-lite = "755ba124b54914e672737acace6a9314f59e8d6f" | ||
45 | # date: 3.0.3 | ||
46 | SRCREV_date = "5bdb7e6f31fac909c090a46dbd9fea27b6e609a4" | ||
47 | # asio: 1.29.0 | ||
48 | SRCREV_asio = "814f67e730e154547aea3f4d99f709cbdf1ea4a0" | ||
49 | # fmt: 11.1.4 | ||
50 | SRCREV_fmt = "123913715afeb8a437e6388b4473fcc4753e1c9a" | ||
51 | # spdlog: 1.15.1 | ||
52 | SRCREV_spdlog = "f355b3d58f7067eee1706ff3c801c2361011f3d5" | ||
53 | |||
54 | SRCREV_FORMAT .= "_expected-lite_range-v3_magic-enum_argparse_gsl-lite_date_asio_fmt_spdlog" | ||
55 | |||
56 | # ossp-uuid: 1.6.2 | ||
57 | SRC_URI[ossp-uuid.sha256sum] = "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0" | ||
58 | # libsodium: 1.0.19 | ||
59 | SRC_URI[libsodium.sha256sum] = "018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea" | ||
60 | |||
61 | |||
62 | inherit pkgconfig cmake systemd | ||
63 | |||
64 | DEPENDS = "virtual/crypt bison-native flex-native flex openssl curl zlib xz bzip2 yaml-cpp zstd lz4" | ||
65 | |||
66 | OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" | ||
67 | |||
68 | CXXFLAGS:append:toolchain-clang = " -Wno-error=c++11-narrowing-const-reference" | ||
69 | LDFLAGS:append:riscv32 = " -latomic" | ||
70 | |||
71 | EXTRA_OECMAKE = " \ | ||
72 | -DCMAKE_BUILD_TYPE=Release \ | ||
73 | -DHOST_SYS=${HOST_SYS} -DBUILD_SYS=${BUILD_SYS} \ | ||
74 | -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \ | ||
75 | -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines --file-prefix-map=${S}=${TARGET_DBGSRC_DIR} --file-prefix-map=${B}=${TARGET_DBGSRC_DIR}' \ | ||
76 | -DENABLE_ENCRYPT_CONFIG=ON \ | ||
77 | -DENABLE_LUA_SCRIPTING=OFF \ | ||
78 | -DENABLE_PYTHON_SCRIPTING=OFF \ | ||
79 | -DENABLE_AWS=OFF \ | ||
80 | -DENABLE_AZURE=OFF \ | ||
81 | -DENABLE_GCP=OFF \ | ||
82 | -DENABLE_KUBERNETES=OFF \ | ||
83 | -DENABLE_MQTT=OFF \ | ||
84 | -DENABLE_GRAFANA_LOKI=OFF \ | ||
85 | -DENABLE_GRPC_FOR_LOKI=OFF \ | ||
86 | -DENABLE_ELASTICSEARCH=OFF \ | ||
87 | -DENABLE_SQL=OFF \ | ||
88 | -DENABLE_PROMETHEUS=OFF \ | ||
89 | -DENABLE_PROCFS=OFF \ | ||
90 | -DENABLE_SPLUNK=OFF \ | ||
91 | -DENABLE_OPC=OFF \ | ||
92 | -DENABLE_KAFKA=OFF \ | ||
93 | -DENABLE_BZIP2=ON \ | ||
94 | -DENABLE_LZMA=ON \ | ||
95 | -DSKIP_TESTS=ON \ | ||
96 | -DMINIFI_OPENSSL_SOURCE=SYSTEM \ | ||
97 | -DMINIFI_LIBCURL_SOURCE=SYSTEM \ | ||
98 | -DMINIFI_ZSTD_SOURCE=SYSTEM \ | ||
99 | -DMINIFI_BZIP2_SOURCE=SYSTEM \ | ||
100 | -DMINIFI_LIBXML2_SOURCE=SYSTEM \ | ||
101 | -DMINIFI_CATCH2_SOURCE=SYSTEM \ | ||
102 | -DMINIFI_ZLIB_SOURCE=SYSTEM \ | ||
103 | -DMINIFI_FMT_SOURCE=BUILD \ | ||
104 | -DMINIFI_SPDLOG_SOURCE=BUILD \ | ||
105 | -DFETCHCONTENT_SOURCE_DIR_GSL-LITE=${S}/thirdparty/gsl-lite-src \ | ||
106 | -DFETCHCONTENT_SOURCE_DIR_DATE_SRC=${S}/thirdparty/date-src \ | ||
107 | -DFETCHCONTENT_SOURCE_DIR_EXPECTED-LITE=${S}/thirdparty/expected-lite-src \ | ||
108 | -DFETCHCONTENT_SOURCE_DIR_RANGE-V3_SRC=${S}/thirdparty/range-v3-src \ | ||
109 | -DFETCHCONTENT_SOURCE_DIR_MAGIC_ENUM=${S}/thirdparty/magic-enum-src \ | ||
110 | -DFETCHCONTENT_SOURCE_DIR_ASIO=${S}/thirdparty/asio-src \ | ||
111 | -DFETCHCONTENT_SOURCE_DIR_ARGPARSE=${S}/thirdparty/argparse-src \ | ||
112 | -DFETCHCONTENT_SOURCE_DIR_FMT=${S}/thirdparty/fmt-src \ | ||
113 | -DFETCHCONTENT_SOURCE_DIR_SPDLOG=${S}/thirdparty/spdlog-src \ | ||
114 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DENABLE_SYSTEMD=ON', '-DENABLE_SYSTEMD=OFF', d)} \ | ||
115 | " | ||
116 | |||
117 | PACKAGECONFIG ??= "libarchive expression-language" | ||
118 | |||
119 | # rocksdb is not compatible with libc-musl:powerpc & armv5 | ||
120 | PACKAGECONFIG:remove:libc-musl:powerpc = "rocksdb" | ||
121 | PACKAGECONFIG:remove:armv5 = "rocksdb" | ||
122 | |||
123 | PACKAGECONFIG[libarchive] = "-DENABLE_LIBARCHIVE=ON,-DENABLE_LIBARCHIVE=OFF,libarchive" | ||
124 | PACKAGECONFIG[expression-language] = "-DENABLE_EXPRESSION_LANGUAGE=ON, -DENABLE_EXPRESSION_LANGUAGE=OFF" | ||
125 | PACKAGECONFIG[civetweb] = "-DENABLE_CIVET=ON -DMINIFI_CIVETWEB_SOURCE=SYSTEM,-DENABLE_CIVET=OFF,civetweb" | ||
126 | PACKAGECONFIG[rocksdb] = "-DENABLE_ROCKSDB=ON -DBUILD_ROCKSDB=OFF -DMINIFI_ROCKSDB_SOURCE=SYSTEM,-DENABLE_ROCKSDB=OFF,rocksdb" | ||
127 | |||
128 | SYSTEMD_PACKAGES = "minifi-cpp" | ||
129 | SYSTEMD_SERVICE:${PN} = "minifi.service" | ||
130 | SYSTEMD_AUTO_ENABLE = "disable" | ||
131 | |||
132 | do_install[cleandirs] += "${WORKDIR}/minifi-install" | ||
133 | PSEUDO_CONSIDER_PATHS .= ",${WORKDIR}/minifi-install" | ||
134 | |||
135 | do_compile:prepend() { | ||
136 | # Remove build host references | ||
137 | sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ | ||
138 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | ||
139 | -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ | ||
140 | ${B}/libminifi/agent_version.cpp | ||
141 | } | ||
142 | |||
143 | do_install() { | ||
144 | DESTDIR='${WORKDIR}/minifi-install' cmake_runcmake_build --target ${OECMAKE_TARGET_INSTALL} | ||
145 | MINIFI_BIN=${bindir} | ||
146 | MINIFI_HOME=${sysconfdir}/minifi | ||
147 | MINIFI_RUN=${localstatedir}/lib/minifi | ||
148 | MINIFI_LOG=${localstatedir}/log/minifi | ||
149 | |||
150 | install -m 755 -d ${D}${MINIFI_BIN} | ||
151 | install -m 755 -d ${D}${MINIFI_HOME}/conf | ||
152 | install -m 755 -d ${D}${localstatedir}/lib/minifi | ||
153 | |||
154 | for i in encrypt-config minifi minifi.sh minificontroller; do | ||
155 | install -m 755 ${WORKDIR}/minifi-install/usr/bin/${i} ${D}${MINIFI_BIN} | ||
156 | done | ||
157 | for i in config.yml minifi-log.properties minifi.properties minifi-uid.properties; do | ||
158 | install -m 644 ${WORKDIR}/minifi-install/usr/conf/${i} ${D}${MINIFI_HOME}/conf | ||
159 | done | ||
160 | |||
161 | install -m 755 -d ${D}${libdir}/minifi-extensions | ||
162 | install -m 755 ${WORKDIR}/minifi-install/usr/bin/libcore-minifi.so ${D}${libdir} | ||
163 | install -m 755 ${WORKDIR}/minifi-install/usr/extensions/*.so ${D}${libdir}/minifi-extensions | ||
164 | |||
165 | install -m 755 -d ${D}${libexecdir}/minifi-python | ||
166 | install -m 755 -d ${D}${libexecdir}/minifi-python-examples | ||
167 | cp -rf ${WORKDIR}/minifi-install/usr/minifi-python/* ${D}${libexecdir}/minifi-python/ | ||
168 | cp -rf ${WORKDIR}/minifi-install/usr/minifi-python-examples/* ${D}${libexecdir}/minifi-python-examples/ | ||
169 | |||
170 | sed -i "s|MINIFI_HOME=.*|MINIFI_HOME=${MINIFI_HOME}|g" ${D}${MINIFI_BIN}/minifi.sh | ||
171 | sed -i "s|bin_dir=.*|bin_dir=${MINIFI_BIN}|g" ${D}${MINIFI_BIN}/minifi.sh | ||
172 | |||
173 | sed -i "s|#appender.rolling.directory=.*|appender.rolling.directory=${MINIFI_LOG}|g" \ | ||
174 | ${D}${MINIFI_HOME}/conf/minifi-log.properties | ||
175 | sed -i "s|nifi.provenance.repository.directory.default=.*|nifi.provenance.repository.directory.default=${MINIFI_RUN}/provenance_repository|g" \ | ||
176 | ${D}${MINIFI_HOME}/conf/minifi.properties | ||
177 | sed -i "s|nifi.flowfile.repository.directory.default=.*|nifi.flowfile.repository.directory.default=${MINIFI_RUN}/flowfile_repository|g" \ | ||
178 | ${D}${MINIFI_HOME}/conf/minifi.properties | ||
179 | sed -i "s|nifi.database.content.repository.directory.default=.*|nifi.database.content.repository.directory.default=${MINIFI_RUN}/content_repository|g" \ | ||
180 | ${D}${MINIFI_HOME}/conf/minifi.properties | ||
181 | sed -i "s|nifi.flow.configuration.file=.*|nifi.flow.configuration.file=${MINIFI_HOME}/conf/config.yml|g" \ | ||
182 | ${D}${MINIFI_HOME}/conf/minifi.properties | ||
183 | sed -i "s|nifi.python.processor.dir=.*|nifi.python.processor.dir=${libexecdir}/minifi-python|g" \ | ||
184 | ${D}${MINIFI_HOME}/conf/minifi.properties | ||
185 | sed -i "s|nifi.extension.path=.*|nifi.extension.path=${libdir}/minifi-extensions/*|g" \ | ||
186 | ${D}${MINIFI_HOME}/conf/minifi.properties | ||
187 | |||
188 | if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then | ||
189 | install -m 755 -d ${D}${sysconfdir}/tmpfiles.d | ||
190 | install -m 644 ${UNPACKDIR}/systemd-volatile.conf ${D}${sysconfdir}/tmpfiles.d/minifi.conf | ||
191 | sed -i "s|@MINIFI_LOG@|${MINIFI_LOG}|g" ${D}${sysconfdir}/tmpfiles.d/minifi.conf | ||
192 | |||
193 | install -m 755 -d ${D}${systemd_system_unitdir} | ||
194 | install -m 644 ${WORKDIR}/minifi-install/usr/bin/minifi.service ${D}${systemd_system_unitdir} | ||
195 | |||
196 | sed -i -e "s|^Environment=.*|Environment=MINIFI_HOME=${MINIFI_HOME}|g" ${D}${systemd_system_unitdir}/minifi.service | ||
197 | sed -i -e "s|^ExecStart=.*|ExecStart=${MINIFI_BIN}/minifi|g" ${D}${systemd_system_unitdir}/minifi.service | ||
198 | fi | ||
199 | |||
200 | if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then | ||
201 | install -d ${D}${sysconfdir}/default/volatiles | ||
202 | install -m 0644 ${UNPACKDIR}/sysvinit-volatile.conf ${D}${sysconfdir}/default/volatiles/99_minifi | ||
203 | |||
204 | sed -i "s|@MINIFI_LOG@|${MINIFI_LOG}|g" ${D}${sysconfdir}/default/volatiles/99_minifi | ||
205 | fi | ||
206 | } | ||
207 | |||
208 | pkg_postinst:${PN}() { | ||
209 | if [ -z "$D" ]; then | ||
210 | if type systemd-tmpfiles >/dev/null; then | ||
211 | systemd-tmpfiles --create | ||
212 | elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then | ||
213 | ${sysconfdir}/init.d/populate-volatile.sh update | ||
214 | fi | ||
215 | fi | ||
216 | } | ||
217 | |||
218 | FILES:${PN}-dev = "" | ||
219 | FILES:${PN} += "${libdir}/libcore-minifi.so \ | ||
220 | ${libdir}/minifi-extensions \ | ||
221 | ${libexecdir}/minifi-python \ | ||
222 | ${libexecdir}/minifi-python-examples \ | ||
223 | " | ||
224 | |||
225 | INSANE_SKIP:${PN} += "dev-deps" | ||
226 | |||
227 | CLEANBROKEN = "1" | ||