[OE-core] [PATCHv3] iputils: add PACKAGECONFIG for libidn and disable it by default

Martin Jansa martin.jansa at gmail.com
Sat Mar 17 11:26:07 UTC 2018


* it got enabled by default, but without the dependency on libidn in:
  commit 5997981fa2c22609a88b8cbb595dbf7758b2f7c2
  Author: Alexander Kanavin <alexander.kanavin at linux.intel.com>
  AuthorDate: Thu Feb 1 20:02:08 2018 +0200
  Subject: iputils: update to 20161105

* https://github.com/iputils/iputils/blob/master/RELNOTES.old
  mentiones that IDN was enabled by default in:
  [s20160308] and surprisingly the same in [s20150815]
  but there are no release notes for s20151218 version we were using until
  now, don't know how it really relates to [s20150815].

* but there are some issues with libidn as described in:
  https://github.com/iputils/iputils/commit/f3a461603ef4fb7512ade3bdb73fe1824e294547
  so disable it by default.

* fails with:
  | In file included from ping_common.c:1:0:
  | ping.h:39:10: fatal error: idna.h: No such file or directory
  |  #include <idna.h>
  |           ^~~~~~~~

* Easiest way to reproduce this failure is to remove libidn from gnutls
  PACKAGECONFIG or to use gnutls which doesn't have libidn PACKAGECONFIG
  at all (like the one in meta-gplv2).

* First it leads to following QA issue:
  http://errors.yoctoproject.org/Errors/Build/53212/
  ERROR: iputils-s20161105-r0 do_package_qa: QA Issue: iputils-ping rdepends on libidn, but it isn't a build dependency, missing libidn in DEPENDS or PACKAGECONFIG? [build-deps]
  ERROR: iputils-s20161105-r0 do_package_qa: QA Issue: iputils-traceroute6 rdepends on libidn, but it isn't a build dependency, missing libidn in DEPENDS or PACKAGECONFIG? [build-deps]
  ERROR: iputils-s20161105-r0 do_package_qa: QA run found fatal errors.
  Please consider fixing them.
  ERROR: iputils-s20161105-r0 do_package_qa: Function failed:
  do_package_qa
  ERROR: Logfile of failure stored in: /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/iputils/s20161105-r0/temp/log.do_package_qa.7627
  ERROR: Task (/OE/build/oe-core/openembedded-core/meta/recipes-extended/iputils/iputils_s20161105.bb:do_package_qa) failed with exit code '1'

* But if you cleansstate iputils as well (after removing libidn from
  gnutls PACKAGECONFIG) to empty iputils RSS, then you get the error about
  missing idna.h:
  http://errors.yoctoproject.org/Errors/Build/53213/

* Adding the libidn dependency explicitly in iputils recipe fixes the
  issue.

Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
---
 meta/recipes-extended/iputils/iputils_s20161105.bb | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-extended/iputils/iputils_s20161105.bb b/meta/recipes-extended/iputils/iputils_s20161105.bb
index ad7dbc4d4a..0125739b03 100644
--- a/meta/recipes-extended/iputils/iputils_s20161105.bb
+++ b/meta/recipes-extended/iputils/iputils_s20161105.bb
@@ -23,8 +23,11 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>s\d+)"
 
 EXTRA_OEMAKE = "-e MAKEFLAGS="
 
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[libidn] = "USE_IDN=yes,USE_IDN=no,libidn"
+
 do_compile () {
-	oe_runmake 'CC=${CC} -D_GNU_SOURCE' VPATH="${STAGING_LIBDIR}:${STAGING_DIR_HOST}/${base_libdir}" all
+	oe_runmake 'CC=${CC} -D_GNU_SOURCE' VPATH="${STAGING_LIBDIR}:${STAGING_DIR_HOST}/${base_libdir}" ${PACKAGECONFIG_CONFARGS} all
 }
 
 do_install () {
-- 
2.15.1




More information about the Openembedded-core mailing list