minifi-cpp_0.7.0.bb 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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=f9534eb5f4ab800b573a37bffc62f3a7"
  9. DEPENDS = "virtual/crypt expat flex python3 bison-native libxml2 nettle lz4"
  10. RDEPENDS_${PN} = "python3-core"
  11. SRCREV = "aa42957a2e227df41510047cece3cd606dc1cb6a"
  12. SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git \
  13. https://curl.haxx.se/download/curl-7.64.0.tar.bz2;name=curl;subdir=git/thirdparty \
  14. https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz;name=libressl;subdir=git/thirdparty \
  15. ${DEBIAN_MIRROR}/main/o/ossp-uuid/ossp-uuid_1.6.2.orig.tar.gz;name=ossp-uuid;subdir=git/thirdparty \
  16. file://fix-minifi-compile.patch \
  17. file://fix-libressl-compile.patch \
  18. file://fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch \
  19. file://fix-osspuuid-compile.patch \
  20. file://fix-osspuuid-cross-compile.patch \
  21. file://fix-osspuuid-musl-compile.patch \
  22. file://fix-rocksdb-cross-compile.patch \
  23. file://remove_const_due_to_std_lock_guard.patch \
  24. file://0001-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch \
  25. file://0001-CMakeLists.txt-use-curl-local-source-tarball.patch \
  26. file://0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch \
  27. file://0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch \
  28. file://0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch \
  29. file://minifi.service \
  30. file://systemd-volatile.conf \
  31. file://sysvinit-volatile.conf \
  32. "
  33. SRC_URI[curl.md5sum] = "d0bcc586873cfef08b4b9594e5395a33"
  34. SRC_URI[curl.sha256sum] = "d573ba1c2d1cf9d8533fadcce480d778417964e8d04ccddcc76e591d544cf2eb"
  35. SRC_URI[libressl.md5sum] = "0f1127bd21b4aa8495a910379c2ad936"
  36. SRC_URI[libressl.sha256sum] = "9b640b13047182761a99ce3e4f000be9687566e0828b4a72709e9e6a3ef98477"
  37. SRC_URI[ossp-uuid.md5sum] = "5db0d43a9022a6ebbbc25337ae28942f"
  38. SRC_URI[ossp-uuid.sha256sum] = "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0"
  39. S = "${WORKDIR}/git"
  40. inherit pkgconfig cmake systemd
  41. SYSTEMD_PACKAGES = "minifi-cpp"
  42. SYSTEMD_SERVICE_${PN} = "minifi.service"
  43. SYSTEMD_AUTO_ENABLE = "disable"
  44. OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
  45. EXTRA_OECMAKE += " \
  46. -DHOST_SYS=${HOST_SYS} -DBUILD_SYS=${BUILD_SYS} \
  47. -DSKIP_TESTS=ON \
  48. -DGCC_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \
  49. -DGCC_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \
  50. "
  51. EXTRA_OECMAKE_append_toolchain-clang = " -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib"
  52. LDFLAGS_append_toolchain-clang = " -fuse-ld=lld"
  53. # RV lld errors out:
  54. # riscv64-yoe-linux-ld.lld: error: init.c:(.text+0x0): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
  55. LDFLAGS_remove_riscv32 = "-fuse-ld=lld"
  56. LDFLAGS_remove_riscv64 = "-fuse-ld=lld"
  57. # There are endian issues when communicating with the x86 nifi on the the mips and the ppc machines.
  58. COMPATIBLE_MACHINE_mips = "(!.*mips).*"
  59. COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
  60. COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*"
  61. TARGET_CFLAGS_append_riscv32 = " -fpic"
  62. TARGET_CXXFLAGS_append_riscv32 = " -fpic"
  63. TARGET_CFLAGS_append_riscv64 = " -fpic"
  64. TARGET_CXXFLAGS_append_riscv64 = " -fpic"
  65. do_install[cleandirs] += "${WORKDIR}/minifi-install"
  66. do_install() {
  67. DESTDIR='${WORKDIR}/minifi-install' cmake_runcmake_build --target ${OECMAKE_TARGET_INSTALL}
  68. MINIFI_BIN=${bindir}
  69. MINIFI_HOME=${sysconfdir}/minifi
  70. MINIFI_RUN=${localstatedir}/lib/minifi
  71. MINIFI_LOG=${localstatedir}/log/minifi
  72. install -d ${D}${MINIFI_BIN}
  73. install -d ${D}${MINIFI_HOME}/conf
  74. install -m 755 -d ${D}${localstatedir}/lib/minifi
  75. cp -a ${WORKDIR}/minifi-install/usr/bin/* ${D}${MINIFI_BIN}/
  76. cp -a ${WORKDIR}/minifi-install/usr/conf/* ${D}${MINIFI_HOME}/conf/
  77. sed -i 's|#appender.rolling.directory=.*|appender.rolling.directory='${MINIFI_LOG}'|g' \
  78. ${D}${MINIFI_HOME}/conf/minifi-log.properties
  79. sed -i 's|nifi.provenance.repository.directory.default=.*|nifi.provenance.repository.directory.default='${MINIFI_RUN}'/provenance_repository|g' \
  80. ${D}${MINIFI_HOME}/conf/minifi.properties
  81. sed -i 's|nifi.flowfile.repository.directory.default=.*|nifi.flowfile.repository.directory.default='${MINIFI_RUN}'/flowfile_repository|g' \
  82. ${D}${MINIFI_HOME}/conf/minifi.properties
  83. sed -i 's|nifi.database.content.repository.directory.default=.*|nifi.database.content.repository.directory.default='${MINIFI_RUN}'/content_repository|g' \
  84. ${D}${MINIFI_HOME}/conf/minifi.properties
  85. sed -i 's|nifi.flow.configuration.file=.*|nifi.flow.configuration.file='${MINIFI_HOME}'/conf/config.yml|g' \
  86. ${D}${MINIFI_HOME}/conf/minifi.properties
  87. sed -i 's|export MINIFI_HOME=.*|export MINIFI_HOME='${MINIFI_HOME}'|g' ${D}${MINIFI_BIN}/minifi.sh
  88. sed -i 's|bin_dir=${MINIFI_HOME}/bin|bin_dir='${MINIFI_BIN}'|g' ${D}${MINIFI_BIN}/minifi.sh
  89. sed -i 's|pid_file=${bin_dir}/.|pid_file='${localstatedir}/run/'|g' ${D}${MINIFI_BIN}/minifi.sh
  90. if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
  91. install -d ${D}${sysconfdir}/tmpfiles.d/
  92. install -m 0644 ${WORKDIR}/systemd-volatile.conf ${D}${sysconfdir}/tmpfiles.d/minifi.conf
  93. install -m 0755 -d ${D}${systemd_unitdir}/system
  94. install -m 0644 ${WORKDIR}/minifi.service ${D}${systemd_unitdir}/system/
  95. sed -i 's|@LOCALSTATEDIR@|${localstatedir}|g' ${D}${systemd_unitdir}/system/minifi.service
  96. sed -i 's|@SYSCONFDIR@|${sysconfdir}|g' ${D}${systemd_unitdir}/system/minifi.service
  97. sed -i 's|@BINDIR@|${bindir}|g' ${D}${systemd_unitdir}/system/minifi.service
  98. sed -i 's|@MINIFI_LOG@|'${MINIFI_LOG}'|g' ${D}${sysconfdir}/tmpfiles.d/minifi.conf
  99. elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
  100. install -d ${D}${sysconfdir}/default/volatiles
  101. install -m 0644 ${WORKDIR}/sysvinit-volatile.conf ${D}${sysconfdir}/default/volatiles/99_minifi
  102. sed -i 's|@MINIFI_LOG@|'${MINIFI_LOG}'|g' ${D}${sysconfdir}/default/volatiles/99_minifi
  103. fi
  104. }
  105. pkg_postinst_${PN}() {
  106. if [ -z "$D" ]; then
  107. if type systemd-tmpfiles >/dev/null; then
  108. systemd-tmpfiles --create
  109. elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
  110. ${sysconfdir}/init.d/populate-volatile.sh update
  111. fi
  112. fi
  113. }