Files
buildroot/package/libwebsockets/libwebsockets.mk
Yegor Yefremov 0b820f8e22 package/libwebsockets: bump to version 5.1.0
There are no release notes for the 5.x series; the git history is at
https://github.com/warmcat/libwebsockets/compare/v4.5.8...v5.1.0

Version 5.0.0 added mbedtls 4 support, and 5.1.0 brings the mbedtls 4
fixes on top of it, so libwebsockets now builds and works with
mbedtls 4.1.

Drop patch 0001, which was applied upstream in a reworked form as
commit 8a0dbfba1 ("cmake: only use libatomic if it provides the 64-bit
atomics").

HTTP/3 (QUIC) is now enabled by default. With OpenSSL, it forces the
new GnuTLS backend on, and with mbedtls it requires an mbedtls carrying
the libwebsockets QUIC patches, so the configure step fails either way:

  LWS_ROLE_QUIC (HTTP/3) requires mbedtls to be patched with QUIC
  support.

Disable HTTP/3 and QUIC, which version 4.5.8 did not have either.

LWS_PRE, the headroom required before buffers passed to lws_write(),
grew on 64-bit builds, and the soname changed from
libwebsockets.so.21 to libwebsockets.so.23.

The LICENSE file lists two more files that are already MIT licensed
(lib/misc/dht and lib/misc/qrcodegen.c), hence the hash change.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2026-11-04 22:51:38 +01:00

109 lines
2.9 KiB
Makefile

################################################################################
#
# libwebsockets
#
################################################################################
LIBWEBSOCKETS_VERSION = 5.1.0
LIBWEBSOCKETS_SITE = $(call github,warmcat,libwebsockets,v$(LIBWEBSOCKETS_VERSION))
LIBWEBSOCKETS_LICENSE = MIT with exceptions
LIBWEBSOCKETS_LICENSE_FILES = LICENSE
LIBWEBSOCKETS_DEPENDENCIES = zlib
LIBWEBSOCKETS_INSTALL_STAGING = YES
# HTTP/3 (QUIC) is enabled by default, but needs GnuTLS when OpenSSL
# is used, and an mbedtls with the libwebsockets QUIC patches.
LIBWEBSOCKETS_CONF_OPTS = \
-DDISABLE_WERROR=ON \
-DLWS_WITH_HTTP3=OFF \
-DLWS_ROLE_QUIC=OFF \
-DLWS_WITHOUT_TESTAPPS=ON \
-DLWS_IPV6=ON \
-DLWS_UNIX_SOCK=ON \
-DLWS_WITHOUT_EXTENSIONS=OFF
# If LWS_MAX_SMP=1, then there is no code related to pthreads compiled
# in the library. If unset, LWS_MAX_SMP defaults to 1.
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
LIBWEBSOCKETS_CONF_OPTS += \
-DLWS_MAX_SMP=1 \
-DLWS_WITH_SYS_SMD=OFF
else
LIBWEBSOCKETS_CONF_OPTS += \
-DLWS_MAX_SMP=32 \
-DLWS_WITH_SYS_SMD=ON
endif
ifeq ($(BR2_PACKAGE_OPENSSL),y)
LIBWEBSOCKETS_DEPENDENCIES += openssl host-openssl
LIBWEBSOCKETS_CONF_OPTS += \
-DLWS_WITH_SSL=ON \
-DLWS_WITH_MBEDTLS=OFF \
-DLWS_WITH_WOLFSSL=OFF
else ifeq ($(BR2_PACKAGE_MBEDTLS),y)
LIBWEBSOCKETS_DEPENDENCIES += mbedtls
LIBWEBSOCKETS_CONF_OPTS += \
-DLWS_WITH_SSL=ON \
-DLWS_WITH_MBEDTLS=ON \
-DLWS_WITH_WOLFSSL=OFF
else ifeq ($(BR2_PACKAGE_WOLFSSL_ALL),y)
LIBWEBSOCKETS_DEPENDENCIES += host-pkgconf wolfssl
LIBWEBSOCKETS_CONF_OPTS += \
-DLWS_WITH_SSL=ON \
-DLWS_WITH_MBEDTLS=OFF \
-DLWS_WITH_WOLFSSL=ON
else
LIBWEBSOCKETS_CONF_OPTS += \
-DLWS_WITH_SSL=OFF \
-DLWS_WITH_MBEDTLS=OFF \
-DLWS_WITH_WOLFSSL=OFF
endif
ifeq ($(BR2_PACKAGE_LIBEV),y)
LIBWEBSOCKETS_DEPENDENCIES += libev
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEV=ON
else
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEV=OFF
endif
ifeq ($(BR2_PACKAGE_LIBEVENT),y)
LIBWEBSOCKETS_DEPENDENCIES += libevent
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEVENT=ON
else
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEVENT=OFF
endif
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
LIBWEBSOCKETS_DEPENDENCIES += libglib2
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_GLIB=ON
else
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_GLIB=OFF
endif
ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y)
LIBWEBSOCKETS_DEPENDENCIES += util-linux
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_FSMOUNT=ON
else
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_FSMOUNT=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_SHARED_LIBS),y)
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_STATIC=OFF
endif
ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL),y)
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_EXTERNAL_POLL=ON
endif
ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS_ASYNC_DNS),y)
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SYS_ASYNC_DNS=ON
endif
$(eval $(cmake-package))