On Tue, Feb 25, 2020 at 10:32:13AM +0200, Nikolay Ivanets wrote:
пн, 24 лют. 2020 о 22:53 Richard W.M. Jones <rjones(a)redhat.com>
пише:
>
> Since the blocksize option was added since the minimum version of
> libguestfs for virt-v2v, we need to make it conditional so that
> virt-v2v can still be compiled with the older libguestfs.
>
> This commit does the minimum fix to make it build. It doesn't
> conditionalize the --blocksize option altogether. However I believe,
> at least for virt-v2v, that is OK since the --blocksize option is not
> used there.
>
> Thanks: Pino Toscano
> Fixes: commit c33e0036c70ce68d40df92e4a6c0423e136e005c
> ---
> options/options.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/options/options.c b/options/options.c
> index 63221ea..abdcbae 100644
> --- a/options/options.c
> +++ b/options/options.c
> @@ -140,10 +140,12 @@ add_drives_handle (guestfs_h *g, struct drv *drv, size_t
drive_index)
> ad_optargs.bitmask |= GUESTFS_ADD_DRIVE_OPTS_DISCARD_BITMASK;
> ad_optargs.discard = drv->a.discard;
> }
> +#ifdef GUESTFS_ADD_DRIVE_OPTS_BLOCKSIZE_BITMASK
> if (drv->a.blocksize) {
> ad_optargs.bitmask |= GUESTFS_ADD_DRIVE_OPTS_BLOCKSIZE_BITMASK;
> ad_optargs.blocksize = drv->a.blocksize;
> }
> +#endif
>
> r = guestfs_add_drive_opts_argv (g, drv->a.filename, &ad_optargs);
> if (r == -1)
> @@ -177,10 +179,12 @@ add_drives_handle (guestfs_h *g, struct drv *drv, size_t
drive_index)
> ad_optargs.bitmask |= GUESTFS_ADD_DRIVE_OPTS_SECRET_BITMASK;
> ad_optargs.secret = drv->uri.password;
> }
> +#ifdef GUESTFS_ADD_DRIVE_OPTS_BLOCKSIZE_BITMASK
> if (drv->uri.blocksize) {
> ad_optargs.bitmask |= GUESTFS_ADD_DRIVE_OPTS_BLOCKSIZE_BITMASK;
> ad_optargs.blocksize = drv->uri.blocksize;
> }
> +#endif
>
> r = guestfs_add_drive_opts_argv (g, drv->uri.path, &ad_optargs);
> if (r == -1)
> --
> 2.24.1
>
I see. That is because common is used as a sub-module in virt-v2v and
bitmask flags comes from generated lib/guestfs.h.
I didn't know that.
But seems we have to remember that and it is hard to protect us from
this to happen in the future.
Yes the submodule structure is tricky, but the impact of the problem
here wasn't large and it was easy to fix.
Rich.
Or force developers to compile all modules dependent on common while
making changes there.
LGTM
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html