]> git.pld-linux.org Git - packages/wxWidgets.git/blame - webkit2gtk4.1.patch
add missing ldconfig invocation to wxX11-gl and wxX11-unicode-gl
[packages/wxWidgets.git] / webkit2gtk4.1.patch
CommitLineData
8c83cec1
JR
1From df46add1165314bce93d70e611ddc453561ffb60 Mon Sep 17 00:00:00 2001
2From: Scott Talbert <swt@techie.net>
3Date: Mon, 12 Jun 2023 20:28:35 -0400
4Subject: [PATCH] Add support for building WebView with libwebkit2gtk-4.1
5
6libwebkit2gtk-4.1 has the same API as libwebkit2gtk-4.0, except that the
7former links with libsoup-3.0 and the latter links with libsoup-2.4.
8
9Fixes #23630.
10
11(cherry picked from commit 1b8664426603376b68f8ca3c54de97ec630e5940)
12---
13 build/cmake/init.cmake | 10 ++-
14 build/cmake/modules/FindLIBSOUP.cmake | 14 +++-
15 build/cmake/modules/FindWEBKIT2.cmake | 5 +-
16 configure | 95 +++++++++++++++++++++++++--
17 configure.in | 16 ++++-
18 src/gtk/webview_webkit2.cpp | 4 ++
19 6 files changed, 129 insertions(+), 15 deletions(-)
20
21diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake
22index fc206cf2e03a..5d88a7e487cc 100644
23--- a/build/cmake/init.cmake
24+++ b/build/cmake/init.cmake
25@@ -453,15 +453,21 @@ if(wxUSE_GUI)
26 if(wxUSE_WEBVIEW)
27 if(WXGTK)
28 if(wxUSE_WEBVIEW_WEBKIT)
29- find_package(LIBSOUP)
30+ set(WEBKIT_LIBSOUP_VERSION 2.4)
31 if(WXGTK2)
32 find_package(WEBKIT 1.0)
33 elseif(WXGTK3)
34- find_package(WEBKIT2)
35+ find_package(WEBKIT2 4.1 QUIET)
36+ if(WEBKIT2_FOUND)
37+ set(WEBKIT_LIBSOUP_VERSION 3.0)
38+ else()
39+ find_package(WEBKIT2 4.0)
40+ endif()
41 if(NOT WEBKIT2_FOUND)
42 find_package(WEBKIT 3.0)
43 endif()
44 endif()
45+ find_package(LIBSOUP ${WEBKIT_LIBSOUP_VERSION})
46 endif()
47 set(wxUSE_WEBVIEW_WEBKIT OFF)
48 set(wxUSE_WEBVIEW_WEBKIT2 OFF)
49diff --git a/build/cmake/modules/FindLIBSOUP.cmake b/build/cmake/modules/FindLIBSOUP.cmake
50index cbfba1cf9366..2433d141eaf7 100644
51--- a/build/cmake/modules/FindLIBSOUP.cmake
52+++ b/build/cmake/modules/FindLIBSOUP.cmake
53@@ -31,19 +31,27 @@
54 # LibSoup does not provide an easy way to retrieve its version other than its
55 # .pc file, so we need to rely on PC_LIBSOUP_VERSION and REQUIRE the .pc file
56 # to be found.
57+SET(LIBSOUP_VERSION 2.4)
58+if(DEFINED LIBSOUP_FIND_VERSION)
59+ SET(LIBSOUP_VERSION ${LIBSOUP_FIND_VERSION})
60+endif()
61+
62+set(LIBSOUP_INCLUDE_DIRS LIBSOUP_INCLUDE_DIRS-NOTFOUND)
63+set(LIBSOUP_LIBRARIES LIBSOUP_LIBRARIES-NOTFOUND)
64+
65 FIND_PACKAGE(PkgConfig)
66-PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-2.4)
67+PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-${LIBSOUP_VERSION})
68
69 if(PC_LIBSOUP_FOUND)
70 FIND_PATH(LIBSOUP_INCLUDE_DIRS
71 NAMES libsoup/soup.h
72 HINTS ${PC_LIBSOUP_INCLUDEDIR}
73 ${PC_LIBSOUP_INCLUDE_DIRS}
74- PATH_SUFFIXES libsoup-2.4
75+ PATH_SUFFIXES libsoup-${LIBSOUP_VERSION}
76 )
77
78 FIND_LIBRARY(LIBSOUP_LIBRARIES
79- NAMES soup-2.4
80+ NAMES soup-${LIBSOUP_VERSION}
81 HINTS ${PC_LIBSOUP_LIBDIR}
82 ${PC_LIBSOUP_LIBRARY_DIRS}
83 )
84diff --git a/build/cmake/modules/FindWEBKIT2.cmake b/build/cmake/modules/FindWEBKIT2.cmake
85index 133e7a4563ea..e39077ac4a71 100644
86--- a/build/cmake/modules/FindWEBKIT2.cmake
87+++ b/build/cmake/modules/FindWEBKIT2.cmake
88@@ -5,7 +5,10 @@
89 # WEBKIT2_LIBRARIES - List of libraries when using Webkit2.
90 # WEBKIT2_FOUND - True if Webkit2 found.
91
92-SET( WEBKIT2_VERSION 4.0)
93+SET(WEBKIT2_VERSION 4.0)
94+if(DEFINED WEBKIT2_FIND_VERSION)
95+ SET(WEBKIT2_VERSION ${WEBKIT2_FIND_VERSION})
96+endif()
97
98 set(WEBKIT2_INCLUDE_DIR WEBKIT2_INCLUDE_DIR-NOTFOUND)
99 set(WEBKIT2_LIBRARY WEBKIT2_LIBRARY-NOTFOUND)
100diff --git a/configure.in b/configure.in
101index 957be8dda34c..257c95a6009b 100644
102--- a/configure.in
103+++ b/configure.in
104@@ -7529,15 +7529,27 @@ if test "$wxUSE_WEBVIEW" = "yes"; then
105 if test "$wxUSE_GTK" = 1; then
106 if test "$WXGTK3" = 1; then
107 PKG_CHECK_MODULES([WEBKIT],
108- [webkit2gtk-4.0],
109+ [webkit2gtk-4.1],
110 [
111 USE_WEBVIEW_WEBKIT2=1
112 CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
113 EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
114 ],
115 [
116- AC_MSG_WARN([webkit2gtk not found, falling back to webkitgtk])
117+ AC_MSG_WARN([webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0])
118 ])
119+ if test "$USE_WEBVIEW_WEBKIT2" = 0; then
120+ PKG_CHECK_MODULES([WEBKIT],
121+ [webkit2gtk-4.0],
122+ [
123+ USE_WEBVIEW_WEBKIT2=1
124+ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
125+ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
126+ ],
127+ [
128+ AC_MSG_WARN([webkit2gtk-4.0 not found, falling back to webkitgtk])
129+ ])
130+ fi
131 fi
132 if test "$USE_WEBVIEW_WEBKIT2" = 0; then
133 webkitgtk=webkit-1.0
134diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp
135index 191cbcf2cc18..87a9bd5ad3a8 100644
136--- a/src/gtk/webview_webkit2.cpp
137+++ b/src/gtk/webview_webkit2.cpp
138@@ -173,15 +173,18 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *,
139 {
140 switch (error->code)
141 {
142+#if SOUP_MAJOR_VERSION < 3
143 case SOUP_STATUS_CANCELLED:
144 type = wxWEBVIEW_NAV_ERR_USER_CANCELLED;
145 break;
146
147 case SOUP_STATUS_CANT_RESOLVE:
148+#endif
149 case SOUP_STATUS_NOT_FOUND:
150 type = wxWEBVIEW_NAV_ERR_NOT_FOUND;
151 break;
152
153+#if SOUP_MAJOR_VERSION < 3
154 case SOUP_STATUS_CANT_RESOLVE_PROXY:
155 case SOUP_STATUS_CANT_CONNECT:
156 case SOUP_STATUS_CANT_CONNECT_PROXY:
157@@ -193,6 +196,7 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *,
158 case SOUP_STATUS_MALFORMED:
159 type = wxWEBVIEW_NAV_ERR_REQUEST;
160 break;
161+#endif
162
163 case SOUP_STATUS_BAD_REQUEST:
164 type = wxWEBVIEW_NAV_ERR_REQUEST;
This page took 0.117562 seconds and 4 git commands to generate.