This is an automated email from the ASF dual-hosted git repository.
aboda pushed a commit to branch MINIFICPP-1348-RC1
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
The following commit(s) were added to refs/heads/MINIFICPP-1348-RC1 by this
push:
new 24d16c1 MINIFICPP-1405 - Update civetweb version, remove patch,
disable building lua and duktape deps
24d16c1 is described below
commit 24d16c1c92d1bf818e5cbba7e91f7eb0688dfcb2
Author: Adam Hunyadi <[email protected]>
AuthorDate: Fri Dec 4 09:40:12 2020 +0100
MINIFICPP-1405 - Update civetweb version, remove patch, disable building
lua and duktape deps
MINIFICPP-1405 - Add patch fixing how civetweb checks available compiler
options
Signed-off-by: Arpad Boda <[email protected]>
This closes #952
MINIFICPP-1391 Remove XCode 10.3 CI job, add 12.0
MINIFICPP-1391 Replace usages of set-env
set-env has been deprecated and triggers a warning; see
https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
MINIFICPP-1391 Remove the CMAKE_BUILD_OPTIONS env setting
This environment setting doesn't do anything, and it gives the false
appearance as if the Pcap extension was enabled (it isn't).
As the Pcap extension is not in a good shape, I have left it disabled.
ENABLE_LUA_SCRIPTING seems to work (at least it compiles), so I enabled it
in the jobs where the intention was to enable it.
MINIFICPP-1391 Increase the time limit on the docker test
Cherry picked from main, where:
Signed-off-by: Arpad Boda <[email protected]>
This closes #925
---
.github/workflows/ci.yml | 45 +++++++------------
cmake/BundledCivetWeb.cmake | 27 +++++++-----
thirdparty/civetweb/civetweb.patch | 90 ++++++++++++--------------------------
3 files changed, 62 insertions(+), 100 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 349cd7d..5b95da3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,8 +1,8 @@
name: "MiNiFi-CPP CI"
on: [push, pull_request, workflow_dispatch]
jobs:
- macos_xcode_10_3:
- name: "macos-xcode10.3"
+ macos_xcode_11_2_1:
+ name: "macos-xcode11.2.1"
runs-on: macos-10.15
timeout-minutes: 60
steps:
@@ -13,12 +13,11 @@ jobs:
- id: setup_env
run: |
echo -e "127.0.0.1\t$HOSTNAME" | sudo tee -a /etc/hosts > /dev/null
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE
-DENABLE_LUA_SCRIPTING=1"
- sudo xcode-select -switch /Applications/Xcode_10.3.app
+ sudo xcode-select -switch /Applications/Xcode_11.2.1.app
- id: build
- run: ./bootstrap.sh -e -t && cd build && cmake
-DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_RULE_MESSAGES=OFF -DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build .
--parallel 4 && make test ARGS="--timeout 300 -j4 --output-on-failure" && make
linter
- macos_xcode_11_2_1:
- name: "macos-xcode11.2.1"
+ run: ./bootstrap.sh -e -t && cd build && cmake
-DCMAKE_BUILD_TYPE=Release -DENABLE_LUA_SCRIPTING=1 -DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_RULE_MESSAGES=OFF -DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build .
--parallel 4 && make test ARGS="--timeout 300 -j4 --output-on-failure" && make
linter
+ macos_xcode_12_0:
+ name: "macos-xcode12.0"
runs-on: macos-10.15
timeout-minutes: 60
steps:
@@ -29,10 +28,9 @@ jobs:
- id: setup_env
run: |
echo -e "127.0.0.1\t$HOSTNAME" | sudo tee -a /etc/hosts > /dev/null
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE
-DENABLE_LUA_SCRIPTING=1"
- sudo xcode-select -switch /Applications/Xcode_11.2.1.app
+ sudo xcode-select -switch /Applications/Xcode_12.app
- id: build
- run: ./bootstrap.sh -e -t && cd build && cmake
-DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_RULE_MESSAGES=OFF -DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build .
--parallel 4 && make test ARGS="--timeout 300 -j4 --output-on-failure" && make
linter
+ run: ./bootstrap.sh -e -t && cd build && cmake
-DCMAKE_BUILD_TYPE=Release -DENABLE_LUA_SCRIPTING=1 -DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_RULE_MESSAGES=OFF -DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build .
--parallel 4 && make test ARGS="--timeout 300 -j4 --output-on-failure" && make
linter
windows:
name: "windows"
runs-on: windows-2016
@@ -77,9 +75,8 @@ jobs:
ubuntu-16.04-ccache-refs/heads/main-
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt install -y ccache
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: ./bootstrap.sh -e -t && cd build && cmake -DUSE_SHARED_LIBS=
-DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_RULE_MESSAGES=OFF -DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build .
--parallel 4 && make test ARGS="--timeout 300 -j2 --output-on-failure"
ubuntu_16_04_gcc_4_8:
@@ -99,11 +96,10 @@ jobs:
ubuntu-16.04-gcc-4.8-ccache-refs/heads/main-
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
sudo apt update
sudo apt install -y gcc-4.8 g++-4.8 bison flex libboost-all-dev
uuid-dev openssl libcurl4-openssl-dev ccache libpython3-dev liblua5.1-0-dev
libpcap-dev libssh2-1-dev
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
sudo unlink /usr/bin/gcc && sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc
sudo unlink /usr/bin/g++ && sudo ln -s /usr/bin/g++-4.8 /usr/bin/g++
- id: build
@@ -125,9 +121,8 @@ jobs:
ubuntu-20.04-ccache-refs/heads/main-
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt install -y ccache libfl-dev
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: ./bootstrap.sh -e -t && cd build && cmake -DUSE_SHARED_LIBS=
-DSTRICT_GSL_CHECKS=AUDIT .. && make -j4 VERBOSE=1 && make test
ARGS="--timeout 300 -j2 --output-on-failure"
ubuntu_16_04_all:
@@ -147,11 +142,10 @@ jobs:
ubuntu-16.04-all-ccache-refs/heads/main-
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
sudo apt update
sudo apt install -y ccache openjdk-8-jdk maven
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: sudo mount tmpfs -t tmpfs /tmp && ./bootstrap.sh -e -t && cd
build && cmake -DUSE_SHARED_LIBS= -DENABLE_LIBRDKAFKA=ON -DENABLE_OPC=ON
-DENABLE_SFTP=ON -DENABLE_MQTT=ON -DENABLE_COAP=ON -DENABLE_PYTHON=ON
-DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build . --parallel 4 && make test
ARGS="--timeout 300 -j8 --output-on-failure"
debian:
@@ -171,9 +165,8 @@ jobs:
debian-ccache-refs/heads/main-
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt install -y ccache
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: mkdir -p build && cd build && cmake -DSTRICT_GSL_CHECKS=AUDIT ..
&& make debian
centos:
@@ -193,9 +186,8 @@ jobs:
centos-ccache-refs/heads/main-
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt install -y ccache
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: mkdir -p build && cd build && cmake -DSTRICT_GSL_CHECKS=AUDIT ..
&& make centos
fedora:
@@ -215,9 +207,8 @@ jobs:
fedora-ccache-refs/heads/main-
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt install -y ccache
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: mkdir -p build && cd build && cmake -DSTRICT_GSL_CHECKS=AUDIT ..
&& make fedora
ubuntu_18_04:
@@ -237,9 +228,8 @@ jobs:
ubuntu-18.04-ccache-refs/heads/main
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt install -y ccache
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: mkdir -p build && cd build && cmake -DSTRICT_GSL_CHECKS=AUDIT ..
&& make u18
ubuntu_16_04_shared:
@@ -259,8 +249,7 @@ jobs:
ubuntu-16.04-shared-ccache-refs/heads/main-
- id: install_deps
run: |
- echo "::set-env name=CMAKE_BUILD_OPTIONS::-DENABLE_PCAP=TRUE"
sudo apt install -y ccache
- echo "::set-env name=PATH::/usr/lib/ccache:$PATH"
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: ./bootstrap.sh -e -t && cd build && cmake -DUSE_SHARED_LIBS=ON
-DSTRICT_GSL_CHECKS=AUDIT .. && cmake --build . --parallel 4 && make test
ARGS="--timeout 300 -j4 --output-on-failure"
diff --git a/cmake/BundledCivetWeb.cmake b/cmake/BundledCivetWeb.cmake
index 7ed493e..38c9163 100644
--- a/cmake/BundledCivetWeb.cmake
+++ b/cmake/BundledCivetWeb.cmake
@@ -21,17 +21,21 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
# Define patch step
set(PC "${Patch_EXECUTABLE}" -p1 -i
"${SOURCE_DIR}/thirdparty/civetweb/civetweb.patch")
+ set(LIBDIR "lib")
# Define byproducts
if (WIN32)
set(SUFFIX "lib")
else()
set(PREFIX "lib")
- set(SUFFIX "a")
+ include(GNUInstallDirs)
+ set(LIBDIR "${CMAKE_INSTALL_LIBDIR}")
+ set(SUFFIX "a")
+
endif()
set(BYPRODUCTS
- "lib/${PREFIX}civetweb.${SUFFIX}"
- "lib/${PREFIX}civetweb-cpp.${SUFFIX}"
+ "${LIBDIR}/${PREFIX}civetweb.${SUFFIX}"
+ "${LIBDIR}/${PREFIX}civetweb-cpp.${SUFFIX}"
)
set(CIVETWEB_BIN_DIR "${BINARY_DIR}/thirdparty/civetweb-install/" CACHE
STRING "" FORCE)
@@ -44,11 +48,12 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
set(CIVETWEB_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${CIVETWEB_BIN_DIR}"
-DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF
+ -DCIVETWEB_BUILD_TESTING=OFF
+ -DCIVETWEB_ENABLE_DUKTAPE=OFF
+ -DCIVETWEB_ENABLE_LUA=OFF
-DCIVETWEB_ENABLE_CXX=ON
- -DBUILD_TESTING=OFF
-DCIVETWEB_ALLOW_WARNINGS=ON
- -DCIVETWEB_ENABLE_ASAN=OFF # TODO
- )
+ -DCIVETWEB_ENABLE_ASAN=OFF)
if (OPENSSL_OFF)
list(APPEND CIVETWEB_CMAKE_ARGS -DCIVETWEB_ENABLE_SSL=OFF)
endif()
@@ -58,8 +63,8 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
# Build project
ExternalProject_Add(
civetweb-external
- URL "https://github.com/civetweb/civetweb/archive/v1.10.tar.gz"
- URL_HASH
"SHA256=e6958f005aa01b02645bd3ff9760dd085e83d30530cdd97b584632419195bea5"
+ URL "https://github.com/civetweb/civetweb/archive/v1.12.tar.gz"
+ URL_HASH
"SHA256=8cab1e2ad8fb3e2e81fed0b2321a5afbd7269a644c44ed4c3607e0a212c6d9e1"
SOURCE_DIR "${BINARY_DIR}/thirdparty/civetweb-src"
LIST_SEPARATOR % # This is needed for passing semicolon-separated
lists
CMAKE_ARGS ${CIVETWEB_CMAKE_ARGS}
@@ -76,7 +81,7 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
# Set variables
set(CIVETWEB_FOUND "YES" CACHE STRING "" FORCE)
set(CIVETWEB_INCLUDE_DIR "${CIVETWEB_BIN_DIR}/include" CACHE STRING ""
FORCE)
- set(CIVETWEB_LIBRARIES
"${CIVETWEB_BIN_DIR}/lib/${PREFIX}civetweb.${SUFFIX}"
"${CIVETWEB_BIN_DIR}/lib/${PREFIX}civetweb-cpp.${SUFFIX}" CACHE STRING "" FORCE)
+ set(CIVETWEB_LIBRARIES
"${CIVETWEB_BIN_DIR}/${LIBDIR}/${PREFIX}civetweb.${SUFFIX}"
"${CIVETWEB_BIN_DIR}/${LIBDIR}/${PREFIX}civetweb-cpp.${SUFFIX}" CACHE STRING ""
FORCE)
# Set exported variables for FindPackage.cmake
set(PASSTHROUGH_VARIABLES ${PASSTHROUGH_VARIABLES}
"-DEXPORTED_CIVETWEB_INCLUDE_DIR=${CIVETWEB_INCLUDE_DIR}" CACHE STRING "" FORCE)
@@ -86,7 +91,7 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
file(MAKE_DIRECTORY ${CIVETWEB_INCLUDE_DIR})
add_library(CIVETWEB::c-library STATIC IMPORTED)
- set_target_properties(CIVETWEB::c-library PROPERTIES IMPORTED_LOCATION
"${CIVETWEB_BIN_DIR}/lib/${PREFIX}civetweb.${SUFFIX}")
+ set_target_properties(CIVETWEB::c-library PROPERTIES IMPORTED_LOCATION
"${CIVETWEB_BIN_DIR}/${LIBDIR}/${PREFIX}civetweb.${SUFFIX}")
set_property(TARGET CIVETWEB::c-library APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${CIVETWEB_INCLUDE_DIR})
add_dependencies(CIVETWEB::c-library civetweb-external)
if (NOT OPENSSL_OFF)
@@ -94,7 +99,7 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
endif()
add_library(CIVETWEB::civetweb-cpp STATIC IMPORTED)
- set_target_properties(CIVETWEB::civetweb-cpp PROPERTIES IMPORTED_LOCATION
"${CIVETWEB_BIN_DIR}/lib/${PREFIX}civetweb-cpp.${SUFFIX}")
+ set_target_properties(CIVETWEB::civetweb-cpp PROPERTIES IMPORTED_LOCATION
"${CIVETWEB_BIN_DIR}/${LIBDIR}/${PREFIX}civetweb-cpp.${SUFFIX}")
set_property(TARGET CIVETWEB::civetweb-cpp APPEND PROPERTY
INTERFACE_LINK_LIBRARIES CIVETWEB::c-library)
add_dependencies(CIVETWEB::civetweb-cpp civetweb-external)
endfunction(use_bundled_civetweb)
diff --git a/thirdparty/civetweb/civetweb.patch
b/thirdparty/civetweb/civetweb.patch
index c55ce58..dc574e4 100644
--- a/thirdparty/civetweb/civetweb.patch
+++ b/thirdparty/civetweb/civetweb.patch
@@ -1,61 +1,29 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2c08bd28..ccb4fd7f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -101,7 +101,7 @@ message(STATUS "Lua CGI support - ${CIVETWEB_ENABLE_LUA}")
- # Enable installing CivetWeb executables
- option(CIVETWEB_INSTALL_EXECUTABLE "Enable installing CivetWeb executable" ON)
- mark_as_advanced(FORCE CIVETWEB_INSTALL_EXECUTABLE) # Advanced users can
disable
--message(STATUS "Executable installation - ${CIVETWEB_INSTALL_EXECUTABLE}")
-+message(STATUS "Executable installation - ${CIVETWEB_INSTALL_EXECUTABLE}")
-
- # Allow builds to complete with warnings (do not set -Werror)
- # CivetWeb Linux support is stable:
-@@ -294,8 +294,8 @@ if (MINGW)
- endif()
- if (NOT CIVETWEB_ALLOW_WARNINGS)
- add_c_compiler_flag(-Werror)
-+ add_c_compiler_flag(/WX)
- endif()
--add_c_compiler_flag(/WX)
- add_c_compiler_flag(-pedantic-errors)
- add_c_compiler_flag(-fvisibility=hidden)
- add_c_compiler_flag(-fstack-protector-strong RELEASE)
-diff --git a/src/civetweb.c b/src/civetweb.c
-index c0ccbaa2..c692d1c8 100644
---- a/src/civetweb.c
-+++ b/src/civetweb.c
-@@ -14202,7 +14202,7 @@ ssl_get_protocol(int version_id)
- * https://www.openssl.org/docs/man1.1.0/ssl/SSL_set_info_callback.html
- * https://linux.die.net/man/3/ssl_set_info_callback */
- static void
--ssl_info_callback(SSL *ssl, int what, int ret)
-+ssl_info_callback(const SSL *ssl, int what, int ret)
- {
- (void)ret;
-
-@@ -16237,10 +16237,13 @@ worker_thread_run(struct worker_thread_args
*thread_args)
- mg_free(conn->request_info.client_cert);
- conn->request_info.client_cert = 0;
- }
-- }
-+ } else {
-+ /* make sure the connection is cleaned up on SSL failure */
-+ close_connection(conn);
-+ }
- #endif
-- } else {
-- /* process HTTP connection */
-+ } else {
-+ /* process HTTP connection */
- process_new_connection(conn);
- }
-
-@@ -17249,7 +17252,6 @@ mg_get_system_info_impl(char *buffer, int buflen)
- #pragma GCC diagnostic push
- /* Disable bogus compiler warning -Wdate-time */
- #pragma GCC diagnostic ignored "-Wall"
--#pragma GCC diagnostic ignored "-Werror"
- #endif
- mg_snprintf(NULL,
- NULL,
+--- a/cmake/AddCCompilerFlag.cmake
++++ b/cmake/AddCCompilerFlag.cmake
+@@ -24,9 +24,8 @@ function(add_c_compiler_flag FLAG)
+ string(REPLACE "+" "X" SANITIZED_FLAG ${SANITIZED_FLAG})
+ string(REGEX REPLACE "[^A-Za-z_0-9]" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+ string(REGEX REPLACE "_+" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+- set(CMAKE_REQUIRED_FLAGS "${FLAG}")
+- check_c_compiler_flag("" ${SANITIZED_FLAG})
+- if(${SANITIZED_FLAG})
++ check_c_compiler_flag(${SANITIZED_FLAG} NO_DIAGNOSTICS_PRODUCED)
++ if(${NO_DIAGNOSTICS_PRODUCED})
+ set(VARIANT ${ARGV1})
+ if(ARGV1)
+ string(REGEX REPLACE "[^A-Za-z_0-9]" "_" VARIANT "${VARIANT}")
+diff --git a/cmake/AddCXXCompilerFlag.cmake b/cmake/AddCXXCompilerFlag.cmake
+--- a/cmake/AddCXXCompilerFlag.cmake
++++ b/cmake/AddCXXCompilerFlag.cmake
+@@ -24,9 +24,8 @@ function(add_cxx_compiler_flag FLAG)
+ string(REPLACE "+" "X" SANITIZED_FLAG ${SANITIZED_FLAG})
+ string(REGEX REPLACE "[^A-Za-z_0-9]" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+ string(REGEX REPLACE "_+" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+- set(CMAKE_REQUIRED_FLAGS "${FLAG}")
+- check_cxx_compiler_flag("" ${SANITIZED_FLAG})
+- if(${SANITIZED_FLAG})
++ check_cxx_compiler_flag(${SANITIZED_FLAG} NO_DIAGNOSTICS_PRODUCED)
++ if(${NO_DIAGNOSTICS_PRODUCED})
+ set(VARIANT ${ARGV1})
+ if(ARGV1)
+ string(REGEX REPLACE "[^A-Za-z_0-9]" "_" VARIANT "${VARIANT}")