aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2021-06-03 11:15:26 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2021-06-25 10:53:46 +0200
commit5761251138cb69c310e9df7dfc82c4c6fd2444e4 (patch)
treed1783c0d2a6b85c1ef223783dea240c1d9676e23 /configure
parent4c1f23cfb84c386a8f4f5433f0fd98e0c85d057b (diff)
configure, meson: convert crypto detection to meson
Reviewed-by: Richard Henderson <richard.henderson@liaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure188
1 files changed, 10 insertions, 178 deletions
diff --git a/configure b/configure
index 00e7dd749a..897e968e02 100755
--- a/configure
+++ b/configure
@@ -404,10 +404,9 @@ seccomp="auto"
glusterfs="auto"
gtk="auto"
tls_priority="NORMAL"
-gnutls="$default_feature"
-nettle="$default_feature"
-gcrypt="$default_feature"
-qemu_private_xts="yes"
+gnutls="auto"
+nettle="auto"
+gcrypt="auto"
auth_pam="$default_feature"
vte="$default_feature"
virglrenderer="$default_feature"
@@ -1372,17 +1371,17 @@ for opt do
;;
--tls-priority=*) tls_priority="$optarg"
;;
- --disable-gnutls) gnutls="no"
+ --disable-gnutls) gnutls="disabled"
;;
- --enable-gnutls) gnutls="yes"
+ --enable-gnutls) gnutls="enabled"
;;
- --disable-nettle) nettle="no"
+ --disable-nettle) nettle="disabled"
;;
- --enable-nettle) nettle="yes"
+ --enable-nettle) nettle="enabled"
;;
- --disable-gcrypt) gcrypt="no"
+ --disable-gcrypt) gcrypt="disabled"
;;
- --enable-gcrypt) gcrypt="yes"
+ --enable-gcrypt) gcrypt="enabled"
;;
--disable-auth-pam) auth_pam="no"
;;
@@ -2801,156 +2800,6 @@ EOF
fi
##########################################
-# GNUTLS probe
-
-if test "$gnutls" != "no"; then
- pass="no"
- if $pkg_config --exists "gnutls >= 3.5.18"; then
- gnutls_cflags=$($pkg_config --cflags gnutls)
- gnutls_libs=$($pkg_config --libs gnutls)
- # Packaging for the static libraries is not always correct.
- # At least ubuntu 18.04 ships only shared libraries.
- write_c_skeleton
- if compile_prog "" "$gnutls_libs" ; then
- pass="yes"
- fi
- fi
- if test "$pass" = "no" && test "$gnutls" = "yes"; then
- feature_not_found "gnutls" "Install gnutls devel >= 3.1.18"
- else
- gnutls="$pass"
- fi
-fi
-
-
-# If user didn't give a --disable/enable-gcrypt flag,
-# then mark as disabled if user requested nettle
-# explicitly
-if test -z "$gcrypt"
-then
- if test "$nettle" = "yes"
- then
- gcrypt="no"
- fi
-fi
-
-# If user didn't give a --disable/enable-nettle flag,
-# then mark as disabled if user requested gcrypt
-# explicitly
-if test -z "$nettle"
-then
- if test "$gcrypt" = "yes"
- then
- nettle="no"
- fi
-fi
-
-has_libgcrypt() {
- if ! has "libgcrypt-config"
- then
- return 1
- fi
-
- if test -n "$cross_prefix"
- then
- host=$(libgcrypt-config --host)
- if test "$host-" != $cross_prefix
- then
- return 1
- fi
- fi
-
- maj=`libgcrypt-config --version | awk -F . '{print $1}'`
- min=`libgcrypt-config --version | awk -F . '{print $2}'`
-
- if test $maj != 1 || test $min -lt 8
- then
- return 1
- fi
-
- return 0
-}
-
-
-if test "$nettle" != "no"; then
- pass="no"
- if $pkg_config --exists "nettle >= 3.4"; then
- nettle_cflags=$($pkg_config --cflags nettle)
- nettle_libs=$($pkg_config --libs nettle)
- # Link test to make sure the given libraries work (e.g for static).
- write_c_skeleton
- if compile_prog "" "$nettle_libs" ; then
- if test -z "$gcrypt"; then
- gcrypt="no"
- fi
- pass="yes"
- fi
- fi
- if test "$pass" = "yes"
- then
- cat > $TMPC << EOF
-#include <nettle/xts.h>
-int main(void) {
- return 0;
-}
-EOF
- if compile_prog "$nettle_cflags" "$nettle_libs" ; then
- qemu_private_xts=no
- fi
- fi
- if test "$pass" = "no" && test "$nettle" = "yes"; then
- feature_not_found "nettle" "Install nettle devel >= 2.7.1"
- else
- nettle="$pass"
- fi
-fi
-
-if test "$gcrypt" != "no"; then
- pass="no"
- if has_libgcrypt; then
- gcrypt_cflags=$(libgcrypt-config --cflags)
- gcrypt_libs=$(libgcrypt-config --libs)
- # Debian has removed -lgpg-error from libgcrypt-config
- # as it "spreads unnecessary dependencies" which in
- # turn breaks static builds...
- if test "$static" = "yes"
- then
- gcrypt_libs="$gcrypt_libs -lgpg-error"
- fi
-
- # Link test to make sure the given libraries work (e.g for static).
- write_c_skeleton
- if compile_prog "" "$gcrypt_libs" ; then
- pass="yes"
- fi
- fi
- if test "$pass" = "yes"; then
- gcrypt="yes"
- cat > $TMPC << EOF
-#include <gcrypt.h>
-int main(void) {
- gcry_cipher_hd_t handle;
- gcry_cipher_open(&handle, GCRY_CIPHER_AES, GCRY_CIPHER_MODE_XTS, 0);
- return 0;
-}
-EOF
- if compile_prog "$gcrypt_cflags" "$gcrypt_libs" ; then
- qemu_private_xts=no
- fi
- elif test "$gcrypt" = "yes"; then
- feature_not_found "gcrypt" "Install gcrypt devel >= 1.5.0"
- else
- gcrypt="no"
- fi
-fi
-
-
-if test "$gcrypt" = "yes" && test "$nettle" = "yes"
-then
- error_exit "Only one of gcrypt & nettle can be enabled"
-fi
-
-##########################################
# libtasn1 - only for the TLS creds/session test suite
tasn1=yes
@@ -5705,24 +5554,6 @@ if test "$gdbus_codegen" != "" ; then
echo "GDBUS_CODEGEN=$gdbus_codegen" >> $config_host_mak
fi
echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
-if test "$gnutls" = "yes" ; then
- echo "CONFIG_GNUTLS=y" >> $config_host_mak
- echo "GNUTLS_CFLAGS=$gnutls_cflags" >> $config_host_mak
- echo "GNUTLS_LIBS=$gnutls_libs" >> $config_host_mak
-fi
-if test "$gcrypt" = "yes" ; then
- echo "CONFIG_GCRYPT=y" >> $config_host_mak
- echo "GCRYPT_CFLAGS=$gcrypt_cflags" >> $config_host_mak
- echo "GCRYPT_LIBS=$gcrypt_libs" >> $config_host_mak
-fi
-if test "$nettle" = "yes" ; then
- echo "CONFIG_NETTLE=y" >> $config_host_mak
- echo "NETTLE_CFLAGS=$nettle_cflags" >> $config_host_mak
- echo "NETTLE_LIBS=$nettle_libs" >> $config_host_mak
-fi
-if test "$qemu_private_xts" = "yes" ; then
- echo "CONFIG_QEMU_PRIVATE_XTS=y" >> $config_host_mak
-fi
if test "$tasn1" = "yes" ; then
echo "CONFIG_TASN1=y" >> $config_host_mak
fi
@@ -6439,6 +6270,7 @@ if test "$skip_meson" = no; then
-Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
-Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
-Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy -Dlzfse=$lzfse \
+ -Dgnutls=$gnutls -Dnettle=$nettle -Dgcrypt=$gcrypt \
-Dzstd=$zstd -Dseccomp=$seccomp -Dvirtfs=$virtfs -Dcap_ng=$cap_ng \
-Dattr=$attr -Ddefault_devices=$default_devices \
-Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \