Compile Zeek 3.1.4 under FreeBSD 12 host fails

Hi all,

When I try to update my Zeek 3.1.3 to 3.1.4, build fails:

Scanning dependencies of target broker-benchmark

[ 12%] Building CXX object aux/broker/tests/CMakeFiles/broker-benchmark.dir/benchmark/broker-benchmark.cc.o

[ 12%] Linking CXX executable …/bin/broker-benchmark

[ 12%] Built target broker-benchmark

Scanning dependencies of target broker-test

[ 12%] Building CXX object aux/broker/tests/CMakeFiles/broker-test.dir/cpp/backend.cc.o

[ 12%] Building CXX object aux/broker/tests/CMakeFiles/broker-test.dir/cpp/core.cc.o

In file included from /usr/local/src/zeek-3.1.4/aux/broker/tests/cpp/core.cc:7:

In file included from /usr/local/src/zeek-3.1.4/aux/broker/3rdparty/caf/libcaf_test/caf/test/io_dsl.hpp:26:

/usr/local/src/zeek-3.1.4/aux/broker/3rdparty/caf/libcaf_test/caf/test/dsl.hpp:454:11: error: no viable overloaded ‘=’

dest_ = whom.ptr();


/usr/local/src/zeek-3.1.4/aux/broker/3rdparty/caf/libcaf_core/caf/intrusive_ptr.hpp:120:18: note: candidate function not viable: no known conversion from 'caf::blocking_actor *' to

'caf::intrusive_ptr<caf::actor_control_block>::pointer' (aka 'caf::actor_control_block *') for 1st argument

intrusive_ptr& operator=(pointer ptr) noexcept {

^

/usr/local/src/zeek-3.1.4/aux/broker/3rdparty/caf/libcaf_core/caf/intrusive_ptr.hpp:125:18: note: candidate function not viable: no known conversion from 'caf::blocking_actor *' to

'caf::intrusive_ptr<caf::actor_control_block>' for 1st argument

intrusive_ptr& operator=(intrusive_ptr other) noexcept {

^

1 error generated.

*** Error code 1

Stop.

make[3]: stopped in /usr/local/src/zeek-3.1.4/build

*** Error code 1

Stop.

make[2]: stopped in /usr/local/src/zeek-3.1.4/build

*** Error code 1

Stop.

make[1]: stopped in /usr/local/src/zeek-3.1.4/build

*** Error code 1

Stop.

make: stopped in /usr/local/src/zeek-3.1.4

With Zeek 3.1.3, this problem doesn’t exist.

Hi,

can you give us a bit more context?

Our CI builds fine on FreeBSD 12.1 with Clang 8.0.1 and OpenSSL 1.1.1d [1].

Kind regards,
Dominik

[1] latest FreeBSD log: https://cirrus-ci.com/task/4805022321999872?command=build#L96

Thanks Domink. Sure.

Host: FreeBSD 12.1-STABLE
Clang: FreeBSD clang version 10.0.0 (git@github.com:llvm/llvm-project.git llvmorg-10.0.0-0-gd32170dbd5b)
OpenSSL 1.1.1g-freebsd 21 Apr 2020

    Hi,

    can you give us a bit more context?

    Our CI builds fine on FreeBSD 12.1 with Clang 8.0.1 and OpenSSL 1.1.1d [1].

    Kind regards,
    Dominik

    [1] latest FreeBSD log: https://cirrus-ci.com/task/4805022321999872?command=build#L96

Thanks for the extra context!

Zeek comes with Broker v1.3.3, which bundles CAF 0.17.4. This release has a known bug with Clang 10 [1], which was fixed in CAF 0.17.5.

This seems to only affect the unit tests. So you could try to disable Broker’s unit tests (via setting BROKER_DISABLE_TESTS in CMake or passing --disable-broker-tests to Zeek’s configure script). If it still fails, you could get a CAF 0.17.5 and build Zeek against that (by passing --with-caf=PATH to the configure script) as last resort.

I hope that helps. Sorry for the inconvenience.

Kind regards,
Dominik

[1] https://github.com/actor-framework/actor-framework/issues/1077

Sorry for this late response ... Dominik, it is working.

Many thanks.

    Thanks for the extra context!

    Zeek comes with Broker v1.3.3, which bundles CAF 0.17.4. This release has a known bug with Clang 10 [1], which was fixed in CAF 0.17.5.

    This seems to only affect the unit tests. So you could try to disable Broker’s unit tests (via setting BROKER_DISABLE_TESTS in CMake or passing --disable-broker-tests to Zeek’s configure script). If it still fails, you could get a CAF 0.17.5 and build Zeek against that (by passing --with-caf=PATH to the configure script) as last resort.

    I hope that helps. Sorry for the inconvenience.

    Kind regards,
    Dominik

    [1] https://github.com/actor-framework/actor-framework/issues/1077