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 4a94894  MINIFICPP-1725 Upgrade libwebsockets and remove workaround
4a94894 is described below

commit 4a948944045c4bc2ef7750bc9b72f6130bfa2fd1
Author: Gabor Gyimesi <[email protected]>
AuthorDate: Mon Feb 14 10:59:57 2022 +0100

    MINIFICPP-1725 Upgrade libwebsockets and remove workaround
    
    Closes #1260
    
    Signed-off-by: Martin Zink <[email protected]>
---
 .github/workflows/ci.yml                        |  4 ++--
 cmake/BundledLibreSSL.cmake                     |  3 +--
 cmake/KubernetesClientC.cmake                   | 15 ++++++++++-----
 thirdparty/libwebsockets/fix-include-dirs.patch | 22 ++++++++++++++++++++++
 4 files changed, 35 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 23c1c54..60628c6 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -119,7 +119,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_SCRIPTING=ON 
-DENABLE_LUA_SCRIPTING=ON ..
+              -DENABLE_USB_CAMERA=ON -DENABLE_SCRIPTING=ON 
-DENABLE_LUA_SCRIPTING=ON -DENABLE_KUBERNETES=ON ..
           make -j$(nproc) VERBOSE=1
       - name: test
         run: cd build && make test ARGS="--timeout 300 -j2 --output-on-failure"
@@ -181,7 +181,7 @@ jobs:
           sudo apt install -y ccache
           echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
       - id: build
-        run: mkdir build && cd build && cmake -DSTRICT_GSL_CHECKS=AUDIT 
-DENABLE_KUBERNETES=ON .. && make centos
+        run: mkdir build && cd build && cmake -DSTRICT_GSL_CHECKS=AUDIT .. && 
make centos
   docker_integration_tests:
     name: "Docker integration tests"
     runs-on: ubuntu-20.04
diff --git a/cmake/BundledLibreSSL.cmake b/cmake/BundledLibreSSL.cmake
index 13ba1e3..d78a0c8 100644
--- a/cmake/BundledLibreSSL.cmake
+++ b/cmake/BundledLibreSSL.cmake
@@ -60,7 +60,6 @@ function(use_libre_ssl SOURCE_DIR BINARY_DIR)
     # Set variables
     set(OPENSSL_FOUND "YES" CACHE STRING "" FORCE)
     set(OPENSSL_INCLUDE_DIR "${LIBRESSL_BIN_DIR}/include" CACHE STRING "" 
FORCE)
-    set(OPENSSL_INCLUDE_DIRS "${OPENSSL_INCLUDE_DIR}" CACHE STRING "" FORCE)  
# workaround for libwebsockets
     set(OPENSSL_LIBRARIES ${LIBRESSL_LIBRARIES_LIST} CACHE STRING "" FORCE)
     set(OPENSSL_CRYPTO_LIBRARY 
"${LIBRESSL_BIN_DIR}/lib/${BYPRODUCT_PREFIX}crypto${BYPRODUCT_SUFFIX}" CACHE 
STRING "" FORCE)
     set(OPENSSL_SSL_LIBRARY 
"${LIBRESSL_BIN_DIR}/lib/${BYPRODUCT_PREFIX}ssl${BYPRODUCT_SUFFIX}" CACHE 
STRING "" FORCE)
@@ -100,4 +99,4 @@ function(use_libre_ssl SOURCE_DIR BINARY_DIR)
             IMPORTED_LOCATION 
"${LIBRESSL_BIN_DIR}/lib/${BYPRODUCT_PREFIX}tls${BYPRODUCT_SUFFIX}")
     add_dependencies(LibreSSL::TLS libressl-portable)
     set_property(TARGET LibreSSL::TLS APPEND PROPERTY INTERFACE_LINK_LIBRARIES 
OpenSSL::Crypto)
-endfunction(use_libre_ssl) 
+endfunction(use_libre_ssl)
diff --git a/cmake/KubernetesClientC.cmake b/cmake/KubernetesClientC.cmake
index 120cf40..69db6b2 100644
--- a/cmake/KubernetesClientC.cmake
+++ b/cmake/KubernetesClientC.cmake
@@ -31,20 +31,25 @@ set(LWS_WITHOUT_TEST_PING ON            CACHE BOOL "" FORCE)
 set(LWS_WITHOUT_TEST_CLIENT ON          CACHE BOOL "" FORCE)
 set(LWS_WITH_SHARED OFF                 CACHE BOOL "" FORCE)
 set(CMAKE_C_FLAGS "-fpic"               CACHE STRING "" FORCE)
+
+set(WEBSOCKETS_PATCH_FILE 
"${CMAKE_SOURCE_DIR}/thirdparty/libwebsockets/fix-include-dirs.patch")
+set(WEBSOCKETS_PC ${Bash_EXECUTABLE} -c "set -x &&\
+        (${Patch_EXECUTABLE} -R -p1 -s -f --dry-run -i 
${WEBSOCKETS_PATCH_FILE} || ${Patch_EXECUTABLE} -p1 -i 
${WEBSOCKETS_PATCH_FILE})")
 FetchContent_Declare(websockets
         GIT_REPOSITORY  https://libwebsockets.org/repo/libwebsockets.git
-        GIT_TAG         43a1e83394bf06689b966402e7d4378685d05fbc  # v4.2-stable
+        GIT_TAG         v4.3.1
+        PATCH_COMMAND "${WEBSOCKETS_PC}"
 )
 
 set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
-set(PATCH_FILE 
"${CMAKE_SOURCE_DIR}/thirdparty/kubernetes-client-c/remove-findpackage.patch")
-set(PC ${Bash_EXECUTABLE} -c "set -x &&\
-        (${Patch_EXECUTABLE} -R -p1 -s -f --dry-run -i ${PATCH_FILE} || 
${Patch_EXECUTABLE} -p1 -i ${PATCH_FILE})")
+set(K8S_PATCH_FILE 
"${CMAKE_SOURCE_DIR}/thirdparty/kubernetes-client-c/remove-findpackage.patch")
+set(K8S_PC ${Bash_EXECUTABLE} -c "set -x &&\
+        (${Patch_EXECUTABLE} -R -p1 -s -f --dry-run -i ${K8S_PATCH_FILE} || 
${Patch_EXECUTABLE} -p1 -i ${K8S_PATCH_FILE})")
 FetchContent_Declare(kubernetes
     GIT_REPOSITORY https://github.com/kubernetes-client/c
     GIT_TAG 9581cd9a8426a5ad7d543b146d5c5ede37cc32e0  # latest commit on 
master as of 2022-01-05
     SOURCE_SUBDIR kubernetes
-    PATCH_COMMAND "${PC}"
+    PATCH_COMMAND "${K8S_PC}"
 )
 
 FetchContent_MakeAvailable(yaml websockets kubernetes)
diff --git a/thirdparty/libwebsockets/fix-include-dirs.patch 
b/thirdparty/libwebsockets/fix-include-dirs.patch
new file mode 100644
index 0000000..c640c5e
--- /dev/null
+++ b/thirdparty/libwebsockets/fix-include-dirs.patch
@@ -0,0 +1,22 @@
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index c55c6198..5e401726 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -170,7 +170,7 @@ if (LWS_WITH_STATIC)
+       )
+       target_include_directories(websockets PRIVATE 
${LWS_LIB_BUILD_INC_PATHS})
+       target_compile_definitions(websockets PRIVATE LWS_BUILDING_STATIC)
+-      target_include_directories(websockets PUBLIC ${LWS_PUBLIC_INCLUDES})
++      target_include_directories(websockets PUBLIC 
$<BUILD_INTERFACE:${LWS_PUBLIC_INCLUDES}>)
+       set(LWS_PUBLIC_INCLUDES ${LWS_PUBLIC_INCLUDES} PARENT_SCOPE)
+ 
+       if (WIN32)
+@@ -198,7 +198,7 @@ if (LWS_WITH_SHARED)
+       )
+       target_include_directories(websockets_shared PRIVATE 
${LWS_LIB_BUILD_INC_PATHS})
+       target_compile_definitions(websockets_shared PRIVATE 
LWS_BUILDING_SHARED)
+-      target_include_directories(websockets_shared PUBLIC 
${LWS_PUBLIC_INCLUDES})
++      target_include_directories(websockets_shared PUBLIC 
$<BUILD_INTERFACE:${LWS_PUBLIC_INCLUDES}>)
+       set(LWS_PUBLIC_INCLUDES ${LWS_PUBLIC_INCLUDES} PARENT_SCOPE)
+ 
+       # We want the shared lib to be named "libwebsockets"

Reply via email to