Summary: | kdepim-runtime does not compile with qt 5.11 (because QString::QString(const char*), QChar::QChar(char) and QString::QString(const QByteArray&) are private) | ||
---|---|---|---|
Product: | [Applications] kdepim | Reporter: | Benjamin Traut <b.traut> |
Component: | libkdepim | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED LATER | ||
Severity: | major | CC: | asturm, montel, sputnick |
Priority: | NOR | ||
Version: | GIT (master) | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Output of emerge --info
Compressed versuin of the build-environment Compressed build-log |
Description
Benjamin Traut
2018-11-11 14:32:50 UTC
I don't know why you have this problem. What do you use as build specific argument ? https://build.kde.org/view/Failing/job/Applications/job/kdepim-runtime/job/kf5-qt5%20FreeBSDQt5.11/ as you can see all compile fine. So I don"t know why gentoo creates this problem (same here) Created attachment 116247 [details]
Output of emerge --info
Created attachment 116248 [details]
Compressed versuin of the build-environment
Created attachment 116249 [details]
Compressed build-log
I have attached three files. If you need additional information, please say so. Looking at /usr/include/qt5/QtCore/qstring.h at line ~826: private: #if defined(QT_NO_CAST_FROM_ASCII) QString &operator+=(const char *s); QString &operator+=(const QByteArray &s); QString(const char *ch); QString(const QByteArray &a); QString &operator=(const char *ch); QString &operator=(const QByteArray &a); #endif so I guess, that gentoos qt5-packages are setting the QT_NO_CAST_FROM_ASCII-flags where they should'nt currently do? ...or the packages to be installed are setting this...? and the commandline from the build-output (see attachment) states -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII you force some flags as there are removed by kdelibs4support. So by default it builds without it. So you need to remove theses flags for kdepim-runtime. We will fix it later but for normal build it's ok. I filed a report on bugs.gentoo.org: https://bugs.gentoo.org/670958 I had no intention of marking it as fixed instead of later. Sorry. For the record, Gentoo does not mess with those flags. Benjamin, if you are working with live sources, make sure you use `smart-live-rebuild` to catch any new upstream commits in dependencies that may fix your issue. The compiler flags -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII are enforced by extra-cmake-modules in KDEFrameworkCompilerSettings.cmake; so those are not added by Gentoo. In addition, resources/ews/ewsclient/auth/ewspkeyauthjob.cpp misses an #include <QUrlQuery>; also in that file, QString::toAscii() is used twice, which is deprecated since Qt 5.0 (and I guess something in KDE's build chain disables those methods, although I could not find the actual place). Removing the flags from KDEFrameworkCompilerSettings.cmake, adding the missing include and changing toAscii() to toLatin1() fixes the kdepim-runtime build for me, but obviously these are hacks that should be fixed properly. I'm reopening the bug, because these seem to be upstream issues rather than Gentoo issues. If you disagree, feel free to close again. (In reply to Manuel Nickschas from comment #14) > The compiler flags -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY > -DQT_NO_CAST_TO_ASCII are enforced by extra-cmake-modules in > KDEFrameworkCompilerSettings.cmake; so those are not added by Gentoo. indeed it's in KDEFrameworkCompilerSettings.cmake I know as I added it in kdepim-runtime. but we use kdelibs4support which has remove_definition(....) but as gentoo force it to build it will override remove_definition. I tested in local it yesterday > > In addition, resources/ews/ewsclient/auth/ewspkeyauthjob.cpp misses an > #include <QUrlQuery>; also in that file, QString::toAscii() is used twice, > which is deprecated since Qt 5.0 (and I guess something in KDE's build chain > disables those methods, although I could not find the actual place). > > Removing the flags from KDEFrameworkCompilerSettings.cmake, adding the > missing include and changing toAscii() to toLatin1() fixes the > kdepim-runtime build for me, but obviously these are hacks that should be > fixed properly. For sure they need to be fix. It's for that I close as 'later' as it compiles fine for the moment > > I'm reopening the bug, because these seem to be upstream issues rather than > Gentoo issues. If you disagree, feel free to close again. I disagreee => I close it Oh, I see now. Our ebuild has the following:
> # We don't build kolab, so we can disable this
> punt_bogus_dep KF5 KDELibs4Support
That's why the the build issues are unmasked.
I can confirm that removing this from the ebuild makes kdepim-runtime compile on Gentoo, so you guys were right. That was one venue I didn't look into when trying to debug :) Thank you all. I commented out the mentioned line in the ebuild and now it compiled. |