Closed barjac closed 1 year ago
It's for the WIP from https://github.com/drowe67/freedv-gui/pull/390
Currently this is built as a static library in the freedv binary, at least it is on Fedora.
I don't know what @tmiw is intending finally, but currently the sioclient code from github doesn't seem to be packaged for (m)any distros so it's not been built as a shared library.
It's for the WIP from #390
Currently this is built as a static library in the freedv binary, at least it is on Fedora.
I don't know what @tmiw is intending finally, but currently the sioclient code from github doesn't seem to be packaged for (m)any distros so it's not been built as a shared library.
Yeah, sioclient is needed to enable FreeDV Reporter reporting functionality. The current cmake build stuff to include it forces it to build even if it does exist but I can add similar logic to what we do for Hamlib to allow linking an external version.
@barjac, pull https://github.com/drowe67/freedv-gui/pull/390/commits/8c3c229c7a4fd8d1371418e46f99e49bccd1f7d1 down and let me know if that helps. Seems to build on macOS at least.
I've just pulled this and rebuilt it on Fedora, seems to run OK and I am showing up on the freedv reporter page.
I just put a rough and ready package of sioclient together and tested a build of 8c3c229 against it. -- Looking for sioclient... -- Socket.io library: /usr/lib64/libsioclient.so -- Socket.io headers: /usr/include -- Socket.io library found.
then later... -- Build type will be: RelWithDebInfo -- package name = 10-devel-2023-05-22 -- Configuring done (2.3s) CMake Error at src/reporting/CMakeLists.txt:9 (add_dependencies): The dependency target "sioclient" of target "fdv_reporting" does not exist.
I'm pushed for time to dig deeper now, but will look again this evening.
By removing /src/fdv_reporting/CMakeLists.txt line 9 it builds fine using my packaged sioclient. Been on the air, had a QSO and my call etc. appeared in FreeDV Reporter - nice!
By removing /src/fdv_reporting/CMakeLists.txt line 9 it builds fine using my packaged sioclient. Been on the air, had a QSO and my call etc. appeared in FreeDV Reporter - nice!
Try syncing to https://github.com/drowe67/freedv-gui/pull/390/commits/7cc1ed724e099d1be03d7fd106baca54821dfad9. That should include a change similar to the one you mentioned (the line in question still has to be included but only if the build has to download and build sioclient itself).
Perfect! Many thanks :)
@Tyrbiter what package name did you/Fedora use for sioclient? I will push my package to Mageia but we may as well use the same package name! Temporarily I have used socketio-client-cpp, but it seems a bit over long. Maybe sioclient-cpp?
I currently have the sioclient building as a static library linked in to the freedv binary, but if it gets built as a shared object it is called libsioclient.so.[ver] so I would think libsioclient would be a sensible package name.
I have not seen any other distros with this package, you may be starting a trend.
Yes libsioclient does make more sense - thanks :)
It seems that libsioclient-3.1.0 is old and the current git master is needed to build freedv-1.8.10 without failure. I used git master for the initial package testing with its bundled 3rd party libs. These are omitted from the 3.1.0 tarball. I am currently using upstream master with the 3rd party libs removed and replaced with official packages. With this, freedv builds OK and runs fine.
I have not seen any other distros with this package, you may be starting a trend.
Looks like there's a PR open to add Debian support: https://github.com/socketio/socket.io-client-cpp/pull/346
I just pushed it to Mageia Cauldron (soon to be Mageia 9). http://svnweb.mageia.org/packages/cauldron/libsioclient/current/ FreeDV -1.8.10 builds against it with no issues. Gave it version 3.1.0.1 as I don't know what the next version will be. It's built from current git master (b10474e).
This version and later tries to clone sioclient repository during the build.
External downloads are not allowed during the build process under any circumstances and the build system does not allow external web access for this reason.
I can see nothing about this extra new dependency in the release notes, nor can I see this packaged anywhere else.
Is this 'really' required or is it optional?
If it is required then I will probably have to package it.
Any thoughts?
Cheers, Barry (freedv, codec2, lpcnetfreedv and hamlib package maintainer for Mageia)