Missing deps discovered in per-recipe builds
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
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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
Re: [PATCH 03/10] xorg-gsml-doctools: add missing dependency on util-macros
In reply to Martin JansaQuoted 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
Signed-off-by Martin Jansa <[email protected]>--- 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@@ -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]
Re: [PATCH 02/10] ruby: add missing dependency on ruby-native
In reply to Martin JansaQuoted 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
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
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@@ -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]