[RFC PATCH] migration: Add missing dependency on GNUTLS

Philippe Mathieu-Daudé posted 1 patch 2 years, 10 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210614052623.1657103-1-f4bug@amsat.org
There is a newer version of this series
migration/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[RFC PATCH] migration: Add missing dependency on GNUTLS
Posted by Philippe Mathieu-Daudé 2 years, 10 months ago
Commit 7de2e856533 made migration/qemu-file-channel.c include
"io/channel-tls.h" but forgot to add the new GNUTLS dependency
on Meson, leading to build failure on OSX:

  [2/35] Compiling C object libmigration.fa.p/migration_qemu-file-channel.c.o
  FAILED: libmigration.fa.p/migration_qemu-file-channel.c.o
  cc -Ilibmigration.fa.p -I. -I.. -Iqapi [ ... ] -o libmigration.fa.p/migration_qemu-file-channel.c.o -c ../migration/qemu-file-channel.c
  In file included from ../migration/qemu-file-channel.c:29:
  In file included from include/io/channel-tls.h:26:
  In file included from include/crypto/tlssession.h:24:
  include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not found
  #include <gnutls/gnutls.h>
           ^~~~~~~~~~~~~~~~~
  1 error generated.

Reported-by: Stefan Weil <sw@weilnetz.de>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/407
Fixes: 7de2e856533 ("yank: Unregister function when using TLS migration")
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
RFC: Not tested on OSX. Stefan, do you know why this isn't covered
     on Cirrus-CI?  https://cirrus-ci.com/build/4876003651616768
---
 migration/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/migration/meson.build b/migration/meson.build
index f8714dcb154..5b5a3f7b337 100644
--- a/migration/meson.build
+++ b/migration/meson.build
@@ -8,7 +8,7 @@
   'qemu-file.c',
   'yank_functions.c',
 )
-softmmu_ss.add(migration_files)
+softmmu_ss.add(migration_files, gnutls)
 
 softmmu_ss.add(files(
   'block-dirty-bitmap.c',
-- 
2.31.1

Re: [RFC PATCH] migration: Add missing dependency on GNUTLS
Posted by Stefan Weil 2 years, 10 months ago
Am 14.06.21 um 07:26 schrieb Philippe Mathieu-Daudé:

> Commit 7de2e856533 made migration/qemu-file-channel.c include
> "io/channel-tls.h" but forgot to add the new GNUTLS dependency
> on Meson, leading to build failure on OSX:
>
>    [2/35] Compiling C object libmigration.fa.p/migration_qemu-file-channel.c.o
>    FAILED: libmigration.fa.p/migration_qemu-file-channel.c.o
>    cc -Ilibmigration.fa.p -I. -I.. -Iqapi [ ... ] -o libmigration.fa.p/migration_qemu-file-channel.c.o -c ../migration/qemu-file-channel.c
>    In file included from ../migration/qemu-file-channel.c:29:
>    In file included from include/io/channel-tls.h:26:
>    In file included from include/crypto/tlssession.h:24:
>    include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not found
>    #include <gnutls/gnutls.h>
>             ^~~~~~~~~~~~~~~~~
>    1 error generated.
>
> Reported-by: Stefan Weil <sw@weilnetz.de>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/407
> Fixes: 7de2e856533 ("yank: Unregister function when using TLS migration")
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> RFC: Not tested on OSX. Stefan, do you know why this isn't covered
>       on Cirrus-CI?  https://cirrus-ci.com/build/4876003651616768


Cirrus-CI does not install gnutls. That's easy to fix by adding it to 
the list of installed packages.

And the patch does not fix the issue. I already had tried that and 
similar changes in migration/meson.build.

Regards

Stefan



Re: [RFC PATCH] migration: Add missing dependency on GNUTLS
Posted by Peter Maydell 2 years, 10 months ago
On Mon, 14 Jun 2021 at 06:28, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> Commit 7de2e856533 made migration/qemu-file-channel.c include
> "io/channel-tls.h" but forgot to add the new GNUTLS dependency
> on Meson, leading to build failure on OSX:
>
>   [2/35] Compiling C object libmigration.fa.p/migration_qemu-file-channel.c.o
>   FAILED: libmigration.fa.p/migration_qemu-file-channel.c.o
>   cc -Ilibmigration.fa.p -I. -I.. -Iqapi [ ... ] -o libmigration.fa.p/migration_qemu-file-channel.c.o -c ../migration/qemu-file-channel.c
>   In file included from ../migration/qemu-file-channel.c:29:
>   In file included from include/io/channel-tls.h:26:
>   In file included from include/crypto/tlssession.h:24:
>   include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not found
>   #include <gnutls/gnutls.h>
>            ^~~~~~~~~~~~~~~~~
>   1 error generated.
>
> Reported-by: Stefan Weil <sw@weilnetz.de>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/407
> Fixes: 7de2e856533 ("yank: Unregister function when using TLS migration")
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Is there really no way to get Meson to handle this kind
of thing properly (ie "just put all the include paths in the CFLAGS
for every compilation") rather than requiring us to add dependency
markers all over the meson.build files every time we add some
extra #include somewhere ? This is demonstrably horribly fragile
the way we have it at the moment :-(

-- PMM