Message ID | 20190911084039.16983-1-post@lespocky.de |
---|---|
State | Accepted |
Headers | show |
Series | package: qemu: Make dependency to nettle explicit | expand |
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
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
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
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