[PATCH] meson: fix logic for gnutls check

Alyssa Ross posted 1 patch 2 years, 9 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210806144947.321647-1-hi@alyssa.is
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] meson: fix logic for gnutls check
Posted by Alyssa Ross 2 years, 9 months ago
The logic before was

	if not get_option('gnutls').auto() or have_system

Which is equivalent to

	if get_option('gnutls').enabled() or get_option('gnutls').disabled() or have_system

This means that the check for gnutls is performed even if gnutls is
disabled, which means that the build system will insist on having
libtasn1 if gnutls is found, even if gnutls support is disabled.

When gnutls is disabled, the check for gnutls shouldn't be performed,
to ensure that further build system logic (like the check for
libtasn1) doesn't make decisions based on the presence of gnutls,
rather than the gnutls option.

After making this change, I can successfully ./configure --disable-gnutls
on my system with gnutls installed, but not libtasn1.

Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index af9bbb83db..b3e7ec0e92 100644
--- a/meson.build
+++ b/meson.build
@@ -824,7 +824,7 @@ endif
 
 gnutls = not_found
 gnutls_crypto = not_found
-if not get_option('gnutls').auto() or have_system
+if get_option('gnutls').enabled() or (get_option('gnutls').auto() and have_system)
   # For general TLS support our min gnutls matches
   # that implied by our platform support matrix
   #
-- 
2.32.0


Re: [PATCH] meson: fix logic for gnutls check
Posted by Paolo Bonzini 2 years, 9 months ago
On 06/08/21 16:49, Alyssa Ross wrote:
> The logic before was
> 
> 	if not get_option('gnutls').auto() or have_system
> 
> Which is equivalent to
> 
> 	if get_option('gnutls').enabled() or get_option('gnutls').disabled() or have_system
> 
> This means that the check for gnutls is performed even if gnutls is
> disabled, which means that the build system will insist on having
> libtasn1 if gnutls is found, even if gnutls support is disabled.
> 
> When gnutls is disabled, the check for gnutls shouldn't be performed,
> to ensure that further build system logic (like the check for
> libtasn1) doesn't make decisions based on the presence of gnutls,
> rather than the gnutls option.
> 
> After making this change, I can successfully ./configure --disable-gnutls
> on my system with gnutls installed, but not libtasn1.
> 
> Signed-off-by: Alyssa Ross <hi@alyssa.is>
> ---
>   meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index af9bbb83db..b3e7ec0e92 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -824,7 +824,7 @@ endif
>   
>   gnutls = not_found
>   gnutls_crypto = not_found
> -if not get_option('gnutls').auto() or have_system
> +if get_option('gnutls').enabled() or (get_option('gnutls').auto() and have_system)
>     # For general TLS support our min gnutls matches
>     # that implied by our platform support matrix
>     #
> 

Acked-by: Paolo Bonzini <pbonzini@redhat.com>

Right now I am not planning to send another pull request for -rc3, but 
the patch certainly has to be included.

Thanks,

Paolo