Re: [PATCH v13 1/8] meson.build: Fix docker-test-build@alpine when including linux/errqueue.h

2022-05-16 Thread Daniel P . Berrangé
On Mon, May 16, 2022 at 01:51:43PM +0100, Dr. David Alan Gilbert wrote:
> * Daniel P. Berrangé (berra...@redhat.com) wrote:
> > On Mon, May 16, 2022 at 12:30:15PM +0100, Dr. David Alan Gilbert wrote:
> > > * Daniel P. Berrangé (berra...@redhat.com) wrote:
> > > > On Mon, May 16, 2022 at 12:13:16PM +0100, Dr. David Alan Gilbert wrote:
> > > > > * Leonardo Bras (leob...@redhat.com) wrote:
> > > > > > A build error happens in alpine CI when linux/errqueue.h is included
> > > > > > in io/channel-socket.c, due to redefining of 'struct 
> > > > > > __kernel_timespec':
> > > > > 
> > > > > OK, looks to be same mechanism as other meson tests.
> > > > 
> > > > > 
> > > > > Reviewed-by: Dr. David Alan Gilbert 
> > > > 
> > > > As of about an hour or so ago, this patch should not be required.
> > > > 
> > > >   https://gitlab.alpinelinux.org/alpine/aports/-/issues/13813
> > > 
> > > I'll take it anyway as protection against any other broken build envs.
> > 
> > Can you update the commit message at least then.
> 
> Sure, I've added:
> 
> [dgilbert: This has been fixed in Alpine issue 13813 and liburing]
> 
> > The root casue trigger for the bug is the OS uses a busybox
> 
> I guess you mean musl??

I don't think it is musl, its the configure shell script and it is
throwing an error from the 'mktemp' command

> > impl of mkdtemp, which isn't compat with the args liburing
> > configure was previously using. I doubt there are many such OS
> > around to be honest, as most will use coreutils.

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 :|




Re: [PATCH v13 1/8] meson.build: Fix docker-test-build@alpine when including linux/errqueue.h

2022-05-16 Thread Dr. David Alan Gilbert
* Daniel P. Berrangé (berra...@redhat.com) wrote:
> On Mon, May 16, 2022 at 12:30:15PM +0100, Dr. David Alan Gilbert wrote:
> > * Daniel P. Berrangé (berra...@redhat.com) wrote:
> > > On Mon, May 16, 2022 at 12:13:16PM +0100, Dr. David Alan Gilbert wrote:
> > > > * Leonardo Bras (leob...@redhat.com) wrote:
> > > > > A build error happens in alpine CI when linux/errqueue.h is included
> > > > > in io/channel-socket.c, due to redefining of 'struct 
> > > > > __kernel_timespec':
> > > > 
> > > > OK, looks to be same mechanism as other meson tests.
> > > 
> > > > 
> > > > Reviewed-by: Dr. David Alan Gilbert 
> > > 
> > > As of about an hour or so ago, this patch should not be required.
> > > 
> > >   https://gitlab.alpinelinux.org/alpine/aports/-/issues/13813
> > 
> > I'll take it anyway as protection against any other broken build envs.
> 
> Can you update the commit message at least then.

Sure, I've added:

[dgilbert: This has been fixed in Alpine issue 13813 and liburing]

> The root casue trigger for the bug is the OS uses a busybox

I guess you mean musl??

> impl of mkdtemp, which isn't compat with the args liburing
> configure was previously using. I doubt there are many such OS
> around to be honest, as most will use coreutils.
> 
> 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 :|
> 
-- 
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK




Re: [PATCH v13 1/8] meson.build: Fix docker-test-build@alpine when including linux/errqueue.h

2022-05-16 Thread Dr. David Alan Gilbert
* Daniel P. Berrangé (berra...@redhat.com) wrote:
> On Mon, May 16, 2022 at 12:13:16PM +0100, Dr. David Alan Gilbert wrote:
> > * Leonardo Bras (leob...@redhat.com) wrote:
> > > A build error happens in alpine CI when linux/errqueue.h is included
> > > in io/channel-socket.c, due to redefining of 'struct __kernel_timespec':
> > 
> > OK, looks to be same mechanism as other meson tests.
> 
> > 
> > Reviewed-by: Dr. David Alan Gilbert 
> 
> As of about an hour or so ago, this patch should not be required.
> 
>   https://gitlab.alpinelinux.org/alpine/aports/-/issues/13813

I'll take it anyway as protection against any other broken build envs.

Dave

> > 
> > > ===
> > > ninja: job failed: [...]
> > > In file included from /usr/include/linux/errqueue.h:6,
> > >  from ../io/channel-socket.c:29:
> > > /usr/include/linux/time_types.h:7:8: error: redefinition of 'struct 
> > > __kernel_timespec'
> > > 7 | struct __kernel_timespec {
> > >   |^
> > > In file included from /usr/include/liburing.h:19,
> > >  from /builds/user/qemu/include/block/aio.h:18,
> > >  from /builds/user/qemu/include/io/channel.h:26,
> > >  from /builds/user/qemu/include/io/channel-socket.h:24,
> > >  from ../io/channel-socket.c:24:
> > > /usr/include/liburing/compat.h:9:8: note: originally defined here
> > > 9 | struct __kernel_timespec {
> > >   |^
> > > ninja: subcommand failed
> > > ===
> > > 
> > > As above error message suggests, 'struct __kernel_timespec' was already
> > > defined by liburing/compat.h.
> > > 
> > > Fix alpine CI by adding test to disable liburing in configure step if a
> > > redefinition happens between linux/errqueue.h and liburing/compat.h.
> > > 
> > > Signed-off-by: Leonardo Bras 
> > > ---
> > >  meson.build | 11 +++
> > >  1 file changed, 11 insertions(+)
> > > 
> > > diff --git a/meson.build b/meson.build
> > > index 9b20dcd143..a996690c9b 100644
> > > --- a/meson.build
> > > +++ b/meson.build
> > > @@ -515,12 +515,23 @@ if not get_option('linux_aio').auto() or have_block
> > > required: get_option('linux_aio'),
> > > kwargs: static_kwargs)
> > >  endif
> > > +
> > > +linux_io_uring_test = '''
> > > +  #include 
> > > +  #include 
> > > +
> > > +  int main(void) { return 0; }'''
> > > +
> > >  linux_io_uring = not_found
> > >  if not get_option('linux_io_uring').auto() or have_block
> > >linux_io_uring = dependency('liburing', version: '>=0.3',
> > >required: get_option('linux_io_uring'),
> > >method: 'pkg-config', kwargs: 
> > > static_kwargs)
> > > +  if not cc.links(linux_io_uring_test)
> > > +linux_io_uring = not_found
> > > +  endif
> > >  endif
> > > +
> > >  libnfs = not_found
> > >  if not get_option('libnfs').auto() or have_block
> > >libnfs = dependency('libnfs', version: '>=1.9.3',
> > > -- 
> > > 2.36.1
> > > 
> > > 
> > -- 
> > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
> > 
> 
> 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 :|
> 
-- 
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK




Re: [PATCH v13 1/8] meson.build: Fix docker-test-build@alpine when including linux/errqueue.h

2022-05-16 Thread Daniel P . Berrangé
On Mon, May 16, 2022 at 12:13:16PM +0100, Dr. David Alan Gilbert wrote:
> * Leonardo Bras (leob...@redhat.com) wrote:
> > A build error happens in alpine CI when linux/errqueue.h is included
> > in io/channel-socket.c, due to redefining of 'struct __kernel_timespec':
> 
> OK, looks to be same mechanism as other meson tests.

> 
> Reviewed-by: Dr. David Alan Gilbert 

As of about an hour or so ago, this patch should not be required.

  https://gitlab.alpinelinux.org/alpine/aports/-/issues/13813

> 
> > ===
> > ninja: job failed: [...]
> > In file included from /usr/include/linux/errqueue.h:6,
> >  from ../io/channel-socket.c:29:
> > /usr/include/linux/time_types.h:7:8: error: redefinition of 'struct 
> > __kernel_timespec'
> > 7 | struct __kernel_timespec {
> >   |^
> > In file included from /usr/include/liburing.h:19,
> >  from /builds/user/qemu/include/block/aio.h:18,
> >  from /builds/user/qemu/include/io/channel.h:26,
> >  from /builds/user/qemu/include/io/channel-socket.h:24,
> >  from ../io/channel-socket.c:24:
> > /usr/include/liburing/compat.h:9:8: note: originally defined here
> > 9 | struct __kernel_timespec {
> >   |^
> > ninja: subcommand failed
> > ===
> > 
> > As above error message suggests, 'struct __kernel_timespec' was already
> > defined by liburing/compat.h.
> > 
> > Fix alpine CI by adding test to disable liburing in configure step if a
> > redefinition happens between linux/errqueue.h and liburing/compat.h.
> > 
> > Signed-off-by: Leonardo Bras 
> > ---
> >  meson.build | 11 +++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/meson.build b/meson.build
> > index 9b20dcd143..a996690c9b 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -515,12 +515,23 @@ if not get_option('linux_aio').auto() or have_block
> > required: get_option('linux_aio'),
> > kwargs: static_kwargs)
> >  endif
> > +
> > +linux_io_uring_test = '''
> > +  #include 
> > +  #include 
> > +
> > +  int main(void) { return 0; }'''
> > +
> >  linux_io_uring = not_found
> >  if not get_option('linux_io_uring').auto() or have_block
> >linux_io_uring = dependency('liburing', version: '>=0.3',
> >required: get_option('linux_io_uring'),
> >method: 'pkg-config', kwargs: static_kwargs)
> > +  if not cc.links(linux_io_uring_test)
> > +linux_io_uring = not_found
> > +  endif
> >  endif
> > +
> >  libnfs = not_found
> >  if not get_option('libnfs').auto() or have_block
> >libnfs = dependency('libnfs', version: '>=1.9.3',
> > -- 
> > 2.36.1
> > 
> > 
> -- 
> Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
> 

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 :|




Re: [PATCH v13 1/8] meson.build: Fix docker-test-build@alpine when including linux/errqueue.h

2022-05-16 Thread Daniel P . Berrangé
On Mon, May 16, 2022 at 12:30:15PM +0100, Dr. David Alan Gilbert wrote:
> * Daniel P. Berrangé (berra...@redhat.com) wrote:
> > On Mon, May 16, 2022 at 12:13:16PM +0100, Dr. David Alan Gilbert wrote:
> > > * Leonardo Bras (leob...@redhat.com) wrote:
> > > > A build error happens in alpine CI when linux/errqueue.h is included
> > > > in io/channel-socket.c, due to redefining of 'struct __kernel_timespec':
> > > 
> > > OK, looks to be same mechanism as other meson tests.
> > 
> > > 
> > > Reviewed-by: Dr. David Alan Gilbert 
> > 
> > As of about an hour or so ago, this patch should not be required.
> > 
> >   https://gitlab.alpinelinux.org/alpine/aports/-/issues/13813
> 
> I'll take it anyway as protection against any other broken build envs.

Can you update the commit message at least then.

The root casue trigger for the bug is the OS uses a busybox
impl of mkdtemp, which isn't compat with the args liburing
configure was previously using. I doubt there are many such OS
around to be honest, as most will use coreutils.

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 :|




Re: [PATCH v13 1/8] meson.build: Fix docker-test-build@alpine when including linux/errqueue.h

2022-05-16 Thread Dr. David Alan Gilbert
* Leonardo Bras (leob...@redhat.com) wrote:
> A build error happens in alpine CI when linux/errqueue.h is included
> in io/channel-socket.c, due to redefining of 'struct __kernel_timespec':

OK, looks to be same mechanism as other meson tests.

Reviewed-by: Dr. David Alan Gilbert 

> ===
> ninja: job failed: [...]
> In file included from /usr/include/linux/errqueue.h:6,
>  from ../io/channel-socket.c:29:
> /usr/include/linux/time_types.h:7:8: error: redefinition of 'struct 
> __kernel_timespec'
> 7 | struct __kernel_timespec {
>   |^
> In file included from /usr/include/liburing.h:19,
>  from /builds/user/qemu/include/block/aio.h:18,
>  from /builds/user/qemu/include/io/channel.h:26,
>  from /builds/user/qemu/include/io/channel-socket.h:24,
>  from ../io/channel-socket.c:24:
> /usr/include/liburing/compat.h:9:8: note: originally defined here
> 9 | struct __kernel_timespec {
>   |^
> ninja: subcommand failed
> ===
> 
> As above error message suggests, 'struct __kernel_timespec' was already
> defined by liburing/compat.h.
> 
> Fix alpine CI by adding test to disable liburing in configure step if a
> redefinition happens between linux/errqueue.h and liburing/compat.h.
> 
> Signed-off-by: Leonardo Bras 
> ---
>  meson.build | 11 +++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/meson.build b/meson.build
> index 9b20dcd143..a996690c9b 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -515,12 +515,23 @@ if not get_option('linux_aio').auto() or have_block
> required: get_option('linux_aio'),
> kwargs: static_kwargs)
>  endif
> +
> +linux_io_uring_test = '''
> +  #include 
> +  #include 
> +
> +  int main(void) { return 0; }'''
> +
>  linux_io_uring = not_found
>  if not get_option('linux_io_uring').auto() or have_block
>linux_io_uring = dependency('liburing', version: '>=0.3',
>required: get_option('linux_io_uring'),
>method: 'pkg-config', kwargs: static_kwargs)
> +  if not cc.links(linux_io_uring_test)
> +linux_io_uring = not_found
> +  endif
>  endif
> +
>  libnfs = not_found
>  if not get_option('libnfs').auto() or have_block
>libnfs = dependency('libnfs', version: '>=1.9.3',
> -- 
> 2.36.1
> 
> 
-- 
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK