27 Commits

Author SHA1 Message Date
Khem Raj caf16b5558 minifi-cpp: fix fmt branch and retarget gcc-16 patch
fmt renamed its default branch master -> main, so the SRCREV was
unreachable.

Also retarget 0001-Fix-build-with-gcc-16 to
minifi-api/include/minifi-cpp/core/RepositoryMetricsSource.h after
the source-tree restructure in 0.99.2.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-28 00:59:26 -07:00
Li Zhou be3418b96c minifi-cpp: upgrade libsodium 1.0.19 -> 1.0.20
Upgrade libsodium from 1.0.19 to 1.0.20 for minifi-cpp third party
dependency.

Updated below patch for upgrading:
0003-Fix-libsodium-build.patch

Removed below patch because it is in the new version:
0007-libsodium-aarch64-set-compiler-attributes-after-including-arm_.patcha

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-20 23:41:41 -07:00
Mingli Yu 57109f8d05 minifi-cpp: Fix build with gcc 16
Fixes:
  extensions/systemd/libwrapper/LibWrapper.h:38:31: error: 'uint64_t' has not been declared
  38 | virtual int getRealtimeUsec(uint64_t* usec_out) noexcept = 0;
  | ^~~~~~~~

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-09 07:26:33 -07:00
Li Zhou c0e52930a9 minifi-cpp: upgrade 0.99.1 -> 0.99.2
Below changes are done for upgrading minifi-cpp from 0.99.1 to 0.99.2.
Updated below patches:
 0001-Do-not-use-bundled-packages.patch
 0003-Fix-libsodium-build.patch
Removed below patch for it is available in new version:
 0008-MINIFICPP-2553-CMP0065-OLD-removed-in-cmake-4.0-remo.patch
Updated third-party components' versions to be aligned with new
version's release note:
 expected-lite	0.6.3->0.9.0
 asio	1.29.0->1.34.2
 fmt	11.1.4->11.2.0
Added new third-party component: jsoncons 1.3.2.
Added DEPENDS on pugixml 1.15 (use the version provided by system).
Added new configs to disable unnecessary third-party components.
Aligned file names and installation paths with new version 0.99.2.
Correct LICENSE.

ChangeLog:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65145325

License-Update: Added BSL-1.0 (jsoncons) and fixed typo in
                concurrentqueue description. [1]
                Removed TinyXml2 (Zlib license) from LICENSE and Zlib
                license is needed by other bundled components. [2]
                No new license type. Changed protobuf from
                "within gRPC" to standalone bundling. [3]
                Added MIT license (llama.cpp). [4]
                Added benchmark (ALv2) to LICENSE/NOTICE. No new
                license since Apache-2.0 already present. [5]

[1] https://github.com/apache/nifi-minifi-cpp/commit/e25a247a4
[2] https://github.com/apache/nifi-minifi-cpp/commit/f28961cfb
[3] https://github.com/apache/nifi-minifi-cpp/commit/97087b22e
[4] https://github.com/apache/nifi-minifi-cpp/commit/8602b76d2
[5] https://github.com/apache/nifi-minifi-cpp/commit/54a643c72

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-09 07:26:32 -07:00
Yi Zhao 00fa5e02f1 minifi-cpp: fix reproducibility issue
Minifi-cpp will add a build identifier to the binary. If not specified,
a random build identifier will be generated for each build. This breaks
reproducibility. Set BUILD_IDENTIFIER to ${PV} to ensure the identifier
remains constant across builds.

Additionally, set BUILD_DATE to SOURCE_DATE_EPOCH to use reproducible
timestamp.

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-09-19 12:22:00 -07:00
Khem Raj d3610b7fe8 minifi-cpp: Include cstdlib in fmt for free/malloc
This helps in compiling with clang-21

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-08-29 22:02:54 -07:00
Moritz Haase b72fb993b3 minifi-cpp: Backport patch to support builds with CMake 4+
There hasn't been a new upstream release yet that ships the required changes.

Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-15 00:25:30 -07:00
Yi Zhao cf88ed337b minifi: upgrade 0.15.0 -> 0.99.1
ChangeLog:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65145325

License-Update: Drop the license for cxxopts and add the license for
                argparse(MIT)[1].
                Update the license for protobuf(3-Clause BSD) and add
                the licenses for RE2(3-Clause BSD) and c-ares(MIT)[2].
                Drop the license for ios-cmake[3].
                Add the license for Lua(MIT)[4].
                Drop the license for libcoap[5].
                Drop the license for uthash[6].
                Drop the licenses for LightPcapNg and PcapPlusPlus[7].
                Add the licenses for HdrHistogram(CC0-1.0) and
                llhttp(MIT)[8].

[1] https://github.com/apache/nifi-minifi-cpp/commit/1dfab222d44100186e3450cd0fc964f04708734b
[2] https://github.com/apache/nifi-minifi-cpp/commit/20d281adafb95fc88d9e58ed47e527b1188f8ad3
[3] https://github.com/apache/nifi-minifi-cpp/commit/1815c018ce928db30f3a36f49aeb43ea94834088
[4] https://github.com/apache/nifi-minifi-cpp/commit/3d7262a883dff57b7e0999a20f6e745d1197f480
[5] https://github.com/apache/nifi-minifi-cpp/commit/3bbaa0789a142e95edb45a73ad68cd8c620a1495
[6] https://github.com/apache/nifi-minifi-cpp/commit/78af9f665ae00ea1e14f96a3bed95ed3877d5403
[7] https://github.com/apache/nifi-minifi-cpp/commit/37891aafb8b2220622a97c29a13a854388193b0a
[8] https://github.com/apache/nifi-minifi-cpp/commit/bd1182eb8cc6121a958d28db41ab27d24d6f54bc

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-03-17 14:01:16 -07:00
Khem Raj a47a40a3e4 minifi-cpp: Fix build with clang and riscv32
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-05-30 08:42:02 -07:00
Khem Raj 79fb44fa43 minifi-cpp: Fix libsodium build on aarch64/clang
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-27 07:57:29 -07:00
Yi Zhao 7cf7c4c782 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>
2024-03-20 20:16:07 -07:00
Robert Yang adecc463a3 minifi-cpp: Fix do_configure error builder aarch64
Fixed do_configure error when build on aarch64 host:
error: cannot guess build type; you must specify one

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-12-12 08:56:54 -08:00
Martin Jansa 5733ddc834 minifi-cpp, mozjs-115, redis-7.2.1, pv: add missing Upstream-Status
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-09-27 14:22:09 -07:00
Mingli Yu 09c071b53e minifi-cpp: Remove the buildpath issue
Don't override CFLAGS and just append the "-fPIC" to CFLAGS to make
sure -fdebug-prefix-map option passed to compiler to fix the below
issue:
  WARNING: minifi-cpp-0.7.0-r0 do_package_qa: QA Issue: File /usr/bin/.debug/minificontroller in package minifi-cpp-dbg contains reference to TMPDIR
  File /usr/bin/.debug/minifi in package minifi-cpp-dbg contains reference to TMPDIR [buildpaths]

Pass the OPENSSLDIR to avoid introducing the build path to fix the
below issue:
  WARNING: minifi-cpp-0.7.0-r0 do_package_qa: QA Issue: File /usr/bin/minificontroller in package minifi-cpp contains reference to TMPDIR
  File /usr/bin/minifi in package minifi-cpp contains reference to TMPDIR [buildpaths]

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-09-20 15:34:02 -07:00
Khem Raj 3f1bdfaaa8 minifi-cpp: Fix build with clang 17
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-07-07 08:59:27 -07:00
Martin Jansa be8c765c7c *.patch: add Upstream-Status to all patches
There is new patch-status QA check in oe-core:
https://git.openembedded.org/openembedded-core/commit/?id=76a685bfcf927593eac67157762a53259089ea8a

This is temporary work around just to hide _many_ warnings from
optional patch-status (if you add it to WARN_QA).

This just added
Upstream-Status: Pending
everywhere without actually investigating what's the proper status.

This is just to hide current QA warnings and to catch new .patch files being
added without Upstream-Status, but the number of Pending patches is now terrible:

5 (26%) 	meta-xfce
6 (50%) 	meta-perl
15 (42%)        meta-webserver
21 (36%)        meta-gnome
25 (57%)        meta-filesystems
26 (43%)        meta-initramfs
45 (45%)        meta-python
47 (55%)        meta-multimedia
312 (63%)       meta-networking
756 (61%)       meta-oe

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-21 09:15:20 -07:00
Khem Raj f1ab25b104 minifi-cpp: Always use stat on 64bit linux
stat64 is an alias to stat on 64bit linux moreover this makes it work
with musl where LFS64 functions are deprecated

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-06 13:45:10 -07:00
Khem Raj de569f1111 minifi-cpp: Fix build with gcc13
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-27 17:06:52 -08:00
Khem Raj 5b73deaf18 minifi-cpp: Disable lto.
lto does not work always. Its enabled only in civetweb and no where
else. Fow cosnsitent builds disable it everywhere.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-09-07 16:44:54 -07:00
Khem Raj 5963e95577 minifi-cpp: Fix build with llvm C++ runtime
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-05-28 06:55:34 -07:00
Khem Raj 6d795ff511 minifi-cpp: include limits header for numeric_limits definition
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-03 11:08:29 -08:00
Yi Zhao c697727db7 minifi-cpp: specify GCC_AR and GCC_RANLIB
We encountered a minifi-cpp build error on a self-hosted image:
[snip]
/build/tmp-glibc/work/corei7-64-wrs-linux/minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/x86_64-wrs-linux-ranlib:
thirdparty/civetweb-1.10/src/libcivetweb-cpp.a(CivetServer.cpp.o): plugin needed to handle lto object
/build/tmp-glibc/work/corei7-64-wrs-linux/minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/x86_64-wrs-linux-ranlib:
thirdparty/civetweb-1.10/src/libcivetweb.a(civetweb.c.o): plugin needed to handle lto object
[snip]
/build/tmp-glibc/work/corei7-64-wrs-linux/minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/../../libexec/x86_64-wrs-linux/gcc/x86_64-wrs-linux/10.2.0/ld: DWARF error: could not find variable specification at offset c960f
/build/tmp-glibc/work/corei7-64-wrs-linux/minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/../../libexec/x86_64-wrs-linux/gcc/x86_64-wrs-linux/10.2.0/ld: DWARF error: could not find variable specification at offset c961d
[snip]
extensions/civetweb/libminifi-civet-extensions.a(ListenHTTP.cpp.o):
in function `org::apache::nifi::minifi::processors::ListenHTTP::WriteCallback::process(std::shared_ptr<org::apache::nifi::minifi::io::BaseStream>)':
/usr/src/debug/minifi-cpp/0.7.0-r0/git/extensions/civetweb/processors/ListenHTTP.cpp:464: undefined reference to `mg_read'
[snip]

When using GCC's link-time optimization with static linked libraries, we
should use gcc-ar and gcc-ranlib to create the static libraries. By
default, it will search gcc-ar and gcc-ranlib in the system. But if the
gcc-ranlib is not found, it will use ranlib instead which causes this
issue.
Specify GCC_AR and GCC_RANLIB in EXTRA_OECMAKE to make sure it can find
the correct gcc-ar/gcc-ranlib.

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-02 09:00:51 -08:00
Yi Zhao a8bc9fb94f minifi-cpp: set the default repositories location to /var/lib
Currently, the provenance repository, flowfile repository and content
repository are created in /var/run/ directory which is mounted as tmpfs.
Since the minifi uses RocksDB repositories with direct IO, we will
encounter an error when restart minifi service:

[org::apache::nifi::minifi::provenance::ProvenanceRepository] [error]
MiNiFi Provenance Repository database open /var/run/minifi/provenance_repository failed: IO error:
While open a file for appending: /var/run/minifi/provenance_repository/000004.sst: Invalid argument

Set the default repositories directory to /var/lib to fix this issue.

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-09-28 09:17:18 -07:00
Yi Zhao 256d24c6d6 minifi-cpp: do not download source during compile
The minifi-cpp needs to download and compile several sources
during compile. Add these sources to SRC_URI to make sure they are
downloaded in do_fetch not in do_compile.

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-09-28 09:17:18 -07:00
Khem Raj aef9af7697 minifi-cpp: Fix linking with libxml2
when libxml2-native is staged, then on x86 it starts to detect that for
target and fail to build

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-18 09:35:23 -07:00
Khem Raj 503d90b608 minifi-cpp: Fix build with lto/clang
Define CMAKE_RANLIN to llvm-ranlib and use lld for linking since it
detects LTO use for civetweb and therefore archives (.a) should be
creatd is compiler ar/ranlib and gold or lld be used.

backport a patch to fix build with clang, this patch is already proposed
via [1]

[1] https://github.com/facebook/rocksdb/pull/7265

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-17 16:26:14 -07:00
wonjong.lee 0260861004 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>
2020-08-10 11:04:21 -07:00