summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
diff options
context:
space:
mode:
authorYi Zhao <yi.zhao@windriver.com>2024-03-21 11:13:05 +0800
committerKhem Raj <raj.khem@gmail.com>2024-03-20 20:16:07 -0700
commit7cf7c4c7828e9ad673f717f4cad9997314d4b1aa (patch)
tree6d312f3b628c96e375e01738133ce6455fd8e7e1 /meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
parent0c19e65a0969dc79093284e98b43fd46468a499f (diff)
downloadmeta-openembedded-7cf7c4c7828e9ad673f717f4cad9997314d4b1aa.tar.gz
minifi-cpp: upgrade 0.7.0 -> 0.15.0
Release Notes: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65145325#ReleaseNotesMiNiFi(C++)-Versioncpp-0.15.0 * Use external dependencies where possible to get rid of bundled packages. * Add PACKAGECONFIGs. * Use its own systemd service file. Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb')
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb200
1 files changed, 200 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
new file mode 100644
index 000000000..0667fdaec
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
@@ -0,0 +1,200 @@
1SUMMARY = "A subproject of Apache NiFi to collect data where it originates."
2DESCRIPTION = "MiNiFi--a subproject of Apache NiFi--is a complementary \
3data collection approach that supplements the core tenets of NiFi in dataflow \
4management, focusing on the collection of data at the source of its creation."
5HOMEPAGE = "https://nifi.apache.org/minifi/index.html"
6SECTION = "console/network"
7LICENSE = "Apache-2.0"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=c62efdfb90a8aa4cc3bc15f56baa30b7"
9
10SRC_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/jarro2783/cxxopts.git;protocol=https;branch=v2_2;name=cxxopts;destsuffix=${S}/thirdparty/cxxopts-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/gabime/spdlog.git;protocol=https;branch=v1.x;name=spdlog;destsuffix=${S}/thirdparty/spdlog-src \
19 git://github.com/civetweb/civetweb.git;protocol=https;branch=master;name=civetweb;destsuffix=${S}/thirdparty/civetweb-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-Fix-spdlog-build.patch \
26 file://0005-Pass-noline-flag-to-flex.patch \
27 file://0006-OsUtils.h-add-missing-header-cstdint-for-int64_t.patch \
28 file://0007-CMakeLists.txt-do-not-use-ccache.patch \
29 file://systemd-volatile.conf \
30 file://sysvinit-volatile.conf \
31 "
32
33SRCREV = "9b55dc0c0f17a190f3e9ade87070a28faf542c25"
34SRCREV_expected-lite = "c8ffab649ba56e43c731b7017a69ddaebe2e1893"
35SRCREV_range-v3 = "a81477931a8aa2ad025c6bda0609f38e09e4d7ec"
36SRCREV_magic-enum = "e1ea11a93d0bdf6aae415124ded6126220fa4f28"
37SRCREV_cxxopts = "302302b30839505703d37fb82f536c53cf9172fa"
38SRCREV_gsl-lite = "755ba124b54914e672737acace6a9314f59e8d6f"
39SRCREV_date = "6e921e1b1d21e84a5c82416ba7ecd98e33a436d0"
40SRCREV_asio = "814f67e730e154547aea3f4d99f709cbdf1ea4a0"
41SRCREV_spdlog = "7c02e204c92545f869e2f04edaab1f19fe8b19fd"
42SRCREV_civetweb = "d7ba35bbb649209c66e582d5a0244ba988a15159"
43
44SRCREV_FORMAT .= "_expected-lite_range-v3_magic-enum_cxxopts_gsl-lite_date_asio_spdlog_civetweb"
45
46SRC_URI[ossp-uuid.sha256sum] = "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0"
47SRC_URI[libsodium.sha256sum] = "018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea"
48
49S = "${WORKDIR}/git"
50
51inherit pkgconfig cmake systemd
52
53DEPENDS = "virtual/crypt bison-native flex-native flex openssl curl zlib xz bzip2 yaml-cpp"
54
55OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
56
57EXTRA_OECMAKE = " \
58 -DCMAKE_BUILD_TYPE=Release \
59 -DHOST_SYS=${HOST_SYS} -DBUILD_SYS=${BUILD_SYS} \
60 -DGCC_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \
61 -DGCC_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \
62 -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
63 -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines --file-prefix-map=${S}=${TARGET_DBGSRC_DIR}' \
64 -DENABLE_ENCRYPT_CONFIG=ON \
65 -DENABLE_LUA_SCRIPTING=OFF \
66 -DENABLE_PYTHON_SCRIPTING=OFF \
67 -DENABLE_AWS=OFF \
68 -DENABLE_AZURE=OFF \
69 -DENABLE_GCP=OFF \
70 -DENABLE_KUBERNETES=OFF \
71 -DENABLE_MQTT=OFF \
72 -DENABLE_ELASTICSEARCH=OFF \
73 -DENABLE_SQL=OFF \
74 -DENABLE_PROMETHEUS=OFF \
75 -DENABLE_PROCFS=OFF \
76 -DENABLE_SPLUNK=OFF \
77 -DENABLE_OPC=OFF \
78 -DENABLE_LIBRDKAFKA=OFF \
79 -DDISABLE_CURL=OFF \
80 -DDISABLE_BZIP2=OFF \
81 -DDISABLE_LZMA=OFF \
82 -DDISABLE_JEMALLOC=ON \
83 -DSKIP_TESTS=ON \
84 -DFETCHCONTENT_SOURCE_DIR_GSL-LITE=${S}/thirdparty/gsl-lite-src \
85 -DFETCHCONTENT_SOURCE_DIR_DATE_SRC=${S}/thirdparty/date-src \
86 -DFETCHCONTENT_SOURCE_DIR_EXPECTED-LITE=${S}/thirdparty/expected-lite-src \
87 -DFETCHCONTENT_SOURCE_DIR_RANGE-V3_SRC=${S}/thirdparty/range-v3-src \
88 -DFETCHCONTENT_SOURCE_DIR_MAGIC_ENUM=${S}/thirdparty/magic-enum-src \
89 -DFETCHCONTENT_SOURCE_DIR_ASIO=${S}/thirdparty/asio-src \
90 -DFETCHCONTENT_SOURCE_DIR_CXXOPTS_SRC=${S}/thirdparty/cxxopts-src \
91 -DFETCHCONTENT_SOURCE_DIR_CIVETWEB=${S}/thirdparty/civetweb-src \
92 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DENABLE_SYSTEMD=ON', '-DENABLE_SYSTEMD=OFF', d)} \
93 "
94
95PACKAGECONFIG ??= "civetweb libarchive rocksdb expression-language"
96PACKAGECONFIG[civetweb] = "-DDISABLE_CIVET=OFF,-DDISABLE_CIVET=ON"
97PACKAGECONFIG[openwsman] = "-DENABLE_OPENWSMAN=ON,-DENABLE_OPENWSMAN=OFF,libxml2"
98PACKAGECONFIG[libarchive] = "-DDISABLE_LIBARCHIVE=OFF,-DDISABLE_LIBARCHIVE=ON,libarchive"
99PACKAGECONFIG[rocksdb] = "-DDISABLE_ROCKSDB=OFF -DBUILD_ROCKSDB=OFF,-DDISABLE_ROCKSDB=ON,rocksdb"
100PACKAGECONFIG[expression-language] = "-DDISABLE_EXPRESSION_LANGUAGE=OFF, -DDISABLE_EXPRESSION_LANGUAGE=ON"
101
102SYSTEMD_PACKAGES = "minifi-cpp"
103SYSTEMD_SERVICE:${PN} = "minifi.service"
104SYSTEMD_AUTO_ENABLE = "disable"
105
106do_install[cleandirs] += "${WORKDIR}/minifi-install"
107PSEUDO_CONSIDER_PATHS .= ",${WORKDIR}/minifi-install"
108
109do_compile:prepend() {
110 # Remove build host references
111 sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
112 -e 's|${DEBUG_PREFIX_MAP}||g' \
113 -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
114 ${B}/libminifi/agent_version.cpp
115}
116
117do_install() {
118 DESTDIR='${WORKDIR}/minifi-install' cmake_runcmake_build --target ${OECMAKE_TARGET_INSTALL}
119 MINIFI_BIN=${bindir}
120 MINIFI_HOME=${sysconfdir}/minifi
121 MINIFI_RUN=${localstatedir}/lib/minifi
122 MINIFI_LOG=${localstatedir}/log/minifi
123
124 install -m 755 -d ${D}${MINIFI_BIN}
125 install -m 755 -d ${D}${MINIFI_HOME}/conf
126 install -m 755 -d ${D}${localstatedir}/lib/minifi
127
128 for i in encrypt-config minifi minifi.sh minificontroller; do
129 install -m 755 ${WORKDIR}/minifi-install/usr/bin/${i} ${D}${MINIFI_BIN}
130 done
131 for i in config.yml minifi-log.properties minifi.properties minifi-uid.properties; do
132 install -m 644 ${WORKDIR}/minifi-install/usr/conf/${i} ${D}${MINIFI_HOME}/conf
133 done
134
135 install -m 755 -d ${D}${libdir}/minifi-extensions
136 install -m 755 ${WORKDIR}/minifi-install/usr/bin/libcore-minifi.so ${D}${libdir}
137 install -m 755 ${WORKDIR}/minifi-install/usr/extensions/*.so ${D}${libdir}/minifi-extensions
138
139 install -m 755 -d ${D}${libexecdir}/minifi-python
140 for i in examples google h2o; do
141 cp -rf ${WORKDIR}/minifi-install/usr/minifi-python/${i} ${D}${libexecdir}/minifi-python
142 done
143
144 sed -i "s|MINIFI_HOME=.*|MINIFI_HOME=${MINIFI_HOME}|g" ${D}${MINIFI_BIN}/minifi.sh
145 sed -i "s|bin_dir=.*|bin_dir=${MINIFI_BIN}|g" ${D}${MINIFI_BIN}/minifi.sh
146
147 sed -i "s|#appender.rolling.directory=.*|appender.rolling.directory=${MINIFI_LOG}|g" \
148 ${D}${MINIFI_HOME}/conf/minifi-log.properties
149 sed -i "s|nifi.provenance.repository.directory.default=.*|nifi.provenance.repository.directory.default=${MINIFI_RUN}/provenance_repository|g" \
150 ${D}${MINIFI_HOME}/conf/minifi.properties
151 sed -i "s|nifi.flowfile.repository.directory.default=.*|nifi.flowfile.repository.directory.default=${MINIFI_RUN}/flowfile_repository|g" \
152 ${D}${MINIFI_HOME}/conf/minifi.properties
153 sed -i "s|nifi.database.content.repository.directory.default=.*|nifi.database.content.repository.directory.default=${MINIFI_RUN}/content_repository|g" \
154 ${D}${MINIFI_HOME}/conf/minifi.properties
155 sed -i "s|nifi.flow.configuration.file=.*|nifi.flow.configuration.file=${MINIFI_HOME}/conf/config.yml|g" \
156 ${D}${MINIFI_HOME}/conf/minifi.properties
157 sed -i "s|nifi.python.processor.dir=.*|nifi.python.processor.dir=${libexecdir}/minifi-python|g" \
158 ${D}${MINIFI_HOME}/conf/minifi.properties
159 sed -i "s|nifi.extension.path=.*|nifi.extension.path=${libdir}/minifi-extensions/*|g" \
160 ${D}${MINIFI_HOME}/conf/minifi.properties
161
162 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
163 install -m 755 -d ${D}${sysconfdir}/tmpfiles.d
164 install -m 644 ${WORKDIR}/systemd-volatile.conf ${D}${sysconfdir}/tmpfiles.d/minifi.conf
165 sed -i "s|@MINIFI_LOG@|${MINIFI_LOG}|g" ${D}${sysconfdir}/tmpfiles.d/minifi.conf
166
167 install -m 755 -d ${D}${systemd_system_unitdir}
168 install -m 644 ${WORKDIR}/minifi-install/usr/bin/minifi.service ${D}${systemd_system_unitdir}
169
170 sed -i -e "s|^Environment=.*|Environment=MINIFI_HOME=${MINIFI_HOME}|g" ${D}${systemd_system_unitdir}/minifi.service
171 sed -i -e "s|^ExecStart=.*|ExecStart=${MINIFI_BIN}/minifi|g" ${D}${systemd_system_unitdir}/minifi.service
172 fi
173
174 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
175 install -d ${D}${sysconfdir}/default/volatiles
176 install -m 0644 ${WORKDIR}/sysvinit-volatile.conf ${D}${sysconfdir}/default/volatiles/99_minifi
177
178 sed -i "s|@MINIFI_LOG@|${MINIFI_LOG}|g" ${D}${sysconfdir}/default/volatiles/99_minifi
179 fi
180}
181
182pkg_postinst:${PN}() {
183 if [ -z "$D" ]; then
184 if type systemd-tmpfiles >/dev/null; then
185 systemd-tmpfiles --create
186 elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
187 ${sysconfdir}/init.d/populate-volatile.sh update
188 fi
189 fi
190}
191
192FILES:${PN}-dev = ""
193FILES:${PN} += "${libdir}/libcore-minifi.so \
194 ${libdir}/minifi-extensions \
195 ${libexecdir}/minifi-python \
196 "
197
198INSANE_SKIP:${PN} += "dev-deps"
199
200CLEANBROKEN = "1"