The previous code using substituteInPlace was broken for both 5.9 and
5.11 (latter was broken after a minor release bump). Using patches
should make things fail loudly and prevent modules/qtwebengine.nix from
being littered with version checks.
The patch for 5.12 is only tested to apply.
This introduces usingAnnulenWebkitFork variable. Using version
check for qtbase.version is misleading because annulen's fork is not
tied to a specific qt5 release.
The impure library was introduced in
775531c1e3 ('qt58: extend darwin compatibility')
cmake-based build can use a non-apple ICU if -DMACOS_USE_SYSTEM_ICU=OFF
is set.
QtWebEngine's build system is setup to perform certain platform checks
(see mkspecs/features/platform.prf). But a failed check will not cause
configuration phase to fail, but instead it configures no build targets.
So in such case the build will successfully perform build and install
phases. An empty output directories will are produced and the build
succeeds.
This patches qtwebengine qmake files to properly fail during
configuration phase.
This doesn't touch qt56 as it doesn't have this mechanism.
Comments on conflicts:
- llvm: d6f401e1 vs. 469ecc70 - docs for 6 and 7 say the default is
to build all targets, so we should be fine
- some pypi hashes: they were equivalent, just base16 vs. base32
This adds the "missing" qtvirtualkeyboard module of qt56. I just add
this so I can apply (& test) the patches for a CVE in the next commit.
This might seem strange but in case anyone decided to add / use this in
the future we are on the safe(r) side.
In Qt-5.12, the order of the dependency between these two packages
flipped.
A symptom of the problem is an error like, `module
"QtQuick.XmlListModel" is not installed`.
The upstream changes that this reflects are in qtxmlpatterns
<8c6e24329e>
and qtdeclarative <0477a057fd>
This package contains several CMake files used for setting up its
provided tools for use in other projects build with CMake.
While packaging *ktouch* I found out that the ${_qt5Core_install_prefix}
variable doesn't expand at all, rendering the path to the `qmlcachegen`
binary useless. As a fix, the command itself is used instead of the path
to the binary.
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in qmacfunctions.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in qmactoolbar.o
objc-class-ref in qmactoolbardelegate.o
ld: symbol(s) not found for architecture x86_64
Why is qtmultimedia only needed on Darwin? Why does it only fix 5.9, not
5.11? These things I do not know. What I do know is that, for some
reason, this makes qt59.qtwebkit build on Darwin.
I think the reason it hasn't also fixed 5.11 might be something to do
with the version of qtmultimedia, but I don't know enough about Qt or
cmake to figure it out. The error when trying to build qt511.qtwebkit
(with or without these changes) is:
CMake Error at Source/cmake/OptionsQt.cmake:739 (find_package):
Could not find a package configuration file provided by "Qt5Multimedia"
(requested version 5.2.0) with any of the following names:
Qt5MultimediaConfig.cmake
qt5multimedia-config.cmake
Add the installation prefix of "Qt5Multimedia" to CMAKE_PREFIX_PATH or set
"Qt5Multimedia_DIR" to a directory containing one of the above files. If
"Qt5Multimedia" provides a separate development package or SDK, be sure it
has been installed.
Call Stack (most recent call first):
Source/cmake/WebKitCommon.cmake:50 (include)
CMakeLists.txt:137 (include)
-- Configuring incomplete, errors occurred!
See also "/tmp/nix-build-qtwebkit-5.212-alpha-01-26-2018.drv-0/source/build/CMakeFiles/CMakeOutput.log".
See also "/tmp/nix-build-qtwebkit-5.212-alpha-01-26-2018.drv-0/source/build/CMakeFiles/CMakeError.log".