-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
CMake: fix detection of SoundTouch pkgconfig file and version #4209
Conversation
2564435
to
62201f4
Compare
Pull Request Test Coverage Report for Build 1134039623
💛 - Coveralls |
The version constrain does not seem to work:
Tested in a fresh build directory and SoundTouch 1.9.2 installed. If I remove the QUIET flag it prints;
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does not yet work as intended.
@daschuer Please post the output on the affected system. @Be-ing Did you try to use |
All 3 variants on Fedora 34:
None seems to be correct. |
The |
The current package name |
The wrong version number is caused by an outdated configure.ac. This has been fixed for the new version 2.3.0. |
|
On Ubuntu Groovy I have this:
|
The found version is not checked, because it is not passed too find_package_handle_standard_args like here: mixxx/cmake/modules/Findhidapi.cmake Line 100 in 50b40ab
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can confirm that the package name soundtouch
is correct.
The version detection works for SoundTouch 2.1.2 and newer. It was broken for SoundTouch 2.1.0 and 2.1.1.
Unless we fix this bug on our side Fedora and any other distribution will not be able to use the system library for Mixxx and always link the bundled version statically.
@daschuer Please work with upstream Debian/Ubuntu if they ship an outdated package as we did for Fedora.
@Be-ing |
We could also increase the required version number to 2.1.2 due to the buggy package configuration of SoundTouch 2.1.1. |
Ubuntu 20.04: 2.1.2 It doesn't matter why the version detection for 18.04 fails, SoundTouch is too old anyway. |
The most recent Ubuntu Impish 21.10 ships SoundTouch 2.2 which is identified as 2.2 in the lower case pc file. The Name in the pc file is upper case. Both matches the upstream repro. So I it looks like everything is correct for Ubuntu. I can confirm that only the lower case lookup works:
I don't think we have an issue on Fedora, because even though it falsely identifies itself at 2.1.1 it still meets our requirements. |
The pending issue here, preventing the merge, is that the version constrains in the pkg-config call is bypassed by the find_library() later call #4209 (comment) |
Requiring the broken version 2.1.1 is pointless, because it will never be found. |
Ubuntu 20.04 build artifact is linked dynamically:
@daschuer So what's your issue here? The appended |
Unfortunately 18.04 is not built even after switching the base branch. |
No issues on Fedora with SoundTouch 2.1.2:
|
We require soundtouch>=2.1.1which is found a s 2.1.2 or whatever, so there is no issue. 2.1.1 is our version in the lib folder. It looks odd if we require a higher version that we provide.
The issue is that requiring a version in the OPTIONAL pkg_check_modules branch is pointless if it is not also checked in the final find_package_handle_standard_args(). That's all. |
Let's please merge this simple fix and then you could provide a follow-up PR. |
Files installed by the soundtouch-devel package in Fedora 34: ❯ rpm -ql soundtouch-devel /usr/include/soundtouch /usr/include/soundtouch/BPMDetect.h /usr/include/soundtouch/FIFOSampleBuffer.h /usr/include/soundtouch/FIFOSamplePipe.h /usr/include/soundtouch/STTypes.h /usr/include/soundtouch/SoundTouch.h /usr/include/soundtouch/soundtouch_config.h /usr/lib64/libSoundTouch.so /usr/lib64/pkgconfig/libSoundTouch.pc /usr/lib64/pkgconfig/soundtouch-1.0.pc /usr/lib64/pkgconfig/soundtouch.pc /usr/share/aclocal/soundtouch.m4
62201f4
to
83e3c00
Compare
We can't mege this to 2.3 because it is a regression for Ubuntu 18.04. It is easy to make this megeable, see my comment where I have already outlined the solution: |
92ea42b
to
aeead2f
Compare
I moved the version check from the pkgconfig call, which didn't do anything because of the |
CI build succeeded. @daschuer Ready now? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, Thank you. It is working as desired on Ubuntu Bionic and Groovy.
I noticed this bug after copying this module to Tenacity.