Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
block/meson.build | 2 +-
configure | 29 ++++-------------------------
contrib/vhost-user-scsi/meson.build | 2 +-
meson.build | 10 ++++++----
meson_options.txt | 2 ++
5 files changed, 14 insertions(+), 31 deletions(-)
diff --git a/block/meson.build b/block/meson.build
index b02cb14aad..134034abb4 100644
--- a/block/meson.build
+++ b/block/meson.build
@@ -59,7 +59,7 @@ block_ss.add(when: 'CONFIG_QED', if_true: files(
block_ss.add(when: [libxml2, 'CONFIG_PARALLELS'], if_true: files('parallels.c'))
block_ss.add(when: 'CONFIG_WIN32', if_true: files('file-win32.c', 'win32-aio.c'))
block_ss.add(when: 'CONFIG_POSIX', if_true: [files('file-posix.c'), coref, iokit])
-block_ss.add(when: 'CONFIG_LIBISCSI', if_true: files('iscsi-opts.c'))
+block_ss.add(when: libiscsi, if_true: files('iscsi-opts.c'))
block_ss.add(when: 'CONFIG_LINUX', if_true: files('nvme.c'))
block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
block_ss.add(when: 'CONFIG_SHEEPDOG', if_true: files('sheepdog.c'))
diff --git a/configure b/configure
index 082ac3bf35..e22c56e8f6 100755
--- a/configure
+++ b/configure
@@ -406,7 +406,7 @@ guest_agent_msi="$default_feature"
vss_win32_sdk="$default_feature"
win_sdk="no"
want_tools="$default_feature"
-libiscsi="$default_feature"
+libiscsi="auto"
libnfs="$default_feature"
coroutine=""
coroutine_pool="$default_feature"
@@ -1139,9 +1139,9 @@ for opt do
;;
--enable-spice) spice="yes"
;;
- --disable-libiscsi) libiscsi="no"
+ --disable-libiscsi) libiscsi="disabled"
;;
- --enable-libiscsi) libiscsi="yes"
+ --enable-libiscsi) libiscsi="enabled"
;;
--disable-libnfs) libnfs="no"
;;
@@ -4315,21 +4315,6 @@ if compile_prog "" "" ; then
bswap_h=yes
fi
-##########################################
-# Do we have libiscsi >= 1.9.0
-if test "$libiscsi" != "no" ; then
- if $pkg_config --atleast-version=1.9.0 libiscsi; then
- libiscsi="yes"
- libiscsi_cflags=$($pkg_config --cflags libiscsi)
- libiscsi_libs=$($pkg_config --libs libiscsi)
- else
- if test "$libiscsi" = "yes" ; then
- feature_not_found "libiscsi" "Install libiscsi >= 1.9.0"
- fi
- libiscsi="no"
- fi
-fi
-
##########################################
# Do we need librt
# uClibc provides 2 versions of clock_gettime(), one with realtime
@@ -6231,12 +6216,6 @@ if test "$zstd" = "yes" ; then
echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak
fi
-if test "$libiscsi" = "yes" ; then
- echo "CONFIG_LIBISCSI=y" >> $config_host_mak
- echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak
- echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak
-fi
-
if test "$libnfs" = "yes" ; then
echo "CONFIG_LIBNFS=y" >> $config_host_mak
echo "LIBNFS_LIBS=$libnfs_libs" >> $config_host_mak
@@ -6802,7 +6781,7 @@ NINJA=$ninja $meson setup \
-Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
-Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f -Dvirtiofsd=$virtiofsd \
-Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
- -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 \
+ -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
-Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
-Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
-Dvhost_user_blk_server=$vhost_user_blk_server \
diff --git a/contrib/vhost-user-scsi/meson.build b/contrib/vhost-user-scsi/meson.build
index 044c50bf43..cc893f6f20 100644
--- a/contrib/vhost-user-scsi/meson.build
+++ b/contrib/vhost-user-scsi/meson.build
@@ -1,4 +1,4 @@
-if 'CONFIG_LIBISCSI' in config_host
+if libiscsi.found()
executable('vhost-user-scsi', files('vhost-user-scsi.c'),
dependencies: [qemuutil, libiscsi, vhost_user],
build_by_default: targetos == 'linux',
diff --git a/meson.build b/meson.build
index 9ba8eecf37..3f53a7f1b2 100644
--- a/meson.build
+++ b/meson.build
@@ -372,9 +372,10 @@ if 'CONFIG_PLUGIN' in config_host
libdl = cc.find_library('dl', required: true)
endif
libiscsi = not_found
-if 'CONFIG_LIBISCSI' in config_host
- libiscsi = declare_dependency(compile_args: config_host['LIBISCSI_CFLAGS'].split(),
- link_args: config_host['LIBISCSI_LIBS'].split())
+if not get_option('libiscsi').auto() or have_block
+ libiscsi = dependency('libiscsi', version: '>=1.9.0',
+ required: get_option('libiscsi'),
+ method: 'pkg-config', static: enable_static)
endif
zstd = not_found
if 'CONFIG_ZSTD' in config_host
@@ -926,6 +927,7 @@ config_host_data.set('CONFIG_GLUSTERFS_FALLOCATE', glusterfs.version().version_c
config_host_data.set('CONFIG_GLUSTERFS_ZEROFILL', glusterfs.version().version_compare('>=6'))
config_host_data.set('CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT', glusterfs_ftruncate_has_stat)
config_host_data.set('CONFIG_GLUSTERFS_IOCB_HAS_STAT', glusterfs_iocb_has_stat)
+config_host_data.set('CONFIG_LIBISCSI', libiscsi.found())
config_host_data.set('CONFIG_SDL', sdl.found())
config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER', have_vhost_user_blk_server)
@@ -2283,7 +2285,7 @@ summary_info += {'libusb': config_host.has_key('CONFIG_USB_LIBUSB')}
summary_info += {'usb net redir': config_host.has_key('CONFIG_USB_REDIR')}
summary_info += {'OpenGL support': config_host.has_key('CONFIG_OPENGL')}
summary_info += {'OpenGL dmabufs': config_host.has_key('CONFIG_OPENGL_DMABUF')}
-summary_info += {'libiscsi support': config_host.has_key('CONFIG_LIBISCSI')}
+summary_info += {'libiscsi support': libiscsi.found()}
summary_info += {'libnfs support': config_host.has_key('CONFIG_LIBNFS')}
summary_info += {'build guest agent': config_host.has_key('CONFIG_GUEST_AGENT')}
if targetos == 'windows'
diff --git a/meson_options.txt b/meson_options.txt
index fd16f3b399..b562d4f1a6 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -50,6 +50,8 @@ option('curl', type : 'feature', value : 'auto',
description: 'CURL block device driver')
option('glusterfs', type : 'feature', value : 'auto',
description: 'Glusterfs block device driver')
+option('libiscsi', type : 'feature', value : 'auto',
+ description: 'libiscsi userspace initiator')
option('mpath', type : 'feature', value : 'auto',
description: 'Multipath persistent reservation passthrough')
option('iconv', type : 'feature', value : 'auto',
--
2.29.2
On Thu, Dec 17, 2020 at 1:40 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
> block/meson.build | 2 +-
> configure | 29 ++++-------------------------
> contrib/vhost-user-scsi/meson.build | 2 +-
> meson.build | 10 ++++++----
> meson_options.txt | 2 ++
> 5 files changed, 14 insertions(+), 31 deletions(-)
>
> diff --git a/block/meson.build b/block/meson.build
> index b02cb14aad..134034abb4 100644
> --- a/block/meson.build
> +++ b/block/meson.build
> @@ -59,7 +59,7 @@ block_ss.add(when: 'CONFIG_QED', if_true: files(
> block_ss.add(when: [libxml2, 'CONFIG_PARALLELS'], if_true:
> files('parallels.c'))
> block_ss.add(when: 'CONFIG_WIN32', if_true: files('file-win32.c',
> 'win32-aio.c'))
> block_ss.add(when: 'CONFIG_POSIX', if_true: [files('file-posix.c'),
> coref, iokit])
> -block_ss.add(when: 'CONFIG_LIBISCSI', if_true: files('iscsi-opts.c'))
> +block_ss.add(when: libiscsi, if_true: files('iscsi-opts.c'))
> block_ss.add(when: 'CONFIG_LINUX', if_true: files('nvme.c'))
> block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
> block_ss.add(when: 'CONFIG_SHEEPDOG', if_true: files('sheepdog.c'))
> diff --git a/configure b/configure
> index 082ac3bf35..e22c56e8f6 100755
> --- a/configure
> +++ b/configure
> @@ -406,7 +406,7 @@ guest_agent_msi="$default_feature"
> vss_win32_sdk="$default_feature"
> win_sdk="no"
> want_tools="$default_feature"
> -libiscsi="$default_feature"
> +libiscsi="auto"
> libnfs="$default_feature"
> coroutine=""
> coroutine_pool="$default_feature"
> @@ -1139,9 +1139,9 @@ for opt do
> ;;
> --enable-spice) spice="yes"
> ;;
> - --disable-libiscsi) libiscsi="no"
> + --disable-libiscsi) libiscsi="disabled"
> ;;
> - --enable-libiscsi) libiscsi="yes"
> + --enable-libiscsi) libiscsi="enabled"
> ;;
> --disable-libnfs) libnfs="no"
> ;;
> @@ -4315,21 +4315,6 @@ if compile_prog "" "" ; then
> bswap_h=yes
> fi
>
> -##########################################
> -# Do we have libiscsi >= 1.9.0
> -if test "$libiscsi" != "no" ; then
> - if $pkg_config --atleast-version=1.9.0 libiscsi; then
> - libiscsi="yes"
> - libiscsi_cflags=$($pkg_config --cflags libiscsi)
> - libiscsi_libs=$($pkg_config --libs libiscsi)
> - else
> - if test "$libiscsi" = "yes" ; then
> - feature_not_found "libiscsi" "Install libiscsi >= 1.9.0"
> - fi
> - libiscsi="no"
> - fi
> -fi
> -
> ##########################################
> # Do we need librt
> # uClibc provides 2 versions of clock_gettime(), one with realtime
> @@ -6231,12 +6216,6 @@ if test "$zstd" = "yes" ; then
> echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak
> fi
>
> -if test "$libiscsi" = "yes" ; then
> - echo "CONFIG_LIBISCSI=y" >> $config_host_mak
> - echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak
> - echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak
> -fi
> -
> if test "$libnfs" = "yes" ; then
> echo "CONFIG_LIBNFS=y" >> $config_host_mak
> echo "LIBNFS_LIBS=$libnfs_libs" >> $config_host_mak
> @@ -6802,7 +6781,7 @@ NINJA=$ninja $meson setup \
> -Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg
> -Dvnc_png=$vnc_png \
> -Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f
> -Dvirtiofsd=$virtiofsd \
> -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
> - -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 \
> + -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2
> -Dlibiscsi=$libiscsi \
> -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
> -Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
> -Dvhost_user_blk_server=$vhost_user_blk_server \
> diff --git a/contrib/vhost-user-scsi/meson.build
> b/contrib/vhost-user-scsi/meson.build
> index 044c50bf43..cc893f6f20 100644
> --- a/contrib/vhost-user-scsi/meson.build
> +++ b/contrib/vhost-user-scsi/meson.build
> @@ -1,4 +1,4 @@
> -if 'CONFIG_LIBISCSI' in config_host
> +if libiscsi.found()
> executable('vhost-user-scsi', files('vhost-user-scsi.c'),
> dependencies: [qemuutil, libiscsi, vhost_user],
> build_by_default: targetos == 'linux',
> diff --git a/meson.build b/meson.build
> index 9ba8eecf37..3f53a7f1b2 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -372,9 +372,10 @@ if 'CONFIG_PLUGIN' in config_host
> libdl = cc.find_library('dl', required: true)
> endif
> libiscsi = not_found
> -if 'CONFIG_LIBISCSI' in config_host
> - libiscsi = declare_dependency(compile_args:
> config_host['LIBISCSI_CFLAGS'].split(),
> - link_args:
> config_host['LIBISCSI_LIBS'].split())
> +if not get_option('libiscsi').auto() or have_block
> + libiscsi = dependency('libiscsi', version: '>=1.9.0',
> + required: get_option('libiscsi'),
> + method: 'pkg-config', static: enable_static)
> endif
> zstd = not_found
> if 'CONFIG_ZSTD' in config_host
> @@ -926,6 +927,7 @@ config_host_data.set('CONFIG_GLUSTERFS_FALLOCATE',
> glusterfs.version().version_c
> config_host_data.set('CONFIG_GLUSTERFS_ZEROFILL',
> glusterfs.version().version_compare('>=6'))
> config_host_data.set('CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT',
> glusterfs_ftruncate_has_stat)
> config_host_data.set('CONFIG_GLUSTERFS_IOCB_HAS_STAT',
> glusterfs_iocb_has_stat)
> +config_host_data.set('CONFIG_LIBISCSI', libiscsi.found())
> config_host_data.set('CONFIG_SDL', sdl.found())
> config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
> config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER',
> have_vhost_user_blk_server)
> @@ -2283,7 +2285,7 @@ summary_info += {'libusb':
> config_host.has_key('CONFIG_USB_LIBUSB')}
> summary_info += {'usb net redir':
> config_host.has_key('CONFIG_USB_REDIR')}
> summary_info += {'OpenGL support':
> config_host.has_key('CONFIG_OPENGL')}
> summary_info += {'OpenGL dmabufs':
> config_host.has_key('CONFIG_OPENGL_DMABUF')}
> -summary_info += {'libiscsi support':
> config_host.has_key('CONFIG_LIBISCSI')}
> +summary_info += {'libiscsi support': libiscsi.found()}
> summary_info += {'libnfs support':
> config_host.has_key('CONFIG_LIBNFS')}
> summary_info += {'build guest agent':
> config_host.has_key('CONFIG_GUEST_AGENT')}
> if targetos == 'windows'
> diff --git a/meson_options.txt b/meson_options.txt
> index fd16f3b399..b562d4f1a6 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -50,6 +50,8 @@ option('curl', type : 'feature', value : 'auto',
> description: 'CURL block device driver')
> option('glusterfs', type : 'feature', value : 'auto',
> description: 'Glusterfs block device driver')
> +option('libiscsi', type : 'feature', value : 'auto',
> + description: 'libiscsi userspace initiator')
> option('mpath', type : 'feature', value : 'auto',
> description: 'Multipath persistent reservation passthrough')
> option('iconv', type : 'feature', value : 'auto',
> --
> 2.29.2
>
>
>
© 2016 - 2026 Red Hat, Inc.