Update to new upstream release 3.2.3

This commit is contained in:
Scott Talbert 2023-10-11 20:08:13 -04:00
parent 0e4b477a78
commit 065f1ec8d3
6 changed files with 7 additions and 278 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@
/wxWidgets-3.2.1.tar.bz2
/wxWidgets-3.2.2.tar.bz2
/wxWidgets-3.2.2.1.tar.bz2
/wxWidgets-3.2.3.tar.bz2

View File

@ -1,31 +0,0 @@
From 9688ccc0874c0c513b73d01679b1b426f463477f Mon Sep 17 00:00:00 2001
From: Scott Talbert <swt@techie.net>
Date: Fri, 31 Mar 2023 18:04:26 -0400
Subject: [PATCH] WebView tests: Fix Selection test with WebKit 2.40+
For some reason, calling HasSelection() immediately after SelectAll()
causes the web extension to get stuck under WebKit 2.40. Instead of
sleeping, call wxYield() a few times to let the event loop run a bit.
---
tests/controls/webtest.cpp | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/tests/controls/webtest.cpp b/tests/controls/webtest.cpp
index c0eb77f52929..98a817c9971a 100644
--- a/tests/controls/webtest.cpp
+++ b/tests/controls/webtest.cpp
@@ -232,9 +232,11 @@ TEST_CASE_METHOD(WebViewTestCase, "WebView", "[wxWebView]")
// With WebKit SelectAll() sends a request to perform the selection to
// another process via proxy and there doesn't seem to be any way to
// wait until this request is actually handled, so loop here for some a
- // bit before giving up.
- for ( wxStopWatch sw; !m_browser->HasSelection() && sw.Time() < 50; )
- wxMilliSleep(1);
+ // bit before giving up. Avoid calling HasSelection() right away
+ // without wxYielding a bit because this seems to cause the extension
+ // to hang with webkit 2.40.0+.
+ for ( wxStopWatch sw; sw.Time() < 50; )
+ wxYield();
#endif // wxUSE_WEBVIEW_WEBKIT2
CHECK(m_browser->HasSelection());

View File

@ -1,77 +0,0 @@
From 1b0c5d63f6269afa46d121c28160a339da5dd5b7 Mon Sep 17 00:00:00 2001
From: Scott Talbert <swt@techie.net>
Date: Fri, 14 Jul 2023 11:45:19 -0400
Subject: [PATCH] Read Linux distribution info from os-release file
The Linux distribution community has somewhat deprecated the lsb_release
utility and has standardized on a new file, os-release, that can be
simply parsed to get the same information. Attempt to read this file in
/etc/os-release, then /usr/lib/os-release, and finally, fall back to
using the lsb_release utility if neither of those files are found.
See: https://www.freedesktop.org/software/systemd/man/os-release.html
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2184391
See #23712.
(cherry picked from commit aef7df6c9f44f751d97f4f6519ae6e5c3b81019d)
---
docs/changes.txt | 1 +
src/unix/utilsunx.cpp | 30 ++++++++++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp
index ac5181e187f3..302aaa25b8f5 100644
--- a/src/unix/utilsunx.cpp
+++ b/src/unix/utilsunx.cpp
@@ -62,6 +62,8 @@
#include "wx/evtloop.h"
#include "wx/mstream.h"
#include "wx/private/fdioeventloopsourcehandler.h"
+#include "wx/config.h"
+#include "wx/filename.h"
#include <pwd.h>
#include <sys/wait.h> // waitpid()
@@ -1147,6 +1149,23 @@ wxString wxGetNativeCpuArchitectureName()
#ifdef __LINUX__
+static bool
+wxGetValuesFromOSRelease(const wxString& filename, wxLinuxDistributionInfo& ret)
+{
+ if ( !wxFileName::Exists(filename) )
+ {
+ return false;
+ }
+
+ wxFileConfig fc(wxEmptyString, wxEmptyString, wxEmptyString, filename);
+ ret.Id = fc.Read(wxS("ID"), wxEmptyString).Capitalize();
+ ret.Description = fc.Read(wxS("PRETTY_NAME"), wxEmptyString);
+ ret.Release = fc.Read(wxS("VERSION_ID"), wxEmptyString);
+ ret.CodeName = fc.Read(wxS("VERSION_CODENAME"), wxEmptyString);
+
+ return true;
+}
+
static bool
wxGetValueFromLSBRelease(const wxString& arg, const wxString& lhs, wxString* rhs)
{
@@ -1161,6 +1180,17 @@ wxLinuxDistributionInfo wxGetLinuxDistributionInfo()
{
wxLinuxDistributionInfo ret;
+ // Read /etc/os-release and fall back to /usr/lib/os-release per below
+ // https://www.freedesktop.org/software/systemd/man/os-release.html
+ if ( wxGetValuesFromOSRelease(wxS("/etc/os-release"), ret) )
+ {
+ return ret;
+ }
+ if ( wxGetValuesFromOSRelease(wxS("/usr/lib/os-release"), ret) )
+ {
+ return ret;
+ }
+
if ( !wxGetValueFromLSBRelease(wxS("--id"), wxS("Distributor ID:\t"),
&ret.Id) )
{

View File

@ -1 +1 @@
SHA512 (wxWidgets-3.2.2.1.tar.bz2) = 289d61ea2abd75a329aafcbd347ab84b136f31fca01dd902593f661691ecd30a4416286ff501c4257baa6765cf356ade3087eb8609af9a44599cfdc20e2f03a6
SHA512 (wxWidgets-3.2.3.tar.bz2) = 72e00cea25ab82d5134592f85bedeecb7b9512c00be32f37f6879ca5c437569b3b2b77de61a38e980e5c96baad9b1b0c8ad70773d610afbe9421fa4941d31f99

View File

@ -1,164 +0,0 @@
From df46add1165314bce93d70e611ddc453561ffb60 Mon Sep 17 00:00:00 2001
From: Scott Talbert <swt@techie.net>
Date: Mon, 12 Jun 2023 20:28:35 -0400
Subject: [PATCH] Add support for building WebView with libwebkit2gtk-4.1
libwebkit2gtk-4.1 has the same API as libwebkit2gtk-4.0, except that the
former links with libsoup-3.0 and the latter links with libsoup-2.4.
Fixes #23630.
(cherry picked from commit 1b8664426603376b68f8ca3c54de97ec630e5940)
---
build/cmake/init.cmake | 10 ++-
build/cmake/modules/FindLIBSOUP.cmake | 14 +++-
build/cmake/modules/FindWEBKIT2.cmake | 5 +-
configure | 95 +++++++++++++++++++++++++--
configure.in | 16 ++++-
src/gtk/webview_webkit2.cpp | 4 ++
6 files changed, 129 insertions(+), 15 deletions(-)
diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake
index fc206cf2e03a..5d88a7e487cc 100644
--- a/build/cmake/init.cmake
+++ b/build/cmake/init.cmake
@@ -453,15 +453,21 @@ if(wxUSE_GUI)
if(wxUSE_WEBVIEW)
if(WXGTK)
if(wxUSE_WEBVIEW_WEBKIT)
- find_package(LIBSOUP)
+ set(WEBKIT_LIBSOUP_VERSION 2.4)
if(WXGTK2)
find_package(WEBKIT 1.0)
elseif(WXGTK3)
- find_package(WEBKIT2)
+ find_package(WEBKIT2 4.1 QUIET)
+ if(WEBKIT2_FOUND)
+ set(WEBKIT_LIBSOUP_VERSION 3.0)
+ else()
+ find_package(WEBKIT2 4.0)
+ endif()
if(NOT WEBKIT2_FOUND)
find_package(WEBKIT 3.0)
endif()
endif()
+ find_package(LIBSOUP ${WEBKIT_LIBSOUP_VERSION})
endif()
set(wxUSE_WEBVIEW_WEBKIT OFF)
set(wxUSE_WEBVIEW_WEBKIT2 OFF)
diff --git a/build/cmake/modules/FindLIBSOUP.cmake b/build/cmake/modules/FindLIBSOUP.cmake
index cbfba1cf9366..2433d141eaf7 100644
--- a/build/cmake/modules/FindLIBSOUP.cmake
+++ b/build/cmake/modules/FindLIBSOUP.cmake
@@ -31,19 +31,27 @@
# LibSoup does not provide an easy way to retrieve its version other than its
# .pc file, so we need to rely on PC_LIBSOUP_VERSION and REQUIRE the .pc file
# to be found.
+SET(LIBSOUP_VERSION 2.4)
+if(DEFINED LIBSOUP_FIND_VERSION)
+ SET(LIBSOUP_VERSION ${LIBSOUP_FIND_VERSION})
+endif()
+
+set(LIBSOUP_INCLUDE_DIRS LIBSOUP_INCLUDE_DIRS-NOTFOUND)
+set(LIBSOUP_LIBRARIES LIBSOUP_LIBRARIES-NOTFOUND)
+
FIND_PACKAGE(PkgConfig)
-PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-2.4)
+PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-${LIBSOUP_VERSION})
if(PC_LIBSOUP_FOUND)
FIND_PATH(LIBSOUP_INCLUDE_DIRS
NAMES libsoup/soup.h
HINTS ${PC_LIBSOUP_INCLUDEDIR}
${PC_LIBSOUP_INCLUDE_DIRS}
- PATH_SUFFIXES libsoup-2.4
+ PATH_SUFFIXES libsoup-${LIBSOUP_VERSION}
)
FIND_LIBRARY(LIBSOUP_LIBRARIES
- NAMES soup-2.4
+ NAMES soup-${LIBSOUP_VERSION}
HINTS ${PC_LIBSOUP_LIBDIR}
${PC_LIBSOUP_LIBRARY_DIRS}
)
diff --git a/build/cmake/modules/FindWEBKIT2.cmake b/build/cmake/modules/FindWEBKIT2.cmake
index 133e7a4563ea..e39077ac4a71 100644
--- a/build/cmake/modules/FindWEBKIT2.cmake
+++ b/build/cmake/modules/FindWEBKIT2.cmake
@@ -5,7 +5,10 @@
# WEBKIT2_LIBRARIES - List of libraries when using Webkit2.
# WEBKIT2_FOUND - True if Webkit2 found.
-SET( WEBKIT2_VERSION 4.0)
+SET(WEBKIT2_VERSION 4.0)
+if(DEFINED WEBKIT2_FIND_VERSION)
+ SET(WEBKIT2_VERSION ${WEBKIT2_FIND_VERSION})
+endif()
set(WEBKIT2_INCLUDE_DIR WEBKIT2_INCLUDE_DIR-NOTFOUND)
set(WEBKIT2_LIBRARY WEBKIT2_LIBRARY-NOTFOUND)
diff --git a/configure.in b/configure.in
index 957be8dda34c..257c95a6009b 100644
--- a/configure.in
+++ b/configure.in
@@ -7529,15 +7529,27 @@ if test "$wxUSE_WEBVIEW" = "yes"; then
if test "$wxUSE_GTK" = 1; then
if test "$WXGTK3" = 1; then
PKG_CHECK_MODULES([WEBKIT],
- [webkit2gtk-4.0],
+ [webkit2gtk-4.1],
[
USE_WEBVIEW_WEBKIT2=1
CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
],
[
- AC_MSG_WARN([webkit2gtk not found, falling back to webkitgtk])
+ AC_MSG_WARN([webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0])
])
+ if test "$USE_WEBVIEW_WEBKIT2" = 0; then
+ PKG_CHECK_MODULES([WEBKIT],
+ [webkit2gtk-4.0],
+ [
+ USE_WEBVIEW_WEBKIT2=1
+ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
+ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
+ ],
+ [
+ AC_MSG_WARN([webkit2gtk-4.0 not found, falling back to webkitgtk])
+ ])
+ fi
fi
if test "$USE_WEBVIEW_WEBKIT2" = 0; then
webkitgtk=webkit-1.0
diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp
index 191cbcf2cc18..87a9bd5ad3a8 100644
--- a/src/gtk/webview_webkit2.cpp
+++ b/src/gtk/webview_webkit2.cpp
@@ -173,15 +173,18 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *,
{
switch (error->code)
{
+#if SOUP_MAJOR_VERSION < 3
case SOUP_STATUS_CANCELLED:
type = wxWEBVIEW_NAV_ERR_USER_CANCELLED;
break;
case SOUP_STATUS_CANT_RESOLVE:
+#endif
case SOUP_STATUS_NOT_FOUND:
type = wxWEBVIEW_NAV_ERR_NOT_FOUND;
break;
+#if SOUP_MAJOR_VERSION < 3
case SOUP_STATUS_CANT_RESOLVE_PROXY:
case SOUP_STATUS_CANT_CONNECT:
case SOUP_STATUS_CANT_CONNECT_PROXY:
@@ -193,6 +196,7 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *,
case SOUP_STATUS_MALFORMED:
type = wxWEBVIEW_NAV_ERR_REQUEST;
break;
+#endif
case SOUP_STATUS_BAD_REQUEST:
type = wxWEBVIEW_NAV_ERR_REQUEST;

View File

@ -4,8 +4,8 @@
%global sover 0
Name: wxGTK
Version: 3.2.2.1
Release: 6%{?dist}
Version: 3.2.3
Release: 1%{?dist}
Summary: GTK port of the wxWidgets GUI library
License: wxWidgets
URL: https://www.wxwidgets.org/
@ -16,9 +16,6 @@ Source10: wx-config
# remove abort when ABI check fails
# Backport from wxGTK
Patch0: %{name}-3.1.6-abicheck.patch
Patch1: https://github.com/wxWidgets/wxWidgets/commit/9688ccc0874c0c513b73d01679b1b426f463477f.patch
Patch2: os-release.patch
Patch3: webkit2gtk4.1.patch
BuildRequires: make
BuildRequires: gcc-c++
@ -321,6 +318,9 @@ fi
%doc html
%changelog
* Wed Oct 11 2023 Scott Talbert <swt@techie.net> - 3.2.3-1
- Update to new upstream release 3.2.3
* Mon Aug 21 2023 Scott Talbert <swt@techie.net> - 3.2.2.1-6
- Rebuild with webkit2gtk4.1 (#2232979)