Message ID | a18cb02f314d0b8d69c7de564970028d2c671d71.1658085348.git.baruch@tkos.co.il |
---|---|
State | Superseded |
Headers | show |
Series | [v3] package/uacme: requires TLS support in libcurl | expand |
Baruch, Nicola, All, On 2022-07-17 22:15 +0300, Baruch Siach via buildroot spake thusly: > uacme configure script fails when libcurl does not support TLS. This > means that BR2_PACKAGE_LIBCURL_TLS_NONE is incompatible with uacme. But > there is no way to change the choice to something other than > BR2_PACKAGE_LIBCURL_TLS_NONE. So instead make uacme depend on libcurl > and !BR2_PACKAGE_LIBCURL_TLS_NONE. > > As a result we can no longer select BR2_PACKAGE_OPENSSL since it causes > recursive dependency. Use 'depend on' instead, and add a comment to > explain this uncommon choice. > > Fixes: > http://autobuild.buildroot.net/results/4e16f1d958ac3d30e26e7f17bdffc47834b0e2bd/ > http://autobuild.buildroot.net/results/4e16f1d958ac3d30e26e7f17bdffc47834b0e2bd/ > http://autobuild.buildroot.net/results/25280409b32282b4dd40b1e88127051439380f3d/ > > Cc: Nicola Di Lieto <nicola.dilieto@gmail.com> > Signed-off-by: Baruch Siach <baruch@tkos.co.il> OK, I was about to apply that one, and I got curious about the circular dependency you mention. I did not investigate, but I could pretty easily see the problem. So II wondered if we could keep the current situation, and just ensure that libcrul was never goign to be built without SSL/TSL. So I did a hack: https://patchwork.ozlabs.org/project/buildroot/patch/20220717193719.2429999-1-yann.morin.1998@free.fr/ Not sure which is better, but we do certainly already have some "force this" options, like BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL, so this would not be a first. Thoughts? Regards, Yann E. MORIN. > --- > v3: > Move comments up to fix suboption indentation (Yann) > > Add missing MMU comment dependency (Yann) > > v2: > Add dependency on crypto back end for uacme itself (Nicola Di Lieto) > --- > package/uacme/Config.in | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/package/uacme/Config.in b/package/uacme/Config.in > index 58b7c534e73d..e27d41160716 100644 > --- a/package/uacme/Config.in > +++ b/package/uacme/Config.in > @@ -1,8 +1,17 @@ > +comment "uacme needs one of openssl, gnutls or mbedtls" > + depends on BR2_USE_MMU > + depends on !BR2_PACKAGE_OPENSSL && !BR2_PACKAGE_GNUTLS && !BR2_PACKAGE_MBEDTLS > + > +comment "uacme needs libcurl with TLS support" > + depends on BR2_USE_MMU > + depends on !BR2_PACKAGE_LIBCURL || BR2_PACKAGE_LIBCURL_TLS_NONE > + > config BR2_PACKAGE_UACME > bool "uacme" > depends on BR2_USE_MMU # fork() > - select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_GNUTLS || BR2_PACKAGE_MBEDTLS) > - select BR2_PACKAGE_LIBCURL > + # We can not use select here as it causes recursive dependency > + depends on BR2_PACKAGE_OPENSSL || BR2_PACKAGE_GNUTLS || BR2_PACKAGE_MBEDTLS > + depends on BR2_PACKAGE_LIBCURL && !BR2_PACKAGE_LIBCURL_TLS_NONE > help > uacme is a client for the ACMEv2 protocol described in > RFC8555, written in plain C with minimal dependencies > -- > 2.35.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
diff --git a/package/uacme/Config.in b/package/uacme/Config.in index 58b7c534e73d..e27d41160716 100644 --- a/package/uacme/Config.in +++ b/package/uacme/Config.in @@ -1,8 +1,17 @@ +comment "uacme needs one of openssl, gnutls or mbedtls" + depends on BR2_USE_MMU + depends on !BR2_PACKAGE_OPENSSL && !BR2_PACKAGE_GNUTLS && !BR2_PACKAGE_MBEDTLS + +comment "uacme needs libcurl with TLS support" + depends on BR2_USE_MMU + depends on !BR2_PACKAGE_LIBCURL || BR2_PACKAGE_LIBCURL_TLS_NONE + config BR2_PACKAGE_UACME bool "uacme" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_GNUTLS || BR2_PACKAGE_MBEDTLS) - select BR2_PACKAGE_LIBCURL + # We can not use select here as it causes recursive dependency + depends on BR2_PACKAGE_OPENSSL || BR2_PACKAGE_GNUTLS || BR2_PACKAGE_MBEDTLS + depends on BR2_PACKAGE_LIBCURL && !BR2_PACKAGE_LIBCURL_TLS_NONE help uacme is a client for the ACMEv2 protocol described in RFC8555, written in plain C with minimal dependencies
uacme configure script fails when libcurl does not support TLS. This means that BR2_PACKAGE_LIBCURL_TLS_NONE is incompatible with uacme. But there is no way to change the choice to something other than BR2_PACKAGE_LIBCURL_TLS_NONE. So instead make uacme depend on libcurl and !BR2_PACKAGE_LIBCURL_TLS_NONE. As a result we can no longer select BR2_PACKAGE_OPENSSL since it causes recursive dependency. Use 'depend on' instead, and add a comment to explain this uncommon choice. Fixes: http://autobuild.buildroot.net/results/4e16f1d958ac3d30e26e7f17bdffc47834b0e2bd/ http://autobuild.buildroot.net/results/4e16f1d958ac3d30e26e7f17bdffc47834b0e2bd/ http://autobuild.buildroot.net/results/25280409b32282b4dd40b1e88127051439380f3d/ Cc: Nicola Di Lieto <nicola.dilieto@gmail.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> --- v3: Move comments up to fix suboption indentation (Yann) Add missing MMU comment dependency (Yann) v2: Add dependency on crypto back end for uacme itself (Nicola Di Lieto) --- package/uacme/Config.in | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)