knatterfunker / codecserver-softmbe

Software MBE decoder for codecserver / digiham / openwebrx
GNU General Public License v3.0
45 stars 17 forks source link

build error #5

Closed DrHyperKALICH closed 2 years ago

DrHyperKALICH commented 2 years ago

Please help, i am getting a error on ubuntu 20.04 server. Is where way to get or download compiled deb file somewhere?

dpkg-buildpackage: info: source package codecserver-driver-softmbe dpkg-buildpackage: info: source version 0.0.1 dpkg-buildpackage: info: source distribution UNRELEASED dpkg-buildpackage: info: source changed by The Knatterfunkers knatterfunker@protonmail.com dpkg-buildpackage: info: host architecture amd64 dpkg-source --before-build . fakeroot debian/rules clean debian/rules:12: warning: overriding recipe for target 'override_dh_shlibdeps' debian/rules:9: warning: ignoring old recipe for target 'override_dh_shlibdeps' dh clean dh_auto_clean dh_clean dpkg-source -b . dpkg-source: info: using source format '3.0 (native)' dpkg-source: info: building codecserver-driver-softmbe in codecserver-driver-softmbe_0.0.1.tar.xz dpkg-source: info: building codecserver-driver-softmbe in codecserver-driver-softmbe_0.0.1.dsc debian/rules build debian/rules:12: warning: overriding recipe for target 'override_dh_shlibdeps' debian/rules:9: warning: ignoring old recipe for target 'override_dh_shlibdeps' dh build dh_update_autotools_config dh_autoreconf dh_auto_configure cd obj-x86_64-linux-gnu && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu .. -- The C compiler identification is GNU 9.3.0 -- The CXX compiler identification is GNU 9.3.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so;-lpthread (found version "3.6.1") -- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so;-lpthread (found suitable version "3.6.1", minimum required is "3.0") -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project:

CMAKE_AUTOGEN_VERBOSE
CMAKE_EXPORT_NO_PACKAGE_REGISTRY
CMAKE_INSTALL_LOCALSTATEDIR
CMAKE_INSTALL_SYSCONFDIR

-- Build files have been written to: /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu dh_auto_build cd obj-x86_64-linux-gnu && make -j2 make[1]: Entering directory '/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu' /usr/bin/cmake -S/home/kalich/git/codecserver-softmbe -B/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu/CMakeFiles /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[2]: Entering directory '/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu' make -f src/CMakeFiles/softmbe.dir/build.make src/CMakeFiles/softmbe.dir/depend make[3]: Entering directory '/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu' cd /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/kalich/git/codecserver-softmbe /home/kalich/git/codecserver-softmbe/src /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu/src /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu/src/CMakeFiles/softmbe.dir/DependInfo.cmake --color= Scanning dependencies of target softmbe make[3]: Leaving directory '/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu' make -f src/CMakeFiles/softmbe.dir/build.make src/CMakeFiles/softmbe.dir/build make[3]: Entering directory '/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu' [ 20%] Building CXX object src/CMakeFiles/softmbe.dir/softmbedevice.cpp.o cd /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu/src && /usr/bin/c++ -Dsoftmbe_EXPORTS -I/usr/include/codecserver -g -O2 -fdebug-prefix-map=/home/kalich/git/codecserver-softmbe=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -std=gnu++11 -o CMakeFiles/softmbe.dir/softmbedevice.cpp.o -c /home/kalich/git/codecserver-softmbe/src/softmbedevice.cpp [ 40%] Building CXX object src/CMakeFiles/softmbe.dir/softmbedriver.cpp.o cd /home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu/src && /usr/bin/c++ -Dsoftmbe_EXPORTS -I/usr/include/codecserver -g -O2 -fdebug-prefix-map=/home/kalich/git/codecserver-softmbe=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -std=gnu++11 -o CMakeFiles/softmbe.dir/softmbedriver.cpp.o -c /home/kalich/git/codecserver-softmbe/src/softmbedriver.cpp In file included from /usr/include/codecserver/device.hpp:3, from /usr/include/codecserver/driver.hpp:3, from /home/kalich/git/codecserver-softmbe/src/softmbedriver.hpp:3, from /home/kalich/git/codecserver-softmbe/src/softmbedriver.cpp:1: /usr/include/codecserver/proto/request.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory 10 | #include <google/protobuf/port_def.inc> | ^~~~~~~~~~ compilation terminated. In file included from /usr/include/codecserver/device.hpp:3, from /home/kalich/git/codecserver-softmbe/src/softmbedevice.hpp:3, from /home/kalich/git/codecserver-softmbe/src/softmbedevice.cpp:1: /usr/include/codecserver/proto/request.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory 10 | #include <google/protobuf/port_def.inc> | ^~~~~~~~~~ compilation terminated. make[3]: [src/CMakeFiles/softmbe.dir/build.make:66: src/CMakeFiles/softmbe.dir/softmbedriver.cpp.o] Error 1 make[3]: Waiting for unfinished jobs.... make[3]: [src/CMakeFiles/softmbe.dir/build.make:79: src/CMakeFiles/softmbe.dir/softmbedevice.cpp.o] Error 1 make[3]: Leaving directory '/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu' make[2]: [CMakeFiles/Makefile2:97: src/CMakeFiles/softmbe.dir/all] Error 2 make[2]: Leaving directory '/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu' make[1]: [Makefile:133: all] Error 2 make[1]: Leaving directory '/home/kalich/git/codecserver-softmbe/obj-x86_64-linux-gnu' dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j2 returned exit code 2 make: [debian/rules:3: build] Error 2 dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

knatterfunker commented 2 years ago

Is where way to get or download compiled deb file somewhere?

Maybe some members of the community are providing deb files, but nobody in our team feels comfortable doing that because of the legal implications that may entail from experimenting with these codecs in software. So unfortunately the answer to that question is that we don't know.

Please help, i am getting a error on ubuntu 20.04 server.

As far as we know, the latest official packages for 20.04 are openwebrx 0.20.3 where AMBE decoding is still done with dsd, i.e. a version where AMBE software support hasn't been stripped yet. For that version, you don't really need codecserver-softmbe (in fact there is no codecserver for that version), but from your build log, it looks like you are somehow running a newer version of openwebrx... Are you sure that you really have to run a more recent version of openwebrx? If that is really the case, our suggestion is to either run a setup where everything is installed from compatible deb packages, or to install everything from source without packages.

That said, we believe that you somehow installed a version of the libcodecserver package that is not compatible with the version of libprotonbuf that is currently installed. For example, the libcodecserver package found in the official openwebrx repository for Hirsute Hippo (Ubuntu 21.04) expects libprotonbuf23 but Focal Fossa (Ubuntu 20.04) ships with libprotonbuf17. In fact, this exact combination would yield the issue that you describe since the missing google/protobuf/port_def.inc file simply isn't part of the Ubuntu version that you are running. Strictly speaking this is an issue with openwebrx or Ubuntu, but not with codecserver-softmbe...

If all of the above assumptions are correct, you could recompile the codecserver packages, install those and the proceed with the codecserver-softmbe install. That would be relatively easy but this may not be particularly smart. Then again you already went down the rabbit hole of mixing incompatible stuff. This may help you to compile compatible codecserver packages:

apt-get install libprotobuf-dev protobuf-compiler libudev-dev
git clone git@github.com:jketterl/codecserver.git
cd codecserver
dpkg-buildpackage

There may be typos in this as I'm putting this from memory. Upon success, you should end up with a bunch of *.deb files in the parent directory. Install them all and try to compile codecserver-softmbe once again.

All that said, it is not wise to use deb packages that are meant for a different version of your operating system...

DrHyperKALICH commented 2 years ago

Thanks for quick answer! I am successfully compiled and installed deb files

Finally i getting this

Hello, I'm the codecserver. now scanning for modules... registering new driver: "ambe3k" registering new driver: "softmbe" loading devices from configuration... registering new device for codecs: ambe, auto-detecing devices... scanning for "ambe3k" devices... scanning for "softmbe" devices... device scan complete.

All services restarted, codecserver and openwebrx

But openwebrx do not want decode or show DMR modulation :(

knatterfunker commented 2 years ago

Digging into this a little further, you probably have the same issue with the digiham package. DMR and other digital voice modes with proprietary codecs can only be decoded when digiham is installed. Can you check if the package is installed? (dpkg -l digiham). If it is not installed, can you try to install it? (apt install digiham). If that attempt tells you that the libprotobuf23 dependency cannot be satisfied, you are hitting the same issue as before. Remember -- your version of Ubuntu ships with libprotobuf17 so technically this is again not a bug in our project.

You could proceed and build a deb package of digiham using the same method. However, you have to make sure to compile version 0.5.0 of digiham since more recent digiham code requires a libcsdr version that is more recent than what is in the repository. So the course of action would be (again from memory):

apt install libicu-dev libcsdr-dev
git clone -b 0.5.0 git@github.com:jketterl/digiham.git
cd digiham
dpkg-buildpackage
cd ..
dpkg -i digiham*.deb
service openwebrx restart

That should be the end of the dependency hell as far as I can see but you're already pretty deep down the rabbit hole :-). Also you may have to pin some of the packages that you installed this way, otherwise apt upgrade may replace them with the official but incompatible version from the repo...

DrHyperKALICH commented 2 years ago

All works for now! Marked digiham package on hold.

Thanks for support!!!