Hi,
Compiling Bro 2.4 with CAF 0.13.2 works fine. However, after updating to CAF 0.14.0, Bro fails to compile with error message:
Scanning dependencies of target broker
make[3]: Leaving directory /usr/src/setup/bro/bro-2.4/build' make[3]: Entering directory
/usr/src/setup/bro/bro-2.4/build’
[ 5%] Building CXX object aux/broker/CMakeFiles/broker.dir/src/address.cc.o
[ 5%] Building CXX object aux/broker/CMakeFiles/broker.dir/src/broker.cc.o
In file included from /usr/src/setup/bro/bro-2.4/aux/broker/src/broker.cc:9:0:
/usr/src/setup/bro/bro-2.4/aux/broker/src/store/result_type_info.hh:5:53: fatal error: caf/detail/abstract_uniform_type_info.hpp: No such file or directory
#include <caf/detail/abstract_uniform_type_info.hpp>
^
compilation terminated.
make[3]: *** [aux/broker/CMakeFiles/broker.dir/src/broker.cc.o] Error 1
From the build, I can see this:
– Found Libcaf: /usr/local/lib/libcaf_core.so;/usr/local/lib/libcaf_io.so
– Found CAF version: 0.14.0
The path of the file “abstract_uniform_type_info.hpp” in CAF 0.14 is:
ls -l /usr/local/include/caf/abstract_uniform_type_info.hpp
-rw-r–r-- 1 root root 3600 Jul 10 05:15 /usr/local/include/caf/abstract_uniform_type_info.hpp
However, the path of the same file in CAF 0.13.2 is:
/usr/local/include/caf/detail/abstract_uniform_type_info.hpp
The directory “detail” is dropped in CAF 0.14.0
I tried configuring Bro again, this time adding --with-libcaf, but the same error persisted. Since the paths seemed different, I made changes to Bro code to look at the new path. This did not work. I also tried moving “abstract_uniform_type_info.hpp” inside “detail” to mimic CAF 0.13.2, and that also did not work. In both cases 1) code change, and 2) directory change, I ended up with the same error(s):
In file included from /usr/src/setup/bro/bro-2.4/aux/broker/src/broker.cc:11:0:
/usr/src/setup/bro/bro-2.4/aux/broker/src/data_type_info.hh:14:70: error: expected template-name before ‘<’ token
class data_type_info : public caf::detail::abstract_uniform_type_info {
^
/usr/src/setup/bro/bro-2.4/aux/broker/src/data_type_info.hh:14:70: error: expected ‘{’ before ‘<’ token
/usr/src/setup/bro/bro-2.4/aux/broker/src/data_type_info.hh:14:70: error: expected unqualified-id before ‘<’ token
/usr/src/setup/bro/bro-2.4/aux/broker/src/broker.cc:178:2: error: expected ‘}’ at end of input
}
^
make[3]: *** [aux/broker/CMakeFiles/broker.dir/src/broker.cc.o] Error 1
make[3]: Leaving directory /usr/src/setup/bro/bro-2.4/build' make[2]: *** [aux/broker/CMakeFiles/broker.dir/all] Error 2 make[2]: Leaving directory
/usr/src/setup/bro/bro-2.4/build’
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/setup/bro/bro-2.4/build’
make: *** [all] Error 2
Actor Framework was configured with:
sudo ./configure --no-examples --no-unit-tests --no-qt-examples --no-protobuf-examples
Bro was configured with:
sudo ./configure --with-pcap=/usr/local/lib --enable-c++11 --enable-broker
and GCC version is
$ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
I thought of checking with the list if anyone faced the same issue, or whether I should contact the Actor Framework maintainers.
Thanks.
MP