Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> --- configure.ac | 16 ------------ m4/virt-storage-zfs.m4 | 56 ------------------------------------------ meson.build | 22 +++++++++++++++++ meson_options.txt | 1 + 4 files changed, 23 insertions(+), 72 deletions(-) delete mode 100644 m4/virt-storage-zfs.m4 diff --git a/configure.ac b/configure.ac index 6416986c303..030313b7ed5 100644 --- a/configure.ac +++ b/configure.ac @@ -130,18 +130,6 @@ dnl Need to test if pkg-config exists PKG_PROG_PKG_CONFIG -dnl -dnl Storage driver checks -dnl - -LIBVIRT_STORAGE_ARG_ZFS - -if test "$with_libvirtd" = "no"; then - with_storage_zfs=no -fi - -LIBVIRT_STORAGE_CHECK_ZFS - dnl Python3 < 3.7 treats the C locale as 7-bit only. dnl We must force env vars so it treats it as UTF-8 dnl regardless of the user's locale. @@ -196,10 +184,6 @@ AC_MSG_NOTICE([]) AC_MSG_NOTICE([Configuration summary]) AC_MSG_NOTICE([=====================]) AC_MSG_NOTICE([]) -AC_MSG_NOTICE([Storage Drivers]) -AC_MSG_NOTICE([]) -LIBVIRT_STORAGE_RESULT_ZFS -AC_MSG_NOTICE([]) AC_MSG_NOTICE([Driver Loadable Modules]) AC_MSG_NOTICE([]) LIBVIRT_RESULT_DRIVER_MODULES diff --git a/m4/virt-storage-zfs.m4 b/m4/virt-storage-zfs.m4 deleted file mode 100644 index 0c52264dbe8..00000000000 --- a/m4/virt-storage-zfs.m4 +++ /dev/null @@ -1,56 +0,0 @@ -dnl The storage ZFS check -dnl -dnl Copyright (C) 2016 Red Hat, Inc. -dnl -dnl This library is free software; you can redistribute it and/or -dnl modify it under the terms of the GNU Lesser General Public -dnl License as published by the Free Software Foundation; either -dnl version 2.1 of the License, or (at your option) any later version. -dnl -dnl This library is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -dnl Lesser General Public License for more details. -dnl -dnl You should have received a copy of the GNU Lesser General Public -dnl License along with this library. If not, see -dnl <http://www.gnu.org/licenses/>. -dnl - -AC_DEFUN([LIBVIRT_STORAGE_ARG_ZFS], [ - LIBVIRT_ARG_WITH_FEATURE([STORAGE_ZFS], [ZFS backend for the storage driver], [check]) -]) - -AC_DEFUN([LIBVIRT_STORAGE_CHECK_ZFS], [ - if test "$with_storage_zfs" = "yes" || - test "$with_storage_zfs" = "check"; then - AC_PATH_PROG([ZFS], [zfs], [], [$LIBVIRT_SBIN_PATH]) - AC_PATH_PROG([ZPOOL], [zpool], [], [$LIBVIRT_SBIN_PATH]) - - if test "$with_storage_zfs" = "yes"; then - if test -z "$ZFS" || test -z "$ZPOOL"; then - AC_MSG_ERROR([We need zfs and zpool for ZFS storage driver]) - fi - else - if test -z "$ZFS" || test -z "$ZPOOL"; then - with_storage_zfs=no - fi - - if test "$with_storage_zfs" = "check"; then - with_storage_zfs=yes - fi - fi - - if test "$with_storage_zfs" = "yes"; then - AC_DEFINE_UNQUOTED([WITH_STORAGE_ZFS], 1, - [whether ZFS backend for storage driver is enabled]) - AC_DEFINE_UNQUOTED([ZFS], ["$ZFS"], [Location of zfs program]) - AC_DEFINE_UNQUOTED([ZPOOL], ["$ZPOOL"], [Location of zpool program]) - fi - fi - AM_CONDITIONAL([WITH_STORAGE_ZFS], [test "$with_storage_zfs" = "yes"]) -]) - -AC_DEFUN([LIBVIRT_STORAGE_RESULT_ZFS], [ - LIBVIRT_RESULT([ZFS], [$with_storage_zfs]) -]) diff --git a/meson.build b/meson.build index 83f7710f93c..64583b3662a 100644 --- a/meson.build +++ b/meson.build @@ -2021,6 +2021,27 @@ if conf.has('WITH_LIBVIRTD') endforeach endif endif + + if not get_option('storage_zfs').disabled() + zfs_enable = true + foreach name : ['zfs', 'zpool'] + set_variable( + '@0@_prog'.format(name), + find_program(name, required: get_option('storage_zfs'), dirs: libvirt_sbin_path) + ) + if not get_variable('@0@_prog'.format(name)).found() + zfs_enable = false + endif + endforeach + + if zfs_enable + use_storage = true + conf.set('WITH_STORAGE_ZFS', 1) + foreach name : ['zfs', 'zpool'] + conf.set_quoted(name.to_upper(), get_variable('@0@_prog'.format(name)).path()) + endforeach + endif + endif endif if use_storage @@ -2078,6 +2099,7 @@ storagedriver_summary = { 'RBD': conf.has('WITH_STORAGE_RBD'), 'Sheepdog': conf.has('WITH_STORAGE_SHEEPDOG'), 'Gluster': conf.has('WITH_STORAGE_GLUSTER'), + 'ZFS': conf.has('WITH_STORAGE_ZFS'), 'Virtuozzo storage': conf.has('WITH_STORAGE_VSTORAGE'), } summary(storagedriver_summary, section: 'Storage Drivers', bool_yn: true) diff --git a/meson_options.txt b/meson_options.txt index 4d8cac9254a..d68712ae2be 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -86,3 +86,4 @@ option('storage_rbd', type: 'feature', value: 'auto', description: 'RADOS Block option('storage_scsi', type: 'feature', value: 'auto', description: 'SCSI backend for the storage driver') option('storage_sheepdog', type: 'feature', value: 'auto', description: 'Sheepdog backend for the storage driver') option('storage_vstorage', type: 'feature', value: 'auto', description: 'Virtuozzo storage backend for the storage driver') +option('storage_zfs', type: 'feature', value: 'auto', description: 'ZFS backend for the storage driver') -- 2.26.2