tests/unit/test-crypto-secret.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
Linux keyring support is protected by CONFIG_KEYUTILS.
Use CONFIG_SECRET_KEYRING.
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
Previous version of this patch changed the meson build rules.
Daniel told me that the proper fix was to change the #ifdef test.
---
tests/unit/test-crypto-secret.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/unit/test-crypto-secret.c b/tests/unit/test-crypto-secret.c
index 34a4aecc12..ccb9dbcd49 100644
--- a/tests/unit/test-crypto-secret.c
+++ b/tests/unit/test-crypto-secret.c
@@ -24,7 +24,7 @@
#include "crypto/secret.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#ifdef CONFIG_KEYUTILS
+#ifdef CONFIG_SECRET_KEYRING
#include "crypto/secret_keyring.h"
#include <keyutils.h>
#endif
@@ -128,7 +128,7 @@ static void test_secret_indirect_emptyfile(void)
g_free(fname);
}
-#ifdef CONFIG_KEYUTILS
+#ifdef CONFIG_SECRET_KEYRING
#define DESCRIPTION "qemu_test_secret"
#define PAYLOAD "Test Payload"
@@ -268,7 +268,7 @@ static void test_secret_keyring_bad_key_access_right(void)
keyctl_unlink(key, KEY_SPEC_PROCESS_KEYRING);
}
-#endif /* CONFIG_KEYUTILS */
+#endif /* CONFIG_SECRET_KEYRING */
static void test_secret_noconv_base64_good(void)
{
@@ -571,7 +571,7 @@ int main(int argc, char **argv)
g_test_add_func("/crypto/secret/indirect/emptyfile",
test_secret_indirect_emptyfile);
-#ifdef CONFIG_KEYUTILS
+#ifdef CONFIG_SECRET_KEYRING
g_test_add_func("/crypto/secret/keyring/good",
test_secret_keyring_good);
g_test_add_func("/crypto/secret/keyring/revoked_key",
@@ -582,7 +582,7 @@ int main(int argc, char **argv)
test_secret_keyring_bad_serial_key);
g_test_add_func("/crypto/secret/keyring/bad_key_access_right",
test_secret_keyring_bad_key_access_right);
-#endif /* CONFIG_KEYUTILS */
+#endif /* CONFIG_SECRET_KEYRING */
g_test_add_func("/crypto/secret/noconv/base64/good",
test_secret_noconv_base64_good);
--
2.39.2
On 01/03/2023 12.00, Juan Quintela wrote: > Linux keyring support is protected by CONFIG_KEYUTILS. > Use CONFIG_SECRET_KEYRING. > > Signed-off-by: Juan Quintela <quintela@redhat.com> > > --- > > Previous version of this patch changed the meson build rules. > Daniel told me that the proper fix was to change the #ifdef test. > --- > tests/unit/test-crypto-secret.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) This seems to cause failures in the CI: https://gitlab.com/thuth/qemu/-/jobs/3870672310#L1443 https://gitlab.com/thuth/qemu/-/jobs/3870672331#L2353 ../tests/unit/test-crypto-secret.c:29:10: fatal error: keyutils.h: No such file or directory 29 | #include <keyutils.h> | ^~~~~~~~~~~~ compilation terminated. And when building locally, I got: FAILED: tests/unit/test-crypto-secret tests/unit/test-crypto-secret.p/test-crypto-secret.c.o: In function `test_secret_keyring_expired_key': ../../devel/qemu/tests/unit/test-crypto-secret.c:194: undefined reference to `add_key' ../../devel/qemu/tests/unit/test-crypto-secret.c:197: undefined reference to `keyctl_set_timeout' ../../devel/qemu/tests/unit/test-crypto-secret.c:212: undefined reference to `keyctl_unlink' tests/unit/test-crypto-secret.p/test-crypto-secret.c.o: In function `test_secret_keyring_revoked_key': ../../devel/qemu/tests/unit/test-crypto-secret.c:169: undefined reference to `add_key' ../../devel/qemu/tests/unit/test-crypto-secret.c:172: undefined reference to `keyctl_revoke' ../../devel/qemu/tests/unit/test-crypto-secret.c:186: undefined reference to `keyctl_unlink' tests/unit/test-crypto-secret.p/test-crypto-secret.c.o: In function `test_secret_keyring_good': ../../devel/qemu/tests/unit/test-crypto-secret.c:141: undefined reference to `add_key' ../../devel/qemu/tests/unit/test-crypto-secret.c:155: undefined reference to `keyctl_unlink' collect2: error: ld returned 1 exit status Thomas
Thomas Huth <thuth@redhat.com> wrote: > On 01/03/2023 12.00, Juan Quintela wrote: >> Linux keyring support is protected by CONFIG_KEYUTILS. >> Use CONFIG_SECRET_KEYRING. >> Signed-off-by: Juan Quintela <quintela@redhat.com> >> --- >> Previous version of this patch changed the meson build rules. >> Daniel told me that the proper fix was to change the #ifdef test. >> --- >> tests/unit/test-crypto-secret.c | 10 +++++----- >> 1 file changed, 5 insertions(+), 5 deletions(-) > > This seems to cause failures in the CI: > > https://gitlab.com/thuth/qemu/-/jobs/3870672310#L1443 > https://gitlab.com/thuth/qemu/-/jobs/3870672331#L2353 What is your configuration? Here (Fedora 37) it works perfectly with --enable/disable-keyring. But I have installed keyutils-libs-devel, and it appears that there is no way to disable keyutils support through the command line. /me removes package and retries. > ../tests/unit/test-crypto-secret.c:29:10: fatal error: keyutils.h: No such file or directory > 29 | #include <keyutils.h> > | ^~~~~~~~~~~~ > compilation terminated. > > And when building locally, I got: > > FAILED: tests/unit/test-crypto-secret > tests/unit/test-crypto-secret.p/test-crypto-secret.c.o: In function `test_secret_keyring_expired_key': > ../../devel/qemu/tests/unit/test-crypto-secret.c:194: undefined reference to `add_key' > ../../devel/qemu/tests/unit/test-crypto-secret.c:197: undefined reference to `keyctl_set_timeout' > ../../devel/qemu/tests/unit/test-crypto-secret.c:212: undefined reference to `keyctl_unlink' > tests/unit/test-crypto-secret.p/test-crypto-secret.c.o: In function `test_secret_keyring_revoked_key': > ../../devel/qemu/tests/unit/test-crypto-secret.c:169: undefined reference to `add_key' > ../../devel/qemu/tests/unit/test-crypto-secret.c:172: undefined reference to `keyctl_revoke' > ../../devel/qemu/tests/unit/test-crypto-secret.c:186: undefined reference to `keyctl_unlink' > tests/unit/test-crypto-secret.p/test-crypto-secret.c.o: In function `test_secret_keyring_good': > ../../devel/qemu/tests/unit/test-crypto-secret.c:141: undefined reference to `add_key' > ../../devel/qemu/tests/unit/test-crypto-secret.c:155: undefined reference to `keyctl_unlink' > collect2: error: ld returned 1 exit status > > Thomas
On Fri, Mar 03, 2023 at 01:47:40PM +0100, Thomas Huth wrote: > On 01/03/2023 12.00, Juan Quintela wrote: > > Linux keyring support is protected by CONFIG_KEYUTILS. > > Use CONFIG_SECRET_KEYRING. > > > > Signed-off-by: Juan Quintela <quintela@redhat.com> > > > > --- > > > > Previous version of this patch changed the meson build rules. > > Daniel told me that the proper fix was to change the #ifdef test. > > --- > > tests/unit/test-crypto-secret.c | 10 +++++----- > > 1 file changed, 5 insertions(+), 5 deletions(-) > > This seems to cause failures in the CI: > > https://gitlab.com/thuth/qemu/-/jobs/3870672310#L1443 > https://gitlab.com/thuth/qemu/-/jobs/3870672331#L2353 > > ../tests/unit/test-crypto-secret.c:29:10: fatal error: keyutils.h: No such file or directory > 29 | #include <keyutils.h> > | ^~~~~~~~~~~~ > compilation terminated. Hmm, so we actually have to test for both #ifdefs then With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
Daniel P. Berrangé <berrange@redhat.com> wrote: > On Fri, Mar 03, 2023 at 01:47:40PM +0100, Thomas Huth wrote: >> On 01/03/2023 12.00, Juan Quintela wrote: >> > Linux keyring support is protected by CONFIG_KEYUTILS. >> > Use CONFIG_SECRET_KEYRING. >> > >> > Signed-off-by: Juan Quintela <quintela@redhat.com> >> > >> > --- >> > >> > Previous version of this patch changed the meson build rules. >> > Daniel told me that the proper fix was to change the #ifdef test. >> > --- >> > tests/unit/test-crypto-secret.c | 10 +++++----- >> > 1 file changed, 5 insertions(+), 5 deletions(-) >> >> This seems to cause failures in the CI: >> >> https://gitlab.com/thuth/qemu/-/jobs/3870672310#L1443 >> https://gitlab.com/thuth/qemu/-/jobs/3870672331#L2353 >> >> ../tests/unit/test-crypto-secret.c:29:10: fatal error: keyutils.h: No such file or directory >> 29 | #include <keyutils.h> >> | ^~~~~~~~~~~~ >> compilation terminated. > > Hmm, so we actually have to test for both #ifdefs then Yeap. I was trying to do something "clever": diff --git a/meson.build b/meson.build index 77d2ae87e4..01f3227d62 100644 --- a/meson.build +++ b/meson.build @@ -2309,6 +2309,7 @@ config_host_data.set('CONFIG_USBFS', have_linux_user and cc.compiles(''' int main(void) { return 0; }''')) have_keyring = get_option('keyring') \ + .require(keyutils.found(), error_message: 'keyring requires keyutils libraries') \ .require(targetos == 'linux', error_message: 'keyring is only available on Linux') \ .require(cc.compiles(''' #include <errno.h> (test-secret *)$ But it is only the test what requires CONFIG_KEYUTILS, crypto/secret_keyring.c don't needs it, so we need to do both ifdefs. > With regards, > Daniel
On Wed, Mar 01, 2023 at 12:00:58PM +0100, Juan Quintela wrote: > Linux keyring support is protected by CONFIG_KEYUTILS. > Use CONFIG_SECRET_KEYRING. > > Signed-off-by: Juan Quintela <quintela@redhat.com> > > --- > > Previous version of this patch changed the meson build rules. > Daniel told me that the proper fix was to change the #ifdef test. > --- > tests/unit/test-crypto-secret.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
© 2016 - 2024 Red Hat, Inc.