This is an automated email from the ASF dual-hosted git repository. fgerlits pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit 9b459c8132c65948cc97423f2dccdd5dd287b6f5 Author: Marton Szasz <[email protected]> AuthorDate: Mon Sep 13 18:31:43 2021 +0200 MINIFICPP-1134 disable scripting extension This allows us to avoid linking to libpython by default, leaving only system dependnecies like libc, c++ standard lib, pthread, libgcc, etc. This in turn allows us to distribute only one convenience binary for all targeted linux systems if we ensure that we're building on one with the oldest glibc. That would be CentOS 7 with devtoolset-10. Signed-off-by: Ferenc Gerlits <[email protected]> This closes #1174 --- .github/workflows/ci.yml | 6 +++--- CMakeLists.txt | 4 ++-- CMakeSettings.json | 4 ++-- README.md | 2 +- bootstrap.sh | 2 +- cmake/DockerConfig.cmake | 2 +- docker/Dockerfile | 8 ++++---- docker/bionic/Dockerfile | 2 +- docker/debian/Dockerfile | 2 +- win_build_vs.bat | 2 +- 10 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index efbf11e..c321789 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: export LDFLAGS="-L/usr/local/opt/flex/lib" export CPPFLAGS="-I/usr/local/opt/flex/include" # CPPFLAGS are not recognized by cmake, so we have to force them to CFLAGS and CXXFLAGS to have flex 2.6 working - ./bootstrap.sh -e -t && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="${CPPFLAGS} ${CFLAGS}" -DCMAKE_CXX_FLAGS="${CPPFLAGS} ${CXXFLAGS}" -DENABLE_LUA_SCRIPTING=ON -DENABLE_SQL=ON -DUSE_REAL_ODBC_TEST_DRIVER=ON -DENABLE_AZURE=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_RULE_MESSAGES=OFF -DSTRICT_GSL_CHECKS=AUDIT -DFAIL_ON_WARNINGS=ON .. && cmake --build . --parallel 4 + ./bootstrap.sh -e -t && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="${CPPFLAGS} ${CFLAGS}" -DCMAKE_CXX_FLAGS="${CPPFLAGS} ${CXXFLAGS}" -DENABLE_SCRIPTING=ON -DENABLE_LUA_SCRIPTING=ON -DENABLE_SQL=ON -DUSE_REAL_ODBC_TEST_DRIVER=ON -DENABLE_AZURE=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_RULE_MESSAGES=OFF -DSTRICT_GSL_CHECKS=AUDIT -DFAIL_ON_WARNINGS=ON .. && cmake --build . --parallel 4 - name: test run: cd build && make test ARGS="--timeout 300 -j4 --output-on-failure" - name: linter @@ -106,7 +106,7 @@ jobs: - id: install_deps run: | sudo apt update - sudo apt install -y ccache libfl-dev libpcap-dev libboost-all-dev openjdk-8-jdk maven libusb-1.0-0-dev libpng-dev libgps-dev libsqliteodbc flake8 + sudo apt install -y ccache libfl-dev libpcap-dev libboost-all-dev openjdk-8-jdk maven libusb-1.0-0-dev libpng-dev libgps-dev libsqliteodbc flake8 lua5.3 liblua5.3-dev echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV echo -e "127.0.0.1\t$HOSTNAME" | sudo tee -a /etc/hosts > /dev/null - name: build @@ -118,7 +118,7 @@ jobs: cmake -DUSE_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DSTRICT_GSL_CHECKS=AUDIT -DFAIL_ON_WARNINGS=ON -DENABLE_AWS=ON -DENABLE_AZURE=ON -DENABLE_BUSTACHE=ON -DENABLE_COAP=ON \ -DENABLE_ENCRYPT_CONFIG=ON -DENABLE_GPS=ON -DENABLE_JNI=ON -DENABLE_LIBRDKAFKA=ON -DENABLE_LINTER=ON -DENABLE_MQTT=ON -DENABLE_NANOFI=ON -DENABLE_OPC=ON -DENABLE_OPENCV=ON \ -DENABLE_OPENWSMAN=ON -DENABLE_OPS=ON -DENABLE_PCAP=ON -DENABLE_PYTHON=ON -DENABLE_SENSORS=ON -DENABLE_SFTP=ON -DENABLE_SQL=ON -DENABLE_SYSTEMD=ON -DENABLE_TENSORFLOW=OFF \ - -DENABLE_USB_CAMERA=ON -DENABLE_LUA_SCRIPTING=ON .. + -DENABLE_USB_CAMERA=ON -DENABLE_SCRIPTING=ON -DENABLE_LUA_SCRIPTING=ON .. make -j$(nproc) VERBOSE=1 - name: test run: cd build && make test ARGS="--timeout 300 -j2 --output-on-failure" diff --git a/CMakeLists.txt b/CMakeLists.txt index 88f3443..2ccce55 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,7 +104,7 @@ option(ENABLE_SQL "Enables the SQL Suite of Tools." OFF) 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(DISABLE_SCRIPTING "Disables the scripting extensions." OFF) +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 @@ -494,7 +494,7 @@ if (ENABLE_ALL OR ENABLE_LIBRDKAFKA) endif() ## Scripting extensions -if (NOT DISABLE_SCRIPTING) +if (ENABLE_ALL OR ENABLE_SCRIPTING) include(Sol2) createExtension(SCRIPTING-EXTENSIONS "SCRIPTING EXTENSIONS" "This enables scripting" "extensions/script" "${TEST_DIR}/script-tests") endif() diff --git a/CMakeSettings.json b/CMakeSettings.json index 4ce388e..f698d52 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -68,8 +68,8 @@ "value": "OFF" }, { - "name": "DISABLE_SCRIPTING", - "value": "ON" + "name": "ENABLE_SCRIPTING", + "value": "OFF" }, { "name": "EXCLUDE_BOOST", diff --git a/README.md b/README.md index de23895..904a2da 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ Through JNI extensions you can run NiFi processors using NARs. The JNI extension | OpenWSMAN | SourceInitiatedSubscriptionListener | -DENABLE_OPENWSMAN=ON | | PCAP | [CapturePacket](PROCESSORS.md#capturepacket) | -DENABLE_PCAP=ON | | PDH (Windows only) | [PerformanceDataMonitor](PROCESSORS.md#performancedatamonitor) | -DENABLE_PDH=ON | -| Scripting | [ExecuteScript](PROCESSORS.md#executescript)<br/>**Custom Python Processors** | -DDISABLE_SCRIPTING=ON | +| Scripting | [ExecuteScript](PROCESSORS.md#executescript)<br/>**Custom Python Processors** | -DENABLE_SCRIPTING=ON | | Sensors | GetEnvironmentalSensors<br/>GetMovementSensors | -DENABLE_SENSORS=ON | | SFTP | [FetchSFTP](PROCESSORS.md#fetchsftp)<br/>[ListSFTP](PROCESSORS.md#listsftp)<br/>[PutSFTP](PROCESSORS.md#putsftp) | -DENABLE_SFTP=ON | | SQL | [ExecuteSQL](PROCESSORS.md#executesql)<br/>[PutSQL](PROCESSORS.md#putsql)<br/>[QueryDatabaseTable](PROCESSORS.md#querydatabasetable)<br/> | -DENABLE_SQL=ON | diff --git a/bootstrap.sh b/bootstrap.sh index e7d7d4d..503db50 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -268,7 +268,7 @@ add_enabled_option HTTP_CURL_ENABLED ${TRUE} "DISABLE_CURL" add_enabled_option LIBARCHIVE_ENABLED ${TRUE} "DISABLE_LIBARCHIVE" add_dependency LIBARCHIVE_ENABLED "libarchive" -add_enabled_option EXECUTE_SCRIPT_ENABLED ${TRUE} "DISABLE_SCRIPTING" +add_disabled_option EXECUTE_SCRIPT_ENABLED ${FALSE} "ENABLE_SCRIPTING" add_dependency EXECUTE_SCRIPT_ENABLED "python" add_dependency EXECUTE_SCRIPT_ENABLED "lua" diff --git a/cmake/DockerConfig.cmake b/cmake/DockerConfig.cmake index d841c49..5d3c086 100644 --- a/cmake/DockerConfig.cmake +++ b/cmake/DockerConfig.cmake @@ -72,7 +72,7 @@ add_custom_target( -c ENABLE_LIBRDKAFKA=ON -c ENABLE_AWS=ON -c DISABLE_CONTROLLER=ON - -c DISABLE_SCRIPTING=ON + -c ENABLE_SCRIPTING=OFF -c DISABLE_PYTHON_SCRIPTING=ON -c ENABLE_ENCRYPT_CONFIG=OFF -c AWS_ENABLE_UNITY_BUILD=OFF diff --git a/docker/Dockerfile b/docker/Dockerfile index da1fbc2..0333381 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -58,7 +58,7 @@ ARG DISABLE_ROCKSDB=OFF ARG DISABLE_LIBARCHIVE=OFF ARG DISABLE_LZMA=OFF ARG DISABLE_BZIP2=OFF -ARG DISABLE_SCRIPTING=OFF +ARG ENABLE_SCRIPTING=ON ARG DISABLE_PYTHON_SCRIPTING= ARG DISABLE_CONTROLLER=OFF ARG CMAKE_BUILD_TYPE=Release @@ -117,7 +117,7 @@ RUN cmake -DSTATIC_BUILD= -DSKIP_TESTS=true -DENABLE_ALL="${ENABLE_ALL}" -DENABL -DDISABLE_CURL="${DISABLE_CURL}" -DDISABLE_JEMALLOC="${DISABLE_JEMALLOC}" -DDISABLE_CIVET="${DISABLE_CIVET}" \ -DDISABLE_EXPRESSION_LANGUAGE="${DISABLE_EXPRESSION_LANGUAGE}" -DDISABLE_ROCKSDB="${DISABLE_ROCKSDB}" \ -DDISABLE_LIBARCHIVE="${DISABLE_LIBARCHIVE}" -DDISABLE_LZMA="${DISABLE_LZMA}" -DDISABLE_BZIP2="${DISABLE_BZIP2}" \ - -DDISABLE_SCRIPTING="${DISABLE_SCRIPTING}" -DDISABLE_PYTHON_SCRIPTING="${DISABLE_PYTHON_SCRIPTING}" -DDISABLE_CONTROLLER="${DISABLE_CONTROLLER}" \ + -DENABLE_SCRIPTING="${ENABLE_SCRIPTING}" -DDISABLE_PYTHON_SCRIPTING="${DISABLE_PYTHON_SCRIPTING}" -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 && \ tar -xzvf "${MINIFI_BASE_DIR}/build/nifi-minifi-cpp-${MINIFI_VERSION}-bin.tar.gz" -C "${MINIFI_BASE_DIR}" @@ -138,7 +138,7 @@ ARG ENABLE_USB_CAMERA=OFF ARG ENABLE_OPENCV=OFF ARG ENABLE_PYTHON=OFF ARG ENABLE_BUSTACHE=OFF -ARG DISABLE_SCRIPTING=OFF +ARG ENABLE_SCRIPTING=ON ARG DISABLE_PYTHON_SCRIPTING= # Add testing repo for rocksdb @@ -159,7 +159,7 @@ RUN addgroup -g ${GID} ${USER} && adduser -u ${UID} -D -G ${USER} -g "" ${USER} if [ "$ENABLE_PCAP" = "ON" ]; then apk add --no-cache libpcap; fi && \ if [ "$ENABLE_USB_CAMERA" = "ON" ]; then apk add --no-cache libpng libusb; fi && \ if [ "$ENABLE_OPENCV" = "ON" ] || [ "$ENABLE_BUSTACHE" = "ON" ]; then apk add --no-cache boost; fi && \ - if { [ "$ENABLE_PYTHON" = "ON" ] || [ "$DISABLE_SCRIPTING" = "OFF" ]; } && [ -z "$DISABLE_PYTHON_SCRIPTING" ]; then apk add --no-cache python3-dev; fi + if { [ "$ENABLE_PYTHON" = "ON" ] || [ "$ENABLE_SCRIPTING" = "ON" ]; } && [ -z "$DISABLE_PYTHON_SCRIPTING" ]; then apk add --no-cache python3-dev; fi # Copy built minifi distribution from builder COPY --from=build --chown=${USER}:${USER} ${MINIFI_VERSIONED_HOME} ${MINIFI_HOME} diff --git a/docker/bionic/Dockerfile b/docker/bionic/Dockerfile index 504d82a..9b210bf 100644 --- a/docker/bionic/Dockerfile +++ b/docker/bionic/Dockerfile @@ -29,7 +29,7 @@ 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 \ + && DEBIAN_FRONTEND="noninteractive" apt-get install -y openjdk-8-jdk openjdk-8-source sudo git maven autogen autoconf automake pkgconf libtool \ && mkdir -p $MINIFI_BASE_DIR COPY . ${MINIFI_BASE_DIR} diff --git a/docker/debian/Dockerfile b/docker/debian/Dockerfile index e353b8b..77c33be 100644 --- a/docker/debian/Dockerfile +++ b/docker/debian/Dockerfile @@ -29,7 +29,7 @@ ENV MINIFI_HOME $MINIFI_BASE_DIR/nifi-minifi-cpp-$MINIFI_VERSION ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/ RUN echo "deb http://deb.debian.org/debian buster-backports main" | tee -a /etc/apt/sources.list \ - && apt-get update && apt-get install -y openjdk-11-jdk openjdk-11-source libpython3.7-dev sudo git maven libarchive13 libtool \ + && apt-get update && apt-get install -y openjdk-11-jdk openjdk-11-source libpython3.7-dev sudo git maven libarchive13 libtool lua5.3 liblua5.3-dev \ && apt-get -t buster-backports install -y cmake RUN mkdir -p $MINIFI_BASE_DIR diff --git a/win_build_vs.bat b/win_build_vs.bat index 23df743..9700f5a 100755 --- a/win_build_vs.bat +++ b/win_build_vs.bat @@ -72,7 +72,7 @@ for %%x in (%*) do ( mkdir %builddir% pushd %builddir%\ -cmake -G %generator% -A %build_platform% -DINSTALLER_MERGE_MODULES=%installer_merge_modules% -DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%build_SQL% -DUSE_REAL_ODBC_TEST_DRIVER=%real_odbc% -DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% -DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 -DENABLE_LIBRDKAFKA=%build_kafka% -DENABLE_JNI=%build_jni% -DOPENSSL_OFF=OFF -DENABLE_COAP=%build_coap% -DENABLE_AWS=%build_AWS% -DENABLE_PDH=%build_PDH% -DENABLE_AZURE=%build_azure% -D [...] +cmake -G %generator% -A %build_platform% -DINSTALLER_MERGE_MODULES=%installer_merge_modules% -DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%build_SQL% -DUSE_REAL_ODBC_TEST_DRIVER=%real_odbc% -DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% -DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 -DENABLE_LIBRDKAFKA=%build_kafka% -DENABLE_JNI=%build_jni% -DOPENSSL_OFF=OFF -DENABLE_COAP=%build_coap% -DENABLE_AWS=%build_AWS% -DENABLE_PDH=%build_PDH% -DENABLE_AZURE=%build_azure% -D [...] IF %ERRORLEVEL% NEQ 0 EXIT /b %ERRORLEVEL% if [%cpack%] EQU [ON] ( cpack -C %cmake_build_type%
