From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9EC43C4361B for ; Thu, 17 Dec 2020 12:39:39 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E8B7523715 for ; Thu, 17 Dec 2020 12:39:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E8B7523715 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:34040 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kpsZF-0004lu-L9 for qemu-devel@archiver.kernel.org; Thu, 17 Dec 2020 07:39:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58860) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpsWr-0003w0-RA for qemu-devel@nongnu.org; Thu, 17 Dec 2020 07:37:09 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:25611) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kpsWc-0001g8-8j for qemu-devel@nongnu.org; Thu, 17 Dec 2020 07:37:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1608208612; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=tqgPbmXUQJG+oqee7pTX03sITS/s3zJ9J0HSAwd1f1U=; b=WpKIJqtGqbHAJ6E0oWaTWbhYn8Yrp03yu9PKK0fHsTyIAUgKDaQiUHx0wjcLvrfBVpbWrv LLFPDQRyF0A9PBmlxjqkBzx+HlyjN/LCLSxJa3YF8AQDjGeVo4eF7TYXcGjCaxgthaG9cg Niqv1GEt7ejRRufXvtVFN3+N1ItbZiw= Received: from mail-il1-f197.google.com (mail-il1-f197.google.com [209.85.166.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-313-RtUb3clUNN6lEsfxn6ka2g-1; Thu, 17 Dec 2020 07:36:49 -0500 X-MC-Unique: RtUb3clUNN6lEsfxn6ka2g-1 Received: by mail-il1-f197.google.com with SMTP id f2so31398704ils.6 for ; Thu, 17 Dec 2020 04:36:49 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=tqgPbmXUQJG+oqee7pTX03sITS/s3zJ9J0HSAwd1f1U=; b=YBCkXQGSd9sXYjkmZvg0ku/RIjluESD3C+g3BaFieUqxuRaosMxOuVyfYaPFV9ynOQ mxBSRkwALls8VQuEJ4qvfCbv/X1SkT9AYN/GvqHt6EU0dxjPOZHBDtEkaFMCIuufKY7g vSuexVN3pBPPaa/2p0893czRNB8qpr4jiMVRF7mcqDdtUQmPzgewEdVQixD5HRo9NTAh MEAukxRgfpZVbwYqwx4NYRsv8CZzzqAHfaWiofCvCFXpZFyYte7ZbgWDZyhgrgW/z0aA mmIGf6yGgCl+1QTlKG/QQBcBNDiddYHeivuHz6TnXSMOvT/N6m9WjBWJKXA3P7yEqSvD OS+w== X-Gm-Message-State: AOAM5321vzqER07Tas7nzWamVZ8CF0FCbct8t0m2YcLzLK+Y3FrhTT0m +y7bz/fk/AAMgmE+imzZADaPHoxRwdACIOcmDjAk9HqlE7IWcqOejrs2n2sGOIXx8nuM5fMdZKe 6Vm8K4KXkPqkE6BSSfFR1Ds3qLZza6QU= X-Received: by 2002:a92:b694:: with SMTP id m20mr43087944ill.182.1608208609067; Thu, 17 Dec 2020 04:36:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJxO9rttbwVXC5tas6NNg/O69sSi3XwOvWTW0EcqryJi4j2B7Zf8Y3jw/mYVusExeCkvF/miXOn6cwxnUdnvnqY= X-Received: by 2002:a92:b694:: with SMTP id m20mr43087936ill.182.1608208608862; Thu, 17 Dec 2020 04:36:48 -0800 (PST) MIME-Version: 1.0 References: <20201217094044.46462-1-pbonzini@redhat.com> <20201217094044.46462-10-pbonzini@redhat.com> In-Reply-To: <20201217094044.46462-10-pbonzini@redhat.com> From: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= Date: Thu, 17 Dec 2020 16:36:37 +0400 Message-ID: Subject: Re: [PATCH 09/18] rbd: convert to meson To: Paolo Bonzini Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mlureau@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/alternative; boundary="000000000000db3df405b6a83e34" Received-SPF: pass client-ip=216.205.24.124; envelope-from=mlureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-devel Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" --000000000000db3df405b6a83e34 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Dec 17, 2020 at 1:41 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > Reviewed-by: Marc-Andr=C3=A9 Lureau --- > configure | 35 ++++------------------------------- > meson.build | 22 +++++++++++++++++++--- > meson_options.txt | 2 ++ > 3 files changed, 25 insertions(+), 34 deletions(-) > > diff --git a/configure b/configure > index f3271381f1..e34885d505 100755 > --- a/configure > +++ b/configure > @@ -384,7 +384,7 @@ qom_cast_debug=3D"yes" > trace_backends=3D"log" > trace_file=3D"trace" > spice=3D"$default_feature" > -rbd=3D"$default_feature" > +rbd=3D"auto" > smartcard=3D"$default_feature" > u2f=3D"auto" > libusb=3D"$default_feature" > @@ -1286,9 +1286,9 @@ for opt do > ;; > --enable-opengl) opengl=3D"yes" > ;; > - --disable-rbd) rbd=3D"no" > + --disable-rbd) rbd=3D"disabled" > ;; > - --enable-rbd) rbd=3D"yes" > + --enable-rbd) rbd=3D"enabled" > ;; > --disable-xfsctl) xfs=3D"no" > ;; > @@ -3607,29 +3607,6 @@ if compile_prog "" "$pthread_lib" ; then > pthread_setname_np_wo_tid=3Dyes > fi > > -########################################## > -# rbd probe > -if test "$rbd" !=3D "no" ; then > - cat > $TMPC < -#include > -#include > -int main(void) { > - rados_t cluster; > - rados_create(&cluster, NULL); > - return 0; > -} > -EOF > - rbd_libs=3D"-lrbd -lrados" > - if compile_prog "" "$rbd_libs" ; then > - rbd=3Dyes > - else > - if test "$rbd" =3D "yes" ; then > - feature_not_found "rados block device" "Install librbd/ceph devel" > - fi > - rbd=3Dno > - fi > -fi > - > ########################################## > # linux-aio probe > > @@ -6184,10 +6161,6 @@ fi > if test "$qom_cast_debug" =3D "yes" ; then > echo "CONFIG_QOM_CAST_DEBUG=3Dy" >> $config_host_mak > fi > -if test "$rbd" =3D "yes" ; then > - echo "CONFIG_RBD=3Dy" >> $config_host_mak > - echo "RBD_LIBS=3D$rbd_libs" >> $config_host_mak > -fi > > echo "CONFIG_COROUTINE_BACKEND=3D$coroutine" >> $config_host_mak > if test "$coroutine_pool" =3D "yes" ; then > @@ -6726,7 +6699,7 @@ NINJA=3D$ninja $meson setup \ > -Dcapstone=3D$capstone -Dslirp=3D$slirp -Dfdt=3D$fdt -Dbrlapi=3D= $brlapi \ > -Dcurl=3D$curl -Dglusterfs=3D$glusterfs -Dbzip2=3D$bzip2 > -Dlibiscsi=3D$libiscsi \ > -Dlibnfs=3D$libnfs -Diconv=3D$iconv -Dcurses=3D$curses > -Dlibudev=3D$libudev\ > - -Dlibssh=3D$libssh \ > + -Dlibssh=3D$libssh -Drbd=3D$rbd \ > -Ddocs=3D$docs -Dsphinx_build=3D$sphinx_build -Dinstall_blobs=3D= $blobs \ > -Dvhost_user_blk_server=3D$vhost_user_blk_server \ > -Dfuse=3D$fuse -Dfuse_lseek=3D$fuse_lseek \ > diff --git a/meson.build b/meson.build > index 2d6660aa46..6fa80e2d7e 100644 > --- a/meson.build > +++ b/meson.build > @@ -612,9 +612,24 @@ else > endif > > rbd =3D not_found > -if 'CONFIG_RBD' in config_host > - rbd =3D declare_dependency(link_args: config_host['RBD_LIBS'].split()) > +if not get_option('rbd').auto() or have_block > + librados =3D cc.find_library('rados', required: get_option('rbd'), > + static: enable_static) > + librbd =3D cc.find_library('rbd', has_headers: ['rbd/librbd.h'], > + required: get_option('rbd'), > + static: enable_static) > + if librados.found() and librbd.found() and cc.links(''' > + #include > + #include > + int main(void) { > + rados_t cluster; > + rados_create(&cluster, NULL); > + return 0; > + }''', dependencies: [librbd, librados]) > + rbd =3D declare_dependency(dependencies: [librbd, librados]) > + endif > endif > + > glusterfs =3D not_found > glusterfs_ftruncate_has_stat =3D false > glusterfs_iocb_has_stat =3D false > @@ -941,6 +956,7 @@ config_host_data.set('CONFIG_LIBISCSI', > libiscsi.found()) > config_host_data.set('CONFIG_LIBNFS', libnfs.found()) > config_host_data.set('CONFIG_LIBSSH', libssh.found()) > config_host_data.set('HAVE_LIBSSH_0_8', have_libssh_0_8) > +config_host_data.set('CONFIG_RBD', rbd.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) > @@ -2290,7 +2306,7 @@ if > config_host['TRACE_BACKENDS'].split().contains('simple') > endif > # TODO: add back protocol and server version > summary_info +=3D {'spice support': config_host.has_key('CONFIG_SPIC= E')} > -summary_info +=3D {'rbd support': config_host.has_key('CONFIG_RBD'= )} > +summary_info +=3D {'rbd support': rbd.found()} > summary_info +=3D {'xfsctl support': config_host.has_key('CONFIG_XFS'= )} > summary_info +=3D {'smartcard support': > config_host.has_key('CONFIG_SMARTCARD')} > summary_info +=3D {'U2F support': u2f.found()} > diff --git a/meson_options.txt b/meson_options.txt > index 6466dc67f6..630c9dceb7 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -64,6 +64,8 @@ option('curses', type : 'feature', value : 'auto', > description: 'curses UI') > option('libudev', type : 'feature', value : 'auto', > description: 'Use libudev to enumerate host devices') > +option('rbd', type : 'feature', value : 'auto', > + description: 'Ceph block device driver') > option('sdl', type : 'feature', value : 'auto', > description: 'SDL user interface') > option('sdl_image', type : 'feature', value : 'auto', > -- > 2.29.2 > > > --000000000000db3df405b6a83e34 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Thu, Dec 17, 2020 at 1:41 PM Paolo= Bonzini <pbonzini@redhat.com= > wrote:
Sign= ed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Marc-Andr=C3=A9 Lureau <marcandre.lureau@redhat.com>=C2=A0

<= /div>
---
=C2=A0configure=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 35 ++++-----------------= --------------
=C2=A0meson.build=C2=A0 =C2=A0 =C2=A0 =C2=A0| 22 +++++++++++++++++++---
=C2=A0meson_options.txt |=C2=A0 2 ++
=C2=A03 files changed, 25 insertions(+), 34 deletions(-)

diff --git a/configure b/configure
index f3271381f1..e34885d505 100755
--- a/configure
+++ b/configure
@@ -384,7 +384,7 @@ qom_cast_debug=3D"yes"
=C2=A0trace_backends=3D"log"
=C2=A0trace_file=3D"trace"
=C2=A0spice=3D"$default_feature"
-rbd=3D"$default_feature"
+rbd=3D"auto"
=C2=A0smartcard=3D"$default_feature"
=C2=A0u2f=3D"auto"
=C2=A0libusb=3D"$default_feature"
@@ -1286,9 +1286,9 @@ for opt do
=C2=A0 =C2=A0;;
=C2=A0 =C2=A0--enable-opengl) opengl=3D"yes"
=C2=A0 =C2=A0;;
-=C2=A0 --disable-rbd) rbd=3D"no"
+=C2=A0 --disable-rbd) rbd=3D"disabled"
=C2=A0 =C2=A0;;
-=C2=A0 --enable-rbd) rbd=3D"yes"
+=C2=A0 --enable-rbd) rbd=3D"enabled"
=C2=A0 =C2=A0;;
=C2=A0 =C2=A0--disable-xfsctl) xfs=3D"no"
=C2=A0 =C2=A0;;
@@ -3607,29 +3607,6 @@ if compile_prog "" "$pthread_lib"= ; ; then
=C2=A0 =C2=A0pthread_setname_np_wo_tid=3Dyes
=C2=A0fi

-##########################################
-# rbd probe
-if test "$rbd" !=3D "no" ; then
-=C2=A0 cat > $TMPC <<EOF
-#include <stdio.h>
-#include <rbd/librbd.h>
-int main(void) {
-=C2=A0 =C2=A0 rados_t cluster;
-=C2=A0 =C2=A0 rados_create(&cluster, NULL);
-=C2=A0 =C2=A0 return 0;
-}
-EOF
-=C2=A0 rbd_libs=3D"-lrbd -lrados"
-=C2=A0 if compile_prog "" "$rbd_libs" ; then
-=C2=A0 =C2=A0 rbd=3Dyes
-=C2=A0 else
-=C2=A0 =C2=A0 if test "$rbd" =3D "yes" ; then
-=C2=A0 =C2=A0 =C2=A0 feature_not_found "rados block device" &quo= t;Install librbd/ceph devel"
-=C2=A0 =C2=A0 fi
-=C2=A0 =C2=A0 rbd=3Dno
-=C2=A0 fi
-fi
-
=C2=A0##########################################
=C2=A0# linux-aio probe

@@ -6184,10 +6161,6 @@ fi
=C2=A0if test "$qom_cast_debug" =3D "yes" ; then
=C2=A0 =C2=A0echo "CONFIG_QOM_CAST_DEBUG=3Dy" >> $config_ho= st_mak
=C2=A0fi
-if test "$rbd" =3D "yes" ; then
-=C2=A0 echo "CONFIG_RBD=3Dy" >> $config_host_mak
-=C2=A0 echo "RBD_LIBS=3D$rbd_libs" >> $config_host_mak
-fi

=C2=A0echo "CONFIG_COROUTINE_BACKEND=3D$coroutine" >> $conf= ig_host_mak
=C2=A0if test "$coroutine_pool" =3D "yes" ; then
@@ -6726,7 +6699,7 @@ NINJA=3D$ninja $meson setup \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-Dcapstone=3D$capstone -Dslirp=3D$slirp -= Dfdt=3D$fdt -Dbrlapi=3D$brlapi \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-Dcurl=3D$curl -Dglusterfs=3D$glusterfs -= Dbzip2=3D$bzip2 -Dlibiscsi=3D$libiscsi \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-Dlibnfs=3D$libnfs -Diconv=3D$iconv -Dcur= ses=3D$curses -Dlibudev=3D$libudev\
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 -Dlibssh=3D$libssh \
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 -Dlibssh=3D$libssh -Drbd=3D$rbd \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-Ddocs=3D$docs -Dsphinx_build=3D$sphinx_b= uild -Dinstall_blobs=3D$blobs \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-Dvhost_user_blk_server=3D$vhost_user_blk= _server \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-Dfuse=3D$fuse -Dfuse_lseek=3D$fuse_lseek= \
diff --git a/meson.build b/meson.build
index 2d6660aa46..6fa80e2d7e 100644
--- a/meson.build
+++ b/meson.build
@@ -612,9 +612,24 @@ else
=C2=A0endif

=C2=A0rbd =3D not_found
-if 'CONFIG_RBD' in config_host
-=C2=A0 rbd =3D declare_dependency(link_args: config_host['RBD_LIBS'= ;].split())
+if not get_option('rbd').auto() or have_block
+=C2=A0 librados =3D cc.find_library('rados', required: get_option(= 'rbd'),
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0static: enable_static)
+=C2=A0 librbd =3D cc.find_library('rbd', has_headers: ['rbd/li= brbd.h'],
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0required: get_option('rbd'),
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0static: enable_static)
+=C2=A0 if librados.found() and librbd.found() and cc.links('''=
+=C2=A0 =C2=A0 #include <stdio.h>
+=C2=A0 =C2=A0 #include <rbd/librbd.h>
+=C2=A0 =C2=A0 int main(void) {
+=C2=A0 =C2=A0 =C2=A0 rados_t cluster;
+=C2=A0 =C2=A0 =C2=A0 rados_create(&cluster, NULL);
+=C2=A0 =C2=A0 =C2=A0 return 0;
+=C2=A0 =C2=A0 }''', dependencies: [librbd, librados])
+=C2=A0 =C2=A0 rbd =3D declare_dependency(dependencies: [librbd, librados])=
+=C2=A0 endif
=C2=A0endif
+
=C2=A0glusterfs =3D not_found
=C2=A0glusterfs_ftruncate_has_stat =3D false
=C2=A0glusterfs_iocb_has_stat =3D false
@@ -941,6 +956,7 @@ config_host_data.set('CONFIG_LIBISCSI', libiscs= i.found())
=C2=A0config_host_data.set('CONFIG_LIBNFS', libnfs.found())
=C2=A0config_host_data.set('CONFIG_LIBSSH', libssh.found())
=C2=A0config_host_data.set('HAVE_LIBSSH_0_8', have_libssh_0_8)
+config_host_data.set('CONFIG_RBD', rbd.found())
=C2=A0config_host_data.set('CONFIG_SDL', sdl.found())
=C2=A0config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found()) =C2=A0config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER', have_vho= st_user_blk_server)
@@ -2290,7 +2306,7 @@ if config_host['TRACE_BACKENDS'].split().cont= ains('simple')
=C2=A0endif
=C2=A0# TODO: add back protocol and server version
=C2=A0summary_info +=3D {'spice support':=C2=A0 =C2=A0 =C2=A0config= _host.has_key('CONFIG_SPICE')}
-summary_info +=3D {'rbd support':=C2=A0 =C2=A0 =C2=A0 =C2=A0config= _host.has_key('CONFIG_RBD')}
+summary_info +=3D {'rbd support':=C2=A0 =C2=A0 =C2=A0 =C2=A0rbd.fo= und()}
=C2=A0summary_info +=3D {'xfsctl support':=C2=A0 =C2=A0 config_host= .has_key('CONFIG_XFS')}
=C2=A0summary_info +=3D {'smartcard support': config_host.has_key(&= #39;CONFIG_SMARTCARD')}
=C2=A0summary_info +=3D {'U2F support':=C2=A0 =C2=A0 =C2=A0 =C2=A0u= 2f.found()}
diff --git a/meson_options.txt b/meson_options.txt
index 6466dc67f6..630c9dceb7 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -64,6 +64,8 @@ option('curses', type : 'feature', value = : 'auto',
=C2=A0 =C2=A0 =C2=A0 =C2=A0 description: 'curses UI')
=C2=A0option('libudev', type : 'feature', value : 'auto= ',
=C2=A0 =C2=A0 =C2=A0 =C2=A0 description: 'Use libudev to enumerate host= devices')
+option('rbd', type : 'feature', value : 'auto', +=C2=A0 =C2=A0 =C2=A0 =C2=A0description: 'Ceph block device driver'= )
=C2=A0option('sdl', type : 'feature', value : 'auto'= ;,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 description: 'SDL user interface')
=C2=A0option('sdl_image', type : 'feature', value : 'au= to',
--
2.29.2


--000000000000db3df405b6a83e34--