mumble-voip/libmumble

Problems building on a Raspberry Pi

RaphaelMaschinsen opened this issue · 6 comments

I'm having trouble building the library on a Raspberry Pi Zero 2W (Linux_ 5.15.76-v8+ #1597 SMP PREEMPT Fri Nov 4 12:16:41 GMT 2022 aarch64 GNU/Linux).

The first problem I had was related to quickpool. I had a a CMake Error when configuring with cmake version 3.18.4 at quickpool/CMakeLists.txt:21 (add_library):
add_library INTEFACE library requires no source arguments.
I was able to successfully configure the project using the prebuilt newest version of cmake (3.25.1-linux-aarch64). Unfortunately running make in the root directory the build process now fails with the error:
src/proto/CMakeFiles/Proto.dir/build.make:73: *** target pattern contains no '%'. Stop.

I cannot reproduce the error on my desktop environment running Arch Linux and the same cmake version 3.25.1. Everything works as expected there.

The according lines in the autogenerated makefile read:

 72 src/proto/MumbleTCP.pb.h: src/proto/MumbleTCP.proto
 73 src/proto/MumbleTCP.pb.h: src/proto/protobuf::protoc
 74         @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/pi/libmumble/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Running cpp protocol buffer compiler on MumbleTCP.proto"
 75         cd /home/pi/libmumble/src/proto && protobuf::protoc --cpp_out /home/pi/libmumble/src/proto -I /home/pi/libmumble/src/proto /home/pi/libmumble/src/proto/MumbleTCP.proto

It appears that there is a problem with either the name src/proto/MumbleTCP.pb.h or src/proto/protobuf::protoc. One possible problem could be that regular expressions in make get evaluated by the shell and maybe the shell is the problem.

As further information, I have also cross-compiled on Arch Linux for aarch64 using CMake 3.24.2. This build process has the same error.

Is the issue still present?

Soldy commented

Is the issue still present?

Yepp.
This happens if you do not have a protobuf-complier.
The solution:

apt install  protobuf-compiler

Oh, this is actually an issue with the CMake module. It looks like the target exists, but is actually empty.

I have successfully built the library on a Raspberry Pi 2W running ARM64 Raspberry Pi OS Lite, which is based on Debian Bookworm (12).

protobuf-compiler is required, but I didn't check what kind of error is thrown without it. In any case, it's out of our scope as the CMake module is provided upstream.