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

Fix QtKeychain incompatibility between Debian/Ubuntu and Fedora #1940

Merged
merged 4 commits into from
Dec 12, 2018
Merged

Fix QtKeychain incompatibility between Debian/Ubuntu and Fedora #1940

merged 4 commits into from
Dec 12, 2018

Conversation

uklotzde
Copy link
Contributor

@uklotzde uklotzde commented Dec 9, 2018

Fedora provides qtkeychain-devel (Qt4) and qtkeychain-qt5-devel (Qt5) using different library names and a renamed directory for the headers. For Debian/Ubuntu the package name qtkeychain[-dev] has been reused and now contains the Qt5 artefacts that share both names and locations of their Qt4 counterparts.

On Fedora we have to use qtkeychain-qt5-devel, otherwise Mixxx still depends on some Qt4 libraries when building with qtkeychain=1:

	libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x00007fc935fcd000)
	libQtDBus.so.4 => /usr/lib64/libQtDBus.so.4 (0x00007fc935f3a000)
	libQtXml.so.4 => /usr/lib64/libQtXml.so.4 (0x00007fc935548000)

Additionally I enabled the QtKeychain feature for our Linux CI build to test that the fix doesn't break the Debian/Ubuntu builds. I'm not sure if this is desired or not?

@uklotzde uklotzde added this to the 2.2.0 milestone Dec 9, 2018
@uklotzde
Copy link
Contributor Author

Any thoughts about this workaround? Otherwise I will remove QtKeychain support from the RPM Fusion package.

@daschuer
Copy link
Member

Is it an issue if, only the qt4 Version is installed that it is still loaded? Can we detect the QT4 version and fail the build with the compiler?

The rest LGTM

@uklotzde
Copy link
Contributor Author

The Qt4 version builds and works (this is actually the current status until I noticed), but pulls a lot of unnecessary dependencies.

The RPM spec file will declare only the Qt5 version as a build dependency, so that Mixxx is distributed correctly with only Qt5 dependencies.

@daschuer
Copy link
Member

I am only concerned about home builds of Fedora users. It looks like it will pick the QT4 Version if the QT5 Version is not installed. Can this actually happen like without the patch?
Is there a macro or something that we can use in an
#if ..
#error ...
statement

@uklotzde
Copy link
Contributor Author

I don't see a way how to decide which variant of the library we are actually using during compile time. The code and library version is exactly the same.

On Fedora we still might use the Qt4 variant accidentally, if the Qt5 variant is not installed. But the current situation is much worse, because we always require and use the wrong Qt4 variant.

@daschuer
Copy link
Member

Ubuntu and Debian share the naming conventions with Fedora:
https://packages.ubuntu.com/search?keywords=qt5keychain&searchon=names&suite=all&section=all
This means we can entirely switch to qt5keychain. :-)

@uklotzde
Copy link
Contributor Author

Ok, maybe I accidentally picked the wrong package!? This would be much easier and less complicated. Let's give it a try...

qt5keychain ist not available in Ubuntu 14.04 used by Travis CI.

This reverts commit 38dc3f4.
@uklotzde
Copy link
Contributor Author

uklotzde commented Dec 11, 2018

Ubuntu 14.04.5 on Travis CI is missing the qt5keychain package. I had to remove the qtkeychain feature for the CI build.

@daschuer
Copy link
Member

LGTM Thank you.

@daschuer daschuer merged commit bd42189 into mixxxdj:2.2 Dec 12, 2018
@uklotzde uklotzde deleted the 2.2_qt5keychain branch December 26, 2018 23:50
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

Successfully merging this pull request may close these issues.

2 participants