drowe67 / freedv-gui

GUI Application for FreeDV – open source digital voice for HF radio
https://freedv.org/
GNU Lesser General Public License v2.1
209 stars 52 forks source link

1.8.10-20230514 breaks Mageia build #398

Closed barjac closed 1 year ago

barjac commented 1 year ago

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)

Tyrbiter commented 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.

tmiw commented 1 year ago

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.

tmiw commented 1 year ago

@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.

Tyrbiter commented 1 year ago

I've just pulled this and rebuilt it on Fedora, seems to run OK and I am showing up on the freedv reporter page.

barjac commented 1 year ago

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.

barjac commented 1 year ago

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!

tmiw commented 1 year ago

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).

barjac commented 1 year ago

Perfect! Many thanks :)

barjac commented 1 year ago

@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?

Tyrbiter commented 1 year ago

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.

barjac commented 1 year ago

Yes libsioclient does make more sense - thanks :)

barjac commented 1 year ago

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.

tmiw commented 1 year ago

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

barjac commented 1 year ago

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).