SUMMARY craft fails to build kpimtextedit not being able to locate the sonnet/highlighter.h header. The header is present in CraftRoot/include/KF5/SonnetUi/Sonnet, but that location is not included during compilation – only the /Volumes/External/CraftRoot/include/KF5/SonnetUi is. STEPS TO REPRODUCE 1. Install craft 2. Issue "craft kpimtextedit" OBSERVED RESULT FAILED: src/CMakeFiles/KF5PimTextEdit.dir/KF5PimTextEdit_autogen/mocs_compilation.cpp.o /Library/Developer/CommandLineTools/usr/bin/clang++ -DBUILD_TESTING -DKCOREADDONS_LIB -DKF5PimTextEdit_EXPORTS -DKF_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_GUI_LIB -DQT_MAC_USE_COCOA -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TEXTTOSPEECH_LIB -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"libkpimtextedit\" -D_DARWIN_C_SOURCE -D_LARGEFILE64_SOURCE -Isrc -I/Volumes/External/CraftRoot/build/kde/pim/kpimtextedit/work/kpimtextedit-19.12.3/src -Isrc/KF5PimTextEdit_autogen/include -isystem /Volumes/External/CraftRoot/include/KF5/KCodecs -isystem /Volumes/External/CraftRoot/include/KF5 -iframework /Volumes/External/CraftRoot/lib -isystem /Volumes/External/CraftRoot/lib/QtCore.framework/Headers -isystem /Volumes/External/CraftRoot/./mkspecs/macx-clang -isystem /Volumes/External/CraftRoot/include/KF5/SonnetUi -isystem /Volumes/External/CraftRoot/lib/QtWidgets.framework/Headers -isystem /Volumes/External/CraftRoot/lib/QtGui.framework/Headers -isystem /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Headers -isystem /Volumes/External/CraftRoot/include/KF5/SonnetCore -isystem /Volumes/External/CraftRoot/include/KF5/KWidgetsAddons -isystem /Volumes/External/CraftRoot/include/KF5/KIOWidgets -isystem /Volumes/External/CraftRoot/include/KF5/KIOCore -isystem /Volumes/External/CraftRoot/include/KF5/KCoreAddons -isystem /Volumes/External/CraftRoot/include/KF5/KService -isystem /Volumes/External/CraftRoot/include/KF5/KConfigCore -isystem /Volumes/External/CraftRoot/lib/QtNetwork.framework/Headers -isystem /Volumes/External/CraftRoot/lib/QtConcurrent.framework/Headers -isystem /Volumes/External/CraftRoot/lib/QtDBus.framework/Headers -isystem /Volumes/External/CraftRoot/include/KF5/KJobWidgets -isystem /Volumes/External/CraftRoot/include/KF5/KCompletion -isystem /Volumes/External/CraftRoot/include/KF5/KConfigWidgets -isystem /Volumes/External/CraftRoot/include/KF5/KConfigGui -isystem /Volumes/External/CraftRoot/lib/QtXml.framework/Headers -isystem /Volumes/External/CraftRoot/include/KF5/KAuth -isystem /Volumes/External/CraftRoot/include -isystem /Volumes/External/CraftRoot/include/KF5/KXmlGui -isystem /Volumes/External/CraftRoot/include/KF5/KI18n -isystem /Volumes/External/CraftRoot/include/KF5/KSyntaxHighlighting -isystem /Volumes/External/CraftRoot/lib/QtTextToSpeech.framework/Headers -fno-operator-names -fno-exceptions -Wno-gnu-zero-variadic-macro-arguments -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fdiagnostics-color=always -pedantic -Wzero-as-null-pointer-constant -O2 -g -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -MD -MT src/CMakeFiles/KF5PimTextEdit.dir/KF5PimTextEdit_autogen/mocs_compilation.cpp.o -MF src/CMakeFiles/KF5PimTextEdit.dir/KF5PimTextEdit_autogen/mocs_compilation.cpp.o.d -o src/CMakeFiles/KF5PimTextEdit.dir/KF5PimTextEdit_autogen/mocs_compilation.cpp.o -c src/KF5PimTextEdit_autogen/mocs_compilation.cpp In file included from src/KF5PimTextEdit_autogen/mocs_compilation.cpp:6: In file included from src/KF5PimTextEdit_autogen/EHOWY2AH33/moc_richtextcomposeremailquotehighlighter.cpp:10: /Volumes/External/CraftRoot/build/kde/pim/kpimtextedit/work/kpimtextedit-19.12.3/src/composer-ng/richtextcomposeremailquotehighlighter.h:23:10: fatal error: 'sonnet/highlighter.h' file not found #include <sonnet/highlighter.h> EXPECTED RESULT kpimtextedit to compile successfully SOFTWARE/OS VERSIONS macOS: 10.15.3 Qt Version: craft's own
OK, the problem is not with a missing include but the "Sonnet" folder case, which should be "sonnet", i.e. CraftRoot/include/KF5/SonnetUi/sonnet
Actually, looks like the code references headers in both upper and lower case folder and same issue happens for SonnetCore/Sonnet and KIOWidgets/KIO, so I doubt this is a mistake and it definitely goes beyond my basic cmake knowledge. Either way, I was able to workaround by symlinking KIOWidgets/KIO, SonnetUi/Sonnet and SonnetCore/Sonnet to their lowercase folder names and it worked.
Sounds like an upstream issue.
Ah I remember this issue. Its caused by our builder using a case insensitive os, so the upper and lowercase headers get merged. When the used on a case sensitive file system the compat headers are missing....
clang has -Wnonportable-include-path and -Wnonportable-system-include-path that should fix this. They're not on by default because they can slow down the compilation time. I suppose a logic could be added to check if the compilation uses case-sensitive filesystem (for both Linux and macOS) and turn them on if needed.
The issue is that an install step adds the uppercase path includes. But if the host is case insensitive that has no effect. So when everything is done on a case sensitive platform both the upper and the lowercase path exist and everything is fine.
Thank you for reporting this crash in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the crash with a recent software version? If you can reproduce the issue, please change the status to "CONFIRMED" when replying. Thank you!
Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone!
This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging Thank you for helping us make KDE software even better for everyone!