-1

When configuring unbound with --enable-dnstap, it can't locate protobuf-c.

$ ./configure --enable-dnstap
...
...
...
checking for protoc-c... no
configure: error: The protoc-c program was not found. Please install protobuf-c!

However, protobuf-c appears to be installed.

$ sudo apt search protobuf-c
Sorting... Done
Full Text Search... Done
libprotobuf-c-dev/stable,now 1.4.1-1+b1 armhf [installed]
  Protocol Buffers C static library and headers (protobuf-c)

libprotobuf-c1/stable,now 1.4.1-1+b1 armhf [installed,automatic] Protocol Buffers C shared library (protobuf-c)

librust-prometheus+protobuf-codegen-pure-dev/stable 0.13.3-1 armhf Prometheus instrumentation library for Rust applications - feature "protobuf-codegen-pure" and 1 more

librust-protobuf-codegen-dev/stable 2.27.1-1+b2 armhf Code generator for rust-protobuf - Rust source code

librust-protobuf-codegen-pure-dev/stable 2.27.1-1 armhf Pure-rust codegen for protobuf using protobuf-parser crate - Rust source code

protobuf-c-compiler/stable 1.4.1-1+b1 armhf Protocol Buffers C compiler (protobuf-c)

protobuf-codegen/stable 2.27.1-1+b2 armhf Code generator for rust-protobuf

protobuf-compiler/stable 3.21.12-3 armhf compiler for protocol buffer definition files

protobuf-compiler-grpc/stable 1.51.1-3+b1 armhf high performance general RPC framework - protobuf plugin

protobuf-compiler-grpc-java-plugin/stable 1.41.3+ds-1 armhf high performance general RPC framework - protobuf Java plugin
$ dpkg -l | grep protobuf ii libprotobuf-c-dev:armhf 1.4.1-1+b1 armhf Protocol Buffers C static library and headers (protobuf-c) ii libprotobuf-c1:armhf 1.4.1-1+b1 armhf Protocol Buffers C shared library (protobuf-c) $ sudo find / -name libprotobuf-c1 /usr/share/doc/libprotobuf-c1 $ sudo find / -name libprotobuf-c-dev /usr/share/doc/libprotobuf-c-dev $ ls /usr/bin/ | grep proto $ ls /usr/local/bin/ | grep proto $ ls /bin/ | grep proto $ ls /usr/lib/ | grep proto $ ls /usr/local/lib/ | grep proto $ ls /lib/ | grep proto $

I can't locate the protobuf-c library or program either although it is installed.

I do I resolve this configuration issue?

Update:

I discovered from this answer that the library name is libprotobuf-c.so.1.

Its location was found using:

$ sudo find / -name libprotobuf-c.so.1
/usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1
$

I tried linking this file into /usr/local/lib (Unbound default installation library directory) via

$ ln -s /usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1 

and reran

$ ./configure --enable-dnstap

and still got the same error msg as mentioned above.

I further tried:

./configure --enable-dnstap --with-protobuf-c=/usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1

and still got the same error msg as mentioned above.

The unbound version that I am trying to configure is 1.22.0.

This question does not duplicate How do I find the package that provides a file?. Reasons:

  1. I am already using dpkg.
  2. I found that using apt search to be more suitable as it shows all the other packages related to protobuf-c with description.
  3. Apart from the libprotobuf-c, unbound also uses the protoc-c program (informed to me by an unbound member), which is available after installing protobuf-c-compiler (see @steeldriver comment). This information isn't disclosed using dpkg.
Sun Bear
  • 3,014

1 Answers1

0

To configure unbound with the option --enable-dnstap, these apt packages need to be installed first:

$ sudo apt install libprotobuf-c1 libprotobuf-c-dev protobuf-c-compiler
Sun Bear
  • 3,014