Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Freedv 1.9.3 cannot be compiled on Linux Mint 19.3 #576

Closed
vwpolo16 opened this issue Oct 22, 2023 · 7 comments · Fixed by #578
Closed

Freedv 1.9.3 cannot be compiled on Linux Mint 19.3 #576

vwpolo16 opened this issue Oct 22, 2023 · 7 comments · Fixed by #578
Labels
bug Something isn't working

Comments

@vwpolo16
Copy link

Compile_Error_1_9_3.txt
Hello all,
I tried to compile the freedv 1.9.3 with Linux Mint 19.3 and get the following error:
With the last 10 official versions I had no problem to compile it.

[ 59%] Building CXX object src/rig_control/CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o
cd /home/manfred/freedv_1_9_3/freedv-gui/build_linux/src/rig_control && /usr/bin/c++ -DGIT_HASH="None" -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -I/home/manfred/freedv_1_9_3/freedv-gui/build_linux -I/home/manfred/freedv_1_9_3/freedv-gui/build_linux/sioclient_src/src -I/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/.. -I/home/manfred/freedv_1_9_3/freedv-gui/build_linux/src/rig_control/.. -isystem /usr/lib/x86_64-linux-gnu/wx/include/gtk3-unicode-3.0 -isystem /usr/include/wx-3.0 -Wall -pthread -g -std=c++14 -MD -MT src/rig_control/CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o -MF CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o.d -o CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o -c /home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp: In static member function ‘static bool HamlibRigController::RigCompare_(const rig_caps*, const rig_caps*)’:
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:43:13: error: ‘strcasecmp’ was not declared in this scope
int r = strcasecmp(rig1->mfg_name, rig2->mfg_name);
^~~~~~~~~~
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:43:13: note: suggested alternative: ‘wcscasecmp’
int r = strcasecmp(rig1->mfg_name, rig2->mfg_name);
^~~~~~~~~~
wcscasecmp
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp: In constructor ‘HamlibRigController::HamlibRigController(std::__cxx11::string, std::cxx11::string, int, int, HamlibRigController::PttType, std::cxx11::string, bool)’:
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:70:18: error: invalid conversion from ‘int’ to ‘rmode_t’ [-fpermissive]
, origMode
(0)
^
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:70:18: error: invalid conversion from ‘int’ to ‘rmode_t’ [-fpermissive]
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp: In constructor ‘HamlibRigController::HamlibRigController(int, std::cxx11::string, int, int, HamlibRigController::PttType, std::cxx11::string, bool)’:
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:88:18: error: invalid conversion from ‘int’ to ‘rmode_t’ [-fpermissive]
, origMode
(0)
^
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp: In member function ‘void HamlibRigController::connectImpl
()’:
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:223:17: error: invalid conversion from ‘int’ to ‘rmode_t’ [-fpermissive]
origMode
= 0;
^
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:237:10: error: ‘strncmp’ was not declared in this scope
if (!strncmp(RigList
[rigIndex]->mfg_name, "Icom", 4))
^~~~~~~
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:237:10: note: suggested alternative: ‘wcsncmp’
if (!strncmp(RigList
[rigIndex]->mfg_name, "Icom", 4))
^~~~~~~
wcsncmp
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp: In member function ‘void HamlibRigController::disconnectImpl
()’:
/home/manfred/freedv_1_9_3/freedv-gui/src/rig_control/HamlibRigController.cpp:330:21: error: invalid conversion from ‘int’ to ‘rmode_t’ [-fpermissive]
origMode
= 0;
^
src/rig_control/CMakeFiles/fdv_rig_control.dir/build.make:75: recipe for target 'src/rig_control/CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o' failed
make[2]: *** [src/rig_control/CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o] Error 1
make[2]: Verzeichnis „/home/manfred/freedv_1_9_3/freedv-gui/build_linux“ wird verlassen
CMakeFiles/Makefile2:510: recipe for target 'src/rig_control/CMakeFiles/fdv_rig_control.dir/all' failed
make[1]: *** [src/rig_control/CMakeFiles/fdv_rig_control.dir/all] Error 2
make[1]: Verzeichnis „/home/manfred/freedv_1_9_3/freedv-gui/build_linux“ wird verlassen
Makefile:155: recipe for target 'all' failed
make: *** [all] Error 2
manfred@Cubi-5:/freedv_1_9_3/freedv-gui$ ^C
manfred@Cubi-5:
/freedv_1_9_3/freedv-gui$

VY 73
Manfred

@Tyrbiter
Copy link

Looks like Mint 19.3 is no longer a supported release, are you in a position to try a newer Mint LTS release? From what I see the earliest LTS release is Mint 20.x which is supported until April 2025, but Mint 21.x is supported until April 2027.

I'm thinking this could be a library versioning issue, requiring something not available in Mint 19.x any more.

@vwpolo16
Copy link
Author

Hi Tyrbiter,
a newer Mint version is not an option. I have 2 SDR radios where the SDR software is not running on a newer Mint version. I tried this already but I have to stay at Mint 19.3 or older.
So I think I have to live with Freedv 1.9.1 which I currently use.

@tmiw
Copy link
Collaborator

tmiw commented Oct 22, 2023

On Mint 21.2 (19.3 doesn't seem to be available for download anymore), I can't seem to duplicate that error:

[ 59%] Building CXX object src/rig_control/CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o
cd /home/mooneer/freedv-gui/build_linux/src/rig_control && /usr/bin/c++ -DAUDIO_ENGINE_PULSEAUDIO_ENABLE -DGIT_HASH=\"3ac22824\" -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -I/home/mooneer/freedv-gui/build_linux -I/home/mooneer/freedv-gui/build_linux/sioclient_src/src -I/home/mooneer/freedv-gui/src/rig_control/.. -I/home/mooneer/freedv-gui/build_linux/src/rig_control/.. -isystem /usr/lib/x86_64-linux-gnu/wx/include/gtk3-unicode-3.0 -isystem /usr/include/wx-3.0 -Wall -pthread -g -std=c++14 -MD -MT src/rig_control/CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o -MF CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o.d -o CMakeFiles/fdv_rig_control.dir/HamlibRigController.cpp.o -c /home/mooneer/freedv-gui/src/rig_control/HamlibRigController.cpp
[ 60%] Building CXX object src/rig_control/CMakeFiles/fdv_rig_control.dir/SerialPortRigController.cpp.o
cd /home/mooneer/freedv-gui/build_linux/src/rig_control && /usr/bin/c++ -DAUDIO_ENGINE_PULSEAUDIO_ENABLE -DGIT_HASH=\"3ac22824\" -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -I/home/mooneer/freedv-gui/build_linux -I/home/mooneer/freedv-gui/build_linux/sioclient_src/src -I/home/mooneer/freedv-gui/src/rig_control/.. -I/home/mooneer/freedv-gui/build_linux/src/rig_control/.. -isystem /usr/lib/x86_64-linux-gnu/wx/include/gtk3-unicode-3.0 -isystem /usr/include/wx-3.0 -Wall -pthread -g -std=c++14 -MD -MT src/rig_control/CMakeFiles/fdv_rig_control.dir/SerialPortRigController.cpp.o -MF CMakeFiles/fdv_rig_control.dir/SerialPortRigController.cpp.o.d -o CMakeFiles/fdv_rig_control.dir/SerialPortRigController.cpp.o -c /home/mooneer/freedv-gui/src/rig_control/SerialPortRigController.cpp

That said, does #578 help at all? I made some changes based on the errors you provided.

@Tyrbiter
Copy link

Hi Tyrbiter, a newer Mint version is not an option. I have 2 SDR radios where the SDR software is not running on a newer Mint version. I tried this already but I have to stay at Mint 19.3 or older. So I think I have to live with Freedv 1.9.1 which I currently use.

I see, that does make it difficult. Maybe @tmiw has fixed this now, please comment so we know.

@tmiw
Copy link
Collaborator

tmiw commented Oct 24, 2023

I was able to find a 19.3 ISO but it looks like Codec2 needs CMake 3.13, which that version doesn't have. What version of Codec2 are you using, @vwpolo16?

@tmiw tmiw added the bug Something isn't working label Oct 24, 2023
@tmiw tmiw closed this as completed in #578 Oct 25, 2023
@tmiw
Copy link
Collaborator

tmiw commented Oct 25, 2023

I was able to use snap to download a newer CMake and finish resolving the remaining compiler errors. Those changes are now in master and will be in the next FreeDV release. Let me know if you run into any additional issues.

BTW it looks like PulseAudio support wasn't building, either, so you should also be able to use that now instead of PortAudio.

@vwpolo16
Copy link
Author

Hello tmiw,
the new version 1.9.4 works on Mint 19.3.
I can compile now both versions (port audio and pulseaudio) with Mint 19.3 and they are working on my computer. Pulseaudio now works the first time.
Thank you very much for providing this fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants