Skip to contentSkip to conversation

Missing deps discovered in per-recipe builds

PATCH In review Martin Jansa 2 participants 14 messages Jul 5, 2013

lore
Share & tools
lore
#0 lore raw

cover Missing deps discovered in per-recipe builds

I was using simple script to build each component alone:

#!/bin/bash

rm -rf tmp-eglibc/abi_version tmp-eglibc/buildstats tmp-eglibc/cache tmp-eglibc/deploy tmp-eglibc/log tmp-eglibc/pkgdata pseudodone tmp-eglibc/saved_tmpdir tmp-eglibc/sstate-control tmp-eglibc/stamps tmp-eglibc/sysroots tmp-eglibc/work-shared tmp-eglibc/work/* rm -rf log.*

ls -d buildhistory/packages/*/* | xargs -n 1 basename | sort -u > component.list
ncomponents=cat component.list | wc -l
i=1
for component in cat component.list; do
echo "Building component: ${component} ($i/$ncomponents)"
bitbake -c cleansstate ${component} | tee log.${component};
bitbake ${component} | tee -a log.${component};
rm -rf tmp-eglibc/abi_version tmp-eglibc/buildstats tmp-eglibc/cache tmp-eglibc/deploy tmp-eglibc/log tmp-eglibc/pkgdata pseudodone tmp-eglibc/saved_tmpdir tmp-eglibc/sstate-control tmp-eglibc/stamps tmp-eglibc/sysroots tmp-eglibc/work-shared tmp-eglibc/work/* i=expr $i + 1
done
grep "NOTE: Tasks Summary: Attempted.*failed.$" log.*

That should cover missing mandatory dependencies.
Comparing depends.dot files in buildhistory between incremental build and this per-component build should detect at least some autodetected dependencies. In per-component builds it can find only libraries already included in dependency tree, so dependencies lost in buildhistory aren't deterministic. Even better would be to run per-component build once after building world without removing tmp-eglibc, that will allow components to autodetect all possible libraries and then run another per-component build with removing tmp-eglibc which allows to detect libraries from dependency-tree.

The following changes since commit 46354a697c18a64c5836159adf8dbd92e6547e85:

vsftpd: add missing dependency on openssl (2013-07-02 14:39:17 -0400)

are available in the git repository at:

git://git.openembedded.org/meta-openembedded-contrib jansa/deps
http://cgit.openembedded.org/cgit.cgi/meta-openembedded-contrib/log/?h=jansa/deps

Martin Jansa (10):
f2fs-tools: add util-linux dependency
ruby: add missing dependency on ruby-native
xorg-gsml-doctools: add missing dependency on util-macros
cpufrequtils: inherit gettext
cryptsetup: add missing dependency on libgcrypt
gsoap: add missing dependency on zlib
libspatialite: add missing dependency on sqlite3
wbxml2: add missing dependency on expat
fbida: define -I when checking jpeg version
iso-codes: add missing dependency on gettext-native

 meta-oe/recipes-core/f2fs-tools/f2fs-tools_1.1.0.bb         | 3 +++
 meta-oe/recipes-graphics/fbida/fbida_2.09.bb                | 2 +-
 meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb | 2 ++
 meta-oe/recipes-navigation/libspatialite/libspatialite.inc  | 2 +-
 meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb    | 2 ++
 meta-oe/recipes-support/cryptsetup/cryptsetup_1.6.1.bb      | 2 +-
 meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb               | 2 +-
 meta-oe/recipes-support/iso-codes/iso-codes_1.4.bb          | 4 ++++
 meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb           | 2 ++
 meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb          | 2 +-
 10 files changed, 18 insertions(+), 5 deletions(-)
Signature · 1 line
1.8.2.1
#1 lore raw

PATCH 1/10 f2fs-tools: add util-linux dependency

---
 meta-oe/recipes-core/f2fs-tools/f2fs-tools_1.1.0.bb | 3 +++
 1 file changed, 3 insertions(+)
meta-oe/recipes-core/f2fs-tools/f2fs-tools_1.1.0.bb +3 -0
index e5b5439..7755a7f 100644
@@ -4,6 +4,9 @@ HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=15667d9b3cb737b57471c148b7c50734"
 
+# to provide libuuid
+DEPENDS = "util-linux"
+
 SRCREV = "da59f6146c37e727bb83ae4922ca56d42958e61c"
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git;protocol=git"
 S = "${WORKDIR}/git"
Signature · 1 line
1.8.2.1
#2 lore raw

PATCH 2/10 ruby: add missing dependency on ruby-native

* without ruby available on host it fails:

  | NOTE: make LIBRUBYARG=-lruby-static
  |       CC = i586-starfish-linux-gcc  -m32 -march=i586 --sysroot=/OE/sysroots/qemux86
  |       LD = i586-starfish-linux-ld --sysroot=/OE/sysroots/qemux86
  |       LDSHARED = i586-starfish-linux-gcc  -m32 -march=i586 --sysroot=/OE/sysroots/qemux86 -shared
  |       CFLAGS = -O2 -pipe -g -feliminate-unused-debug-types -fPIC
  |       XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
  |       CPPFLAGS =   -I. -I.ext/include/i386-linux -I./include -I.
  |       DLDFLAGS = -Wl,-soname,libruby.so.1.9
  |       SOLIBS = -lpthread -lrt -ldl -lcrypt -lm
  | executable host ruby is required. use --with-baseruby option.
  | make: *** [.rbconfig.time] Error 1
---
 meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb +1 -1
index 7c5be36..868d0ff 100644
@@ -1,7 +1,7 @@
 require ruby.inc
 PR = "${INC_PR}.0"
 
-DEPENDS += "libyaml"
+DEPENDS += "libyaml ruby-native"
 
 SRC_URI += "\
     file://0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch \
Signature · 1 line
1.8.2.1
#5 lore raw

PATCH 3/10 xorg-gsml-doctools: add missing dependency on util-macros

In reply to Martin Jansa

* fails without:
| configure.ac:32: error: must install xorg-macros 1.8 or later before running autoconf/autogen

---
 meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb | 2 ++
 1 file changed, 2 insertions(+)
meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb +2 -0
index 502723c..80f1f00 100644
@@ -2,6 +2,8 @@ require xorg-doc-common.inc
 PE = "1"
 PR = "${INC_PR}.0"
 
+DEPENDS += "util-macros"
+
 LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449"
 
 SRC_URI[md5sum] = "2588efb3f49f7fc6ecf41ce42e0b2e5e"
Signature · 1 line
1.8.2.1
#7 lore raw

PATCH 4/10 cpufrequtils: inherit gettext

In reply to Martin Jansa

* build without gettext-native fails with:
| Building ccdv
| /bin/sh: 1: xgettext: not found

---
 meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb | 2 ++
 1 file changed, 2 insertions(+)
meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb +2 -0
index bd631af..e74fa44 100644
@@ -1,5 +1,7 @@
 DESCRIPTION = "To make access to the Linux kernel cpufreq subsystem easier for users and cpufreq userspace tools, a cpufrequtils package was created"
 
+inherit gettext
+
 DEPENDS = "libtool-cross"
 
 LICENSE = "GPLv2"
Signature · 1 line
1.8.2.1
#8 lore raw

PATCH 5/10 cryptsetup: add missing dependency on libgcrypt

In reply to Martin Jansa

* there is PACKAGECONFIG for libgcrypt, but do_configure fails without macro staged by libgcrypt:
configure.ac:122: error: possibly undefined macro: AM_PATH_LIBGCRYPT

---
 meta-oe/recipes-support/cryptsetup/cryptsetup_1.6.1.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta-oe/recipes-support/cryptsetup/cryptsetup_1.6.1.bb +1 -1
index 17ac2ad..95f7e8d 100644
@@ -9,7 +9,7 @@ SECTION = "console"
 LICENSE = "GPL-2.0-with-OpenSSL-exception"
 LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
 
-DEPENDS = "util-linux lvm2 popt"
+DEPENDS = "util-linux lvm2 popt libgcrypt"
 
 SRC_URI = "http://cryptsetup.googlecode.com/files/cryptsetup-${PV}.tar.bz2"
 SRC_URI[md5sum] = "f374d11e3b0e7ca0f805756fd02e34ff"
Signature · 1 line
1.8.2.1
#9 lore raw

PATCH 6/10 gsoap: add missing dependency on zlib

In reply to Martin Jansa

* do_compile fails without:

| i586-oe-linux-g++  -m32 -march=i586 --sysroot=/OE/sysroots/qemux86  -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden -L. -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o wsdl2h wsdl2h-wsdl2h.o wsdl2h-wsdl.o wsdl2h-schema.o wsdl2h-types.o wsdl2h-service.o wsdl2h-soap.o wsdl2h-mime.o wsdl2h-wsp.o wsdl2h-wsdlC.o ../../gsoap/libgsoapssl++.a -lssl -lcrypto -lz
| /OE/sysroots/x86_64-linux/usr/libexec/i586-oe-linux/gcc/i586-oe-linux/4.7.2/ld: cannot find -lz
| collect2: error: ld returned 1 exit status
---
 meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb +1 -1
index ba8b619..b85db05 100644
@@ -1,6 +1,6 @@
 require gsoap_${PV}.inc
 
-DEPENDS = "gsoap-native openssl"
+DEPENDS = "gsoap-native openssl zlib"
 
 do_install_append() {
     install -d ${D}${libdir}
Signature · 1 line
1.8.2.1
#10 lore raw

PATCH 7/10 libspatialite: add missing dependency on sqlite3

In reply to Martin Jansa

* do_configure fails without:
| checking for sqlite3.h... no
| configure: error: cannot find sqlite3.h, bailing out

---
 meta-oe/recipes-navigation/libspatialite/libspatialite.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta-oe/recipes-navigation/libspatialite/libspatialite.inc +1 -1
index f51b3a5..c8d7ec1 100644
@@ -1,7 +1,7 @@
 DESCRIPTION = "Library extending the SQLite core to support fully fledged Spatial SQL capabilities"
 HOMEPAGE = "https://www.gaia-gis.it/fossil/libspatialite/"
 SECTION = "libs"
-DEPENDS = "proj geos"
+DEPENDS = "proj geos sqlite3"
 
 INC_PR = "r0"
 
Signature · 1 line
1.8.2.1
#11 lore raw

PATCH 8/10 wbxml2: add missing dependency on expat

In reply to Martin Jansa

* do_configure fails without it:
| -- Could NOT find Expat

---
 meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb | 2 ++
 1 file changed, 2 insertions(+)
meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb +2 -0
index c87e477..bca305f 100644
@@ -4,6 +4,8 @@ SECTION = "libs"
 LICENSE = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c1128ee5341ccd5927d8bafe4b6266e1"
 
+DEPENDS = "expat"
+
 SRC_URI = "${SOURCEFORGE_MIRROR}/libwbxml/libwbxml-${PV}.tar.gz"
 
 SRC_URI[md5sum] = "f5031e9f730ffd9dc6a2d1ded585e1d1"
Signature · 1 line
1.8.2.1
#12 lore raw

PATCH 9/10 fbida: define -I when checking jpeg version

In reply to Martin Jansa

* echo JPEG_LIB_VERSION | i586-starfish-linux-cpp -include jpeglib.h | tail -n 1

---
 meta-oe/recipes-graphics/fbida/fbida_2.09.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta-oe/recipes-graphics/fbida/fbida_2.09.bb +1 -1
index 02ea57f..aa4c1ca 100644
@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
 EXTRA_OEMAKE = "STRIP="
 
 do_compile() {
-    sed -i -e 's: cpp: ${TARGET_PREFIX}cpp:g' GNUmakefile
+    sed -i -e 's: cpp: ${TARGET_PREFIX}cpp -I{STAGING_INCDIR}:g' GNUmakefile
     oe_runmake
 }
 
Signature · 1 line
1.8.2.1
#13 lore raw

PATCH 10/10 iso-codes: add missing dependency on gettext-native

In reply to Martin Jansa

* msgfmt is called in do_install and both MSGFMT variables are empty without gettext-native detected in configure %.mo: %.po

        $(MSGFMT) $(MSGFMT_FLAGS) -o $@ $<
---
 meta-oe/recipes-support/iso-codes/iso-codes_1.4.bb | 4 ++++
 1 file changed, 4 insertions(+)
meta-oe/recipes-support/iso-codes/iso-codes_1.4.bb +4 -0
index 9502923..ed89a12 100644
@@ -8,6 +8,10 @@ SRC_URI = "ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/iso-codes-${PV}
 SRC_URI[md5sum] = "4073466e57df23d39721513219e4f7ae"
 SRC_URI[sha256sum] = "0a7cf177c25b3f0d77c60a5f1149aab9e03ba70f69bac70138a867efe19a1d97"
 
+# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which
+# are inhibited by allarch
+DEPENDS = "gettext-native"
+
 inherit autotools allarch
 
 FILES_${PN} += "${datadir}/xml/"
Signature · 1 line
1.8.2.1
#6 lore raw

Re: [PATCH 03/10] xorg-gsml-doctools: add missing dependency on util-macros

In reply to Martin Jansa
Quoted 3 lines · Martin Jansa

* fails without:
| configure.ac:32: error: must install xorg-macros 1.8 or later before running autoconf/autogen

subject typo already fixed in branch

Quoted 22 lines
---
 meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb | 2 ++
 1 file changed, 2 insertions(+)
meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb +2 -0
index 502723c..80f1f00 100644
@@ -2,6 +2,8 @@ require xorg-doc-common.inc
 PE = "1"
 PR = "${INC_PR}.0"
 
+DEPENDS += "util-macros"
+
 LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449"
 
 SRC_URI[md5sum] = "2588efb3f49f7fc6ecf41ce42e0b2e5e"
Signature · 1 line
1.8.2.1
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#3 lore raw

Re: [PATCH 02/10] ruby: add missing dependency on ruby-native

In reply to Martin Jansa
Quoted 21 lines · Martin Jansa

* without ruby available on host it fails:

  | NOTE: make LIBRUBYARG=-lruby-static
  |       CC = i586-starfish-linux-gcc  -m32 -march=i586 --sysroot=/OE/sysroots/qemux86
  |       LD = i586-starfish-linux-ld --sysroot=/OE/sysroots/qemux86
  |       LDSHARED = i586-starfish-linux-gcc  -m32 -march=i586 --sysroot=/OE/sysroots/qemux86 -shared
  |       CFLAGS = -O2 -pipe -g -feliminate-unused-debug-types -fPIC
  |       XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
  |       CPPFLAGS =   -I. -I.ext/include/i386-linux -I./include -I.
  |       DLDFLAGS = -Wl,-soname,libruby.so.1.9
  |       SOLIBS = -lpthread -lrt -ldl -lcrypt -lm
  | executable host ruby is required. use --with-baseruby option.
  | make: *** [.rbconfig.time] Error 1
---
 meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb +0 -0
index 7c5be36..868d0ff 100644

meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb line 4

Quoted 5 lines
meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb +1 -1
@@ -1,7 +1,7 @@
 require ruby.inc
 PR = "${INC_PR}.0"
 
-DEPENDS += "libyaml"
+DEPENDS += "libyaml ruby-native"

Uhm,

after compiling ruby myself it has some more depends like ssl or gdbm or do you need only a minimal version?

Bye Henning

#4 lore raw

Re: [PATCH 02/10] ruby: add missing dependency on ruby-native

Quoted 25 lines · Henning Heinold
Quoted 24 lines · Martin Jansa

* without ruby available on host it fails:

  | NOTE: make LIBRUBYARG=-lruby-static
  |       CC = i586-starfish-linux-gcc  -m32 -march=i586 --sysroot=/OE/sysroots/qemux86
  |       LD = i586-starfish-linux-ld --sysroot=/OE/sysroots/qemux86
  |       LDSHARED = i586-starfish-linux-gcc  -m32 -march=i586 --sysroot=/OE/sysroots/qemux86 -shared
  |       CFLAGS = -O2 -pipe -g -feliminate-unused-debug-types -fPIC
  |       XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
  |       CPPFLAGS =   -I. -I.ext/include/i386-linux -I./include -I.
  |       DLDFLAGS = -Wl,-soname,libruby.so.1.9
  |       SOLIBS = -lpthread -lrt -ldl -lcrypt -lm
  | executable host ruby is required. use --with-baseruby option.
  | make: *** [.rbconfig.time] Error 1
---
 meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb +0 -0
index 7c5be36..868d0ff 100644
@@ -1,7 +1,7 @@
 require ruby.inc
 PR = "${INC_PR}.0"
 
Quoted 6 lines

meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb line 4

Quoted 2 lines
meta-ruby/recipes-devtools/ruby/ruby_1.9.3-p429.bb +1 -1
-DEPENDS += "libyaml"
+DEPENDS += "libyaml ruby-native"

Uhm,

after compiling ruby myself it has some more depends like ssl or gdbm or do you need only a minimal version?

I don't use target version at all, I was just fixing errors from missing mandatory dependencies.

Feel free to add PACKAGECONFIGs for optional deps.

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]