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 - 2026 Red Hat, Inc.