Wednesday, November 25, 2020

Re: mosquitto with websockets enabled?

On 11/25/20 3:03 PM, Stuart Henderson wrote:
> [moved to ports@ and cc'ing mosquitto maintainer]
>
> In gmane.os.openbsd.misc, Jeff Ross wrote:
>> Greetings,
>>
>> I've been trying to build mosquitto with websockets enabled on 6.8
>> release.  The web says that all I should have to do is edit config.mk
>> and change WITH_WEBSOCKETS:=no to WITH_WEBSOCKETS:=yes.
>> I also added libwebsockets from ports.
>>
>> I built a patch to do that and then built the port with that patch.
>>
>> test68# cd /usr/ports/net/mosquitto/patches/
>> test68# cat patch-config_mk
>> --- config.mk.orig    Wed Nov 25 09:33:17 2020
>> +++ config.mk    Wed Nov 25 09:33:34 2020
>> @@ -65,7 +65,7 @@
>>  WITH_SRV:=no
>>
>>  # Build with websockets support on the broker.
>> -WITH_WEBSOCKETS:=no
>> +WITH_WEBSOCKETS:=yes
>>
>>  # Use elliptic keys in broker
>>  WITH_EC:=yes
>>
>> However, I still get the following:
>>
>> test68# /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
>> 1606323544: Error: Websockets support not available.
>> 1606323544: Error found at /etc/mosquitto/mosquitto.conf:241.
>>
>> ktracing the command above I don't even see a place where it actually
>> looks to see if websockets are enabled.
>>
>> I'm hoping someone has gone down this path before and can share the
>> secret sauce to enable websockets.
>>
>> Alternatively, a suggestion for a different implementation of MQTT with
>> websockets would be fine.
>>
>> Thanks,
>>
>> Jeff Ross
>>
>>
> config.mk is for the autoconf-based build system, the mosquitto port
> uses the CMake one instead so you need to set configure flags.
>
> This works for me - Jasper, what do you think about adding to the
> port? (either directly like this or as a flavour)?
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/net/mosquitto/Makefile,v
> retrieving revision 1.33
> diff -u -p -r1.33 Makefile
> --- Makefile 22 Aug 2020 13:55:07 -0000 1.33
> +++ Makefile 25 Nov 2020 21:42:00 -0000
> @@ -3,6 +3,7 @@
> COMMENT = opensource MQTT broker
>
> DISTNAME = mosquitto-1.6.12
> +REVISION = 0
>
> SHARED_LIBS += mosquitto 1.0 # 1.5
> SHARED_LIBS += mosquittopp 1.0 # 1.5
> @@ -15,7 +16,7 @@ MAINTAINER = Jasper Lievisse Adriaanse
> # EPL/EDL
> PERMIT_PACKAGE = Yes
>
> -WANTLIB += c crypto m pthread ssl ${COMPILER_LIBCXX}
> +WANTLIB += c crypto m pthread ssl websockets ${COMPILER_LIBCXX}
>
> MASTER_SITES = https://mosquitto.org/files/source/
>
> @@ -29,12 +30,15 @@ MODPY_RUNDEP= No
> MODPY_VERSION= ${MODPY_DEFAULT_VERSION_3}
>
> BUILD_DEPENDS = devel/uthash
> +LIB_DEPENDS = www/libwebsockets
>
> DEBUG_PACKAGES = ${BUILD_PACKAGES}
>
> -CONFIGURE_ARGS= -DWITH_SRV=no
> +CONFIGURE_ARGS= -DWITH_SRV=no \
> + -DWITH_WEBSOCKETS=yes
> # Pre-shared key support was intentionally removed from libressl
> CONFIGURE_ARGS += -DWITH_TLS_PSK=no
> +CONFIGURE_ENV += LDFLAGS="-L${LOCALBASE}/lib"
>
> CFLAGS += -I${LOCALBASE}/include
>
>
>
Thanks, Stuart!  I never would have hit upon the right combination of
changes.

Jeff

No comments:

Post a Comment