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>
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>
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>
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] 1dfab222d4
[2] 20d281adaf
[3] 1815c018ce
[4] 3d7262a883
[5] 3bbaa0789a
[6] 78af9f665a
[7] 37891aafb8
[8] bd1182eb8c
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>