package: qemu: Make dependency to nettle explicit
diff mbox series

Message ID 20190911084039.16983-1-post@lespocky.de
State Accepted
Headers show
Series
  • package: qemu: Make dependency to nettle explicit
Related show

Commit Message

Alexander Dahl Sept. 11, 2019, 8:40 a.m. UTC
For the fli4l router distribution we had problems building 'qemu', some
builds failed complaining when checking dynamic linking of the package:

>>> qemu 2.12.1 Error: Library libnettle.so.6 referenced by usr/libexec/qemu-bridge-helper belongs to package nettle which is not a dependency of qemu

https://web.nettworks.org/ci/job/fli4l/job/buildroot/job/4.0/job/trunk-x86_64/495/console

Making the dependency explicit, by calling ./configure with
--enable-nettle or --disable-nettle depending on the activation status
of package nettle, solves the issue.

For fli4l the fix is still based on buildroot 2018.02.x, but the problem
is the same in recent version of buildroot, and the fix works for master
as well.

Cc: Florian Wolters <florian@florian-wolters.de>
Signed-off-by: Alexander Dahl <post@lespocky.de>
---
 package/qemu/qemu.mk | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Thomas Petazzoni Sept. 12, 2019, 6:33 a.m. UTC | #1
Hello Alexander,

On Wed, 11 Sep 2019 10:40:39 +0200
Alexander Dahl <post@lespocky.de> wrote:

> For the fli4l router distribution we had problems building 'qemu', some
> builds failed complaining when checking dynamic linking of the package:
> 
> >>> qemu 2.12.1 Error: Library libnettle.so.6 referenced by usr/libexec/qemu-bridge-helper belongs to package nettle which is not a dependency of qemu  
> 
> https://web.nettworks.org/ci/job/fli4l/job/buildroot/job/4.0/job/trunk-x86_64/495/console
> 
> Making the dependency explicit, by calling ./configure with
> --enable-nettle or --disable-nettle depending on the activation status
> of package nettle, solves the issue.
> 
> For fli4l the fix is still based on buildroot 2018.02.x, but the problem
> is the same in recent version of buildroot, and the fix works for master
> as well.
> 
> Cc: Florian Wolters <florian@florian-wolters.de>
> Signed-off-by: Alexander Dahl <post@lespocky.de>

Thanks for the patch, which looks good. I have one question though:
what prints the message "Error: Library libnettle.so.6 referenced by
usr/libexec/qemu-bridge-helper belongs to package nettle which is not a
dependency of qemu". It seems like a check from Buildroot, but I can't
find it in our tree, and I don't remember we had such a check. Maybe
it's just because it's early and my eyes are not well opened and I'm
missing something obvious.

Thanks,

Thomas
Alexander Dahl Sept. 12, 2019, 7:45 a.m. UTC | #2
Hello Thomas,

On Thu, Sep 12, 2019 at 08:33:38AM +0200, Thomas Petazzoni wrote:
> On Wed, 11 Sep 2019 10:40:39 +0200
> Alexander Dahl <post@lespocky.de> wrote:
> 
> > For the fli4l router distribution we had problems building 'qemu', some
> > builds failed complaining when checking dynamic linking of the package:
> > 
> > >>> qemu 2.12.1 Error: Library libnettle.so.6 referenced by usr/libexec/qemu-bridge-helper belongs to package nettle which is not a dependency of qemu  
> > 
> > https://web.nettworks.org/ci/job/fli4l/job/buildroot/job/4.0/job/trunk-x86_64/495/console
> > 
> > Making the dependency explicit, by calling ./configure with
> > --enable-nettle or --disable-nettle depending on the activation status
> > of package nettle, solves the issue.
> > 
> > For fli4l the fix is still based on buildroot 2018.02.x, but the problem
> > is the same in recent version of buildroot, and the fix works for master
> > as well.
> > 
> > Cc: Florian Wolters <florian@florian-wolters.de>
> > Signed-off-by: Alexander Dahl <post@lespocky.de>
> 
> Thanks for the patch, which looks good. I have one question though:
> what prints the message "Error: Library libnettle.so.6 referenced by
> usr/libexec/qemu-bridge-helper belongs to package nettle which is not a
> dependency of qemu". It seems like a check from Buildroot, but I can't
> find it in our tree, and I don't remember we had such a check. Maybe
> it's just because it's early and my eyes are not well opened and I'm
> missing something obvious.

I'm afraid this is a change in the fli4l project on top of buildroot,
which is not upstream. 

I'm not familiar with all the changes and extensions Christoph made,
but the message comes from the file 'package/pkg-utils.mk' which is
part of the modified buildroot embedded in fli4l (currently 2018.2.x).
Maybe he wants to explain more? I set him in Cc.

Our repo browser is currently offline, so I can not point you to the
source. Sorry. You may checkout that stuff directly from Subversion if
you want to have a look, but as I said, it's modified:

https://repo.nettworks.org/svn/fli4l/branches/4.0/trunk/src/packages/src/src/fbr/buildroot/

Greets
Alex
Thomas Petazzoni Sept. 15, 2019, 1:22 p.m. UTC | #3
Hello Alexander,

On Wed, 11 Sep 2019 10:40:39 +0200
Alexander Dahl <post@lespocky.de> wrote:

> For the fli4l router distribution we had problems building 'qemu', some
> builds failed complaining when checking dynamic linking of the package:
> 
> >>> qemu 2.12.1 Error: Library libnettle.so.6 referenced by usr/libexec/qemu-bridge-helper belongs to package nettle which is not a dependency of qemu  
> 
> https://web.nettworks.org/ci/job/fli4l/job/buildroot/job/4.0/job/trunk-x86_64/495/console
> 
> Making the dependency explicit, by calling ./configure with
> --enable-nettle or --disable-nettle depending on the activation status
> of package nettle, solves the issue.
> 
> For fli4l the fix is still based on buildroot 2018.02.x, but the problem
> is the same in recent version of buildroot, and the fix works for master
> as well.
> 
> Cc: Florian Wolters <florian@florian-wolters.de>
> Signed-off-by: Alexander Dahl <post@lespocky.de>
> ---
>  package/qemu/qemu.mk | 7 +++++++
>  1 file changed, 7 insertions(+)

I have reworked the commit log, because it didn't make much sense in
the context of upstream Buildroot. Indeed, in upstream Buildroot,
missing such optional dependencies does not cause any build error.

BTW, thanks for pointing me to the additional tooling that the fli4l
project has added. In the context of upstream Buildroot, I think our
goal is rather to move towards per-package target/host folders, which
make sure only the explicitly listed dependencies are visible by each
package.

Best regards,

Thomas

Patch
diff mbox series

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 05d16560f7..1d3759a850 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -97,6 +97,13 @@  else
 QEMU_OPTS += --disable-libssh2
 endif
 
+ifeq ($(BR2_PACKAGE_NETTLE),y)
+QEMU_OPTS += --enable-nettle
+QEMU_DEPENDENCIES += nettle
+else
+QEMU_OPTS += --disable-nettle
+endif
+
 # Override CPP, as it expects to be able to call it like it'd
 # call the compiler.
 define QEMU_CONFIGURE_CMDS