On Sat, Jun 04, 2022 at 09:38:06AM +0200, Rafael Sadowski wrote:
> On Fri Jun 03, 2022 at 06:07:45PM +0200, Caspar Schutijser wrote:
> > Hi,
> > 
> > On a snapshot of two weeks old, the below command sequence (to compile
> > trojita outside the ports tree) succeeds successfully. However, on a
> > machine updated to today's snapshot, this fails with the error message
> > shown below. I assume it has something to do with the update to
> > CMake 3.23 (and perhaps specifically with the
> > "Fix build with CMake 3.23" commit on 2022-05-28) but I don't know for
> > sure. Do you know what's going on?
> > 
> > Thanks,
> > Caspar
> > 
> > 
> > $ cd /tmp
> > $ git clone https://invent.kde.org/pim/trojita
> > $ cd trojita
> > $ echo "set(CMAKE_PREFIX_PATH /usr/local/lib/qt5/cmake)" >new
> > $ cat CMakeLists.txt >>new
> > $ mv new CMakeLists.txt
> > $ mkdir _build
> > $ cd _build
> > $ cmake ..
> > [snip]
> > -- Configuring done
> > CMake Error at /usr/local/lib/qt5/cmake/Qt5WebKit/WebKitTargets.cmake:67 
> > (set_target_properties):
> >   The link interface of target "Qt5::WebCore" contains:
> > 
> >     Qt5::Sensors
> > 
> >   but the target was not found.  Possible reasons include:
> > 
> >     * There is a typo in the target name.
> >     * A find_package call is missing for an IMPORTED target.
> >     * An ALIAS target is missing.
> > 
> > Call Stack (most recent call first):
> >   /usr/local/lib/qt5/cmake/Qt5WebKit/Qt5WebKitConfig.cmake:87 (include)
> >   /usr/local/share/cmake/Modules/CMakeFindDependencyMacro.cmake:47 
> > (find_package)
> >   /usr/local/lib/qt5/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsConfig.cmake:83 
> > (find_dependency)
> >   CMakeLists.txt:52 (find_package)
> > 
> > 
> > CMake Error at /usr/local/lib/qt5/cmake/Qt5WebKit/WebKitTargets.cmake:83 
> > (set_target_properties):
> >   The link interface of target "Qt5::WebKit2" contains:
> > 
> >     Qt5::Positioning
> > 
> >   but the target was not found.  Possible reasons include:
> > 
> >     * There is a typo in the target name.
> >     * A find_package call is missing for an IMPORTED target.
> >     * An ALIAS target is missing.
> > 
> > Call Stack (most recent call first):
> >   /usr/local/lib/qt5/cmake/Qt5WebKit/Qt5WebKitConfig.cmake:87 (include)
> >   /usr/local/share/cmake/Modules/CMakeFindDependencyMacro.cmake:47 
> > (find_package)
> >   /usr/local/lib/qt5/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsConfig.cmake:83 
> > (find_dependency)
> >   CMakeLists.txt:52 (find_package)
> > 
> > 
> > -- Generating done
> > CMake Generate step failed.  Build files cannot be regenerated correctly.
> 
> I think I forgot about this patch.
> 
> This is a nasty Qt5WebKit issue. Qt5::WebKit2 depends on Sensors,
> Positioning, Quick and WebChannel but it is not defined in the WebKit2
> cmake module as a dependency (/usr/local/lib/qt5/cmake/Qt5WebKit/*).
> 
> I have also not found a solution to fix this in x11/qt5/qtwebkit (ugly
> deadbeef).

Your comment made me look at other port trees/package repositories. The
patch below, obtained via pkgsrc, seems to solve the problem in the
Qt5WebKit port itself. I have verified that I can now compile trojita
from git outside the ports tree, and the mail/trojita port also builds
successfully.

I have not verified yet that the modifications to the following patches
(from the "Fix build with CMake 3.23" commit) can be reverted with this
diff applied, but I think that will be possible. Once I have done that
(will take a couple of days) I'll extend the patch to revert those
changes together with this patch for Qt5WebKit.

databases/kexi/patches/patch-CMakeLists_txt
devel/kf5/kdewebkit/patches/patch-CMakeLists_txt
devel/kreport/patches/patch-CMakeLists_txt
devel/zeal/patches/patch-src_libs_core_CMakeLists_txt
devel/zeal/patches/patch-src_libs_ui_CMakeLists_txt
geo/qgis/patches/patch-CMakeLists_txt
net/qsyncthingtray/patches/patch-CMakeLists_txt
productivity/libalkimia/patches/patch-CMakeLists_txt

Thanks,
Caspar


Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/qt5/qtwebkit/Makefile,v
retrieving revision 1.38
diff -u -p -r1.38 Makefile
--- Makefile    28 May 2022 06:20:03 -0000      1.38
+++ Makefile    4 Jun 2022 13:00:28 -0000
@@ -13,7 +13,7 @@ PKGNAME =             qtwebkit-${VERSION}
 PKGSPEC =              qtwebkit->=${VERSION}v0
 
 EPOCH =                        0
-REVISION =             7
+REVISION =             8
 
 SHARED_LIBS +=  Qt5WebKit               3.1 # 5.9
 SHARED_LIBS +=  Qt5WebKitWidgets        3.1 # 5.9
Index: patches/patch-Source_Qt5WebKitConfig_cmake_in
===================================================================
RCS file: patches/patch-Source_Qt5WebKitConfig_cmake_in
diff -N patches/patch-Source_Qt5WebKitConfig_cmake_in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-Source_Qt5WebKitConfig_cmake_in       4 Jun 2022 13:00:28 
-0000
@@ -0,0 +1,18 @@
+Index: Source/Qt5WebKitConfig.cmake.in
+
+Fix build of ports using cmake/QtWebKit with cmake >= 3.23. Borrowed from
+http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/x11/qt5-qtwebkit/patches/patch-Source_Qt5WebKitConfig.cmake.in?rev=1.1&content-type=text/x-cvsweb-markup&only_with_tag=MAIN
+
+--- Source/Qt5WebKitConfig.cmake.in.orig
++++ Source/Qt5WebKitConfig.cmake.in
+@@ -4,6 +4,10 @@
+ find_dependency_with_major_and_minor(Qt5Core @Qt5_VERSION_MAJOR@ 
@Qt5_VERSION_MINOR@)
+ find_dependency_with_major_and_minor(Qt5Gui @Qt5_VERSION_MAJOR@ 
@Qt5_VERSION_MINOR@)
+ find_dependency_with_major_and_minor(Qt5Network @Qt5_VERSION_MAJOR@ 
@Qt5_VERSION_MINOR@)
++find_dependency_with_major_and_minor(Qt5Sensors @Qt5_VERSION_MAJOR@ 
@Qt5_VERSION_MINOR@)
++find_dependency_with_major_and_minor(Qt5Positioning @Qt5_VERSION_MAJOR@ 
@Qt5_VERSION_MINOR@)
++find_dependency_with_major_and_minor(Qt5Quick @Qt5_VERSION_MAJOR@ 
@Qt5_VERSION_MINOR@)
++find_dependency_with_major_and_minor(Qt5WebChannel @Qt5_VERSION_MAJOR@ 
@Qt5_VERSION_MINOR@)
+ 
+ include("${CMAKE_CURRENT_LIST_DIR}/WebKitTargets.cmake")
+ 

Reply via email to