Message ID | 20210614052623.1657103-1-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | [RFC] migration: Add missing dependency on GNUTLS | expand |
On Mon, Jun 14, 2021 at 07:26:23AM +0200, Philippe Mathieu-Daudé 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> > --- > 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(-) Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel
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
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
On Tue, Jun 15, 2021 at 10:39:08AM +0100, Peter Maydell wrote: > 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 :-( A better way to fix this might be to figure out a change to make the crypto struct definitions be private in the .c file, since the public callers should not need to see them. That would let us remove the #include for gnutls from the header. Regards, Daniel
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',
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(-)