* [ptxdist] [PATCH 0/2] Add WebSocket support to Mosquitto
@ 2024-05-10 8:58 Ian Abbott
2024-05-10 8:58 ` [ptxdist] [PATCH 1/2] libwebsockets: new package Ian Abbott
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Ian Abbott @ 2024-05-10 8:58 UTC (permalink / raw)
To: ptxdist
I have a need to support WebSocket connections in a Mosquitto MQTT
broker, so am adding the libwebsockets library package, and adding a
configuration option to the mosquitto package.
Patches:
1) libwebsockets: new package
2) mosquitto: Add optional WebSocket support
rules/libwebsockets.in | 56 +++++++++++++++++++++++++++++++
rules/libwebsockets.make | 85 ++++++++++++++++++++++++++++++++++++++++++++++++
rules/mosquitto.in | 13 ++++++--
rules/mosquitto.make | 2 +-
4 files changed, 152 insertions(+), 4 deletions(-)
--
-=( Ian Abbott <abbotti@mev.co.uk> || MEV Ltd. is a company )=-
-=( registered in England & Wales. Regd. number: 02862268. )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || www.mev.co.uk )=-
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ptxdist] [PATCH 1/2] libwebsockets: new package
2024-05-10 8:58 [ptxdist] [PATCH 0/2] Add WebSocket support to Mosquitto Ian Abbott
@ 2024-05-10 8:58 ` Ian Abbott
2024-05-13 9:11 ` Michael Olbrich
2024-05-10 8:58 ` [ptxdist] [PATCH 2/2] mosquitto: Add optional WebSocket support Ian Abbott
2024-05-13 10:36 ` [ptxdist] [PATCH v2 0/2] Add WebSocket support to Mosquitto Ian Abbott
2 siblings, 1 reply; 10+ messages in thread
From: Ian Abbott @ 2024-05-10 8:58 UTC (permalink / raw)
To: ptxdist; +Cc: Ian Abbott
Includes the C library from the Libwebsockets (LWS) project, with
options for adding TLS (SSL) support, and options the adding various
event loop libraries that are dynamically loaded as plug-ins.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
---
rules/libwebsockets.in | 56 ++++++++++++++++++++++++++
rules/libwebsockets.make | 85 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 141 insertions(+)
create mode 100644 rules/libwebsockets.in
create mode 100644 rules/libwebsockets.make
diff --git a/rules/libwebsockets.in b/rules/libwebsockets.in
new file mode 100644
index 000000000..e10413604
--- /dev/null
+++ b/rules/libwebsockets.in
@@ -0,0 +1,56 @@
+## SECTION=networking
+
+menuconfig LIBWEBSOCKETS
+ tristate
+ select HOST_CMAKE
+ select ZLIB
+ select LIBCAP
+ select OPENSSL if LIBWEBSOCKETS_TLS
+ select LIBEV if LIBWEBSOCKETS_LIBEV
+ select LIBUV if LIBWEBSOCKETS_LIBUV
+ select LIBEVENT if LIBWEBSOCKETS_LIBEVENT
+ select GLIB if LIBWEBSOCKETS_GLIB
+ prompt "libwebsockets "
+ help
+ Libwebsockets is a lightweight pure C library for both
+ websockets clients and servers built to use minimal CPU
+ and memory resources and provide fast throughput in both
+ directions.
+
+if LIBWEBSOCKETS
+
+config LIBWEBSOCKETS_TLS
+ bool
+ prompt "TLS (SSL) support"
+ help
+ Turn on to include TLS (SSL) support.
+
+menuconfig LIBWEBSOCKETS_EVLIB
+ bool
+ prompt "Event library options "
+ help
+ Turn on to enable various event library plug-ins.
+
+if LIBWEBSOCKETS_EVLIB
+
+config LIBWEBSOCKETS_LIBEV
+ bool
+ prompt "compile with support for libev"
+
+config LIBWEBSOCKETS_LIBUV
+ bool
+ prompt "compile with support for libuv"
+
+config LIBWEBSOCKETS_LIBEVENT
+ bool
+ prompt "compile with support for libevent"
+
+config LIBWEBSOCKETS_GLIB
+ bool
+ prompt "compile with support for glib event loop"
+
+endif
+
+endif
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/libwebsockets.make b/rules/libwebsockets.make
new file mode 100644
index 000000000..4e22e9c18
--- /dev/null
+++ b/rules/libwebsockets.make
@@ -0,0 +1,85 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Ian Abbott <abbotti@mev.co.uk>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBWEBSOCKETS) += libwebsockets
+
+#
+# Paths and names
+#
+LIBWEBSOCKETS_VERSION := 4.3.3
+LIBWEBSOCKETS_MD5 := 877f457d059718a7eafdaf8db5d7abbb
+LIBWEBSOCKETS := libwebsockets-v$(LIBWEBSOCKETS_VERSION)
+LIBWEBSOCKETS_SUFFIX := tar.bz2
+LIBWEBSOCKETS_URL := https://libwebsockets.org/git/libwebsockets/snapshot/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX)
+LIBWEBSOCKETS_SOURCE := $(SRCDIR)/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX)
+LIBWEBSOCKETS_DIR := $(BUILDDIR)/$(LIBWEBSOCKETS)
+LIBWEBSOCKETS_LICENSE := MIT AND BSD-2-Clause AND BSD-3-Clause
+LIBWEBSOCKETS_LICENSE_FILES := file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+LIBWEBSOCKETS_CONF_TOOL := cmake
+LIBWEBSOCKETS_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DLWS_WITHOUT_DAEMONIZE=OFF \
+ -DLWS_WITH_ZLIB=ON \
+ -DLWS_WITH_SSL=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_TLS) \
+ -DLWS_WITH_LIBEV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEV) \
+ -DLWS_WITH_LIBUV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBUV) \
+ -DLWS_WITH_LIBEVENT=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEVENT) \
+ -DLWS_WITH_GLIB=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_GLIB) \
+ -DLWS_WITHOUT_TESTAPPS=ON \
+ -DLWS_WITHOUT_TEST_PING=ON \
+ -DLWS_WITHOUT_TEST_CLIENT=ON \
+ -DLWS_WITHOUT_EXTENSIONS=OFF \
+ -DLWS_WITH_EXTERNAL_POLL=ON \
+ -DLWS_IPV6=$(call ptx/onoff, PTXCONF_GLOBAL_IPV6)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libwebsockets.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libwebsockets)
+ @$(call install_fixup, libwebsockets,PRIORITY,optional)
+ @$(call install_fixup, libwebsockets,SECTION,base)
+ @$(call install_fixup, libwebsockets,AUTHOR,"Ian Abbott <abbotti@mev.co.uk>")
+ @$(call install_fixup, libwebsockets,DESCRIPTION,missing)
+
+# libraries
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets)
+
+# plug-in libraries
+ifdef PTXCONF_LIBWEBSOCKETS_LIBEV
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_ev)
+endif
+ifdef PTXCONF_LIBWEBSOCKETS_LIBUV
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_uv)
+endif
+ifdef PTXCONF_LIBWEBSOCKETS_LIBEVENT
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_event)
+endif
+ifdef PTXCONF_LIBWEBSOCKETS_GLIB
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_glib)
+endif
+
+ @$(call install_finish, libwebsockets)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ptxdist] [PATCH 2/2] mosquitto: Add optional WebSocket support
2024-05-10 8:58 [ptxdist] [PATCH 0/2] Add WebSocket support to Mosquitto Ian Abbott
2024-05-10 8:58 ` [ptxdist] [PATCH 1/2] libwebsockets: new package Ian Abbott
@ 2024-05-10 8:58 ` Ian Abbott
2024-05-13 10:36 ` [ptxdist] [PATCH v2 0/2] Add WebSocket support to Mosquitto Ian Abbott
2 siblings, 0 replies; 10+ messages in thread
From: Ian Abbott @ 2024-05-10 8:58 UTC (permalink / raw)
To: ptxdist; +Cc: Ian Abbott
Add a configuration option to support WebSocket connections using the
libwebsockets library. If Mosquitto is configured to use TLS, select
TLS support in the libwebsockets package too.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
---
rules/mosquitto.in | 13 ++++++++++---
rules/mosquitto.make | 2 +-
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/rules/mosquitto.in b/rules/mosquitto.in
index 9b55f0847..3c751ede7 100644
--- a/rules/mosquitto.in
+++ b/rules/mosquitto.in
@@ -4,9 +4,11 @@ menuconfig MOSQUITTO
tristate
prompt "mosquitto "
select HOST_CMAKE
- select OPENSSL if MOSQUITTO_TLS
- select C_ARES if MOSQUITTO_SRV
- select SYSTEMD if MOSQUITTO_SYSTEMD_UNIT
+ select OPENSSL if MOSQUITTO_TLS
+ select C_ARES if MOSQUITTO_SRV
+ select SYSTEMD if MOSQUITTO_SYSTEMD_UNIT
+ select LIBWEBSOCKETS if MOSQUITTO_WEBSOCKETS
+ select LIBWEBSOCKETS_TLS if MOSQUITTO_WEBSOCKETS && MOSQUITTO_TLS
help
Open source MQTT message broker, library, and client.
@@ -35,6 +37,11 @@ config MOSQUITTO_SRV
bool
prompt "SRV lookup support"
+config MOSQUITTO_WEBSOCKETS
+ bool
+ depends on MOSQUITTO_BROKER
+ prompt "Websockets support"
+
endif
# vim: ft=kconfig noet tw=72
diff --git a/rules/mosquitto.make b/rules/mosquitto.make
index eedb5ca58..239f1fe3c 100644
--- a/rules/mosquitto.make
+++ b/rules/mosquitto.make
@@ -60,7 +60,7 @@ MOSQUITTO_CONF_OPT := \
-DWITH_TLS=$(call ptx/onoff, PTXCONF_MOSQUITTO_TLS) \
-DWITH_TLS_PSK=$(call ptx/onoff, PTXCONF_MOSQUITTO_TLS) \
-DWITH_UNIX_SOCKETS=ON \
- -DWITH_WEBSOCKETS=OFF
+ -DWITH_WEBSOCKETS=$(call ptx/onoff, PTXCONF_MOSQUITTO_WEBSOCKETS)
# ----------------------------------------------------------------------------
# Install
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [ptxdist] [PATCH 1/2] libwebsockets: new package
2024-05-10 8:58 ` [ptxdist] [PATCH 1/2] libwebsockets: new package Ian Abbott
@ 2024-05-13 9:11 ` Michael Olbrich
2024-05-13 9:20 ` Ian Abbott
0 siblings, 1 reply; 10+ messages in thread
From: Michael Olbrich @ 2024-05-13 9:11 UTC (permalink / raw)
To: Ian Abbott; +Cc: ptxdist
On Fri, May 10, 2024 at 09:58:47AM +0100, Ian Abbott wrote:
> Includes the C library from the Libwebsockets (LWS) project, with
> options for adding TLS (SSL) support, and options the adding various
> event loop libraries that are dynamically loaded as plug-ins.
>
> Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
> ---
> rules/libwebsockets.in | 56 ++++++++++++++++++++++++++
> rules/libwebsockets.make | 85 ++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 141 insertions(+)
> create mode 100644 rules/libwebsockets.in
> create mode 100644 rules/libwebsockets.make
>
> diff --git a/rules/libwebsockets.in b/rules/libwebsockets.in
> new file mode 100644
> index 000000000..e10413604
> --- /dev/null
> +++ b/rules/libwebsockets.in
> @@ -0,0 +1,56 @@
> +## SECTION=networking
> +
> +menuconfig LIBWEBSOCKETS
> + tristate
> + select HOST_CMAKE
> + select ZLIB
> + select LIBCAP
> + select OPENSSL if LIBWEBSOCKETS_TLS
> + select LIBEV if LIBWEBSOCKETS_LIBEV
> + select LIBUV if LIBWEBSOCKETS_LIBUV
> + select LIBEVENT if LIBWEBSOCKETS_LIBEVENT
> + select GLIB if LIBWEBSOCKETS_GLIB
> + prompt "libwebsockets "
> + help
> + Libwebsockets is a lightweight pure C library for both
> + websockets clients and servers built to use minimal CPU
> + and memory resources and provide fast throughput in both
> + directions.
> +
> +if LIBWEBSOCKETS
> +
> +config LIBWEBSOCKETS_TLS
> + bool
> + prompt "TLS (SSL) support"
> + help
> + Turn on to include TLS (SSL) support.
> +
> +menuconfig LIBWEBSOCKETS_EVLIB
> + bool
> + prompt "Event library options "
> + help
> + Turn on to enable various event library plug-ins.
> +
> +if LIBWEBSOCKETS_EVLIB
> +
> +config LIBWEBSOCKETS_LIBEV
> + bool
> + prompt "compile with support for libev"
> +
> +config LIBWEBSOCKETS_LIBUV
> + bool
> + prompt "compile with support for libuv"
> +
> +config LIBWEBSOCKETS_LIBEVENT
> + bool
> + prompt "compile with support for libevent"
> +
> +config LIBWEBSOCKETS_GLIB
> + bool
> + prompt "compile with support for glib event loop"
> +
> +endif
> +
> +endif
> +
> +# vim: ft=kconfig noet tw=72
> diff --git a/rules/libwebsockets.make b/rules/libwebsockets.make
> new file mode 100644
> index 000000000..4e22e9c18
> --- /dev/null
> +++ b/rules/libwebsockets.make
> @@ -0,0 +1,85 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2024 by Ian Abbott <abbotti@mev.co.uk>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_LIBWEBSOCKETS) += libwebsockets
> +
> +#
> +# Paths and names
> +#
> +LIBWEBSOCKETS_VERSION := 4.3.3
> +LIBWEBSOCKETS_MD5 := 877f457d059718a7eafdaf8db5d7abbb
> +LIBWEBSOCKETS := libwebsockets-v$(LIBWEBSOCKETS_VERSION)
> +LIBWEBSOCKETS_SUFFIX := tar.bz2
> +LIBWEBSOCKETS_URL := https://libwebsockets.org/git/libwebsockets/snapshot/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX)
Hmmm, the URL does not work properly for me. The md5sum is different and
bzip2 reports "bzip2: Compressed file ends unexpectedly;".
Michael
> +LIBWEBSOCKETS_SOURCE := $(SRCDIR)/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX)
> +LIBWEBSOCKETS_DIR := $(BUILDDIR)/$(LIBWEBSOCKETS)
> +LIBWEBSOCKETS_LICENSE := MIT AND BSD-2-Clause AND BSD-3-Clause
> +LIBWEBSOCKETS_LICENSE_FILES := file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +#
> +# cmake
> +#
> +LIBWEBSOCKETS_CONF_TOOL := cmake
> +LIBWEBSOCKETS_CONF_OPT := \
> + $(CROSS_CMAKE_USR) \
> + -DLWS_WITHOUT_DAEMONIZE=OFF \
> + -DLWS_WITH_ZLIB=ON \
> + -DLWS_WITH_SSL=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_TLS) \
> + -DLWS_WITH_LIBEV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEV) \
> + -DLWS_WITH_LIBUV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBUV) \
> + -DLWS_WITH_LIBEVENT=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEVENT) \
> + -DLWS_WITH_GLIB=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_GLIB) \
> + -DLWS_WITHOUT_TESTAPPS=ON \
> + -DLWS_WITHOUT_TEST_PING=ON \
> + -DLWS_WITHOUT_TEST_CLIENT=ON \
> + -DLWS_WITHOUT_EXTENSIONS=OFF \
> + -DLWS_WITH_EXTERNAL_POLL=ON \
> + -DLWS_IPV6=$(call ptx/onoff, PTXCONF_GLOBAL_IPV6)
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/libwebsockets.targetinstall:
> + @$(call targetinfo)
> +
> + @$(call install_init, libwebsockets)
> + @$(call install_fixup, libwebsockets,PRIORITY,optional)
> + @$(call install_fixup, libwebsockets,SECTION,base)
> + @$(call install_fixup, libwebsockets,AUTHOR,"Ian Abbott <abbotti@mev.co.uk>")
> + @$(call install_fixup, libwebsockets,DESCRIPTION,missing)
> +
> +# libraries
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets)
> +
> +# plug-in libraries
> +ifdef PTXCONF_LIBWEBSOCKETS_LIBEV
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_ev)
> +endif
> +ifdef PTXCONF_LIBWEBSOCKETS_LIBUV
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_uv)
> +endif
> +ifdef PTXCONF_LIBWEBSOCKETS_LIBEVENT
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_event)
> +endif
> +ifdef PTXCONF_LIBWEBSOCKETS_GLIB
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_glib)
> +endif
> +
> + @$(call install_finish, libwebsockets)
> +
> + @$(call touch)
> +
> +# vim: syntax=make
> --
> 2.43.0
>
>
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [ptxdist] [PATCH 1/2] libwebsockets: new package
2024-05-13 9:11 ` Michael Olbrich
@ 2024-05-13 9:20 ` Ian Abbott
0 siblings, 0 replies; 10+ messages in thread
From: Ian Abbott @ 2024-05-13 9:20 UTC (permalink / raw)
To: ptxdist
On 2024-05-13 10:11, Michael Olbrich wrote:
> On Fri, May 10, 2024 at 09:58:47AM +0100, Ian Abbott wrote:
[snip]
>> diff --git a/rules/libwebsockets.make b/rules/libwebsockets.make
>> new file mode 100644
>> index 000000000..4e22e9c18
>> --- /dev/null
>> +++ b/rules/libwebsockets.make
>> @@ -0,0 +1,85 @@
>> +# -*-makefile-*-
>> +#
>> +# Copyright (C) 2024 by Ian Abbott <abbotti@mev.co.uk>
>> +#
>> +# For further information about the PTXdist project and license conditions
>> +# see the README file.
>> +#
>> +
>> +#
>> +# We provide this package
>> +#
>> +PACKAGES-$(PTXCONF_LIBWEBSOCKETS) += libwebsockets
>> +
>> +#
>> +# Paths and names
>> +#
>> +LIBWEBSOCKETS_VERSION := 4.3.3
>> +LIBWEBSOCKETS_MD5 := 877f457d059718a7eafdaf8db5d7abbb
>> +LIBWEBSOCKETS := libwebsockets-v$(LIBWEBSOCKETS_VERSION)
>> +LIBWEBSOCKETS_SUFFIX := tar.bz2
>> +LIBWEBSOCKETS_URL := https://libwebsockets.org/git/libwebsockets/snapshot/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX)
>
> Hmmm, the URL does not work properly for me. The md5sum is different and
> bzip2 reports "bzip2: Compressed file ends unexpectedly;".
I was a bit worried about that because the tar archives are generated on
the fly by gitohashi. We should be able to fix that by switching to the
github mirror of the repository.
--
-=( Ian Abbott <abbotti@mev.co.uk> || MEV Ltd. is a company )=-
-=( registered in England & Wales. Regd. number: 02862268. )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || www.mev.co.uk )=-
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ptxdist] [PATCH v2 0/2] Add WebSocket support to Mosquitto
2024-05-10 8:58 [ptxdist] [PATCH 0/2] Add WebSocket support to Mosquitto Ian Abbott
2024-05-10 8:58 ` [ptxdist] [PATCH 1/2] libwebsockets: new package Ian Abbott
2024-05-10 8:58 ` [ptxdist] [PATCH 2/2] mosquitto: Add optional WebSocket support Ian Abbott
@ 2024-05-13 10:36 ` Ian Abbott
2024-05-13 10:36 ` [ptxdist] [PATCH v2 1/2] libwebsockets: new package Ian Abbott
2024-05-13 10:36 ` [ptxdist] [PATCH v2 2/2] mosquitto: Add optional WebSocket support Ian Abbott
2 siblings, 2 replies; 10+ messages in thread
From: Ian Abbott @ 2024-05-13 10:36 UTC (permalink / raw)
To: ptxdist
I have a need to support WebSocket connections in a Mosquitto MQTT
broker, so am adding the libwebsockets library package, and adding a
configuration option to the mosquitto package.
v2: Download libwebsockets source from GitHub instead of
libwebsockets.org's own git server due to unreliable, on-the-fly
generated tarballs from the latter either getting truncated, or having
unstable MD5 checksums.
Patches:
1) libwebsockets: new package
2) mosquitto: Add optional WebSocket support
rules/libwebsockets.in | 56 +++++++++++++++++++++++++++++++
rules/libwebsockets.make | 85 ++++++++++++++++++++++++++++++++++++++++++++++++
rules/mosquitto.in | 13 ++++++--
rules/mosquitto.make | 2 +-
4 files changed, 152 insertions(+), 4 deletions(-)
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ptxdist] [PATCH v2 1/2] libwebsockets: new package
2024-05-13 10:36 ` [ptxdist] [PATCH v2 0/2] Add WebSocket support to Mosquitto Ian Abbott
@ 2024-05-13 10:36 ` Ian Abbott
2024-05-31 6:08 ` [ptxdist] [APPLIED] " Michael Olbrich
2024-05-13 10:36 ` [ptxdist] [PATCH v2 2/2] mosquitto: Add optional WebSocket support Ian Abbott
1 sibling, 1 reply; 10+ messages in thread
From: Ian Abbott @ 2024-05-13 10:36 UTC (permalink / raw)
To: ptxdist; +Cc: Ian Abbott
Includes the C library from the Libwebsockets (LWS) project, with
options for adding TLS (SSL) support, and options the adding various
event loop libraries that are dynamically loaded as plug-ins.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
---
v2: Get sources from github instead of libwebsockets.org's own git
server due to unreliable, on-the-fly generated tarballs from the latter.
---
rules/libwebsockets.in | 56 ++++++++++++++++++++++++++
rules/libwebsockets.make | 85 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 141 insertions(+)
create mode 100644 rules/libwebsockets.in
create mode 100644 rules/libwebsockets.make
diff --git a/rules/libwebsockets.in b/rules/libwebsockets.in
new file mode 100644
index 000000000..e10413604
--- /dev/null
+++ b/rules/libwebsockets.in
@@ -0,0 +1,56 @@
+## SECTION=networking
+
+menuconfig LIBWEBSOCKETS
+ tristate
+ select HOST_CMAKE
+ select ZLIB
+ select LIBCAP
+ select OPENSSL if LIBWEBSOCKETS_TLS
+ select LIBEV if LIBWEBSOCKETS_LIBEV
+ select LIBUV if LIBWEBSOCKETS_LIBUV
+ select LIBEVENT if LIBWEBSOCKETS_LIBEVENT
+ select GLIB if LIBWEBSOCKETS_GLIB
+ prompt "libwebsockets "
+ help
+ Libwebsockets is a lightweight pure C library for both
+ websockets clients and servers built to use minimal CPU
+ and memory resources and provide fast throughput in both
+ directions.
+
+if LIBWEBSOCKETS
+
+config LIBWEBSOCKETS_TLS
+ bool
+ prompt "TLS (SSL) support"
+ help
+ Turn on to include TLS (SSL) support.
+
+menuconfig LIBWEBSOCKETS_EVLIB
+ bool
+ prompt "Event library options "
+ help
+ Turn on to enable various event library plug-ins.
+
+if LIBWEBSOCKETS_EVLIB
+
+config LIBWEBSOCKETS_LIBEV
+ bool
+ prompt "compile with support for libev"
+
+config LIBWEBSOCKETS_LIBUV
+ bool
+ prompt "compile with support for libuv"
+
+config LIBWEBSOCKETS_LIBEVENT
+ bool
+ prompt "compile with support for libevent"
+
+config LIBWEBSOCKETS_GLIB
+ bool
+ prompt "compile with support for glib event loop"
+
+endif
+
+endif
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/libwebsockets.make b/rules/libwebsockets.make
new file mode 100644
index 000000000..9203b308d
--- /dev/null
+++ b/rules/libwebsockets.make
@@ -0,0 +1,85 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Ian Abbott <abbotti@mev.co.uk>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBWEBSOCKETS) += libwebsockets
+
+#
+# Paths and names
+#
+LIBWEBSOCKETS_VERSION := 4.3.3
+LIBWEBSOCKETS_MD5 := c078b08b712316f6302f54a9d05273ae
+LIBWEBSOCKETS := libwebsockets-$(LIBWEBSOCKETS_VERSION)
+LIBWEBSOCKETS_SUFFIX := tar.gz
+LIBWEBSOCKETS_URL := https://github.com/warmcat/libwebsockets/archive/refs/tags/v$(LIBWEBSOCKETS_VERSION).$(LIBWEBSOCKETS_SUFFIX)
+LIBWEBSOCKETS_SOURCE := $(SRCDIR)/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX)
+LIBWEBSOCKETS_DIR := $(BUILDDIR)/$(LIBWEBSOCKETS)
+LIBWEBSOCKETS_LICENSE := MIT AND BSD-2-Clause AND BSD-3-Clause
+LIBWEBSOCKETS_LICENSE_FILES := file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+LIBWEBSOCKETS_CONF_TOOL := cmake
+LIBWEBSOCKETS_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DLWS_WITHOUT_DAEMONIZE=OFF \
+ -DLWS_WITH_ZLIB=ON \
+ -DLWS_WITH_SSL=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_TLS) \
+ -DLWS_WITH_LIBEV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEV) \
+ -DLWS_WITH_LIBUV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBUV) \
+ -DLWS_WITH_LIBEVENT=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEVENT) \
+ -DLWS_WITH_GLIB=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_GLIB) \
+ -DLWS_WITHOUT_TESTAPPS=ON \
+ -DLWS_WITHOUT_TEST_PING=ON \
+ -DLWS_WITHOUT_TEST_CLIENT=ON \
+ -DLWS_WITHOUT_EXTENSIONS=OFF \
+ -DLWS_WITH_EXTERNAL_POLL=ON \
+ -DLWS_IPV6=$(call ptx/onoff, PTXCONF_GLOBAL_IPV6)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libwebsockets.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libwebsockets)
+ @$(call install_fixup, libwebsockets,PRIORITY,optional)
+ @$(call install_fixup, libwebsockets,SECTION,base)
+ @$(call install_fixup, libwebsockets,AUTHOR,"Ian Abbott <abbotti@mev.co.uk>")
+ @$(call install_fixup, libwebsockets,DESCRIPTION,missing)
+
+# libraries
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets)
+
+# plug-in libraries
+ifdef PTXCONF_LIBWEBSOCKETS_LIBEV
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_ev)
+endif
+ifdef PTXCONF_LIBWEBSOCKETS_LIBUV
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_uv)
+endif
+ifdef PTXCONF_LIBWEBSOCKETS_LIBEVENT
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_event)
+endif
+ifdef PTXCONF_LIBWEBSOCKETS_GLIB
+ @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_glib)
+endif
+
+ @$(call install_finish, libwebsockets)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ptxdist] [PATCH v2 2/2] mosquitto: Add optional WebSocket support
2024-05-13 10:36 ` [ptxdist] [PATCH v2 0/2] Add WebSocket support to Mosquitto Ian Abbott
2024-05-13 10:36 ` [ptxdist] [PATCH v2 1/2] libwebsockets: new package Ian Abbott
@ 2024-05-13 10:36 ` Ian Abbott
2024-05-31 6:08 ` [ptxdist] [APPLIED] " Michael Olbrich
1 sibling, 1 reply; 10+ messages in thread
From: Ian Abbott @ 2024-05-13 10:36 UTC (permalink / raw)
To: ptxdist; +Cc: Ian Abbott
Add a configuration option to support WebSocket connections using the
libwebsockets library. If Mosquitto is configured to use TLS, select
TLS support in the libwebsockets package too.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
---
rules/mosquitto.in | 13 ++++++++++---
rules/mosquitto.make | 2 +-
2 files changed, 11 insertions(+), 4 deletions(-)
---
v2: No change since v1.
diff --git a/rules/mosquitto.in b/rules/mosquitto.in
index 9b55f0847..3c751ede7 100644
--- a/rules/mosquitto.in
+++ b/rules/mosquitto.in
@@ -4,9 +4,11 @@ menuconfig MOSQUITTO
tristate
prompt "mosquitto "
select HOST_CMAKE
- select OPENSSL if MOSQUITTO_TLS
- select C_ARES if MOSQUITTO_SRV
- select SYSTEMD if MOSQUITTO_SYSTEMD_UNIT
+ select OPENSSL if MOSQUITTO_TLS
+ select C_ARES if MOSQUITTO_SRV
+ select SYSTEMD if MOSQUITTO_SYSTEMD_UNIT
+ select LIBWEBSOCKETS if MOSQUITTO_WEBSOCKETS
+ select LIBWEBSOCKETS_TLS if MOSQUITTO_WEBSOCKETS && MOSQUITTO_TLS
help
Open source MQTT message broker, library, and client.
@@ -35,6 +37,11 @@ config MOSQUITTO_SRV
bool
prompt "SRV lookup support"
+config MOSQUITTO_WEBSOCKETS
+ bool
+ depends on MOSQUITTO_BROKER
+ prompt "Websockets support"
+
endif
# vim: ft=kconfig noet tw=72
diff --git a/rules/mosquitto.make b/rules/mosquitto.make
index eedb5ca58..239f1fe3c 100644
--- a/rules/mosquitto.make
+++ b/rules/mosquitto.make
@@ -60,7 +60,7 @@ MOSQUITTO_CONF_OPT := \
-DWITH_TLS=$(call ptx/onoff, PTXCONF_MOSQUITTO_TLS) \
-DWITH_TLS_PSK=$(call ptx/onoff, PTXCONF_MOSQUITTO_TLS) \
-DWITH_UNIX_SOCKETS=ON \
- -DWITH_WEBSOCKETS=OFF
+ -DWITH_WEBSOCKETS=$(call ptx/onoff, PTXCONF_MOSQUITTO_WEBSOCKETS)
# ----------------------------------------------------------------------------
# Install
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [ptxdist] [APPLIED] libwebsockets: new package
2024-05-13 10:36 ` [ptxdist] [PATCH v2 1/2] libwebsockets: new package Ian Abbott
@ 2024-05-31 6:08 ` Michael Olbrich
0 siblings, 0 replies; 10+ messages in thread
From: Michael Olbrich @ 2024-05-31 6:08 UTC (permalink / raw)
To: ptxdist; +Cc: Ian Abbott
Thanks, applied as 93c95a89800c54c7adcda7e15a1af5f87e2eec5b.
Michael
[sent from post-receive hook]
On Fri, 31 May 2024 08:08:27 +0200, Ian Abbott <abbotti@mev.co.uk> wrote:
> Includes the C library from the Libwebsockets (LWS) project, with
> options for adding TLS (SSL) support, and options the adding various
> event loop libraries that are dynamically loaded as plug-ins.
>
> Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
> Message-Id: <20240513103808.21385-2-abbotti@mev.co.uk>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/libwebsockets.in b/rules/libwebsockets.in
> new file mode 100644
> index 000000000000..e10413604c9d
> --- /dev/null
> +++ b/rules/libwebsockets.in
> @@ -0,0 +1,56 @@
> +## SECTION=networking
> +
> +menuconfig LIBWEBSOCKETS
> + tristate
> + select HOST_CMAKE
> + select ZLIB
> + select LIBCAP
> + select OPENSSL if LIBWEBSOCKETS_TLS
> + select LIBEV if LIBWEBSOCKETS_LIBEV
> + select LIBUV if LIBWEBSOCKETS_LIBUV
> + select LIBEVENT if LIBWEBSOCKETS_LIBEVENT
> + select GLIB if LIBWEBSOCKETS_GLIB
> + prompt "libwebsockets "
> + help
> + Libwebsockets is a lightweight pure C library for both
> + websockets clients and servers built to use minimal CPU
> + and memory resources and provide fast throughput in both
> + directions.
> +
> +if LIBWEBSOCKETS
> +
> +config LIBWEBSOCKETS_TLS
> + bool
> + prompt "TLS (SSL) support"
> + help
> + Turn on to include TLS (SSL) support.
> +
> +menuconfig LIBWEBSOCKETS_EVLIB
> + bool
> + prompt "Event library options "
> + help
> + Turn on to enable various event library plug-ins.
> +
> +if LIBWEBSOCKETS_EVLIB
> +
> +config LIBWEBSOCKETS_LIBEV
> + bool
> + prompt "compile with support for libev"
> +
> +config LIBWEBSOCKETS_LIBUV
> + bool
> + prompt "compile with support for libuv"
> +
> +config LIBWEBSOCKETS_LIBEVENT
> + bool
> + prompt "compile with support for libevent"
> +
> +config LIBWEBSOCKETS_GLIB
> + bool
> + prompt "compile with support for glib event loop"
> +
> +endif
> +
> +endif
> +
> +# vim: ft=kconfig noet tw=72
> diff --git a/rules/libwebsockets.make b/rules/libwebsockets.make
> new file mode 100644
> index 000000000000..9203b308da81
> --- /dev/null
> +++ b/rules/libwebsockets.make
> @@ -0,0 +1,85 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2024 by Ian Abbott <abbotti@mev.co.uk>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_LIBWEBSOCKETS) += libwebsockets
> +
> +#
> +# Paths and names
> +#
> +LIBWEBSOCKETS_VERSION := 4.3.3
> +LIBWEBSOCKETS_MD5 := c078b08b712316f6302f54a9d05273ae
> +LIBWEBSOCKETS := libwebsockets-$(LIBWEBSOCKETS_VERSION)
> +LIBWEBSOCKETS_SUFFIX := tar.gz
> +LIBWEBSOCKETS_URL := https://github.com/warmcat/libwebsockets/archive/refs/tags/v$(LIBWEBSOCKETS_VERSION).$(LIBWEBSOCKETS_SUFFIX)
> +LIBWEBSOCKETS_SOURCE := $(SRCDIR)/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX)
> +LIBWEBSOCKETS_DIR := $(BUILDDIR)/$(LIBWEBSOCKETS)
> +LIBWEBSOCKETS_LICENSE := MIT AND BSD-2-Clause AND BSD-3-Clause
> +LIBWEBSOCKETS_LICENSE_FILES := file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +#
> +# cmake
> +#
> +LIBWEBSOCKETS_CONF_TOOL := cmake
> +LIBWEBSOCKETS_CONF_OPT := \
> + $(CROSS_CMAKE_USR) \
> + -DLWS_WITHOUT_DAEMONIZE=OFF \
> + -DLWS_WITH_ZLIB=ON \
> + -DLWS_WITH_SSL=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_TLS) \
> + -DLWS_WITH_LIBEV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEV) \
> + -DLWS_WITH_LIBUV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBUV) \
> + -DLWS_WITH_LIBEVENT=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEVENT) \
> + -DLWS_WITH_GLIB=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_GLIB) \
> + -DLWS_WITHOUT_TESTAPPS=ON \
> + -DLWS_WITHOUT_TEST_PING=ON \
> + -DLWS_WITHOUT_TEST_CLIENT=ON \
> + -DLWS_WITHOUT_EXTENSIONS=OFF \
> + -DLWS_WITH_EXTERNAL_POLL=ON \
> + -DLWS_IPV6=$(call ptx/onoff, PTXCONF_GLOBAL_IPV6)
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/libwebsockets.targetinstall:
> + @$(call targetinfo)
> +
> + @$(call install_init, libwebsockets)
> + @$(call install_fixup, libwebsockets,PRIORITY,optional)
> + @$(call install_fixup, libwebsockets,SECTION,base)
> + @$(call install_fixup, libwebsockets,AUTHOR,"Ian Abbott <abbotti@mev.co.uk>")
> + @$(call install_fixup, libwebsockets,DESCRIPTION,missing)
> +
> +# libraries
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets)
> +
> +# plug-in libraries
> +ifdef PTXCONF_LIBWEBSOCKETS_LIBEV
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_ev)
> +endif
> +ifdef PTXCONF_LIBWEBSOCKETS_LIBUV
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_uv)
> +endif
> +ifdef PTXCONF_LIBWEBSOCKETS_LIBEVENT
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_event)
> +endif
> +ifdef PTXCONF_LIBWEBSOCKETS_GLIB
> + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_glib)
> +endif
> +
> + @$(call install_finish, libwebsockets)
> +
> + @$(call touch)
> +
> +# vim: syntax=make
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [ptxdist] [APPLIED] mosquitto: Add optional WebSocket support
2024-05-13 10:36 ` [ptxdist] [PATCH v2 2/2] mosquitto: Add optional WebSocket support Ian Abbott
@ 2024-05-31 6:08 ` Michael Olbrich
0 siblings, 0 replies; 10+ messages in thread
From: Michael Olbrich @ 2024-05-31 6:08 UTC (permalink / raw)
To: ptxdist; +Cc: Ian Abbott
Thanks, applied as 8c23ffcc8a87bfb8f411f25eef65e332e8019ba4.
Michael
[sent from post-receive hook]
On Fri, 31 May 2024 08:08:28 +0200, Ian Abbott <abbotti@mev.co.uk> wrote:
> Add a configuration option to support WebSocket connections using the
> libwebsockets library. If Mosquitto is configured to use TLS, select
> TLS support in the libwebsockets package too.
>
> Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
> Message-Id: <20240513103808.21385-3-abbotti@mev.co.uk>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/mosquitto.in b/rules/mosquitto.in
> index 9b55f084703d..3c751ede7efb 100644
> --- a/rules/mosquitto.in
> +++ b/rules/mosquitto.in
> @@ -4,9 +4,11 @@ menuconfig MOSQUITTO
> tristate
> prompt "mosquitto "
> select HOST_CMAKE
> - select OPENSSL if MOSQUITTO_TLS
> - select C_ARES if MOSQUITTO_SRV
> - select SYSTEMD if MOSQUITTO_SYSTEMD_UNIT
> + select OPENSSL if MOSQUITTO_TLS
> + select C_ARES if MOSQUITTO_SRV
> + select SYSTEMD if MOSQUITTO_SYSTEMD_UNIT
> + select LIBWEBSOCKETS if MOSQUITTO_WEBSOCKETS
> + select LIBWEBSOCKETS_TLS if MOSQUITTO_WEBSOCKETS && MOSQUITTO_TLS
> help
> Open source MQTT message broker, library, and client.
>
> @@ -35,6 +37,11 @@ config MOSQUITTO_SRV
> bool
> prompt "SRV lookup support"
>
> +config MOSQUITTO_WEBSOCKETS
> + bool
> + depends on MOSQUITTO_BROKER
> + prompt "Websockets support"
> +
> endif
>
> # vim: ft=kconfig noet tw=72
> diff --git a/rules/mosquitto.make b/rules/mosquitto.make
> index eedb5ca580e2..239f1fe3c34a 100644
> --- a/rules/mosquitto.make
> +++ b/rules/mosquitto.make
> @@ -60,7 +60,7 @@ MOSQUITTO_CONF_OPT := \
> -DWITH_TLS=$(call ptx/onoff, PTXCONF_MOSQUITTO_TLS) \
> -DWITH_TLS_PSK=$(call ptx/onoff, PTXCONF_MOSQUITTO_TLS) \
> -DWITH_UNIX_SOCKETS=ON \
> - -DWITH_WEBSOCKETS=OFF
> + -DWITH_WEBSOCKETS=$(call ptx/onoff, PTXCONF_MOSQUITTO_WEBSOCKETS)
>
> # ----------------------------------------------------------------------------
> # Install
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-05-31 6:09 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-10 8:58 [ptxdist] [PATCH 0/2] Add WebSocket support to Mosquitto Ian Abbott
2024-05-10 8:58 ` [ptxdist] [PATCH 1/2] libwebsockets: new package Ian Abbott
2024-05-13 9:11 ` Michael Olbrich
2024-05-13 9:20 ` Ian Abbott
2024-05-10 8:58 ` [ptxdist] [PATCH 2/2] mosquitto: Add optional WebSocket support Ian Abbott
2024-05-13 10:36 ` [ptxdist] [PATCH v2 0/2] Add WebSocket support to Mosquitto Ian Abbott
2024-05-13 10:36 ` [ptxdist] [PATCH v2 1/2] libwebsockets: new package Ian Abbott
2024-05-31 6:08 ` [ptxdist] [APPLIED] " Michael Olbrich
2024-05-13 10:36 ` [ptxdist] [PATCH v2 2/2] mosquitto: Add optional WebSocket support Ian Abbott
2024-05-31 6:08 ` [ptxdist] [APPLIED] " Michael Olbrich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox