Re: [Buildroot] [PATCH] package/qt5: relax openssl constraint to allow compatible implementations

Thomas Petazzoni via buildroot <[email protected]>
Newsgroups net.busybox.buildroot
Message-ID <aogba9rQ9QphwNrW@windsurf>
Hello,

On Fri, Aug 21, 2026 at 10:58:59AM +0200, Alexis Lothoré wrote:
> Qt5 can be built with or without openssl support. Following some build
> failures, commit a94d39d693d8 ("package/qt5: fix build failure due to
> libressl use") enforced libopenssl as the only valid implementation for
> Qt5 openssl support.
> 
> While this solution is fine to filter between the two openssl variants
> officially supported by Buildroot, it prevents users bringing their own
> OpenSSL implementations (through the "provides" mechanism) from building
> Qt5, even if the custom implementation matches the OpenSSL API.
> 
> Allow compatible external implementations to be provided for Qt5 openssl
> support. Relax the constraint by partially reverting a94d39d693d8 and
> checking that the selected openssl implementation isn't libressl. It
> then becomes up to users to ensure that the implementation they are
> providing is fully compatible with the libopenssl one. Some qt5
> sub-packages enforce BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL, they don't
> need update as it does not really strictly select libopenssl, it rather
> prevents libressl, so it still allows custom providers.
> 
> Signed-off-by: Alexis Lothoré <[email protected]>

Thanks for the good commit message.

> -QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_LIBOPENSSL),-openssl,-no-openssl)
> -QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_LIBOPENSSL),openssl)
> +# Qt5 officially only supports OpenSSL. Users can also provide their own
> +# OpenSSL variant through the "provides" mechanism, but it is then up to

The mechanism is not really "provides", but rather "virtual package"
(probably to be fixed in your commit message as well)

> +# them to ensure that the provided API is exactly compatible with the
> +# libopenssl one
> +QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),$(if $(BR2_PACKAGE_LIBRESSL),-no-openssl,-openssl),-no-openssl)
> +QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_OPENSSL),$(if $(BR2_PACKAGE_LIBRESSL),,openssl))

I don't really like how it's written because my brain has to put all
CPUs at max frequency to process how this works.

What about:

# Qt5 officially only supports OpenSSL, and doesn't build/work with
# LibreSSL. We want to allow any OpenSSL provider (which can be
# libopenssl or another provider), except libressl.
ifeq ($(BR2_PACKAGE_OPENSSL):$(BR2_PACKAGE_LIBRESSL),y:)
QT5BASE_CONFIGURE_OPTS += -openssl
QT5BASE_DEPENDENCIES += openssl
else
QT5BASE_CONFIGURE_OPTS += -no-openssl
endif

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.