falcosecurity / falco

Cloud Native Runtime Security
https://falco.org
Apache License 2.0
7.16k stars 884 forks source link

Build failed with error "catch.hpp: No such file or directory" #757

Closed sunil1783 closed 4 years ago

sunil1783 commented 5 years ago

While Building falco from source code , Build failed with error "fatal error: catch.hpp: No such file or directory"

catch package v2.9.1.tar.gz does not get download in "falco/build/catch2-prefix" directory.

Install the required depdencies as per https://falco.org/docs/source/

Steps to reproduce : git clone https://github.com/draios/sysdig.git git clone https://github.com/falcosecurity/falco.git cd falco && git checkout 0.16.0 mkdir build && cd build cmake -DSYSDIG_DIR=/home/sunil/sysdig .. make

Environment:

Error :

[ 95%] Building CXX object tests/CMakeFiles/falco_test.dir/test_base.cpp.o cd /home/sunil/new_build/falco/build/tests && /usr/bin/c++ -DHAS_CAPTURE -DHAVE_SYS_SYSMACROS_H -DK8S_DISABLE_THREAD -DPLATFORM_NAME=\"Linux\" -I/home/sunil/new_build/falco/build/catch2-prefix/include -I/home/sunil/new_build/falco/build/fakeit-prefix/include -I/home/sunil/new_build/falco/userspace/engine -I/home/sunil/new_build/falco/build/luajit-prefix/src/luajit/src -I/home/sunil/new_build/falco/build/njson-prefix/src/njson/single_include -I/home/sunil/new_build/falco/build/curl-prefix/src/curl/include -I/home/sunil/new_build/falco/build/tbb-prefix/src/tbb/include -I/home/sunil/sysdig/userspace/libsinsp/third-party/jsoncpp -I/home/sunil/sysdig/userspace/libscap -I/home/sunil/sysdig/userspace/libsinsp -I/home/sunil/new_build/falco/build/userspace/engine --std=c++0x -Wall -ggdb -O3 -fno-strict-aliasing -DNDEBUG -o CMakeFiles/falco_test.dir/test_base.cpp.o -c /home/sunil/new_build/falco/tests/test_base.cpp /home/sunil/new_build/falco/tests/test_base.cpp:20:21: fatal error: catch.hpp: No such file or directory compilation terminated. tests/CMakeFiles/falco_test.dir/build.make:65: recipe for target 'tests/CMakeFiles/falco_test.dir/test_base.cpp.o' failed make[2]: [tests/CMakeFiles/falco_test.dir/test_base.cpp.o] Error 1 make[2]: Leaving directory '/home/sunil/new_build/falco/build' CMakeFiles/Makefile2:5926: recipe for target 'tests/CMakeFiles/falco_test.dir/all' failed make[1]: [tests/CMakeFiles/falco_test.dir/all] Error 2 make[1]: Leaving directory '/home/sunil/new_build/falco/build' Makefile:152: recipe for target 'all' failed make: *** [all] Error 2

leodido commented 5 years ago

/assign @leodido

fntlnz commented 5 years ago

@sunil1783 what is the output of make catch2 ?

/triage needs-information

sunil1783 commented 5 years ago

Output of #make catch2 as follows.

root@6819741d9445:/home/sunil/new_build/falco/build# make catch2 /usr/bin/cmake -H/home/sunil/new_build/falco -B/home/sunil/new_build/falco/build --check-build-system CMakeFiles/Makefile.cmake 0 -- Using bundled zlib in '/home/sunil/new_build/falco/build/zlib-prefix/src/zlib' -- Using bundled jq in '/home/sunil/new_build/falco/build/jq-prefix/src/jq' -- Using bundled nlohmann-json in '/home/sunil/new_build/falco/build/njson-prefix/src/njson' -- Using bundled ncurses in '/home/sunil/new_build/falco/build/ncurses-prefix/src/ncurses' -- Using bundled b64 in '/home/sunil/new_build/falco/build/b64-prefix/src/b64' -- Using bundled yaml-cpp in '/home/sunil/new_build/falco/build/yamlcpp-prefix/src/yamlcpp' -- Using bundled openssl in '/home/sunil/new_build/falco/build/openssl-prefix/src/openssl' -- Using bundled curl in '/home/sunil/new_build/falco/build/curl-prefix/src/curl' -- Using SSL for curl in '--with-ssl=/home/sunil/new_build/falco/build/openssl-prefix/src/openssl/target' -- Using bundled LuaJIT in '/home/sunil/new_build/falco/build/luajit-prefix/src/luajit/src' -- Using bundled lpeg in '/home/sunil/new_build/falco/build/lpeg-prefix/src/lpeg' -- Found autoreconf: /usr/bin -- Using bundled libyaml in '/home/sunil/new_build/falco/build/libyaml-prefix/src/libyaml/src' -- Using bundled lyaml in '/home/sunil/new_build/falco/build/lyaml-prefix/src/lyaml/ext/yaml' -- Using bundled tbb in '/home/sunil/new_build/falco/build/tbb-prefix/src/tbb' -- Using bundled civetweb in '/home/sunil/new_build/falco/build/civetweb-prefix/src/civetweb/' -- Using bundled c-ares in '/home/sunil/new_build/falco/build/c-ares-prefix/src/c-ares' -- Using bundled protobuf in '/home/sunil/new_build/falco/build/protobuf-prefix/src/protobuf' -- Using bundled grpc in '/home/sunil/new_build/falco/build/grpc-prefix/src/grpc' -- Configuring done -- Generating done -- Build files have been written to: /home/sunil/new_build/falco/build make -f CMakeFiles/Makefile2 catch2 make[1]: Entering directory '/home/sunil/new_build/falco/build' make[1]: No rule to make target 'catch2'. Stop. make[1]: Leaving directory '/home/sunil/new_build/falco/build' Makefile:2111: recipe for target 'catch2' failed make: [catch2] Error 2

fntlnz commented 5 years ago

Ok, I'm not able to reproduce that in my environments. Please try to remove the catch2-prefix folder under your build folder and try again.

Catch is used for the new unit testing framework we are bootstraping, there are only a couple of tests with it so for now if you just want to obtain a falco build you can do.

cd build/
cmake -DFALCO_BUILD_TESTS=Off ..
krisnova commented 4 years ago

I hit this a few hours ago

After running make catch2 I was able to workaround the error and wasn't able to re-create it again.

fntlnz commented 4 years ago

Hi @sunil1783 can you let us know if you've been able to make it work ? Thank you 😀

fntlnz commented 4 years ago

I'm closing this since it seems that you are just missing a step @sunil1783 but feel free to continue the discussion if you have more questions or reopen in case it's not solved. /close

poiana commented 4 years ago

@fntlnz: Closing this issue.

In response to [this](https://github.com/falcosecurity/falco/issues/757#issuecomment-522339400): >I'm closing this since it seems that you are just missing a step @sunil1783 but feel free to continue the discussion if you have more questions or reopen in case it's not solved. >/close Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.