I'm trying to build the DTN using OpenEmbedded. Unfortunately, DTN uses Tcl 8.3 or 8.4 and DB 4.2, 4.3, 4.4 or 4.5, but bitbake is using Tcl 8.5 and DB 5.0.
In the OpenEmbedded recipes di开发者_运维技巧rectory, among other other files there exists:
db/
db/db_4.3.29.bb db/db4-native.inc db/db3-native_3.2.9.bb db/db_5.0.21.bb db/db3-3.2.9 db/db4.inc db/files db/db-native_4.3.29.bb db/db3_3.2.9.bb db/db-native_5.0.21.bb db/db5.inc tcltk/ tcltk/tk tcltk/tk_8.4.19.bb tcltk/tcl-native_8.4.19.bb tcltk/tk-8.5.8 tcltk/tk-native_8.4.19.bb tcltk/tk_8.5.8.bb tcltk/files tcltk/tcl tcltk/tcl-8.5.8 tcltk/tcl_8.5.8.bb tcltk/tcl_8.4.19.bb `
At some point when the bitbake was configuring the dtn, the following happens:
| checking for library containing pow... -lm
| checking for library containing dlopen... -ldl | | configure: checking for tcl installation (version 8.4) | checking for tcl.h (version 8.4) in /opt/OpenEmbedded/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi usr/include... no | | configure: checking for tcl installation (version 8.3) | checking for tcl.h (version 8.3) in /opt/OpenEmbedded/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include... no | configure: error: can't find usable tcl.h NOTE: Task failed: /opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/temp/log.do_configure.27117 ERROR: TaskFailed event exception, aborting ERROR: Build of /opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb do_configure failed ERROR: Task 11 (/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb, do_configure) failed NOTE: Tasks Summary: Attempted 897 tasks of which 883 didn't need to be rerun and 1 failed. ERROR: '/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb' failed `
To solve this I went to the dtn_2.5.0.bb and added --with-tclver=8.5.
The same thing happened with DB and to solve it again I did the same thing.After a while, when bitbake was compiling the following happened:
| In file included from storage/BerkeleyDBStore.cc:35:
| storage/BerkeleyDBStore.h:31:2: error: #error "must use Berkeley DB major version 4" | In file included from /opt/OpenEmbedded/build/tmp/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../../ arm-angstrom-linux-gnueabi/include/c++/4.3.3/ext/hash_set:64, | from storage/../util/StringUtils.h:39, | from storage/DurableStore.h:35, | from storage/BerkeleyDBStore.h:39, | from storage/BerkeleyDBStore.cc:35: | /opt/OpenEmbedded/build/tmp/sysroots/i686-linux/usr/armv7a/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../../arm-angstrom-linux-gnueabi/include/c++/4.3.3/backward/backward_warning.h:33:2: warning: warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. | storage/BerkeleyDBStore.cc: In member function 'virtual int oasys::BerkeleyDBStore::init(const oasys::StorageConfig&)': | storage/BerkeleyDBStore.cc:129: warning: invalid conversion from 'void ()(const char, char*)' to 'void ()(const DB_ENV, const char*, const char*)' | storage/BerkeleyDBStore.cc:187: error: 'DB_LOG_AUTOREMOVE' was not declared in this scope | make1: *** [storage/BerkeleyDBStore.o] Error 1 | make1: Leaving directory ``/opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/dtn-2.5.0/oasys' | make: * [oasys] Error 2 | FATAL: oe_runmake failed NOTE: Task failed: /opt/OpenEmbedded/build/tmp/work/armv7a-angstrom-linux-gnueabi/dtn-2.5.0-r5/temp/log.do_compile.5339 ERROR: TaskFailed event exception, aborting ERROR: Build of /opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb do_compile failed ERROR: Task 13 (/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb, do_compile) failed NOTE: Tasks Summary: Attempted 913 tasks of which 913 didn't need to be rerun and 1 failed. ERROR: '/opt/OpenEmbedded/openembedded/recipes/dtnrg/dtn_2.5.0.bb' failed `
So, is there any way to 'tell' bitbake or OpenEmbedded to use a version selected by me?
You specify versions of packages in the BOM.
精彩评论