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

DAB demodulator plugin missing in Linux deb package for version 7.15.1 #1740

Closed
computer-wizard opened this issue Jul 15, 2023 · 12 comments
Closed

Comments

@computer-wizard
Copy link

The dab demodulator plugin is missing in the Linux deb package for version 7.15.1.
I checked the /usr/lib/sdrangel/plugins sub-directory and the libdemod library for
dab isn't there.

The only library related to dab is /usr/lib/sdrangel/libdab_lib.so but as I already said earlier,
there is no libdemod library for it :-(

@srcejon
Copy link
Collaborator

srcejon commented Jul 27, 2023

Yes, I can't see it in the .deb

I'm not sure how the release builds are done, but in the CI 'docker' build, the DAB demod is built, but doesn't look like it is in the 'prod' build. I'm not sure why the 'prod' build cmake script doesn't seem to mention libdab...

@srcejon
Copy link
Collaborator

srcejon commented Jul 28, 2023

@f4exb - How can I see the generated CMakeCache.txt for the ubuntu2204prod build on appveyor to debug? Does it need to be added as an additional artifact in .appveyor.yml, or is is possible to ssh in?

In the ubuntu2204prod log file, it seems the dab project is built, so I presume both ZLIB_FOUND AND FAAD_FOUND must be true, and that should set DAB_FOUND to TRUE.

The demoddab build is conditional on:

if(ENABLE_CHANNELRX_DEMODDAB AND DAB_FOUND AND ZLIB_FOUND AND FAAD_FOUND)
    add_subdirectory(demoddab)
endif()

So can't then see why it wouldn't then be built.

@srcejon
Copy link
Collaborator

srcejon commented Jul 30, 2023

It looks like when AUTO_EXTERNAL_LIBRARIES is set in external/CMakeLists.txt, the FOUND variables aren't cached, so they are undefined in the plugins CMakeLists.txt

From the new log:

Not building demoddab (ENABLE_CHANNELRX_DEMODDAB=ON DAB_FOUND=ON ZLIB_FOUND= FAAD_FOUND=)
[00:23:06] -- Not building sigmffilesink (ENABLE_CHANNELRX_SIGMFFILESINK=ON LIBSIGMF_FOUND=)
[00:23:06] -- Not building modatv (ENABLE_CHANNELTX_MODATV=ON OpenCV_FOUND=)

@computer-wizard
Copy link
Author

Good find. I wonder why they aren't cached?

@f4exb
Copy link
Owner

f4exb commented Jul 30, 2023

Appveyor also has its own build cache. I just cleaned it.

@srcejon
Copy link
Collaborator

srcejon commented Jul 30, 2023

Good find. I wonder why they aren't cached?

I think it's a scope problem.

When AUTO_EXTERNAL_LIBRARIES is set, the find_package variables from external/CMakeLists.txt are lost at the end of that script.

Recent versions of cmake have a global flag to find_package, that would keep them in scope, but the more compatible solution, I think, is just to move the find_package commands in to the root CMakeLists.txt. So, I'll give that a try...

@srcejon
Copy link
Collaborator

srcejon commented Jul 30, 2023

Dab Demod and ATV mod are now being built.

Still have a couple of problems though:

[00:24:40] -- Not building remotesink (ENABLE_CHANNELRX_REMOTESINK=ON CM256CC_FOUND=FALSE HAS_SSE3=1 HAS_NEON=)
[00:24:40] -- Not building sigmffilesink (ENABLE_CHANNELRX_SIGMFFILESINK=ON LIBSIGMF_FOUND=)
[00:24:40] -- Include demoddatv
[00:24:40] -- Not building remotesource (ENABLE_CHANNELTX_REMOTESOURCE=ON CM256CC_FOUND=FALSE HAS_SSE3=1 HAS_NEON=)

@srcejon
Copy link
Collaborator

srcejon commented Jul 30, 2023

Hmm. It seems if CM256CC_FOUND is set by the call to find_package by the root script, when set(CM256CC_FOUND ON CACHE INTERNAL "") is called in external/CMakeLists.txt, this only sets the value in the cache, it doesn't update the variable in the parent scope, and so the value (FALSE) returned by find_package is used, not the most recently set cache value.

@srcejon
Copy link
Collaborator

srcejon commented Jul 30, 2023

Sigmffilesink not being built, appears to be because libsigmf isn't available. So will try to build that in external/CMakeLists.txt

@srcejon
Copy link
Collaborator

srcejon commented Jul 31, 2023

@computer-wizard you can try this build: https://ci.appveyor.com/api/buildjobs/bixaf8pfyi91j7p1/artifacts/sdrangel-2195-master.tar.gz

It includes these following additional libraries which were missing from the current release.

libfcdhid.so
libfcdlib.so
liblibsigmf.so
libdemoddab.so
libinputfcdproplus.so
libinputfcdpro.so
libinputsigmffileinput.so
libmodatv.so
libsigmffilesink.so

@computer-wizard
Copy link
Author

I will try it, many thanks!

@computer-wizard
Copy link
Author

DAB works, many thanks for fixing it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants