summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwonjong.lee <wonjong.lee@windriver.com>2020-08-10 19:02:31 +0900
committerKhem Raj <raj.khem@gmail.com>2020-08-10 11:04:21 -0700
commit02608610043b200764b7ec743acfe3af71a7024d (patch)
tree04990929f7b4731551fd752102beaba0083e74c1
parentb3d6f4f85f0c0b27aa12bcbe6c981f78706a716a (diff)
downloadmeta-openembedded-02608610043b200764b7ec743acfe3af71a7024d.tar.gz
minifi: Add recipe for c++ version
MiNiFi--a subproject of Apache NiFi--is a complementary data collection approach that supplements the core tenets of NiFi in dataflow management, focusing on the collection of data at the source of its creation. The C++ implementation is an additional implementation to the one in Java with the aim of an even smaller resource footprint. Signed-off-by: wonjong.lee <wonjong.lee@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch34
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch43
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch60
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch36
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch37
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch25
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch12
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/minifi.service13
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/systemd-volatile.conf2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/sysvinit-volatile.conf2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb116
11 files changed, 380 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch
new file mode 100644
index 0000000000..d0febfd534
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch
@@ -0,0 +1,34 @@
1diff -urN -x .git orig/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch patched/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch
2--- orig/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch 1970-01-01 09:00:00.000000000 +0900
3+++ patched/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch 2020-08-07 23:14:46.196764271 +0900
4@@ -0,0 +1,30 @@
5+This patch was imported from the libressl potable.
6+https://github.com/libressl-portable/portable/commit/a9332ccecfce63bf54924e70c11f420edd3ae312
7+
8+From a9332ccecfce63bf54924e70c11f420edd3ae312 Mon Sep 17 00:00:00 2001
9+From: Brent Cook <bcook@openbsd.org>
10+Date: Sun, 17 Jul 2016 18:12:23 -0500
11+Subject: [PATCH] avoid BSWAP assembly for ARM <= v6
12+
13+diff -urN orig/crypto/modes/modes_lcl.h patched/crypto/modes/modes_lcl.h
14+--- orig/crypto/modes/modes_lcl.h 2018-11-18 21:27:10.000000000 +0900
15++++ patched/crypto/modes/modes_lcl.h 2020-08-07 23:11:01.960764745 +0900
16+@@ -45,14 +45,16 @@
17+ asm ("bswapl %0" \
18+ : "+r"(ret)); ret; })
19+ # elif (defined(__arm__) || defined(__arm)) && !defined(__STRICT_ALIGNMENT)
20+-# define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \
21++# if (__ARM_ARCH >= 6)
22++# define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \
23+ asm ("rev %0,%0; rev %1,%1" \
24+ : "+r"(hi),"+r"(lo)); \
25+ (u64)hi<<32|lo; })
26+-# define BSWAP4(x) ({ u32 ret; \
27++# define BSWAP4(x) ({ u32 ret; \
28+ asm ("rev %0,%1" \
29+ : "=r"(ret) : "r"((u32)(x))); \
30+ ret; })
31++# endif
32+ # endif
33+ #endif
34+ #endif
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch
new file mode 100644
index 0000000000..84b8c8cb0e
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch
@@ -0,0 +1,43 @@
1diff -urN -x .git orig/cmake/LibreSSL.cmake patched/cmake/LibreSSL.cmake
2--- orig/cmake/LibreSSL.cmake 2020-08-07 21:58:34.660773928 +0900
3+++ patched/cmake/LibreSSL.cmake 2020-08-07 22:51:18.620767245 +0900
4@@ -18,6 +18,9 @@
5 function(use_libre_ssl SOURCE_DIR BINARY_DIR)
6 message("Using bundled LibreSSL from release")
7
8+ find_package(Patch REQUIRED)
9+ set(PATCH "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch")
10+
11 set(BYPRODUCT_PREFIX "lib" CACHE STRING "" FORCE)
12 set(BYPRODUCT_SUFFIX ".a" CACHE STRING "" FORCE)
13
14@@ -27,16 +30,29 @@
15 set(BYPRODUCT_PREFIX "" CACHE STRING "" FORCE)
16 set(BUILD_ARGS " -GVisual Studio 15 2017")
17 endif(WIN32)
18+
19+ set(BYPRODUCTS
20+ "lib/${BYPRODUCT_PREFIX}crypto${BYPRODUCT_SUFFIX}"
21+ "lib/${BYPRODUCT_PREFIX}ssl${BYPRODUCT_SUFFIX}"
22+ "lib/${BYPRODUCT_PREFIX}tls${BYPRODUCT_SUFFIX}"
23+ )
24+ set(LIBRESSL_INSTALL_DIR "${BINARY_DIR}/thirdparty/libressl-install" CACHE STRING "" FORCE)
25+ FOREACH(BYPRODUCT ${BYPRODUCTS})
26+ LIST(APPEND LIBRESSL_LIBRARIES_LIST "${LIBRESSL_INSTALL_DIR}/${BYPRODUCT}")
27+ ENDFOREACH(BYPRODUCT)
28+
29 ExternalProject_Add(
30 libressl-portable
31 URL https://cdn.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz https://gentoo.osuosl.org/distfiles/libressl-2.8.3.tar.gz
32 URL_HASH "SHA256=9b640b13047182761a99ce3e4f000be9687566e0828b4a72709e9e6a3ef98477"
33 SOURCE_DIR "${BINARY_DIR}/thirdparty/libressl-src"
34+ PATCH_COMMAND ${PATCH}
35 CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
36 "-DCMAKE_INSTALL_PREFIX=${BINARY_DIR}/thirdparty/libressl-install"
37 "-DLIBRESSL_APPS=OFF"
38 "-DLIBRESSL_TESTS=OFF"
39 "${BUILD_ARGS}"
40+ BUILD_BYPRODUCTS ${LIBRESSL_LIBRARIES_LIST}
41 )
42
43 add_library(crypto STATIC IMPORTED)
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch
new file mode 100644
index 0000000000..9653ba3426
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch
@@ -0,0 +1,60 @@
1diff -urN -x .git orig/CMakeLists.txt patched/CMakeLists.txt
2--- orig/CMakeLists.txt 2020-08-07 21:58:34.656773928 +0900
3+++ patched/CMakeLists.txt 2020-08-10 15:08:31.800278357 +0900
4@@ -119,13 +119,28 @@
5 endif()
6 endif()
7
8+include(CheckCXXSourceCompiles)
9+CHECK_CXX_SOURCE_COMPILES("
10+ #include <atomic>
11+ int main(int argc, char **argv) {
12+ uint8_t m;
13+ __atomic_load_8(&m, 0);
14+ __atomic_fetch_add_1(&m , 0, 0);
15+ return 0;
16+ }"
17+ HAVE_ATOMIC
18+)
19+if(NOT HAVE_ATOMIC)
20+ set(LIB_ATOMIC atomic)
21+endif()
22+
23 # Use ccache if present
24-find_program(CCACHE_FOUND ccache)
25-if(CCACHE_FOUND)
26- set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
27- set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
28- message("-- Found ccache: ${CCACHE_FOUND}")
29-endif(CCACHE_FOUND)
30+#find_program(CCACHE_FOUND ccache)
31+#if(CCACHE_FOUND)
32+# set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
33+# set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
34+# message("-- Found ccache: ${CCACHE_FOUND}")
35+#endif(CCACHE_FOUND)
36
37 if (UNIX AND USE_GOLD_LINKER AND NOT APPLE )
38 execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE ld_version)
39@@ -303,8 +318,10 @@
40 GIT_TAG "f3294d9d86e6a7915a967efff2842089b8b0d071" # Version 7.64.0
41 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-src"
42 LIST_SEPARATOR % # This is needed for passing semicolon-separated lists
43+ TLS_VERIFY OFF
44 CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
45 "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-install"
46+ "-DCMAKE_INSTALL_LIBDIR=lib${LIBSUFFIX}"
47 -DCMAKE_POSITION_INDEPENDENT_CODE=ON
48 -DBUILD_CURL_EXE=OFF
49 -DBUILD_TESTING=OFF
50diff -urN -x .git orig/libminifi/CMakeLists.txt patched/libminifi/CMakeLists.txt
51--- orig/libminifi/CMakeLists.txt 2020-08-07 21:58:34.676773928 +0900
52+++ patched/libminifi/CMakeLists.txt 2020-08-10 15:06:17.124278642 +0900
53@@ -108,6 +108,7 @@
54 add_library(spdlog STATIC ${SPD_SOURCES})
55 add_library(core-minifi STATIC ${SOURCES})
56 target_link_libraries(core-minifi ${CMAKE_DL_LIBS} yaml-cpp)
57+target_link_libraries(core-minifi ${LIB_ATOMIC})
58
59 #target_link_libraries(core-minifi PRIVATE bsdiff )
60
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch
new file mode 100644
index 0000000000..42e1e583c3
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch
@@ -0,0 +1,36 @@
1diff -urN -x .git orig/cmake/BundledOSSPUUID.cmake patched/cmake/BundledOSSPUUID.cmake
2--- orig/cmake/BundledOSSPUUID.cmake 2020-08-07 21:58:34.660773928 +0900
3+++ patched/cmake/BundledOSSPUUID.cmake 2020-08-07 22:05:57.404772993 +0900
4@@ -22,7 +22,9 @@
5
6 # Define patch step
7 find_package(Patch REQUIRED)
8- set(PC "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch")
9+ set(PATCH1 "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch")
10+ set(PATCH2 "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch")
11+ set(PATCH3 "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch")
12
13 # Define byproducts
14 set(BYPRODUCTS "lib/libuuid.a"
15@@ -35,7 +37,9 @@
16 ENDFOREACH(BYPRODUCT)
17
18 # Build project
19- set(CONFIGURE_COMMAND ./configure "CFLAGS=-fPIC" "CXXFLAGS=-fPIC" --with-cxx --without-perl --without-php --without-pgsql "--prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install")
20+ set(CONFIGURE_COMMAND ac_cv_va_copy=C99 ./configure CFLAGS=-fPIC CXXFLAGS=-fPIC --host=${HOST_SYS}
21+ --with-cxx --without-perl --without-php --without-pgsql
22+ --prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install)
23 string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type)
24 if(NOT build_type MATCHES debug)
25 list(APPEND CONFIGURE_COMMAND --enable-debug=yes)
26@@ -52,8 +56,8 @@
27 UPDATE_COMMAND ""
28 INSTALL_COMMAND make install
29 BUILD_BYPRODUCTS ${OSSPUUID_LIBRARIES_LIST}
30- CONFIGURE_COMMAND ""
31- PATCH_COMMAND ${PC} && ${CONFIGURE_COMMAND}
32+ CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
33+ PATCH_COMMAND ${PATCH1} && ${PATCH2} && ${PATCH3}
34 STEP_TARGETS build
35 EXCLUDE_FROM_ALL TRUE
36 )
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch
new file mode 100644
index 0000000000..dc354d9ac7
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch
@@ -0,0 +1,37 @@
1diff -urN -x .git orig/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch patched/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch
2--- orig/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch 1970-01-01 09:00:00.000000000 +0900
3+++ patched/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch 2020-08-07 22:28:04.396770190 +0900
4@@ -0,0 +1,33 @@
5+diff -urN orig/config.sub patched/config.sub
6+--- orig/config.sub 2008-07-05 06:43:08.000000000 +0900
7++++ patched/config.sub 2020-08-07 22:23:48.412770731 +0900
8+@@ -238,6 +238,8 @@
9+ # Some are omitted here because they have special meanings below.
10+ 1750a | 580 \
11+ | a29k \
12++ | aarch64 | aarch64_be \
13++ | riscv32 | riscv64 \
14+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
15+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
16+ | am33_2.0 \
17+@@ -314,6 +316,8 @@
18+ # Recognize the basic CPU types with company name.
19+ 580-* \
20+ | a29k-* \
21++ | aarch64-* | aarch64_be-* \
22++ | riscv32-* | riscv64-* \
23+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
24+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
25+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
26+diff -urN orig/shtool patched/shtool
27+--- orig/shtool 2008-07-05 06:43:08.000000000 +0900
28++++ patched/shtool 2020-08-07 22:21:23.192771037 +0900
29+@@ -1400,7 +1400,7 @@
30+ if [ ".$opt_t" = .yes ]; then
31+ echo "strip $dsttmp" 1>&2
32+ fi
33+- strip $dsttmp || shtool_exit $?
34++ $STRIP $dsttmp || shtool_exit $?
35+ fi
36+ if [ ".$opt_o" != . ]; then
37+ if [ ".$opt_t" = .yes ]; then
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch
new file mode 100644
index 0000000000..7caf848eb5
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch
@@ -0,0 +1,25 @@
1diff -urN -x .git orig/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch patched/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch
2--- orig/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch 1970-01-01 09:00:00.000000000 +0900
3+++ patched/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch 2020-08-07 11:22:49.344854508 +0900
4@@ -0,0 +1,21 @@
5+diff -urN orig/config.sub patched/config.sub
6+--- orig/config.sub 2008-07-05 06:43:08.000000000 +0900
7++++ patched/config.sub 2020-08-07 11:19:25.948854937 +0900
8+@@ -120,7 +120,7 @@
9+ # Here we must recognize all the valid KERNEL-OS combinations.
10+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
11+ case $maybe_os in
12+- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
13++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | linux-musl* | \
14+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
15+ storm-chaos* | os2-emx* | rtmk-nova*)
16+ os=-$maybe_os
17+@@ -1250,7 +1250,7 @@
18+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
19+ | -chorusos* | -chorusrdb* \
20+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
21+- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
22++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* | -linux-musl* \
23+ | -uxpv* | -beos* | -mpeix* | -udk* \
24+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
25+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch
new file mode 100644
index 0000000000..8c5db7c9e3
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch
@@ -0,0 +1,12 @@
1diff -urN orig/thirdparty/rocksdb/CMakeLists.txt patched/thirdparty/rocksdb/CMakeLists.txt
2--- orig/thirdparty/rocksdb/CMakeLists.txt 2020-07-28 11:39:40.254677515 +0900
3+++ patched/thirdparty/rocksdb/CMakeLists.txt 2020-07-28 11:51:11.898676054 +0900
4@@ -618,6 +618,7 @@
5 add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES})
6 target_link_libraries(${ROCKSDB_STATIC_LIB}
7 ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
8+target_link_libraries(${ROCKSDB_STATIC_LIB} ${LIB_ATOMIC})
9
10 if(WIN32)
11 # add_library(${ROCKSDB_IMPORT_LIB} SHARED ${SOURCES})
12
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/minifi.service b/meta-oe/recipes-extended/minifi-cpp/files/minifi.service
new file mode 100644
index 0000000000..5802a7b2fd
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/minifi.service
@@ -0,0 +1,13 @@
1[Unit]
2Description=MiNiFi Service
3After=network.target
4RequiresMountsFor=/var
5
6[Service]
7Type=simple
8WorkingDirectory=@LOCALSTATEDIR@/run/minifi
9Environment=MINIFI_HOME=@SYSCONFDIR@/minifi
10ExecStart=@BINDIR@/minifi
11
12[Install]
13WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/systemd-volatile.conf b/meta-oe/recipes-extended/minifi-cpp/files/systemd-volatile.conf
new file mode 100644
index 0000000000..c828b49fa3
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/systemd-volatile.conf
@@ -0,0 +1,2 @@
1d @MINIFI_RUN@ 0755 root root -
2d @MINIFI_LOG@ 0755 root root -
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/sysvinit-volatile.conf b/meta-oe/recipes-extended/minifi-cpp/files/sysvinit-volatile.conf
new file mode 100644
index 0000000000..2ad14e677b
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/sysvinit-volatile.conf
@@ -0,0 +1,2 @@
1d root root 0755 @MINIFI_RUN@ none
2d root root 0755 @MINIFI_LOG@ none
diff --git a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
new file mode 100644
index 0000000000..150d1fa53c
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
@@ -0,0 +1,116 @@
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=f9534eb5f4ab800b573a37bffc62f3a7"
9
10DEPENDS = "virtual/crypt expat flex python3 bison-native"
11RDEPENDS_${PN} = "python3-core"
12
13SRCREV = "aa42957a2e227df41510047cece3cd606dc1cb6a"
14SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git \
15 file://fix-minifi-compile.patch \
16 file://fix-libressl-compile.patch \
17 file://fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch \
18 file://fix-osspuuid-compile.patch \
19 file://fix-osspuuid-cross-compile.patch \
20 file://fix-osspuuid-musl-compile.patch \
21 file://fix-rocksdb-cross-compile.patch \
22 file://minifi.service \
23 file://systemd-volatile.conf \
24 file://sysvinit-volatile.conf \
25 "
26S = "${WORKDIR}/git"
27
28inherit pkgconfig cmake systemd
29
30SYSTEMD_PACKAGES = "minifi-cpp"
31SYSTEMD_SERVICE_${PN} = "minifi.service"
32SYSTEMD_AUTO_ENABLE = "disable"
33
34OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
35
36EXTRA_OECMAKE += " \
37 -DHOST_SYS=${HOST_SYS} -DBUILD_SYS=${BUILD_SYS} \
38 -DSKIP_TESTS=ON \
39 "
40
41# There are endian issues when communicating with the x86 nifi on the the mips and the ppc machines.
42COMPATIBLE_MACHINE_mips = "(!.*mips).*"
43COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
44COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*"
45
46TARGET_CFLAGS_append_riscv32 += "-fpic"
47TARGET_CXXFLAGS_append_riscv32 += "-fpic"
48TARGET_CFLAGS_append_riscv64 += "-fpic"
49TARGET_CXXFLAGS_append_riscv64 += "-fpic"
50
51
52do_install() {
53 DESTDIR='${B}/minifi-install' cmake_runcmake_build --target ${OECMAKE_TARGET_INSTALL}
54
55 MINIFI_BIN=${base_prefix}${bindir}
56 MINIFI_HOME=${base_prefix}${sysconfdir}/minifi
57 MINIFI_RUN=${base_prefix}${localstatedir}/run/minifi
58 MINIFI_LOG=${base_prefix}${localstatedir}/log/minifi
59
60 install -d ${D}${MINIFI_BIN}
61 install -d ${D}${MINIFI_HOME}/conf
62 cp -a ${B}/minifi-install/usr/bin/* ${D}${MINIFI_BIN}/
63 cp -a ${B}/minifi-install/usr/conf/* ${D}${MINIFI_HOME}/conf/
64
65 sed -i 's|#appender.rolling.directory=.*|appender.rolling.directory='${MINIFI_LOG}'|g' \
66 ${D}${MINIFI_HOME}/conf/minifi-log.properties
67 sed -i 's|nifi.provenance.repository.directory.default=.*|nifi.provenance.repository.directory.default='${MINIFI_RUN}'/provenance_repository|g' \
68 ${D}${MINIFI_HOME}/conf/minifi.properties
69 sed -i 's|nifi.flowfile.repository.directory.default=.*|nifi.flowfile.repository.directory.default='${MINIFI_RUN}'/flowfile_repository|g' \
70 ${D}${MINIFI_HOME}/conf/minifi.properties
71 sed -i 's|nifi.database.content.repository.directory.default=.*|nifi.database.content.repository.directory.default='${MINIFI_RUN}'/content_repository|g' \
72 ${D}${MINIFI_HOME}/conf/minifi.properties
73 sed -i 's|nifi.flow.configuration.file=.*|nifi.flow.configuration.file='${MINIFI_HOME}'/conf/config.yml|g' \
74 ${D}${MINIFI_HOME}/conf/minifi.properties
75
76 sed -i 's|export MINIFI_HOME=.*|export MINIFI_HOME='${MINIFI_HOME}'|g' ${D}${MINIFI_BIN}/minifi.sh
77 sed -i 's|bin_dir=${MINIFI_HOME}/bin|bin_dir='${MINIFI_BIN}'|g' ${D}${MINIFI_BIN}/minifi.sh
78 sed -i 's|pid_file=${bin_dir}|pid_file='${MINIFI_RUN}'|g' ${D}${MINIFI_BIN}/minifi.sh
79
80 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
81 install -d ${D}${sysconfdir}/tmpfiles.d/
82 install -m 0644 ${WORKDIR}/systemd-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
83 install -m 0755 -d ${D}${systemd_unitdir}/system
84 install -m 0644 ${WORKDIR}/minifi.service ${D}${systemd_unitdir}/system/
85
86 sed -i 's|@LOCALSTATEDIR@|${localstatedir}|g' ${D}${systemd_unitdir}/system/minifi.service
87 sed -i 's|@SYSCONFDIR@|${sysconfdir}|g' ${D}${systemd_unitdir}/system/minifi.service
88 sed -i 's|@BINDIR@|${bindir}|g' ${D}${systemd_unitdir}/system/minifi.service
89
90 sed -i 's|@MINIFI_RUN@|'${MINIFI_RUN}'|g' ${D}${sysconfdir}/tmpfiles.d/systemd-volatile.conf
91 sed -i 's|@MINIFI_LOG@|'${MINIFI_LOG}'|g' ${D}${sysconfdir}/tmpfiles.d/systemd-volatile.conf
92
93 elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
94 install -d ${D}${sysconfdir}/default/volatiles
95 install -m 0644 ${WORKDIR}/sysvinit-volatile.conf ${D}${sysconfdir}/default/volatiles/99_minifi
96
97 sed -i 's|@MINIFI_RUN@|'${MINIFI_RUN}'|g' ${D}${sysconfdir}/default/volatiles/99_minifi
98 sed -i 's|@MINIFI_LOG@|'${MINIFI_LOG}'|g' ${D}${sysconfdir}/default/volatiles/99_minifi
99 fi
100}
101
102pkg_postinst_${PN}() {
103 if [ -z "$D" ]; then
104 if type systemd-tmpfiles >/dev/null; then
105 systemd-tmpfiles --create
106 elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
107 ${sysconfdir}/init.d/populate-volatile.sh update
108 fi
109 fi
110}
111
112FILES_${PN} = " \
113 ${bindir} \
114 ${sysconfdir} \
115 ${systemd_unitdir} \
116 "