All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support
@ 2023-05-19 14:45 Luca Pesce via buildroot
  2023-05-21 17:08 ` Yann E. MORIN
  2023-05-24  8:31 ` [Buildroot] [PATCH v2 1/2] " Luca Pesce via buildroot
  0 siblings, 2 replies; 10+ messages in thread
From: Luca Pesce via buildroot @ 2023-05-19 14:45 UTC (permalink / raw)
  To: buildroot; +Cc: Luca Pesce

Since version 3.2.0, libwebsockets does not compile its external loop support
code anymore. That code was put under LWS_WITH_EXTERNAL_POLL compile option,
which defaults to OFF.
Applications relying on that support need to turn that option on, so let's
add it to the package.

For example, when libwebsockets in enabled, mosquitto broker is built with
websocket support, but its code requires LWS_WITH_EXTERNAL_POLL to be on -
otherwise, it gives compile-time warning hinting to unusable websocket support:
https://github.com/eclipse/mosquitto/commit/1b24f625ea4ee77f3c4796ec2233d059f8c7977e

Signed-off-by: Luca Pesce <luca.pesce@vimar.com>
---
 package/libwebsockets/Config.in        | 10 ++++++++++
 package/libwebsockets/libwebsockets.mk |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/package/libwebsockets/Config.in b/package/libwebsockets/Config.in
index d7b529c..1371717 100644
--- a/package/libwebsockets/Config.in
+++ b/package/libwebsockets/Config.in
@@ -9,5 +9,15 @@ config BR2_PACKAGE_LIBWEBSOCKETS
 
 	  https://libwebsockets.org/
 
+if BR2_PACKAGE_LIBWEBSOCKETS
+
+config BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL
+	bool "enable external poll loop support"
+	default n
+	help
+	  Enable external poll loop support code.
+
+endif
+
 comment "libwebsockets needs a toolchain w/ dynamic library"
 	depends on BR2_STATIC_LIBS
diff --git a/package/libwebsockets/libwebsockets.mk b/package/libwebsockets/libwebsockets.mk
index fb0ee66..86756ca 100644
--- a/package/libwebsockets/libwebsockets.mk
+++ b/package/libwebsockets/libwebsockets.mk
@@ -94,4 +94,8 @@ 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
+
 $(eval $(cmake-package))
-- 
2.7.4

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [Buildroot] [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support
  2023-05-19 14:45 [Buildroot] [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support Luca Pesce via buildroot
@ 2023-05-21 17:08 ` Yann E. MORIN
  2023-05-22  6:34   ` [Buildroot] R: " Pesce Luca via buildroot
  2023-05-24  8:31 ` [Buildroot] [PATCH v2 1/2] " Luca Pesce via buildroot
  1 sibling, 1 reply; 10+ messages in thread
From: Yann E. MORIN @ 2023-05-21 17:08 UTC (permalink / raw)
  To: Luca Pesce; +Cc: buildroot

Luca, All,

On 2023-05-19 16:45 +0200, Luca Pesce via buildroot spake thusly:
> Since version 3.2.0, libwebsockets does not compile its external loop support
> code anymore. That code was put under LWS_WITH_EXTERNAL_POLL compile option,
> which defaults to OFF.
> Applications relying on that support need to turn that option on, so let's
> add it to the package.

So, as I understand it, before 3.2.0, this was unconditionally compiled
in, right?

If so, for backward compatibility, should we default this new option to
'y' ?

> For example, when libwebsockets in enabled, mosquitto broker is built with
> websocket support, but its code requires LWS_WITH_EXTERNAL_POLL to be on -
> otherwise, it gives compile-time warning hinting to unusable websocket support:
> https://github.com/eclipse/mosquitto/commit/1b24f625ea4ee77f3c4796ec2233d059f8c7977e

Then, should mosquitto also select this new option?

> Signed-off-by: Luca Pesce <luca.pesce@vimar.com>
> ---
>  package/libwebsockets/Config.in        | 10 ++++++++++
>  package/libwebsockets/libwebsockets.mk |  4 ++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/package/libwebsockets/Config.in b/package/libwebsockets/Config.in
> index d7b529c..1371717 100644
> --- a/package/libwebsockets/Config.in
> +++ b/package/libwebsockets/Config.in
> @@ -9,5 +9,15 @@ config BR2_PACKAGE_LIBWEBSOCKETS
>  
>  	  https://libwebsockets.org/
>  
> +if BR2_PACKAGE_LIBWEBSOCKETS
> +
> +config BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL
> +	bool "enable external poll loop support"
> +	default n

'n' is the default, so no need to specify it.

> +	help
> +	  Enable external poll loop support code.

I am not sure I understood this "external poll loop support". Does it
mean that the loop must be handle by the application itself, rather than
bey libwebsocket?

Regards,
Yann E. MORIN.

> +endif
> +
>  comment "libwebsockets needs a toolchain w/ dynamic library"
>  	depends on BR2_STATIC_LIBS
> diff --git a/package/libwebsockets/libwebsockets.mk b/package/libwebsockets/libwebsockets.mk
> index fb0ee66..86756ca 100644
> --- a/package/libwebsockets/libwebsockets.mk
> +++ b/package/libwebsockets/libwebsockets.mk
> @@ -94,4 +94,8 @@ 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
> +
>  $(eval $(cmake-package))
> -- 
> 2.7.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] R: [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support
  2023-05-21 17:08 ` Yann E. MORIN
@ 2023-05-22  6:34   ` Pesce Luca via buildroot
  2023-05-23 16:27     ` Yann E. MORIN
  0 siblings, 1 reply; 10+ messages in thread
From: Pesce Luca via buildroot @ 2023-05-22  6:34 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: buildroot

Hi Yann,

> Da: Yann E. MORIN <yann.morin.1998@free.fr>
> Luca, All,

>On 2023-05-19 16:45 +0200, Luca Pesce via buildroot spake thusly:
>> Since version 3.2.0, libwebsockets does not compile its external loop support
>> code anymore. That code was put under LWS_WITH_EXTERNAL_POLL compile option,
>> which defaults to OFF.
>> Applications relying on that support need to turn that option on, so let's
>> add it to the package.

>So, as I understand it, before 3.2.0, this was unconditionally compiled
>in, right?
Yes, indeed.

> If so, for backward compatibility, should we default this new option to
> 'y' ?
Well, it is not clear to me why in libwebsockets >= 3.2.0 the new option defaults
to OFF, but it is hinting to something not so broadly used - the comment
of the commit which introduced that change says something:
https://github.com/warmcat/libwebsockets/commit/d3021980194991d175388115a65a4265bd155f36

So, I would say that the default should be n, and then let users enable it only if needed.
Maybe the help text in the Config.in may remind that this support was unconditionally
compiled in for version < 3.2.0.

>> For example, when libwebsockets in enabled, mosquitto broker is built with
>> websocket support, but its code requires LWS_WITH_EXTERNAL_POLL to be on -
>> otherwise, it gives compile-time warning hinting to unusable websocket support:

>>Then, should mosquitto also select this new option?

It could, yes. It is not a compile-time requirement, but rather a run-time one.

>> Signed-off-by: Luca Pesce <luca.pesce@vimar.com>
>> ---
>>  package/libwebsockets/Config.in        | 10 ++++++++++
>>  package/libwebsockets/libwebsockets.mk |  4 ++++
>>  2 files changed, 14 insertions(+)
>>
>> diff --git a/package/libwebsockets/Config.in b/package/libwebsockets/Config.in
>> index d7b529c..1371717 100644
>> --- a/package/libwebsockets/Config.in
>> +++ b/package/libwebsockets/Config.in
>> @@ -9,5 +9,15 @@ config BR2_PACKAGE_LIBWEBSOCKETS
>>
>>         https://libwebsockets.org/
>>
>> +if BR2_PACKAGE_LIBWEBSOCKETS
>> +
>> +config BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL
>> +     bool "enable external poll loop support"
>> +     default n

> 'n' is the default, so no need to specify it.

Ok.

>> +     help
>> +       Enable external poll loop support code.

> I am not sure I understood this "external poll loop support". Does it
> mean that the loop must be handle by the application itself, rather than
> bey libwebsocket?

The library can be run on either its own internal loop (default behaviour) or
by having its fds incorporated on an external one (so, the application own loop),
using an application-provided callback. The latter is now under the
aforementioned cmake option (see the cited commit above).

Regards,
Luca

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Buildroot] R: [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support
  2023-05-22  6:34   ` [Buildroot] R: " Pesce Luca via buildroot
@ 2023-05-23 16:27     ` Yann E. MORIN
  2023-05-24  6:00       ` [Buildroot] R: " Pesce Luca via buildroot
  0 siblings, 1 reply; 10+ messages in thread
From: Yann E. MORIN @ 2023-05-23 16:27 UTC (permalink / raw)
  To: Pesce Luca; +Cc: buildroot

Luca, All,

On 2023-05-22 06:34 +0000, Pesce Luca via buildroot spake thusly:
> > Da: Yann E. MORIN <yann.morin.1998@free.fr>
> >On 2023-05-19 16:45 +0200, Luca Pesce via buildroot spake thusly:
> >> Since version 3.2.0, libwebsockets does not compile its external loop support
> >> code anymore. That code was put under LWS_WITH_EXTERNAL_POLL compile option,
> >> which defaults to OFF.
> >> Applications relying on that support need to turn that option on, so let's
> >> add it to the package.
> >So, as I understand it, before 3.2.0, this was unconditionally compiled
> >in, right?
> > If so, for backward compatibility, should we default this new option to
> > 'y' ?
> Well, it is not clear to me why in libwebsockets >= 3.2.0 the new option defaults
> to OFF, but it is hinting to something not so broadly used - the comment
> of the commit which introduced that change says something:
> https://github.com/warmcat/libwebsockets/commit/d3021980194991d175388115a65a4265bd155f36
> 
> So, I would say that the default should be n, and then let users enable it only if needed.
> Maybe the help text in the Config.in may remind that this support was unconditionally
> compiled in for version < 3.2.0.

Our policy is not to change the default behaviour if at all possible, so
I think this new symbol should default to 'y' (with a comment that
states "legacy"):

    default y  # legacy, was previously always enabled

> >> For example, when libwebsockets in enabled, mosquitto broker is built with
> >> websocket support, but its code requires LWS_WITH_EXTERNAL_POLL to be on -
> >> otherwise, it gives compile-time warning hinting to unusable websocket support:
> >>Then, should mosquitto also select this new option?
> It could, yes. It is not a compile-time requirement, but rather a run-time one.

Then yes, mosquitto should select it (otherwise there is a performance
regression).

[--SNIP--]
> >> +     help
> >> +       Enable external poll loop support code.
> > I am not sure I understood this "external poll loop support". Does it
> > mean that the loop must be handle by the application itself, rather than
> > bey libwebsocket?
> The library can be run on either its own internal loop (default behaviour) or
> by having its fds incorporated on an external one (so, the application own loop),
> using an application-provided callback. The latter is now under the
> aforementioned cmake option (see the cited commit above).

ACK, thansks for the clarification.

Will you submit an updated patch (default to y, and select from
mosquitto) ?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] R: R: [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support
  2023-05-23 16:27     ` Yann E. MORIN
@ 2023-05-24  6:00       ` Pesce Luca via buildroot
  2023-05-24  6:10         ` Yann E. MORIN
  0 siblings, 1 reply; 10+ messages in thread
From: Pesce Luca via buildroot @ 2023-05-24  6:00 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: buildroot

Hi Yann,

> Will you submit an updated patch (default to y, and select from
> mosquitto) ?

Yes. Would you prefer a single patch dealing with both libwebsockets
and mosquitto, or rather a serie with two patches, one for libwebsockets
and the other for mosquitto? The latter sounds more correct to me, but
I can do either way.

Regards,
Luca

________________________________________
Da: Yann E. MORIN <yann.morin.1998@free.fr>
Inviato: martedì 23 maggio 2023 18:27
A: Pesce Luca
Cc: buildroot@buildroot.org
Oggetto: Re: [Buildroot] R: [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support

Luca, All,

On 2023-05-22 06:34 +0000, Pesce Luca via buildroot spake thusly:
> > Da: Yann E. MORIN <yann.morin.1998@free.fr>
> >On 2023-05-19 16:45 +0200, Luca Pesce via buildroot spake thusly:
> >> Since version 3.2.0, libwebsockets does not compile its external loop support
> >> code anymore. That code was put under LWS_WITH_EXTERNAL_POLL compile option,
> >> which defaults to OFF.
> >> Applications relying on that support need to turn that option on, so let's
> >> add it to the package.
> >So, as I understand it, before 3.2.0, this was unconditionally compiled
> >in, right?
> > If so, for backward compatibility, should we default this new option to
> > 'y' ?
> Well, it is not clear to me why in libwebsockets >= 3.2.0 the new option defaults
> to OFF, but it is hinting to something not so broadly used - the comment
> of the commit which introduced that change says something:
> https://github.com/warmcat/libwebsockets/commit/d3021980194991d175388115a65a4265bd155f36
>
> So, I would say that the default should be n, and then let users enable it only if needed.
> Maybe the help text in the Config.in may remind that this support was unconditionally
> compiled in for version < 3.2.0.

Our policy is not to change the default behaviour if at all possible, so
I think this new symbol should default to 'y' (with a comment that
states "legacy"):

    default y  # legacy, was previously always enabled

> >> For example, when libwebsockets in enabled, mosquitto broker is built with
> >> websocket support, but its code requires LWS_WITH_EXTERNAL_POLL to be on -
> >> otherwise, it gives compile-time warning hinting to unusable websocket support:
> >>Then, should mosquitto also select this new option?
> It could, yes. It is not a compile-time requirement, but rather a run-time one.

Then yes, mosquitto should select it (otherwise there is a performance
regression).

[--SNIP--]
> >> +     help
> >> +       Enable external poll loop support code.
> > I am not sure I understood this "external poll loop support". Does it
> > mean that the loop must be handle by the application itself, rather than
> > bey libwebsocket?
> The library can be run on either its own internal loop (default behaviour) or
> by having its fds incorporated on an external one (so, the application own loop),
> using an application-provided callback. The latter is now under the
> aforementioned cmake option (see the cited commit above).

ACK, thansks for the clarification.

Will you submit an updated patch (default to y, and select from
mosquitto) ?

Regards,
Yann E. MORIN.

--
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Buildroot] R: R: [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support
  2023-05-24  6:00       ` [Buildroot] R: " Pesce Luca via buildroot
@ 2023-05-24  6:10         ` Yann E. MORIN
  0 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2023-05-24  6:10 UTC (permalink / raw)
  To: Pesce Luca; +Cc: buildroot

Luca, All,

On 2023-05-24 06:00 +0000, Pesce Luca via buildroot spake thusly:
> > Will you submit an updated patch (default to y, and select from
> > mosquitto) ?
> Yes. Would you prefer a single patch dealing with both libwebsockets
> and mosquitto, or rather a serie with two patches, one for libwebsockets
> and the other for mosquitto? The latter sounds more correct to me, but
> I can do either way.

I think it would be better with two patches, please.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v2 1/2] package/libwebsockets: added option to (re-)enable external poll loop support
  2023-05-19 14:45 [Buildroot] [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support Luca Pesce via buildroot
  2023-05-21 17:08 ` Yann E. MORIN
@ 2023-05-24  8:31 ` Luca Pesce via buildroot
  2023-05-24  8:31   ` [Buildroot] [PATCH v2 2/2] package/mosquitto: when building with libwebsockets support, select its external loop support option Luca Pesce via buildroot
  2023-05-24 20:04   ` [Buildroot] [PATCH v2 1/2] package/libwebsockets: added option to (re-)enable external poll loop support Yann E. MORIN
  1 sibling, 2 replies; 10+ messages in thread
From: Luca Pesce via buildroot @ 2023-05-24  8:31 UTC (permalink / raw)
  To: buildroot; +Cc: yann.morin.1998, Luca Pesce

Since version 3.2.0, libwebsockets does not compile its external loop support
code anymore. That code was put under LWS_WITH_EXTERNAL_POLL compile option,
which defaults to OFF.
Applications relying on that support need to turn that option on, so let's
add it to the package.

For example, when libwebsockets is enabled, mosquitto broker is built with
websocket support, but its code requires LWS_WITH_EXTERNAL_POLL to be on -
otherwise, it gives compile-time warning hinting to unusable websocket support:
https://github.com/eclipse/mosquitto/commit/1b24f625ea4ee77f3c4796ec2233d059f8c7977e

Signed-off-by: Luca Pesce <luca.pesce@vimar.com>
---
 package/libwebsockets/Config.in        | 12 ++++++++++++
 package/libwebsockets/libwebsockets.mk |  4 ++++
 2 files changed, 16 insertions(+)

diff --git a/package/libwebsockets/Config.in b/package/libwebsockets/Config.in
index d7b529c..05c1326 100644
--- a/package/libwebsockets/Config.in
+++ b/package/libwebsockets/Config.in
@@ -9,5 +9,17 @@ config BR2_PACKAGE_LIBWEBSOCKETS
 
 	  https://libwebsockets.org/
 
+if BR2_PACKAGE_LIBWEBSOCKETS
+
+config BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL
+	bool "enable external poll loop support"
+	default y  # legacy, was previously always enabled
+	help
+	  Enable external poll loop support code. This was
+	  unconditionally compiled in for library versions
+	  prior to 3.2.0.
+
+endif
+
 comment "libwebsockets needs a toolchain w/ dynamic library"
 	depends on BR2_STATIC_LIBS
diff --git a/package/libwebsockets/libwebsockets.mk b/package/libwebsockets/libwebsockets.mk
index fb0ee66..86756ca 100644
--- a/package/libwebsockets/libwebsockets.mk
+++ b/package/libwebsockets/libwebsockets.mk
@@ -94,4 +94,8 @@ 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
+
 $(eval $(cmake-package))
-- 
2.7.4

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v2 2/2] package/mosquitto: when building with libwebsockets support, select its external loop support option
  2023-05-24  8:31 ` [Buildroot] [PATCH v2 1/2] " Luca Pesce via buildroot
@ 2023-05-24  8:31   ` Luca Pesce via buildroot
  2023-05-24 20:05     ` Yann E. MORIN
  2023-05-24 20:04   ` [Buildroot] [PATCH v2 1/2] package/libwebsockets: added option to (re-)enable external poll loop support Yann E. MORIN
  1 sibling, 1 reply; 10+ messages in thread
From: Luca Pesce via buildroot @ 2023-05-24  8:31 UTC (permalink / raw)
  To: buildroot; +Cc: yann.morin.1998, Luca Pesce

When libwebsockets is enabled, mosquitto broker is built with
websocket support, but its code requires libwebsockets being built with
external loop option - otherwise, mosquitto gives a compile-time warning
hinting to unusable websocket support:
https://github.com/eclipse/mosquitto/commit/1b24f625ea4ee77f3c4796ec2233d059f8c7977e
To fix this, select the BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL option.

Signed-off-by: Luca Pesce <luca.pesce@vimar.com>
---
 package/mosquitto/Config.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/mosquitto/Config.in b/package/mosquitto/Config.in
index 6fa5f79..8bedf2a 100644
--- a/package/mosquitto/Config.in
+++ b/package/mosquitto/Config.in
@@ -25,6 +25,7 @@ config BR2_PACKAGE_MOSQUITTO_BROKER
 	depends on BR2_USE_MMU # fork()
 	depends on !BR2_STATIC_LIBS # include <dlfcn.h>
 	depends on BR2_PACKAGE_MOSQUITTO
+	select BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL if BR2_PACKAGE_LIBWEBSOCKETS
 	help
 	  Build and install the mosquitto broker onto target.
 
-- 
2.7.4

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [Buildroot] [PATCH v2 1/2] package/libwebsockets: added option to (re-)enable external poll loop support
  2023-05-24  8:31 ` [Buildroot] [PATCH v2 1/2] " Luca Pesce via buildroot
  2023-05-24  8:31   ` [Buildroot] [PATCH v2 2/2] package/mosquitto: when building with libwebsockets support, select its external loop support option Luca Pesce via buildroot
@ 2023-05-24 20:04   ` Yann E. MORIN
  1 sibling, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2023-05-24 20:04 UTC (permalink / raw)
  To: Luca Pesce; +Cc: buildroot

Luca, All,

On 2023-05-24 10:31 +0200, Luca Pesce spake thusly:
> Since version 3.2.0, libwebsockets does not compile its external loop support
> code anymore. That code was put under LWS_WITH_EXTERNAL_POLL compile option,
> which defaults to OFF.
> Applications relying on that support need to turn that option on, so let's
> add it to the package.
> 
> For example, when libwebsockets is enabled, mosquitto broker is built with
> websocket support, but its code requires LWS_WITH_EXTERNAL_POLL to be on -
> otherwise, it gives compile-time warning hinting to unusable websocket support:
> https://github.com/eclipse/mosquitto/commit/1b24f625ea4ee77f3c4796ec2233d059f8c7977e
> 
> Signed-off-by: Luca Pesce <luca.pesce@vimar.com>

I pondered whether this should go into master or next, and decided it
was not critical enough to go to master.

Indeed, extenal loop support has been disabled since we bumped to 3.2.0,
in commit dda92e2f58d4 (package/libwebsockets: bump version to 3.2.0),
back in October 2019.

So clearly, this was not that critical, as you're the first to notice in
such a long time.

Applied to next, thanks.

Regards,
Yann E. MORIN.

> ---
>  package/libwebsockets/Config.in        | 12 ++++++++++++
>  package/libwebsockets/libwebsockets.mk |  4 ++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/package/libwebsockets/Config.in b/package/libwebsockets/Config.in
> index d7b529c..05c1326 100644
> --- a/package/libwebsockets/Config.in
> +++ b/package/libwebsockets/Config.in
> @@ -9,5 +9,17 @@ config BR2_PACKAGE_LIBWEBSOCKETS
>  
>  	  https://libwebsockets.org/
>  
> +if BR2_PACKAGE_LIBWEBSOCKETS
> +
> +config BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL
> +	bool "enable external poll loop support"
> +	default y  # legacy, was previously always enabled
> +	help
> +	  Enable external poll loop support code. This was
> +	  unconditionally compiled in for library versions
> +	  prior to 3.2.0.
> +
> +endif
> +
>  comment "libwebsockets needs a toolchain w/ dynamic library"
>  	depends on BR2_STATIC_LIBS
> diff --git a/package/libwebsockets/libwebsockets.mk b/package/libwebsockets/libwebsockets.mk
> index fb0ee66..86756ca 100644
> --- a/package/libwebsockets/libwebsockets.mk
> +++ b/package/libwebsockets/libwebsockets.mk
> @@ -94,4 +94,8 @@ 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
> +
>  $(eval $(cmake-package))
> -- 
> 2.7.4
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] package/mosquitto: when building with libwebsockets support, select its external loop support option
  2023-05-24  8:31   ` [Buildroot] [PATCH v2 2/2] package/mosquitto: when building with libwebsockets support, select its external loop support option Luca Pesce via buildroot
@ 2023-05-24 20:05     ` Yann E. MORIN
  0 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2023-05-24 20:05 UTC (permalink / raw)
  To: Luca Pesce; +Cc: buildroot

Luca, All,

On 2023-05-24 10:31 +0200, Luca Pesce spake thusly:
> When libwebsockets is enabled, mosquitto broker is built with
> websocket support, but its code requires libwebsockets being built with
> external loop option - otherwise, mosquitto gives a compile-time warning
> hinting to unusable websocket support:
> https://github.com/eclipse/mosquitto/commit/1b24f625ea4ee77f3c4796ec2233d059f8c7977e
> To fix this, select the BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL option.
> 
> Signed-off-by: Luca Pesce <luca.pesce@vimar.com>

As I applied the libwebsockets option to next, so did I for this patch.

Applied to next, thanks.

Regards,
Yann E. MORIN.

> ---
>  package/mosquitto/Config.in | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/mosquitto/Config.in b/package/mosquitto/Config.in
> index 6fa5f79..8bedf2a 100644
> --- a/package/mosquitto/Config.in
> +++ b/package/mosquitto/Config.in
> @@ -25,6 +25,7 @@ config BR2_PACKAGE_MOSQUITTO_BROKER
>  	depends on BR2_USE_MMU # fork()
>  	depends on !BR2_STATIC_LIBS # include <dlfcn.h>
>  	depends on BR2_PACKAGE_MOSQUITTO
> +	select BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL if BR2_PACKAGE_LIBWEBSOCKETS
>  	help
>  	  Build and install the mosquitto broker onto target.
>  
> -- 
> 2.7.4
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-05-24 20:05 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-19 14:45 [Buildroot] [PATCH 1/1] package/libwebsockets: added option to (re-)enable external poll loop support Luca Pesce via buildroot
2023-05-21 17:08 ` Yann E. MORIN
2023-05-22  6:34   ` [Buildroot] R: " Pesce Luca via buildroot
2023-05-23 16:27     ` Yann E. MORIN
2023-05-24  6:00       ` [Buildroot] R: " Pesce Luca via buildroot
2023-05-24  6:10         ` Yann E. MORIN
2023-05-24  8:31 ` [Buildroot] [PATCH v2 1/2] " Luca Pesce via buildroot
2023-05-24  8:31   ` [Buildroot] [PATCH v2 2/2] package/mosquitto: when building with libwebsockets support, select its external loop support option Luca Pesce via buildroot
2023-05-24 20:05     ` Yann E. MORIN
2023-05-24 20:04   ` [Buildroot] [PATCH v2 1/2] package/libwebsockets: added option to (re-)enable external poll loop support Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.