Hi! 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 directory, among other other files exist:
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... -ldlconfigure: 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
make[1]: *** [storage/BerkeleyDBStore.o] Error 1
make[1]: 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? Thanks in advance.
Best regards,
Luís Borlido