1*4882a593SmuzhiyunSUMMARY = "A subproject of Apache NiFi to collect data where it originates." 2*4882a593SmuzhiyunDESCRIPTION = "MiNiFi--a subproject of Apache NiFi--is a complementary \ 3*4882a593Smuzhiyundata collection approach that supplements the core tenets of NiFi in dataflow \ 4*4882a593Smuzhiyunmanagement, focusing on the collection of data at the source of its creation." 5*4882a593SmuzhiyunHOMEPAGE = "https://nifi.apache.org/minifi/index.html" 6*4882a593SmuzhiyunSECTION = "console/network" 7*4882a593SmuzhiyunLICENSE = "Apache-2.0" 8*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://LICENSE;md5=f9534eb5f4ab800b573a37bffc62f3a7" 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunDEPENDS = "virtual/crypt expat flex python3 bison-native libxml2 nettle lz4" 11*4882a593SmuzhiyunRDEPENDS:${PN} = "python3-core" 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunSRCREV = "aa42957a2e227df41510047cece3cd606dc1cb6a" 14*4882a593SmuzhiyunSRC_URI = "git://github.com/apache/nifi-minifi-cpp.git;branch=master;protocol=https \ 15*4882a593Smuzhiyun https://curl.haxx.se/download/curl-7.64.0.tar.bz2;name=curl;subdir=git/thirdparty \ 16*4882a593Smuzhiyun https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz;name=libressl;subdir=git/thirdparty \ 17*4882a593Smuzhiyun ${DEBIAN_MIRROR}/main/o/ossp-uuid/ossp-uuid_1.6.2.orig.tar.gz;name=ossp-uuid;subdir=git/thirdparty \ 18*4882a593Smuzhiyun file://fix-minifi-compile.patch \ 19*4882a593Smuzhiyun file://fix-libressl-compile.patch \ 20*4882a593Smuzhiyun file://fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch \ 21*4882a593Smuzhiyun file://fix-osspuuid-compile.patch \ 22*4882a593Smuzhiyun file://fix-osspuuid-cross-compile.patch \ 23*4882a593Smuzhiyun file://fix-osspuuid-musl-compile.patch \ 24*4882a593Smuzhiyun file://fix-rocksdb-cross-compile.patch \ 25*4882a593Smuzhiyun file://remove_const_due_to_std_lock_guard.patch \ 26*4882a593Smuzhiyun file://0001-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch \ 27*4882a593Smuzhiyun file://0001-CMakeLists.txt-use-curl-local-source-tarball.patch \ 28*4882a593Smuzhiyun file://0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch \ 29*4882a593Smuzhiyun file://0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch \ 30*4882a593Smuzhiyun file://0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch \ 31*4882a593Smuzhiyun file://0001-cxxopts-Add-limits-header.patch \ 32*4882a593Smuzhiyun file://0001-Fix-build-with-libc.patch \ 33*4882a593Smuzhiyun file://minifi.service \ 34*4882a593Smuzhiyun file://systemd-volatile.conf \ 35*4882a593Smuzhiyun file://sysvinit-volatile.conf \ 36*4882a593Smuzhiyun " 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunSRC_URI[curl.md5sum] = "d0bcc586873cfef08b4b9594e5395a33" 39*4882a593SmuzhiyunSRC_URI[curl.sha256sum] = "d573ba1c2d1cf9d8533fadcce480d778417964e8d04ccddcc76e591d544cf2eb" 40*4882a593SmuzhiyunSRC_URI[libressl.md5sum] = "0f1127bd21b4aa8495a910379c2ad936" 41*4882a593SmuzhiyunSRC_URI[libressl.sha256sum] = "9b640b13047182761a99ce3e4f000be9687566e0828b4a72709e9e6a3ef98477" 42*4882a593SmuzhiyunSRC_URI[ossp-uuid.md5sum] = "5db0d43a9022a6ebbbc25337ae28942f" 43*4882a593SmuzhiyunSRC_URI[ossp-uuid.sha256sum] = "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0" 44*4882a593Smuzhiyun 45*4882a593SmuzhiyunS = "${WORKDIR}/git" 46*4882a593Smuzhiyun 47*4882a593Smuzhiyuninherit pkgconfig cmake systemd 48*4882a593Smuzhiyun 49*4882a593SmuzhiyunSYSTEMD_PACKAGES = "minifi-cpp" 50*4882a593SmuzhiyunSYSTEMD_SERVICE:${PN} = "minifi.service" 51*4882a593SmuzhiyunSYSTEMD_AUTO_ENABLE = "disable" 52*4882a593Smuzhiyun 53*4882a593SmuzhiyunOECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" 54*4882a593Smuzhiyun 55*4882a593SmuzhiyunEXTRA_OECMAKE += " \ 56*4882a593Smuzhiyun -DHOST_SYS=${HOST_SYS} -DBUILD_SYS=${BUILD_SYS} \ 57*4882a593Smuzhiyun -DSKIP_TESTS=ON \ 58*4882a593Smuzhiyun -DGCC_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \ 59*4882a593Smuzhiyun -DGCC_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ 60*4882a593Smuzhiyun " 61*4882a593SmuzhiyunEXTRA_OECMAKE:append:toolchain-clang = " -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib" 62*4882a593SmuzhiyunLDFLAGS:append:toolchain-clang = " -fuse-ld=lld" 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun# RV lld errors out: 65*4882a593Smuzhiyun# riscv64-yoe-linux-ld.lld: error: init.c:(.text+0x0): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax 66*4882a593SmuzhiyunLDFLAGS:remove:riscv32 = "-fuse-ld=lld" 67*4882a593SmuzhiyunLDFLAGS:remove:riscv64 = "-fuse-ld=lld" 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun# There are endian issues when communicating with the x86 nifi on the the mips and the ppc machines. 70*4882a593SmuzhiyunCOMPATIBLE_MACHINE:mips = "(!.*mips).*" 71*4882a593SmuzhiyunCOMPATIBLE_MACHINE:mips64 = "(!.*mips64).*" 72*4882a593SmuzhiyunCOMPATIBLE_MACHINE:powerpc = "(!.*ppc).*" 73*4882a593Smuzhiyun 74*4882a593SmuzhiyunTARGET_CFLAGS:append:riscv32 = " -fpic" 75*4882a593SmuzhiyunTARGET_CXXFLAGS:append:riscv32 = " -fpic" 76*4882a593SmuzhiyunTARGET_CFLAGS:append:riscv64 = " -fpic" 77*4882a593SmuzhiyunTARGET_CXXFLAGS:append:riscv64 = " -fpic" 78*4882a593Smuzhiyun 79*4882a593Smuzhiyundo_install[cleandirs] += "${WORKDIR}/minifi-install" 80*4882a593SmuzhiyunPSEUDO_CONSIDER_PATHS .= ",${WORKDIR}/minifi-install" 81*4882a593Smuzhiyun 82*4882a593Smuzhiyundo_install() { 83*4882a593Smuzhiyun DESTDIR='${WORKDIR}/minifi-install' cmake_runcmake_build --target ${OECMAKE_TARGET_INSTALL} 84*4882a593Smuzhiyun MINIFI_BIN=${bindir} 85*4882a593Smuzhiyun MINIFI_HOME=${sysconfdir}/minifi 86*4882a593Smuzhiyun MINIFI_RUN=${localstatedir}/lib/minifi 87*4882a593Smuzhiyun MINIFI_LOG=${localstatedir}/log/minifi 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun install -d ${D}${MINIFI_BIN} 90*4882a593Smuzhiyun install -d ${D}${MINIFI_HOME}/conf 91*4882a593Smuzhiyun install -m 755 -d ${D}${localstatedir}/lib/minifi 92*4882a593Smuzhiyun install -m 755 -d ${D}${libexecdir}/minifi-python 93*4882a593Smuzhiyun cp -a ${WORKDIR}/minifi-install/usr/bin/* ${D}${MINIFI_BIN}/ 94*4882a593Smuzhiyun cp -a ${WORKDIR}/minifi-install/usr/conf/* ${D}${MINIFI_HOME}/conf/ 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun sed -i 's|#appender.rolling.directory=.*|appender.rolling.directory='${MINIFI_LOG}'|g' \ 97*4882a593Smuzhiyun ${D}${MINIFI_HOME}/conf/minifi-log.properties 98*4882a593Smuzhiyun sed -i 's|nifi.provenance.repository.directory.default=.*|nifi.provenance.repository.directory.default='${MINIFI_RUN}'/provenance_repository|g' \ 99*4882a593Smuzhiyun ${D}${MINIFI_HOME}/conf/minifi.properties 100*4882a593Smuzhiyun sed -i 's|nifi.flowfile.repository.directory.default=.*|nifi.flowfile.repository.directory.default='${MINIFI_RUN}'/flowfile_repository|g' \ 101*4882a593Smuzhiyun ${D}${MINIFI_HOME}/conf/minifi.properties 102*4882a593Smuzhiyun sed -i 's|nifi.database.content.repository.directory.default=.*|nifi.database.content.repository.directory.default='${MINIFI_RUN}'/content_repository|g' \ 103*4882a593Smuzhiyun ${D}${MINIFI_HOME}/conf/minifi.properties 104*4882a593Smuzhiyun sed -i 's|nifi.flow.configuration.file=.*|nifi.flow.configuration.file='${MINIFI_HOME}'/conf/config.yml|g' \ 105*4882a593Smuzhiyun ${D}${MINIFI_HOME}/conf/minifi.properties 106*4882a593Smuzhiyun sed -i 's|nifi.python.processor.dir=.*|nifi.python.processor.dir=${libexecdir}/minifi-python|g' \ 107*4882a593Smuzhiyun ${D}${MINIFI_HOME}/conf/minifi.properties 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun sed -i 's|export MINIFI_HOME=.*|export MINIFI_HOME='${MINIFI_HOME}'|g' ${D}${MINIFI_BIN}/minifi.sh 110*4882a593Smuzhiyun sed -i 's|bin_dir=${MINIFI_HOME}/bin|bin_dir='${MINIFI_BIN}'|g' ${D}${MINIFI_BIN}/minifi.sh 111*4882a593Smuzhiyun sed -i 's|pid_file=${bin_dir}/.|pid_file='${localstatedir}/run/'|g' ${D}${MINIFI_BIN}/minifi.sh 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 114*4882a593Smuzhiyun install -d ${D}${sysconfdir}/tmpfiles.d/ 115*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/systemd-volatile.conf ${D}${sysconfdir}/tmpfiles.d/minifi.conf 116*4882a593Smuzhiyun install -m 0755 -d ${D}${systemd_unitdir}/system 117*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/minifi.service ${D}${systemd_unitdir}/system/ 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun sed -i 's|@LOCALSTATEDIR@|${localstatedir}|g' ${D}${systemd_unitdir}/system/minifi.service 120*4882a593Smuzhiyun sed -i 's|@SYSCONFDIR@|${sysconfdir}|g' ${D}${systemd_unitdir}/system/minifi.service 121*4882a593Smuzhiyun sed -i 's|@BINDIR@|${bindir}|g' ${D}${systemd_unitdir}/system/minifi.service 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun sed -i 's|@MINIFI_LOG@|'${MINIFI_LOG}'|g' ${D}${sysconfdir}/tmpfiles.d/minifi.conf 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 126*4882a593Smuzhiyun install -d ${D}${sysconfdir}/default/volatiles 127*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/sysvinit-volatile.conf ${D}${sysconfdir}/default/volatiles/99_minifi 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun sed -i 's|@MINIFI_LOG@|'${MINIFI_LOG}'|g' ${D}${sysconfdir}/default/volatiles/99_minifi 130*4882a593Smuzhiyun fi 131*4882a593Smuzhiyun} 132*4882a593Smuzhiyun 133*4882a593Smuzhiyunpkg_postinst:${PN}() { 134*4882a593Smuzhiyun if [ -z "$D" ]; then 135*4882a593Smuzhiyun if type systemd-tmpfiles >/dev/null; then 136*4882a593Smuzhiyun systemd-tmpfiles --create 137*4882a593Smuzhiyun elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then 138*4882a593Smuzhiyun ${sysconfdir}/init.d/populate-volatile.sh update 139*4882a593Smuzhiyun fi 140*4882a593Smuzhiyun fi 141*4882a593Smuzhiyun} 142*4882a593Smuzhiyun 143*4882a593SmuzhiyunCLEANBROKEN = "1" 144