From d0aeeda60d9fa6ff569777e1a45a8f4dc3556d4b Mon Sep 17 00:00:00 2001 From: "Igor Zalatov (from Citadel PC)" Date: Fri, 31 Dec 2021 19:35:48 +0300 Subject: [PATCH] Added a blank for the libwebsockets package --- ...ts-txt-fix-static-build-with-openssl.patch | 34 ++++++++++ .../package/libwebsockets-openipc/Config.in | 9 +++ .../libwebsockets-openipc/libwebsockets.mk | 62 +++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 general/package/libwebsockets-openipc/0001-CMakeLists-txt-fix-static-build-with-openssl.patch create mode 100644 general/package/libwebsockets-openipc/Config.in create mode 100644 general/package/libwebsockets-openipc/libwebsockets.mk diff --git a/general/package/libwebsockets-openipc/0001-CMakeLists-txt-fix-static-build-with-openssl.patch b/general/package/libwebsockets-openipc/0001-CMakeLists-txt-fix-static-build-with-openssl.patch new file mode 100644 index 00000000..868685d3 --- /dev/null +++ b/general/package/libwebsockets-openipc/0001-CMakeLists-txt-fix-static-build-with-openssl.patch @@ -0,0 +1,34 @@ +From 5f8134cfe5e7b90a8ce07d27ae737dcc54b523b3 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Wed, 16 Oct 2019 20:09:13 +0200 +Subject: [PATCH] CMakeLists.txt: fix static build with openssl + +openssl can depends on -latomic so use pkg-config (if available) to +retrieve these static dependencies otherwise build will fail because +HMAC_CTX_new test will return a wrong result + +Fixes: + - http://autobuild.buildroot.org/results/65d0528b208c0a470264f7e2433be89425971dd7 + +Signed-off-by: Fabrice Fontaine +[Retrieved (and backported) from: +https://github.com/warmcat/libwebsockets/commit/5f8134cfe5e7b90a8ce07d27ae737dcc54b523b3] +--- + CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2693ac56a..888f65e83 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1803,7 +1803,10 @@ if (LWS_WITH_SSL) + if (NOT OPENSSL_FOUND AND NOT LWS_WITH_BORINGSSL) + # TODO: Add support for STATIC also. + if (NOT LWS_WITH_ESP32) ++ find_package(PkgConfig QUIET) ++ pkg_check_modules(PC_OPENSSL openssl QUIET) + find_package(OpenSSL REQUIRED) ++ list(APPEND OPENSSL_LIBRARIES ${PC_OPENSSL_LIBRARIES}) + endif() + set(OPENSSL_INCLUDE_DIRS "${OPENSSL_INCLUDE_DIR}") + endif() diff --git a/general/package/libwebsockets-openipc/Config.in b/general/package/libwebsockets-openipc/Config.in new file mode 100644 index 00000000..1d927bb4 --- /dev/null +++ b/general/package/libwebsockets-openipc/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_LIBWEBSOCKETS + bool "libwebsockets" + select BR2_PACKAGE_ZLIB + help + Libwebsockets is a lightweight pure C library built to use + minimal CPU and memory resources, and provide fast throughput + in both directions. + + http://libwebsockets.org/ diff --git a/general/package/libwebsockets-openipc/libwebsockets.mk b/general/package/libwebsockets-openipc/libwebsockets.mk new file mode 100644 index 00000000..dedd0334 --- /dev/null +++ b/general/package/libwebsockets-openipc/libwebsockets.mk @@ -0,0 +1,62 @@ +################################################################################ +# +# libwebsockets +# +################################################################################ + +LIBWEBSOCKETS_VERSION = 3.2.2 +LIBWEBSOCKETS_SITE = $(call github,warmcat,libwebsockets,v$(LIBWEBSOCKETS_VERSION)) +LIBWEBSOCKETS_LICENSE = LGPL-2.1 with exceptions +LIBWEBSOCKETS_LICENSE_FILES = LICENSE +LIBWEBSOCKETS_DEPENDENCIES = zlib +LIBWEBSOCKETS_INSTALL_STAGING = YES +LIBWEBSOCKETS_CONF_OPTS = -DLWS_WITHOUT_TESTAPPS=ON -DLWS_IPV6=ON + +# If LWS_MAX_SMP=1, then there is no code related to pthreads compiled +# in the library. If unset, LWS_MAX_SMP defaults to 32 and a small +# amount of pthread mutex code is built into the library. +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) +LIBWEBSOCKETS_CONF_OPTS += -DLWS_MAX_SMP=1 +else +LIBWEBSOCKETS_CONF_OPTS += -DLWS_MAX_SMP= +endif + +ifeq ($(BR2_PACKAGE_OPENSSL),y) +LIBWEBSOCKETS_DEPENDENCIES += openssl host-openssl +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SSL=ON +else +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SSL=OFF +endif + +ifeq ($(BR2_PACKAGE_LIBEV),y) +LIBWEBSOCKETS_DEPENDENCIES += libev +LIBWEBSOCKETS_CONF_OPTS += \ + -DLWS_WITH_LIBEV=ON \ + -DLWS_WITH_LIBEVENT=OFF +else ifeq ($(BR2_PACKAGE_LIBEVENT),y) +LIBWEBSOCKETS_DEPENDENCIES += libevent +LIBWEBSOCKETS_CONF_OPTS += \ + -DLWS_WITH_LIBEV=OFF \ + -DLWS_WITH_LIBEVENT=ON +else +LIBWEBSOCKETS_CONF_OPTS += \ + -DLWS_WITH_LIBEV=OFF \ + -DLWS_WITH_LIBEVENT=OFF +endif + +ifeq ($(BR2_PACKAGE_LIBUV),y) +LIBWEBSOCKETS_DEPENDENCIES += libuv +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBUV=ON +else +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBUV=OFF +endif + +ifeq ($(BR2_STATIC_LIBS),y) +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SHARED=OFF +endif + +ifeq ($(BR2_SHARED_LIBS),y) +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_STATIC=OFF +endif + +$(eval $(cmake-package))