GobySoft / goby

The Goby Underwater Autonomy Project
Other
26 stars 11 forks source link

Unable to find 'protoc-gen-dccl' on EL 6 build #27

Closed scottsideleau closed 7 years ago

scottsideleau commented 7 years ago

I'm trying to build Goby 2.1.8 using DCCL 3.0.4 on Enterprise Linux 6.9, but it appears that protoc-gen-dccl is not being built. It's not obvious where this is attempted, as DCCL builds cleanly and a simple grep of its tree didn't reveal any eurekas.

What is required to generate protoc-gen-dccl ?

Note that I'm using an older version of protoc (v2.3) at this point. It is provided by the EPEL repository.


ERROR MESSAGE


$ ./build.sh Configuring Goby cmake .. Compiling in Git source tree. libprotobuf < 2.5.0 Using DCCL in /opt/dccl/build Including protobuf dir: /opt/dccl/include -- Boost version: 1.41.0 -- Found the following Boost libraries: -- signals -- GMP libs: /usr/lib64/libgmp.so /usr/lib64/libgmpxx.so -- Boost version: 1.41.0 -- Found the following Boost libraries: -- system -- date_time -- thread -- program_options -- filesystem -- regex -- Boost version: 1.41.0 -- Found the following Boost libraries: -- signals -- Configuring done -- Generating done -- Build files have been written to: /opt/goby/build Building Goby make
[ 1%] Generating BinLink [ 1%] Built target bin_link [ 1%] Generating IncludeLink [ 1%] Built target inc_link [ 1%] Generating LibLink [ 1%] Built target lib_link [ 1%] Generating ShareLink [ 1%] Built target share_link [ 2%] Generating WtResourcesLink [ 2%] Built target wt_link [ 2%] Running C++ protocol buffer compiler on /opt/goby/src/common/protobuf/pubsub_node_config.proto protoc-gen-dccl: program not found or is not executable --dccl_out: protoc-gen-dccl: Plugin failed with status code 1. make[2]: [include/goby/common/protobuf/pubsub_node_config.pb.cc] Error 1 make[1]: [src/common/CMakeFiles/goby_common.dir/all] Error 2 make: *** [all] Error 2


SOFTWARE VERSIONS


$ g++ --version g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


$ protoc --version libprotoc 2.3.0


$ pwd /opt/moos-ivp $ git log -1 commit 62dca1c06aa532c984420283b7aba4103b769879 Author: Mohamed Saad Ibn Seddik msis@mit.edu Date: Thu Mar 3 15:13:35 2016 -0500

15.5

$ pwd /opt/dccl $ git log -1 commit 7abb906be5b705cdf876f4324cf5fd8c887c117e Author: Toby Schneider toby@gobysoft.org Date: Fri Jun 24 11:36:08 2016 -0400

Release 3.0.4

$ ls bin/ analyze_dccl dccl $ ls lib/ libdccl_arithmetic.so libdccl_ccl_compat.so libdccl.so libdccl_arithmetic.so.30 libdccl_ccl_compat.so.30 libdccl.so.30 libdccl_arithmetic.so.3.0.4 libdccl_ccl_compat.so.3.0.4 libdccl.so.3.0.4


$ echo $DCCL_DIR /opt/dccl/build


$ pwd /opt/goby $ git log -1 commit a3a92af4dd34aa98453cffed072b15b6ed77c090 Author: Toby Schneider toby@gobysoft.org Date: Tue May 9 16:43:42 2017 -0400

Release 2.1.8
tsaubergine commented 7 years ago

protobuf_gen_dccl requires the stable Protobuf plugins infrastructure, which isn't available until Protobuf 2.4.0. After installing Protobuf 2.4.0 you'll either need to remove the CMakeCache.txt in dccl/build or pass -Denable_units=ON to cmake to enable building protobuf_gen_dccl

Goby >= 2.1.6 requires protobuf_gen_dccl for the static units support (http://libdccl.org/idl.html#idl-units).

So you'll need Protobuf >= 2.4.0 (preferred) or use Goby <= 2.1.5.

scottsideleau commented 7 years ago

Great, thanks! I'll identify a way forward to get Protobuf 2.4+ running on EL 6.

scottsideleau commented 7 years ago

Closing the loop:

I found protobuf_2.4.1 SRPM from the CERT Forensics Tools repository (x86_64, i386), which I was able to rebuild and deploy in my local yum repository.

Doing a clean/rebuild in DCCL, then, correctly generated the 'protobuf_gen_dccl' app.