You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2022/06/01 18:43:03 UTC
[nifi-minifi-cpp] branch main updated: MINIFICPP-1852 parameterize all docker builds, enable more extensions Closes #1341
This is an automated email from the ASF dual-hosted git repository.
martinzink pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
The following commit(s) were added to refs/heads/main by this push:
new d10268674 MINIFICPP-1852 parameterize all docker builds, enable more extensions Closes #1341
d10268674 is described below
commit d102686742a3694d1105977b0af50a0c82c8f347
Author: Marton Szasz <sz...@apache.org>
AuthorDate: Wed Jun 1 20:37:00 2022 +0200
MINIFICPP-1852 parameterize all docker builds, enable more extensions
Closes #1341
Signed-off-by: Martin Zink <ma...@apache.org>
---
CMakeLists.txt | 15 +++--
cmake/DockerConfig.cmake | 157 +++++++++++++++++++++++++++++++++++++++++++++++
docker/bionic/Dockerfile | 60 ++++++++++++++++--
docker/centos/Dockerfile | 60 ++++++++++++++++--
docker/fedora/Dockerfile | 60 ++++++++++++++++--
docker/focal/Dockerfile | 57 ++++++++++++++++-
6 files changed, 386 insertions(+), 23 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a0830c18d..d7492af33 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -100,30 +100,29 @@ option(DISABLE_LZMA "Disables the liblzma build" OFF)
option(DISABLE_BZIP2 "Disables the bzip2 build" OFF)
option(ENABLE_GPS "Enables the GPS extension." OFF)
option(ENABLE_COAP "Enables the CoAP extension." OFF)
-option(ENABLE_SQL "Enables the SQL Suite of Tools." OFF)
+option(ENABLE_SQL "Enables the SQL Suite of Tools." ON)
option(ENABLE_MQTT "Enables the mqtt extension." OFF)
option(ENABLE_PCAP "Enables the PCAP extension." OFF)
-option(ENABLE_LIBRDKAFKA "Enables the librdkafka extension." OFF)
+option(ENABLE_LIBRDKAFKA "Enables the librdkafka extension." ON)
option(ENABLE_SCRIPTING "Enables the scripting extensions." OFF)
option(ENABLE_SENSORS "Enables the Sensors package." OFF)
option(ENABLE_USB_CAMERA "Enables USB camera support." OFF)
option(ENABLE_TENSORFLOW "Enables the TensorFlow extensions." OFF) ## Disabled by default because TF can be complex/environment-specific to build
-option(ENABLE_AWS "Enables AWS support." OFF)
+option(ENABLE_AWS "Enables AWS support." ON)
option(ENABLE_OPENCV "Enables the OpenCV extensions." OFF)
option(ENABLE_BUSTACHE "Enables Bustache (ApplyTemplate) support." OFF)
option(ENABLE_SFTP "Enables SFTP support." OFF)
option(ENABLE_OPENWSMAN "Enables the Openwsman extensions." OFF)
-option(ENABLE_AZURE "Enables Azure support." OFF)
+option(ENABLE_AZURE "Enables Azure support." ON)
option(ENABLE_ENCRYPT_CONFIG "Enables build of encrypt-config binary." ON)
-option(ENABLE_SPLUNK "Enable Splunk support" OFF)
-option(ENABLE_GCP "Enable Google Cloud support" OFF)
-option(ENABLE_PROCFS "Enable ProcFs support" OFF)
+option(ENABLE_SPLUNK "Enable Splunk support" ON)
+option(ENABLE_GCP "Enable Google Cloud support" ON)
option(DOCKER_BUILD_ONLY "Disables all targets except docker build scripts. Ideal for systems without an up-to-date compiler." OFF)
option(ENABLE_KUBERNETES "Enables the Kubernetes extensions." OFF)
option(ENABLE_TEST_PROCESSORS "Enables test processors" OFF)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- option(ENABLE_PROCFS "Enables the procfs extension." OFF)
+ option(ENABLE_PROCFS "Enables the procfs extension." ON)
endif()
## Keep all option definitions above this line
diff --git a/cmake/DockerConfig.cmake b/cmake/DockerConfig.cmake
index 1e53b9dea..8e6387270 100644
--- a/cmake/DockerConfig.cmake
+++ b/cmake/DockerConfig.cmake
@@ -94,7 +94,46 @@ add_custom_target(
-u 1000
-g 1000
-v ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
+ -c ENABLE_ALL=${ENABLE_ALL}
+ -c ENABLE_PYTHON=${ENABLE_PYTHON}
+ -c ENABLE_OPS=${ENABLE_OPS}
-c ENABLE_JNI=${ENABLE_JNI}
+ -c ENABLE_OPENCV=${ENABLE_OPENCV}
+ -c ENABLE_OPC=${ENABLE_OPC}
+ -c ENABLE_GPS=${ENABLE_GPS}
+ -c ENABLE_COAP=${ENABLE_COAP}
+ -c ENABLE_SQL=${ENABLE_SQL}
+ -c ENABLE_MQTT=${ENABLE_MQTT}
+ -c ENABLE_PCAP=${ENABLE_PCAP}
+ -c ENABLE_LIBRDKAFKA=${ENABLE_LIBRDKAFKA}
+ -c ENABLE_SENSORS=${ENABLE_SENSORS}
+ -c ENABLE_USB_CAMERA=${ENABLE_USB_CAMERA}
+ -c ENABLE_TENSORFLOW=${ENABLE_TENSORFLOW}
+ -c ENABLE_AWS=${ENABLE_AWS}
+ -c ENABLE_BUSTACHE=${ENABLE_BUSTACHE}
+ -c ENABLE_SFTP=${ENABLE_SFTP}
+ -c ENABLE_OPENWSMAN=${ENABLE_OPENWSMAN}
+ -c ENABLE_AZURE=${ENABLE_AZURE}
+ -c ENABLE_ENCRYPT_CONFIG=${ENABLE_ENCRYPT_CONFIG}
+ -c ENABLE_NANOFI=${ENABLE_NANOFI}
+ -c ENABLE_SPLUNK=${ENABLE_SPLUNK}
+ -c ENABLE_GCP=${ENABLE_GCP}
+ -c ENABLE_SCRIPTING=${ENABLE_SCRIPTING}
+ -c ENABLE_LUA_SCRIPTING=${ENABLE_LUA_SCRIPTING}
+ -c ENABLE_KUBERNETES=${ENABLE_KUBERNETES}
+ -c ENABLE_PROCFS=${ENABLE_PROCFS}
+ -c ENABLE_SYSTEMD=${ENABLE_SYSTEMD}
+ -c DISABLE_CURL=${DISABLE_CURL}
+ -c DISABLE_JEMALLOC=${DISABLE_JEMALLOC}
+ -c DISABLE_CIVET=${DISABLE_CIVET}
+ -c DISABLE_EXPRESSION_LANGUAGE=${DISABLE_EXPRESSION_LANGUAGE}
+ -c DISABLE_ROCKSDB=${DISABLE_ROCKSDB}
+ -c DISABLE_LIBARCHIVE=${DISABLE_LIBARCHIVE}
+ -c DISABLE_LZMA=${DISABLE_LZMA}
+ -c DISABLE_BZIP2=${DISABLE_BZIP2}
+ -c DISABLE_SCRIPTING=${DISABLE_SCRIPTING}
+ -c DISABLE_PYTHON_SCRIPTING=${DISABLE_PYTHON_SCRIPTING}
+ -c DISABLE_CONTROLLER=${DISABLE_CONTROLLER}
-l ${CMAKE_BINARY_DIR}
-d centos
-c BUILD_NUMBER=${BUILD_NUMBER}
@@ -106,7 +145,46 @@ add_custom_target(
-u 1000
-g 1000
-v ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
+ -c ENABLE_ALL=${ENABLE_ALL}
+ -c ENABLE_PYTHON=${ENABLE_PYTHON}
+ -c ENABLE_OPS=${ENABLE_OPS}
-c ENABLE_JNI=${ENABLE_JNI}
+ -c ENABLE_OPENCV=${ENABLE_OPENCV}
+ -c ENABLE_OPC=${ENABLE_OPC}
+ -c ENABLE_GPS=${ENABLE_GPS}
+ -c ENABLE_COAP=${ENABLE_COAP}
+ -c ENABLE_SQL=${ENABLE_SQL}
+ -c ENABLE_MQTT=${ENABLE_MQTT}
+ -c ENABLE_PCAP=${ENABLE_PCAP}
+ -c ENABLE_LIBRDKAFKA=${ENABLE_LIBRDKAFKA}
+ -c ENABLE_SENSORS=${ENABLE_SENSORS}
+ -c ENABLE_USB_CAMERA=${ENABLE_USB_CAMERA}
+ -c ENABLE_TENSORFLOW=${ENABLE_TENSORFLOW}
+ -c ENABLE_AWS=${ENABLE_AWS}
+ -c ENABLE_BUSTACHE=${ENABLE_BUSTACHE}
+ -c ENABLE_SFTP=${ENABLE_SFTP}
+ -c ENABLE_OPENWSMAN=${ENABLE_OPENWSMAN}
+ -c ENABLE_AZURE=${ENABLE_AZURE}
+ -c ENABLE_ENCRYPT_CONFIG=${ENABLE_ENCRYPT_CONFIG}
+ -c ENABLE_NANOFI=${ENABLE_NANOFI}
+ -c ENABLE_SPLUNK=${ENABLE_SPLUNK}
+ -c ENABLE_GCP=${ENABLE_GCP}
+ -c ENABLE_SCRIPTING=${ENABLE_SCRIPTING}
+ -c ENABLE_LUA_SCRIPTING=${ENABLE_LUA_SCRIPTING}
+ -c ENABLE_KUBERNETES=${ENABLE_KUBERNETES}
+ -c ENABLE_PROCFS=${ENABLE_PROCFS}
+ -c ENABLE_SYSTEMD=${ENABLE_SYSTEMD}
+ -c DISABLE_CURL=${DISABLE_CURL}
+ -c DISABLE_JEMALLOC=${DISABLE_JEMALLOC}
+ -c DISABLE_CIVET=${DISABLE_CIVET}
+ -c DISABLE_EXPRESSION_LANGUAGE=${DISABLE_EXPRESSION_LANGUAGE}
+ -c DISABLE_ROCKSDB=${DISABLE_ROCKSDB}
+ -c DISABLE_LIBARCHIVE=${DISABLE_LIBARCHIVE}
+ -c DISABLE_LZMA=${DISABLE_LZMA}
+ -c DISABLE_BZIP2=${DISABLE_BZIP2}
+ -c DISABLE_SCRIPTING=${DISABLE_SCRIPTING}
+ -c DISABLE_PYTHON_SCRIPTING=${DISABLE_PYTHON_SCRIPTING}
+ -c DISABLE_CONTROLLER=${DISABLE_CONTROLLER}
-l ${CMAKE_BINARY_DIR}
-d fedora
-c BUILD_NUMBER=${BUILD_NUMBER}
@@ -118,7 +196,46 @@ add_custom_target(
-u 1000
-g 1000
-v ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
+ -c ENABLE_ALL=${ENABLE_ALL}
+ -c ENABLE_PYTHON=${ENABLE_PYTHON}
+ -c ENABLE_OPS=${ENABLE_OPS}
-c ENABLE_JNI=${ENABLE_JNI}
+ -c ENABLE_OPENCV=${ENABLE_OPENCV}
+ -c ENABLE_OPC=${ENABLE_OPC}
+ -c ENABLE_GPS=${ENABLE_GPS}
+ -c ENABLE_COAP=${ENABLE_COAP}
+ -c ENABLE_SQL=${ENABLE_SQL}
+ -c ENABLE_MQTT=${ENABLE_MQTT}
+ -c ENABLE_PCAP=${ENABLE_PCAP}
+ -c ENABLE_LIBRDKAFKA=${ENABLE_LIBRDKAFKA}
+ -c ENABLE_SENSORS=${ENABLE_SENSORS}
+ -c ENABLE_USB_CAMERA=${ENABLE_USB_CAMERA}
+ -c ENABLE_TENSORFLOW=${ENABLE_TENSORFLOW}
+ -c ENABLE_AWS=${ENABLE_AWS}
+ -c ENABLE_BUSTACHE=${ENABLE_BUSTACHE}
+ -c ENABLE_SFTP=${ENABLE_SFTP}
+ -c ENABLE_OPENWSMAN=${ENABLE_OPENWSMAN}
+ -c ENABLE_AZURE=${ENABLE_AZURE}
+ -c ENABLE_ENCRYPT_CONFIG=${ENABLE_ENCRYPT_CONFIG}
+ -c ENABLE_NANOFI=${ENABLE_NANOFI}
+ -c ENABLE_SPLUNK=${ENABLE_SPLUNK}
+ -c ENABLE_GCP=${ENABLE_GCP}
+ -c ENABLE_SCRIPTING=${ENABLE_SCRIPTING}
+ -c ENABLE_LUA_SCRIPTING=${ENABLE_LUA_SCRIPTING}
+ -c ENABLE_KUBERNETES=${ENABLE_KUBERNETES}
+ -c ENABLE_PROCFS=${ENABLE_PROCFS}
+ -c ENABLE_SYSTEMD=${ENABLE_SYSTEMD}
+ -c DISABLE_CURL=${DISABLE_CURL}
+ -c DISABLE_JEMALLOC=${DISABLE_JEMALLOC}
+ -c DISABLE_CIVET=${DISABLE_CIVET}
+ -c DISABLE_EXPRESSION_LANGUAGE=${DISABLE_EXPRESSION_LANGUAGE}
+ -c DISABLE_ROCKSDB=${DISABLE_ROCKSDB}
+ -c DISABLE_LIBARCHIVE=${DISABLE_LIBARCHIVE}
+ -c DISABLE_LZMA=${DISABLE_LZMA}
+ -c DISABLE_BZIP2=${DISABLE_BZIP2}
+ -c DISABLE_SCRIPTING=${DISABLE_SCRIPTING}
+ -c DISABLE_PYTHON_SCRIPTING=${DISABLE_PYTHON_SCRIPTING}
+ -c DISABLE_CONTROLLER=${DISABLE_CONTROLLER}
-l ${CMAKE_BINARY_DIR}
-d bionic
-c BUILD_NUMBER=${BUILD_NUMBER}
@@ -130,7 +247,47 @@ add_custom_target(
-u 1000
-g 1000
-v ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
+ -c ENABLE_ALL=${ENABLE_ALL}
+ -c ENABLE_PYTHON=${ENABLE_PYTHON}
+ -c ENABLE_OPS=${ENABLE_OPS}
-c ENABLE_JNI=${ENABLE_JNI}
+ -c ENABLE_OPENCV=${ENABLE_OPENCV}
+ -c ENABLE_OPC=${ENABLE_OPC}
+ -c ENABLE_GPS=${ENABLE_GPS}
+ -c ENABLE_COAP=${ENABLE_COAP}
+ -c ENABLE_SQL=${ENABLE_SQL}
+ -c ENABLE_MQTT=${ENABLE_MQTT}
+ -c ENABLE_PCAP=${ENABLE_PCAP}
+ -c ENABLE_LIBRDKAFKA=${ENABLE_LIBRDKAFKA}
+ -c ENABLE_SENSORS=${ENABLE_SENSORS}
+ -c ENABLE_USB_CAMERA=${ENABLE_USB_CAMERA}
+ -c ENABLE_TENSORFLOW=${ENABLE_TENSORFLOW}
+ -c ENABLE_AWS=${ENABLE_AWS}
+ -c ENABLE_BUSTACHE=${ENABLE_BUSTACHE}
+ -c ENABLE_SFTP=${ENABLE_SFTP}
+ -c ENABLE_OPENWSMAN=${ENABLE_OPENWSMAN}
+ -c ENABLE_AZURE=${ENABLE_AZURE}
+ -c ENABLE_ENCRYPT_CONFIG=${ENABLE_ENCRYPT_CONFIG}
+ -c ENABLE_NANOFI=${ENABLE_NANOFI}
+ -c ENABLE_SPLUNK=${ENABLE_SPLUNK}
+ -c ENABLE_GCP=${ENABLE_GCP}
+ -c ENABLE_SCRIPTING=${ENABLE_SCRIPTING}
+ -c ENABLE_LUA_SCRIPTING=${ENABLE_LUA_SCRIPTING}
+ -c ENABLE_KUBERNETES=${ENABLE_KUBERNETES}
+ -c ENABLE_PROCFS=${ENABLE_PROCFS}
+ -c ENABLE_TEST_PROCESSORS=${ENABLE_TEST_PROCESSORS}
+ -c ENABLE_SYSTEMD=${ENABLE_SYSTEMD}
+ -c DISABLE_CURL=${DISABLE_CURL}
+ -c DISABLE_JEMALLOC=${DISABLE_JEMALLOC}
+ -c DISABLE_CIVET=${DISABLE_CIVET}
+ -c DISABLE_EXPRESSION_LANGUAGE=${DISABLE_EXPRESSION_LANGUAGE}
+ -c DISABLE_ROCKSDB=${DISABLE_ROCKSDB}
+ -c DISABLE_LIBARCHIVE=${DISABLE_LIBARCHIVE}
+ -c DISABLE_LZMA=${DISABLE_LZMA}
+ -c DISABLE_BZIP2=${DISABLE_BZIP2}
+ -c DISABLE_SCRIPTING=${DISABLE_SCRIPTING}
+ -c DISABLE_PYTHON_SCRIPTING=${DISABLE_PYTHON_SCRIPTING}
+ -c DISABLE_CONTROLLER=${DISABLE_CONTROLLER}
-l ${CMAKE_BINARY_DIR}
-d focal
-c BUILD_NUMBER=${BUILD_NUMBER}
diff --git a/docker/bionic/Dockerfile b/docker/bionic/Dockerfile
index b609cc5b6..5226a42c0 100644
--- a/docker/bionic/Dockerfile
+++ b/docker/bionic/Dockerfile
@@ -29,13 +29,54 @@ ENV MINIFI_HOME $MINIFI_BASE_DIR/nifi-minifi-cpp-$MINIFI_VERSION
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN apt-get update \
- && DEBIAN_FRONTEND="noninteractive" apt-get install -y openjdk-8-jdk openjdk-8-source sudo git maven autogen autoconf automake pkgconf libtool \
+ && DEBIAN_FRONTEND="noninteractive" apt-get install -y openjdk-8-jdk openjdk-8-source sudo git maven autogen autoconf automake pkgconf libtool libfl-dev libboost-all-dev libusb-1.0-0-dev \
+ libpng-dev libgps-dev libsqliteodbc liblua5.3-dev \
&& mkdir -p $MINIFI_BASE_DIR
COPY . ${MINIFI_BASE_DIR}
FROM build_deps AS release
-ARG ENABLE_JNI
+
+ARG ENABLE_ALL=OFF
+ARG ENABLE_PYTHON=OFF
+ARG ENABLE_OPS=ON
+ARG ENABLE_JNI=OFF
+ARG ENABLE_OPENCV=OFF
+ARG ENABLE_OPC=OFF
+ARG ENABLE_GPS=OFF
+ARG ENABLE_COAP=OFF
+ARG ENABLE_SQL=OFF
+ARG ENABLE_MQTT=OFF
+ARG ENABLE_PCAP=OFF
+ARG ENABLE_LIBRDKAFKA=OFF
+ARG ENABLE_SENSORS=OFF
+ARG ENABLE_USB_CAMERA=OFF
+ARG ENABLE_TENSORFLOW=OFF
+ARG ENABLE_AWS=OFF
+ARG ENABLE_BUSTACHE=OFF
+ARG ENABLE_SFTP=OFF
+ARG ENABLE_OPENWSMAN=OFF
+ARG ENABLE_AZURE=OFF
+ARG ENABLE_ENCRYPT_CONFIG=ON
+ARG ENABLE_NANOFI=OFF
+ARG ENABLE_SPLUNK=OFF
+ARG ENABLE_GCP=OFF
+ARG ENABLE_SYSTEMD=ON
+ARG DISABLE_CURL=OFF
+ARG DISABLE_JEMALLOC=ON
+ARG DISABLE_CIVET=OFF
+ARG DISABLE_EXPRESSION_LANGUAGE=OFF
+ARG DISABLE_ROCKSDB=OFF
+ARG DISABLE_LIBARCHIVE=OFF
+ARG DISABLE_LZMA=OFF
+ARG DISABLE_BZIP2=OFF
+ARG ENABLE_SCRIPTING=OFF
+ARG DISABLE_PYTHON_SCRIPTING=ON
+ARG ENABLE_LUA_SCRIPTING=ON
+ARG ENABLE_KUBERNETES=OFF
+ARG ENABLE_PROCFS=OFF
+ARG DISABLE_CONTROLLER=OFF
+ARG CMAKE_BUILD_TYPE=Release
ENV CC gcc-11
ENV CXX g++-11
@@ -44,5 +85,16 @@ ENV CXX g++-11
RUN cd $MINIFI_BASE_DIR \
&& ./bootstrap.sh -t \
&& cd $MINIFI_BASE_DIR/build \
- && cmake -DUSE_SHARED_LIBS= -DENABLE_MQTT=ON -DENABLE_LIBRDKAFKA=ON -DPORTABLE=ON -DENABLE_COAP=ON -DENABLE_SQL=ON -DCMAKE_BUILD_TYPE=Release -DSKIP_TESTS=true -DENABLE_JNI=$ENABLE_JNI .. \
- && make -j$(nproc) package
+ && cmake -DSTATIC_BUILD= -DSKIP_TESTS=true -DENABLE_ALL="${ENABLE_ALL}" -DENABLE_PYTHON="${ENABLE_PYTHON}" -DENABLE_OPS="${ENABLE_OPS}" \
+ -DENABLE_JNI="${ENABLE_JNI}" -DENABLE_OPENCV="${ENABLE_OPENCV}" -DENABLE_OPC="${ENABLE_OPC}" -DENABLE_GPS="${ENABLE_GPS}" \
+ -DENABLE_COAP="${ENABLE_COAP}" -DENABLE_SQL="${ENABLE_SQL}" -DENABLE_MQTT="${ENABLE_MQTT}" -DENABLE_PCAP="${ENABLE_PCAP}" \
+ -DENABLE_LIBRDKAFKA="${ENABLE_LIBRDKAFKA}" -DENABLE_SENSORS="${ENABLE_SENSORS}" -DENABLE_USB_CAMERA="${ENABLE_USB_CAMERA}" \
+ -DENABLE_TENSORFLOW="${ENABLE_TENSORFLOW}" -DENABLE_AWS="${ENABLE_AWS}" -DENABLE_BUSTACHE="${ENABLE_BUSTACHE}" -DENABLE_SFTP="${ENABLE_SFTP}" \
+ -DENABLE_OPENWSMAN="${ENABLE_OPENWSMAN}" -DENABLE_AZURE="${ENABLE_AZURE}" -DENABLE_NANOFI=${ENABLE_NANOFI} -DENABLE_SYSTEMD="${ENABLE_SYSTEMD}" \
+ -DDISABLE_CURL="${DISABLE_CURL}" -DDISABLE_JEMALLOC="${DISABLE_JEMALLOC}" -DDISABLE_CIVET="${DISABLE_CIVET}" -DENABLE_SPLUNK=${ENABLE_SPLUNK} \
+ -DENABLE_TEST_PROCESSORS=OFF -DDISABLE_EXPRESSION_LANGUAGE="${DISABLE_EXPRESSION_LANGUAGE}" -DDISABLE_ROCKSDB="${DISABLE_ROCKSDB}" \
+ -DDISABLE_LIBARCHIVE="${DISABLE_LIBARCHIVE}" -DDISABLE_LZMA="${DISABLE_LZMA}" -DDISABLE_BZIP2="${DISABLE_BZIP2}" \
+ -DENABLE_SCRIPTING="${ENABLE_SCRIPTING}" -DDISABLE_PYTHON_SCRIPTING="${DISABLE_PYTHON_SCRIPTING}" -DENABLE_LUA_SCRIPTING="${ENABLE_LUA_SCRIPTING}" \
+ -DENABLE_KUBERNETES="${ENABLE_KUBERNETES}" -DENABLE_GCP="${ENABLE_GCP}" -DENABLE_PROCFS="${ENABLE_PROCFS}" \
+ -DDISABLE_CONTROLLER="${DISABLE_CONTROLLER}" -DENABLE_ENCRYPT_CONFIG="${ENABLE_ENCRYPT_CONFIG}" -DAWS_ENABLE_UNITY_BUILD=OFF -DEXCLUDE_BOOST=ON -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" .. \
+ && make -j "$(nproc)" package
diff --git a/docker/centos/Dockerfile b/docker/centos/Dockerfile
index 63a1eff05..352d66d42 100644
--- a/docker/centos/Dockerfile
+++ b/docker/centos/Dockerfile
@@ -27,17 +27,69 @@ ARG MINIFI_VERSION
ENV MINIFI_BASE_DIR /opt/minifi
ENV MINIFI_HOME $MINIFI_BASE_DIR/nifi-minifi-cpp-$MINIFI_VERSION
-RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel python36-devel sudo git which maven make libarchive
+# gpsd-devel is in EPEL
+RUN yum -y install epel-release && yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel python36-devel sudo git which maven make libarchive boost-devel lua-devel libusbx-devel libpng-devel \
+ gpsd-devel libpcap-devel
RUN mkdir -p $MINIFI_BASE_DIR
COPY . ${MINIFI_BASE_DIR}
FROM build_deps AS release
-ARG ENABLE_JNI
+ARG ENABLE_ALL=OFF
+ARG ENABLE_PYTHON=OFF
+ARG ENABLE_OPS=ON
+ARG ENABLE_JNI=OFF
+ARG ENABLE_OPENCV=OFF
+ARG ENABLE_OPC=OFF
+ARG ENABLE_GPS=OFF
+ARG ENABLE_COAP=OFF
+ARG ENABLE_SQL=ON
+ARG ENABLE_MQTT=ON
+ARG ENABLE_PCAP=OFF
+ARG ENABLE_LIBRDKAFKA=ON
+ARG ENABLE_SENSORS=OFF
+ARG ENABLE_USB_CAMERA=OFF
+ARG ENABLE_TENSORFLOW=OFF
+ARG ENABLE_AWS=ON
+ARG ENABLE_BUSTACHE=OFF
+ARG ENABLE_SFTP=OFF
+ARG ENABLE_OPENWSMAN=OFF
+ARG ENABLE_AZURE=ON
+ARG ENABLE_ENCRYPT_CONFIG=ON
+ARG ENABLE_NANOFI=OFF
+ARG ENABLE_SPLUNK=ON
+ARG ENABLE_GCP=ON
+ARG ENABLE_SYSTEMD=ON
+ARG DISABLE_CURL=OFF
+ARG DISABLE_JEMALLOC=ON
+ARG DISABLE_CIVET=OFF
+ARG DISABLE_EXPRESSION_LANGUAGE=OFF
+ARG DISABLE_ROCKSDB=OFF
+ARG DISABLE_LIBARCHIVE=OFF
+ARG DISABLE_LZMA=OFF
+ARG DISABLE_BZIP2=OFF
+ARG ENABLE_SCRIPTING=OFF
+ARG DISABLE_PYTHON_SCRIPTING=ON
+ARG ENABLE_LUA_SCRIPTING=ON
+ARG ENABLE_KUBERNETES=OFF
+ARG ENABLE_PROCFS=OFF
+ARG DISABLE_CONTROLLER=OFF
+ARG CMAKE_BUILD_TYPE=Release
# Perform the build
RUN cd $MINIFI_BASE_DIR \
&& ./bootstrap.sh -t \
&& cd build \
- && scl enable devtoolset-10 -- cmake3 -DUSE_SHARED_LIBS= -DENABLE_MQTT=ON -DENABLE_LIBRDKAFKA=ON -DPORTABLE=ON -DENABLE_COAP=ON -DENABLE_SQL=ON -DCMAKE_BUILD_TYPE=Release -DSKIP_TESTS=true -DENABLE_JNI=$ENABLE_JNI .. \
- && scl enable devtoolset-10 -- make -j$(nproc) package
+ && scl enable devtoolset-10 -- cmake3 -DSTATIC_BUILD= -DSKIP_TESTS=true -DENABLE_ALL="${ENABLE_ALL}" -DENABLE_PYTHON="${ENABLE_PYTHON}" -DENABLE_OPS="${ENABLE_OPS}" \
+ -DENABLE_JNI="${ENABLE_JNI}" -DENABLE_OPENCV="${ENABLE_OPENCV}" -DENABLE_OPC="${ENABLE_OPC}" -DENABLE_GPS="${ENABLE_GPS}" \
+ -DENABLE_COAP="${ENABLE_COAP}" -DENABLE_SQL="${ENABLE_SQL}" -DENABLE_MQTT="${ENABLE_MQTT}" -DENABLE_PCAP="${ENABLE_PCAP}" \
+ -DENABLE_LIBRDKAFKA="${ENABLE_LIBRDKAFKA}" -DENABLE_SENSORS="${ENABLE_SENSORS}" -DENABLE_USB_CAMERA="${ENABLE_USB_CAMERA}" \
+ -DENABLE_TENSORFLOW="${ENABLE_TENSORFLOW}" -DENABLE_AWS="${ENABLE_AWS}" -DENABLE_BUSTACHE="${ENABLE_BUSTACHE}" -DENABLE_SFTP="${ENABLE_SFTP}" \
+ -DENABLE_OPENWSMAN="${ENABLE_OPENWSMAN}" -DENABLE_AZURE="${ENABLE_AZURE}" -DENABLE_NANOFI=${ENABLE_NANOFI} -DENABLE_SYSTEMD="${ENABLE_SYSTEMD}" \
+ -DDISABLE_CURL="${DISABLE_CURL}" -DDISABLE_JEMALLOC="${DISABLE_JEMALLOC}" -DDISABLE_CIVET="${DISABLE_CIVET}" -DENABLE_SPLUNK=${ENABLE_SPLUNK} \
+ -DENABLE_TEST_PROCESSORS=OFF -DDISABLE_EXPRESSION_LANGUAGE="${DISABLE_EXPRESSION_LANGUAGE}" -DDISABLE_ROCKSDB="${DISABLE_ROCKSDB}" \
+ -DDISABLE_LIBARCHIVE="${DISABLE_LIBARCHIVE}" -DDISABLE_LZMA="${DISABLE_LZMA}" -DDISABLE_BZIP2="${DISABLE_BZIP2}" \
+ -DENABLE_SCRIPTING="${ENABLE_SCRIPTING}" -DDISABLE_PYTHON_SCRIPTING="${DISABLE_PYTHON_SCRIPTING}" -DENABLE_LUA_SCRIPTING="${ENABLE_LUA_SCRIPTING}" \
+ -DENABLE_KUBERNETES="${ENABLE_KUBERNETES}" -DENABLE_GCP="${ENABLE_GCP}" -DENABLE_PROCFS="${ENABLE_PROCFS}" \
+ -DDISABLE_CONTROLLER="${DISABLE_CONTROLLER}" -DENABLE_ENCRYPT_CONFIG="${ENABLE_ENCRYPT_CONFIG}" -DAWS_ENABLE_UNITY_BUILD=OFF -DEXCLUDE_BOOST=ON -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" .. \
+ && scl enable devtoolset-10 -- make -j "$(nproc)" package
diff --git a/docker/fedora/Dockerfile b/docker/fedora/Dockerfile
index 6c0c814e6..c5618c3b2 100644
--- a/docker/fedora/Dockerfile
+++ b/docker/fedora/Dockerfile
@@ -29,7 +29,8 @@ ENV MINIFI_HOME $MINIFI_BASE_DIR/nifi-minifi-cpp-$MINIFI_VERSION
RUN echo "fastestmirror=True" | tee -a /etc/dnf/dnf.conf
RUN for iter in {1..10}; do yum update -y && \
- yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel flex bison make patch sudo git which maven libtool autoconf automake && \
+ yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel flex bison make patch sudo git which maven libtool autoconf automake java-1.8.0-openjdk java-1.8.0-openjdk-devel sudo \
+ git which maven make libarchive boost-devel lua-devel libusb-devel libpng-devel gpsd-devel libpcap-devel && \
yum clean all && exit_code=0 && break || exit_code=$? && echo "yum error: retry $iter in 10s" && sleep 10; done; \
(exit $exit_code)
@@ -38,12 +39,63 @@ COPY . ${MINIFI_BASE_DIR}
FROM build_deps AS release
-ARG ENABLE_JNI
+ARG ENABLE_ALL=OFF
+ARG ENABLE_PYTHON=OFF
+ARG ENABLE_OPS=ON
+ARG ENABLE_JNI=OFF
+ARG ENABLE_OPENCV=OFF
+ARG ENABLE_OPC=OFF
+ARG ENABLE_GPS=OFF
+ARG ENABLE_COAP=OFF
+ARG ENABLE_SQL=ON
+ARG ENABLE_MQTT=ON
+ARG ENABLE_PCAP=OFF
+ARG ENABLE_LIBRDKAFKA=ON
+ARG ENABLE_SENSORS=OFF
+ARG ENABLE_USB_CAMERA=OFF
+ARG ENABLE_TENSORFLOW=OFF
+ARG ENABLE_AWS=ON
+ARG ENABLE_BUSTACHE=OFF
+ARG ENABLE_SFTP=OFF
+ARG ENABLE_OPENWSMAN=OFF
+ARG ENABLE_AZURE=ON
+ARG ENABLE_ENCRYPT_CONFIG=ON
+ARG ENABLE_NANOFI=OFF
+ARG ENABLE_SPLUNK=ON
+ARG ENABLE_GCP=ON
+ARG ENABLE_SYSTEMD=ON
+ARG DISABLE_CURL=OFF
+ARG DISABLE_JEMALLOC=ON
+ARG DISABLE_CIVET=OFF
+ARG DISABLE_EXPRESSION_LANGUAGE=OFF
+ARG DISABLE_ROCKSDB=OFF
+ARG DISABLE_LIBARCHIVE=OFF
+ARG DISABLE_LZMA=OFF
+ARG DISABLE_BZIP2=OFF
+ARG ENABLE_SCRIPTING=OFF
+ARG DISABLE_PYTHON_SCRIPTING=ON
+ARG ENABLE_LUA_SCRIPTING=ON
+ARG ENABLE_KUBERNETES=OFF
+ARG ENABLE_PROCFS=OFF
+ARG DISABLE_CONTROLLER=OFF
+ARG CMAKE_BUILD_TYPE=Release
# Perform the build
RUN cd $MINIFI_BASE_DIR \
&& ./bootstrap.sh -e \
&& rm -rf build \
&& mkdir build \
&& cd build \
- && cmake3 -DUSE_SHARED_LIBS= -DENABLE_MQTT=ON -DFAIL_ON_WARNINGS=OFF -DENABLE_LIBRDKAFKA=ON -DPORTABLE=ON -DENABLE_COAP=ON -DENABLE_SQL=ON -DCMAKE_BUILD_TYPE=Release -DSKIP_TESTS=true -DENABLE_JNI=$ENABLE_JNI .. \
- && make -j$(nproc) package
+ && cmake3 -DSTATIC_BUILD= -DSKIP_TESTS=true -DENABLE_ALL="${ENABLE_ALL}" -DENABLE_PYTHON="${ENABLE_PYTHON}" -DENABLE_OPS="${ENABLE_OPS}" \
+ -DENABLE_JNI="${ENABLE_JNI}" -DENABLE_OPENCV="${ENABLE_OPENCV}" -DENABLE_OPC="${ENABLE_OPC}" -DENABLE_GPS="${ENABLE_GPS}" \
+ -DENABLE_COAP="${ENABLE_COAP}" -DENABLE_SQL="${ENABLE_SQL}" -DENABLE_MQTT="${ENABLE_MQTT}" -DENABLE_PCAP="${ENABLE_PCAP}" \
+ -DENABLE_LIBRDKAFKA="${ENABLE_LIBRDKAFKA}" -DENABLE_SENSORS="${ENABLE_SENSORS}" -DENABLE_USB_CAMERA="${ENABLE_USB_CAMERA}" \
+ -DENABLE_TENSORFLOW="${ENABLE_TENSORFLOW}" -DENABLE_AWS="${ENABLE_AWS}" -DENABLE_BUSTACHE="${ENABLE_BUSTACHE}" -DENABLE_SFTP="${ENABLE_SFTP}" \
+ -DENABLE_OPENWSMAN="${ENABLE_OPENWSMAN}" -DENABLE_AZURE="${ENABLE_AZURE}" -DENABLE_NANOFI=${ENABLE_NANOFI} -DENABLE_SYSTEMD="${ENABLE_SYSTEMD}" \
+ -DDISABLE_CURL="${DISABLE_CURL}" -DDISABLE_JEMALLOC="${DISABLE_JEMALLOC}" -DDISABLE_CIVET="${DISABLE_CIVET}" -DENABLE_SPLUNK=${ENABLE_SPLUNK} \
+ -DENABLE_TEST_PROCESSORS=OFF -DDISABLE_EXPRESSION_LANGUAGE="${DISABLE_EXPRESSION_LANGUAGE}" -DDISABLE_ROCKSDB="${DISABLE_ROCKSDB}" \
+ -DDISABLE_LIBARCHIVE="${DISABLE_LIBARCHIVE}" -DDISABLE_LZMA="${DISABLE_LZMA}" -DDISABLE_BZIP2="${DISABLE_BZIP2}" \
+ -DENABLE_SCRIPTING="${ENABLE_SCRIPTING}" -DDISABLE_PYTHON_SCRIPTING="${DISABLE_PYTHON_SCRIPTING}" -DENABLE_LUA_SCRIPTING="${ENABLE_LUA_SCRIPTING}" \
+ -DENABLE_KUBERNETES="${ENABLE_KUBERNETES}" -DENABLE_GCP="${ENABLE_GCP}" -DENABLE_PROCFS="${ENABLE_PROCFS}" \
+ -DDISABLE_CONTROLLER="${DISABLE_CONTROLLER}" -DENABLE_ENCRYPT_CONFIG="${ENABLE_ENCRYPT_CONFIG}" -DAWS_ENABLE_UNITY_BUILD=OFF -DEXCLUDE_BOOST=ON -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" .. \
+ && make -j "$(nproc)" package
+
diff --git a/docker/focal/Dockerfile b/docker/focal/Dockerfile
index cc0670280..96f62cf5e 100644
--- a/docker/focal/Dockerfile
+++ b/docker/focal/Dockerfile
@@ -30,14 +30,54 @@ ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN apt update \
&& DEBIAN_FRONTEND="noninteractive" apt install -y openjdk-8-jdk openjdk-8-source python3.9-dev sudo git maven autogen autoconf automake cmake software-properties-common pkgconf libtool \
+ libfl-dev libboost-all-dev libusb-1.0-0-dev libpng-dev libgps-dev libsqliteodbc liblua5.3-dev\
&& mkdir -p "${MINIFI_BASE_DIR}"
COPY . ${MINIFI_BASE_DIR}
FROM build_deps AS release
-ARG ENABLE_JNI
+ARG ENABLE_ALL=OFF
+ARG ENABLE_PYTHON=OFF
+ARG ENABLE_OPS=ON
+ARG ENABLE_JNI=OFF
+ARG ENABLE_OPENCV=OFF
+ARG ENABLE_OPC=OFF
+ARG ENABLE_GPS=OFF
+ARG ENABLE_COAP=OFF
+ARG ENABLE_SQL=OFF
+ARG ENABLE_MQTT=OFF
+ARG ENABLE_PCAP=OFF
+ARG ENABLE_LIBRDKAFKA=OFF
+ARG ENABLE_SENSORS=OFF
+ARG ENABLE_USB_CAMERA=OFF
+ARG ENABLE_TENSORFLOW=OFF
+ARG ENABLE_AWS=OFF
+ARG ENABLE_BUSTACHE=OFF
+ARG ENABLE_SFTP=OFF
+ARG ENABLE_OPENWSMAN=OFF
+ARG ENABLE_AZURE=OFF
+ARG ENABLE_ENCRYPT_CONFIG=ON
+ARG ENABLE_NANOFI=OFF
+ARG ENABLE_SPLUNK=OFF
+ARG ENABLE_GCP=OFF
+ARG ENABLE_SYSTEMD=ON
+ARG DISABLE_CURL=OFF
+ARG DISABLE_JEMALLOC=ON
+ARG DISABLE_CIVET=OFF
+ARG DISABLE_EXPRESSION_LANGUAGE=OFF
+ARG DISABLE_ROCKSDB=OFF
+ARG DISABLE_LIBARCHIVE=OFF
+ARG DISABLE_LZMA=OFF
+ARG DISABLE_BZIP2=OFF
+ARG ENABLE_SCRIPTING=OFF
+ARG DISABLE_PYTHON_SCRIPTING=ON
+ARG ENABLE_LUA_SCRIPTING=ON
+ARG ENABLE_KUBERNETES=OFF
+ARG ENABLE_PROCFS=OFF
+ARG DISABLE_CONTROLLER=OFF
+ARG CMAKE_BUILD_TYPE=Release
ENV CC gcc-11
ENV CXX g++-11
@@ -45,5 +85,16 @@ ENV CXX g++-11
RUN cd $MINIFI_BASE_DIR \
&& ./bootstrap.sh -t \
&& cd $MINIFI_BASE_DIR/build \
- && cmake -DUSE_SHARED_LIBS= -DENABLE_MQTT=ON -DENABLE_LIBRDKAFKA=ON -DPORTABLE=ON -DENABLE_COAP=ON -DENABLE_SQL=ON -DCMAKE_BUILD_TYPE=Release -DSKIP_TESTS=true -DENABLE_JNI=$ENABLE_JNI .. \
- && make -j$(nproc) package
+ && cmake -DSTATIC_BUILD= -DSKIP_TESTS=true -DENABLE_ALL="${ENABLE_ALL}" -DENABLE_PYTHON="${ENABLE_PYTHON}" -DENABLE_OPS="${ENABLE_OPS}" \
+ -DENABLE_JNI="${ENABLE_JNI}" -DENABLE_OPENCV="${ENABLE_OPENCV}" -DENABLE_OPC="${ENABLE_OPC}" -DENABLE_GPS="${ENABLE_GPS}" \
+ -DENABLE_COAP="${ENABLE_COAP}" -DENABLE_SQL="${ENABLE_SQL}" -DENABLE_MQTT="${ENABLE_MQTT}" -DENABLE_PCAP="${ENABLE_PCAP}" \
+ -DENABLE_LIBRDKAFKA="${ENABLE_LIBRDKAFKA}" -DENABLE_SENSORS="${ENABLE_SENSORS}" -DENABLE_USB_CAMERA="${ENABLE_USB_CAMERA}" \
+ -DENABLE_TENSORFLOW="${ENABLE_TENSORFLOW}" -DENABLE_AWS="${ENABLE_AWS}" -DENABLE_BUSTACHE="${ENABLE_BUSTACHE}" -DENABLE_SFTP="${ENABLE_SFTP}" \
+ -DENABLE_OPENWSMAN="${ENABLE_OPENWSMAN}" -DENABLE_AZURE="${ENABLE_AZURE}" -DENABLE_NANOFI=${ENABLE_NANOFI} -DENABLE_SYSTEMD="${ENABLE_SYSTEMD}" \
+ -DDISABLE_CURL="${DISABLE_CURL}" -DDISABLE_JEMALLOC="${DISABLE_JEMALLOC}" -DDISABLE_CIVET="${DISABLE_CIVET}" -DENABLE_SPLUNK=${ENABLE_SPLUNK} \
+ -DENABLE_TEST_PROCESSORS=OFF -DDISABLE_EXPRESSION_LANGUAGE="${DISABLE_EXPRESSION_LANGUAGE}" -DDISABLE_ROCKSDB="${DISABLE_ROCKSDB}" \
+ -DDISABLE_LIBARCHIVE="${DISABLE_LIBARCHIVE}" -DDISABLE_LZMA="${DISABLE_LZMA}" -DDISABLE_BZIP2="${DISABLE_BZIP2}" \
+ -DENABLE_SCRIPTING="${ENABLE_SCRIPTING}" -DDISABLE_PYTHON_SCRIPTING="${DISABLE_PYTHON_SCRIPTING}" -DENABLE_LUA_SCRIPTING="${ENABLE_LUA_SCRIPTING}" \
+ -DENABLE_KUBERNETES="${ENABLE_KUBERNETES}" -DENABLE_GCP="${ENABLE_GCP}" -DENABLE_PROCFS="${ENABLE_PROCFS}" \
+ -DDISABLE_CONTROLLER="${DISABLE_CONTROLLER}" -DENABLE_ENCRYPT_CONFIG="${ENABLE_ENCRYPT_CONFIG}" -DAWS_ENABLE_UNITY_BUILD=OFF -DEXCLUDE_BOOST=ON -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" .. \
+ && make -j "$(nproc)" package