On 14.07.2020 11:50, Daniel P. Berrangé wrote:
> On Tue, Jul 14, 2020 at 10:26:00AM +0300, Nikolay Shirokovskiy wrote:
>> This allows us to use CI for vstorage driver without installing Virtuozzo
>> Storage packages. This way we can leave aside license considerations.
>>
>> By the way we need to change configure defaults from 'check' to 'no'
>> otherwise
>> vstorage driver will be build on any system with umount binary which is not
>> expected I guess.
>>
>> Signed-off-by: Nikolay Shirokovskiy <nshirokovs...@virtuozzo.com>
>> ---
>> m4/virt-storage-vstorage.m4 | 17 +----------------
>> src/storage/storage_backend_vstorage.c | 9 ++++++++-
>> 2 files changed, 9 insertions(+), 17 deletions(-)
>>
>> diff --git a/m4/virt-storage-vstorage.m4 b/m4/virt-storage-vstorage.m4
>> index e3b3bb4..cf0a543 100644
>> --- a/m4/virt-storage-vstorage.m4
>> +++ b/m4/virt-storage-vstorage.m4
>> @@ -21,30 +21,19 @@ dnl
>> AC_DEFUN([LIBVIRT_STORAGE_ARG_VSTORAGE], [
>> LIBVIRT_ARG_WITH_FEATURE([STORAGE_VSTORAGE],
>> [Virtuozzo Storage backend for the storage
>> driver],
>> - [check])
>> + [no])
>> ])
>
> Why was this changed to "no". It means we'll never enable the storage
> driver without an explicit --with-storage-vstorage arg passed
But with "check" we will have this driver built on any system with umount
as I mentioned in commit message. I guess this is not desired given the
driver actually needs some more binaries that are not usually installed.
Nikolay
>
>>
>> AC_DEFUN([LIBVIRT_STORAGE_CHECK_VSTORAGE], [
>> if test "$with_storage_vstorage" = "yes" ||
>> test "$with_storage_vstorage" = "check"; then
>> - AC_PATH_PROG([VSTORAGE], [vstorage], [], [$LIBVIRT_SBIN_PATH])
>> - AC_PATH_PROG([VSTORAGE_MOUNT], [vstorage-mount], [],
>> [$LIBVIRT_SBIN_PATH])
>> AC_PATH_PROG([UMOUNT], [umount], [], [$LIBVIRT_SBIN_PATH])
>>
>> if test "$with_storage_vstorage" = "yes"; then
>> - if test -z "$VSTORAGE" || test -z "$VSTORAGE_MOUNT"; then
>> - AC_MSG_ERROR([We need vstorage and vstorage-mount tool for Vstorage
>> storage driver]);
>> - fi
>> if test -z "$UMOUNT" ; then
>> AC_MSG_ERROR([We need umount for Vstorage storage driver]);
>> fi
>> else
>> - if test -z "$VSTORAGE" ; then
>> - with_storage_vstorage=no
>> - fi
>> - if test -z "$VSTORAGE_MOUNT" ; then
>> - with_storage_vstorage=no
>> - fi
>> if test -z "$UMOUNT" ; then
>> with_storage_vstorage=no
>> fi
>> @@ -57,10 +46,6 @@ AC_DEFUN([LIBVIRT_STORAGE_CHECK_VSTORAGE], [
>> if test "$with_storage_vstorage" = "yes" ; then
>> AC_DEFINE_UNQUOTED([WITH_STORAGE_VSTORAGE], 1,
>> [whether Vstorage backend for storage driver is
>> enabled])
>> - AC_DEFINE_UNQUOTED([VSTORAGE], ["$VSTORAGE"],
>> - [Location or name of the vstorage client tool])
>> - AC_DEFINE_UNQUOTED([VSTORAGE_MOUNT], ["$VSTORAGE_MOUNT"],
>> - [Location or name of the vstorage mount tool])
>> AC_DEFINE_UNQUOTED([UMOUNT], ["$UMOUNT"],
>> [Location or name of the umount programm])
>> fi
>> diff --git a/src/storage/storage_backend_vstorage.c
>> b/src/storage/storage_backend_vstorage.c
>> index 6cff9f1..ea3bfaa 100644
>> --- a/src/storage/storage_backend_vstorage.c
>> +++ b/src/storage/storage_backend_vstorage.c
>> @@ -44,9 +44,16 @@ virStorageBackendVzPoolStart(virStoragePoolObjPtr pool)
>> g_autofree char *grp_name = NULL;
>> g_autofree char *usr_name = NULL;
>> g_autofree char *mode = NULL;
>> + g_autofree char *mount_bin = NULL;
>> g_autoptr(virCommand) cmd = NULL;
>> int ret;
>>
>> + if (!(mount_bin = virFindFileInPath("vstorage-mount"))) {
>> + virReportError(VIR_ERR_INTERNAL_ERROR,
>> + "%s", _("unable to find vstorage-mount"));
>> + return -1;
>> + }
>> +
>> /* Check the permissions */
>> if (def->target.perms.mode == (mode_t)-1)
>> def->target.perms.mode = VIR_STORAGE_DEFAULT_POOL_PERM_MODE;
>> @@ -65,7 +72,7 @@ virStorageBackendVzPoolStart(virStoragePoolObjPtr pool)
>>
>> mode = g_strdup_printf("%o", def->target.perms.mode);
>>
>> - cmd = virCommandNewArgList(VSTORAGE_MOUNT,
>> + cmd = virCommandNewArgList(mount_bin,
>> "-c", def->source.name,
>> def->target.path,
>> "-m", mode,
>> --
>> 1.8.3.1
>>
>
> Regards,
> Daniel
>