diff --git a/.gitignore b/.gitignore
index fd198b8..ff3e005 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 /wxWidgets-3.1.3.tar.bz2
 /wxWidgets-3.1.4.tar.bz2
+/wxWidgets-3.1.5.tar.bz2
diff --git a/disable-tests-failing-mock.patch b/disable-tests-failing-mock.patch
index bbb7ad4..c1c9290 100644
--- a/disable-tests-failing-mock.patch
+++ b/disable-tests-failing-mock.patch
@@ -10,12 +10,3 @@ diff -up wxWidgets-3.1.4/tests/filename/filenametest.cpp.mock wxWidgets-3.1.4/te
  #endif // __LINUX__
  #ifndef __VMS
      wxString fifo = dirTemp.GetPath() + "/fifo";
-@@ -1058,7 +1058,7 @@ TEST_CASE("wxFileName::GetSizeSpecial",
- {
-     wxULongLong size = wxFileName::GetSize("/proc/kcore");
-     INFO( "size of /proc/kcore=" << size );
--    CHECK( size > 0 );
-+    //CHECK( size > 0 );
- 
-     // All files in /sys are one page in size, irrespectively of the size of
-     // their actual contents.
diff --git a/fix-webview-tests.patch b/fix-webview-tests.patch
deleted file mode 100644
index 5afadf3..0000000
--- a/fix-webview-tests.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 957842946ea659a3ce4fb4a12aefb0e47c87a797 Mon Sep 17 00:00:00 2001
-From: Scott Talbert <swt@techie.net>
-Date: Thu, 23 Jul 2020 21:49:14 -0400
-Subject: [PATCH] Skip tests for functions unsupported on WebKit2
-
----
- tests/controls/webtest.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/tests/controls/webtest.cpp b/tests/controls/webtest.cpp
-index 82b58597869..43a4073437f 100644
---- a/tests/controls/webtest.cpp
-+++ b/tests/controls/webtest.cpp
-@@ -123,6 +123,7 @@ TEST_CASE_METHOD(WebViewTestCase, "WebView", "[wxWebView]")
-         CHECK(m_browser->CanGoForward());
-     }
- 
-+#if !wxUSE_WEBVIEW_WEBKIT2
-     SECTION("HistoryEnable")
-     {
-         LoadUrl();
-@@ -136,7 +137,9 @@ TEST_CASE_METHOD(WebViewTestCase, "WebView", "[wxWebView]")
-         CHECK(!m_browser->CanGoForward());
-         CHECK(!m_browser->CanGoBack());
-     }
-+#endif
- 
-+#if !wxUSE_WEBVIEW_WEBKIT2
-     SECTION("HistoryClear")
-     {
-         LoadUrl(2);
-@@ -153,6 +156,7 @@ TEST_CASE_METHOD(WebViewTestCase, "WebView", "[wxWebView]")
-         CHECK(!m_browser->CanGoForward());
-         CHECK(!m_browser->CanGoBack());
-     }
-+#endif
- 
-     SECTION("HistoryList")
-     {
diff --git a/gcc11_1.patch b/gcc11_1.patch
new file mode 100644
index 0000000..f7e72e4
--- /dev/null
+++ b/gcc11_1.patch
@@ -0,0 +1,39 @@
+From 858248d055794928f0e26e07ea68fd67f9ea9e3f Mon Sep 17 00:00:00 2001
+From: Scott Talbert <swt@techie.net>
+Date: Wed, 21 Apr 2021 19:08:13 -0400
+Subject: [PATCH] Fix declaration shadow warning in wxHtmlHelpFrame
+
+Fixes this warning:
+In file included from ../../include/wx/html/helpctrl.h:19,
+                 from ../../include/wx/help.h:27,
+                 from ../../include/wx/cshelp.h:18,
+                 from ../../tests/allheaders.h:85,
+                 from ../../tests/allheaders.cpp:435:
+../../include/wx/html/helpfrm.h:74:50: error: declaration of 'wxWindowID' shadows a global declaration [-Werror=shadow]
+   74 |     wxHtmlHelpFrame(wxWindow* parent, wxWindowID wxWindowID,
+      |                                       ~~~~~~~~~~~^~~~~~~~~~
+In file included from ../../include/wx/wxprec.h:12,
+                 from ../../tests/testprec.h:4,
+                 from ../../tests/allheaders.cpp:433:
+../../include/wx/defs.h:1965:13: note: shadowed declaration is here
+ 1965 | typedef int wxWindowID;
+      |             ^~~~~~~~~~
+
+See https://trac.wxwidgets.org/ticket/19153
+---
+ include/wx/html/helpfrm.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/wx/html/helpfrm.h b/include/wx/html/helpfrm.h
+index 6b09d0d3dae..ac25907dccc 100644
+--- a/include/wx/html/helpfrm.h
++++ b/include/wx/html/helpfrm.h
+@@ -71,7 +71,7 @@ class WXDLLIMPEXP_HTML wxHtmlHelpFrame : public wxFrame
+ 
+ public:
+     wxHtmlHelpFrame(wxHtmlHelpData* data = NULL) { Init(data); }
+-    wxHtmlHelpFrame(wxWindow* parent, wxWindowID wxWindowID,
++    wxHtmlHelpFrame(wxWindow* parent, wxWindowID id,
+                     const wxString& title = wxEmptyString,
+                     int style = wxHF_DEFAULT_STYLE, wxHtmlHelpData* data = NULL
+ #if wxUSE_CONFIG
diff --git a/gcc11_2.patch b/gcc11_2.patch
new file mode 100644
index 0000000..7b6eea8
--- /dev/null
+++ b/gcc11_2.patch
@@ -0,0 +1,118 @@
+From b47189b945cfaff9870ca5b38c8083fec7c9bb40 Mon Sep 17 00:00:00 2001
+From: Ian McInerney <ian.s.mcinerney@ieee.org>
+Date: Thu, 22 Apr 2021 19:22:32 +0100
+Subject: [PATCH 1/2] Don't enable warnings in the system headers during all
+ headers test
+
+This warning flag is really only used for stdlib debugging/writing,
+and is off by default so that normal users of the library don't see
+any warnings generated by the library (since they have no control
+over it).
+---
+ tests/allheaders.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/tests/allheaders.cpp b/tests/allheaders.cpp
+index 575d38fbfb8..70f43e63d1a 100644
+--- a/tests/allheaders.cpp
++++ b/tests/allheaders.cpp
+@@ -119,6 +119,9 @@
+     //  - Globally replace HANDLE_GCC_WARNING with GCC_TURN_ON.
+     //  - Add v6 check for -Wabi, gcc < 6 don't seem to support turning it off
+     //    once it's turned on and gives it for the standard library symbols.
++    //  - Remove GCC_TURN_ON(system-headers) from the list because this option
++    //    will enable the warnings to be thrown inside the system headers that
++    //    should instead be ignored.
+     // {{{
+ #if CHECK_GCC_VERSION(6,1)
+     GCC_TURN_ON(abi)
+@@ -307,7 +310,6 @@
+     GCC_TURN_ON(switch-default)
+     GCC_TURN_ON(switch-enum)
+     GCC_TURN_ON(synth)
+-    GCC_TURN_ON(system-headers)
+ #if CHECK_GCC_VERSION(6,1)
+     GCC_TURN_ON(templates)
+ #endif // 6.1
+
+From e0005c1d93afde5e0fc6400984459ebdcfdbc519 Mon Sep 17 00:00:00 2001
+From: Ian McInerney <ian.s.mcinerney@ieee.org>
+Date: Thu, 22 Apr 2021 19:23:48 +0100
+Subject: [PATCH 2/2] No longer include the system headers first
+
+With the Wsystem-headers warning removed, these are no longer needed
+and can instead be included on first-use again.
+---
+ tests/allheaders.cpp | 49 --------------------------------------------
+ 1 file changed, 49 deletions(-)
+
+diff --git a/tests/allheaders.cpp b/tests/allheaders.cpp
+index 70f43e63d1a..522885b636d 100644
+--- a/tests/allheaders.cpp
++++ b/tests/allheaders.cpp
+@@ -33,55 +33,9 @@
+         _Pragma(STRINGIZE(GCC diagnostic ignored STRINGIZE(CONCAT(-W,warn))))
+ #endif
+ 
+-// Due to what looks like a bug in gcc, some warnings enabled after including
+-// the standard headers still result in warnings being given when instantiating
+-// some functions defined in these headers later and we need to explicitly
+-// disable these warnings to avoid them, even if they're not enabled yet.
+-#ifdef GCC_TURN_OFF
+-    #pragma GCC diagnostic push
+-
+-    GCC_TURN_OFF(aggregate-return)
+-    GCC_TURN_OFF(conversion)
+-    GCC_TURN_OFF(format)
+-    GCC_TURN_OFF(padded)
+-    GCC_TURN_OFF(parentheses)
+-    GCC_TURN_OFF(sign-compare)
+-    GCC_TURN_OFF(sign-conversion)
+-    GCC_TURN_OFF(unused-parameter)
+-    GCC_TURN_OFF(zero-as-null-pointer-constant)
+-#endif
+-
+ // We have to include this one first in order to check for HAVE_XXX below.
+ #include "wx/setup.h"
+ 
+-// Include all standard headers that are used in wx headers before enabling the
+-// warnings below.
+-#include <algorithm>
+-#include <cmath>
+-#include <exception>
+-#include <functional>
+-#include <iomanip>
+-#include <iostream>
+-#include <list>
+-#include <locale>
+-#include <map>
+-#include <set>
+-#include <sstream>
+-#include <string>
+-#include <vector>
+-
+-#if defined(HAVE_STD_UNORDERED_MAP)
+-    #include <unordered_map>
+-#endif
+-#if defined(HAVE_STD_UNORDERED_SET)
+-    #include <unordered_set>
+-#endif
+-
+-#if defined(HAVE_DLOPEN)
+-    #include <dlfcn.h>
+-#endif
+-#include <fcntl.h>
+-
+ #include "catch.hpp"
+ 
+ #if defined(__WXMSW__)
+@@ -99,9 +53,6 @@
+     #include <QtGui/QFont>
+ #endif
+ 
+-#ifdef GCC_TURN_OFF
+-    #pragma GCC diagnostic pop
+-#endif
+ 
+ // Enable max warning level for headers if possible, using gcc pragmas.
+ #ifdef GCC_TURN_ON
diff --git a/gcc11_3.patch b/gcc11_3.patch
new file mode 100644
index 0000000..13d0583
--- /dev/null
+++ b/gcc11_3.patch
@@ -0,0 +1,12 @@
+diff -up wxWidgets-3.1.5/tests/allheaders.cpp.gcc11 wxWidgets-3.1.5/tests/allheaders.cpp
+--- wxWidgets-3.1.5/tests/allheaders.cpp.gcc11	2021-04-28 19:26:22.953235862 -0400
++++ wxWidgets-3.1.5/tests/allheaders.cpp	2021-04-28 19:28:05.179956623 -0400
+@@ -342,7 +342,7 @@
+     // wxWARNING_SUPPRESS_MISSING_OVERRIDE() inside wxRTTI macros is just
+     // ignored by gcc up to 9.x for some reason, so we have no choice but to
+     // disable it.
+-#if CHECK_GCC_VERSION(5,1) && !CHECK_GCC_VERSION(9,0)
++#if CHECK_GCC_VERSION(5,1) && !CHECK_GCC_VERSION(11,2)
+     GCC_TURN_OFF(suggest-override)
+ #endif
+ 
diff --git a/skip-test-s390x.patch b/skip-test-s390x.patch
deleted file mode 100644
index 37466aa..0000000
--- a/skip-test-s390x.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From d48ac8dd31d4091303af4336fcc2f37ecc49bd5c Mon Sep 17 00:00:00 2001
-From: Scott Talbert <swt@techie.net>
-Date: Wed, 5 Aug 2020 19:58:42 -0400
-Subject: [PATCH 1/2] Skip /sys/power tests on s390x architecture
-
-On certain s390x hosts (e.g., the Fedora builders), /sys/power does not exist.
----
- tests/file/filetest.cpp         | 2 ++
- tests/filename/filenametest.cpp | 2 ++
- tests/textfile/textfiletest.cpp | 2 ++
- 3 files changed, 6 insertions(+)
-
-diff --git a/tests/file/filetest.cpp b/tests/file/filetest.cpp
-index 0f31b12db3..83d9893462 100644
---- a/tests/file/filetest.cpp
-+++ b/tests/file/filetest.cpp
-@@ -163,12 +163,14 @@ TEST_CASE("wxFile::Special", "[file][linux][special-file]")
-     // have that much data in them.
-     const long pageSize = sysconf(_SC_PAGESIZE);
- 
-+#if !defined(__s390x__)
-     wxFile fileSys("/sys/power/state");
-     CHECK( fileSys.Length() == pageSize );
-     CHECK( fileSys.IsOpened() );
-     CHECK( fileSys.ReadAll(&s) );
-     CHECK( !s.empty() );
-     CHECK( s.length() < pageSize );
-+#endif // !__s390x__
- }
- 
- #endif // __LINUX__
-diff --git a/tests/filename/filenametest.cpp b/tests/filename/filenametest.cpp
-index 12d2d571d7..37598c08ed 100644
---- a/tests/filename/filenametest.cpp
-+++ b/tests/filename/filenametest.cpp
-@@ -1062,7 +1062,9 @@ TEST_CASE("wxFileName::GetSizeSpecial", "[filename][linux][special-file]")
- 
-     // All files in /sys are one page in size, irrespectively of the size of
-     // their actual contents.
-+#if !defined(__s390x__)
-     CHECK( wxFileName::GetSize("/sys/power/state") == sysconf(_SC_PAGESIZE) );
-+#endif // !__s390x__
- }
- 
- #endif // __LINUX__
-diff --git a/tests/textfile/textfiletest.cpp b/tests/textfile/textfiletest.cpp
-index dc7d22423d..ab36047450 100644
---- a/tests/textfile/textfiletest.cpp
-+++ b/tests/textfile/textfiletest.cpp
-@@ -355,6 +355,7 @@ TEST_CASE("wxTextFile::Special", "[textfile][linux][special-file]")
-             CHECK( f.GetLineCount() > 1 );
-     }
- 
-+#if !defined(__s390x__)
-     SECTION("/sys")
-     {
-         wxTextFile f;
-@@ -363,6 +364,7 @@ TEST_CASE("wxTextFile::Special", "[textfile][linux][special-file]")
-         INFO( "/sys/power/state contains \"" << f[0] << "\"" );
-         CHECK( (f[0].find("mem") != wxString::npos || f[0].find("disk") != wxString::npos) );
-     }
-+#endif // !__s390x__
- }
- 
- #endif // __LINUX__
--- 
-2.26.2
-
diff --git a/sources b/sources
index 1388efe..f741887 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (wxWidgets-3.1.4.tar.bz2) = aabb257fa222eb819f1e16086977b0ecfd3eb3406d695e0e642ffdb8b4dc586a9721404916be4756a2d92a1a8dc41b661b54717a64e03850a8a92d32d45ece14
+SHA512 (wxWidgets-3.1.5.tar.bz2) = ce9c31f0c502135839330150ec08724d69b64910d3e1d3dc11eb587b079bb8bdedd515ff980e7992c68ff1ba59d962353a079ee72a19a03923fc4755826714c9
diff --git a/wxGTK.spec b/wxGTK.spec
index 9b97084..2e901ee 100644
--- a/wxGTK.spec
+++ b/wxGTK.spec
@@ -1,11 +1,11 @@
 %global srcname wxWidgets
 %global wxbasename wxBase
 %global gtk3dir bld_gtk3
-%global sover 4
+%global sover 5
 
 Name:           wxGTK
-Version:        3.1.4
-Release:        5%{?dist}
+Version:        3.1.5
+Release:        1%{?dist}
 Summary:        GTK port of the wxWidgets GUI library
 License:        wxWidgets
 URL:            https://www.wxwidgets.org/
@@ -17,9 +17,10 @@ Source10:       wx-config
 # Backport from wxGTK
 Patch0:         %{name}-3.0.3-abicheck.patch
 Patch1:         disable-tests-failing-mock.patch
-Patch2:         fix-webview-tests.patch
-Patch3:         skip-test-s390x.patch
-Patch4:         catch1-sigstksz.patch
+Patch2:         catch1-sigstksz.patch
+Patch3:         gcc11_1.patch
+Patch4:         gcc11_2.patch
+Patch5:         gcc11_3.patch
 
 BuildRequires: make
 BuildRequires:  gcc-c++
@@ -41,9 +42,11 @@ BuildRequires:  libmspack-devel
 BuildRequires:  doxygen
 BuildRequires:  graphviz
 BuildRequires:  libsecret-devel
+BuildRequires:  libcurl-devel
 # For Tests
 BuildRequires:  xclock
 BuildRequires:  xorg-x11-server-Xvfb
+BuildRequires:  python3-httpbin
 
 Provides:       %{srcname} = %{version}-%{release}
 Provides:       bundled(scintilla) = 3.7.2
@@ -165,8 +168,6 @@ This package provides documentation for the %{srcname} library.
 
 # patch some installed files to avoid conflicts with 2.8.*
 sed -i -e 's|aclocal)|aclocal/wxwin31.m4)|' Makefile.in
-sed -i -e 's|wxstd.mo|wxstd31.mo|' Makefile.in
-sed -i -e 's|wxmsw.mo|wxmsw31.mo|' Makefile.in
 
 # fix plugin dir for 64-bit
 sed -i -e 's|/usr/lib\b|%{_libdir}|' wx-config.in configure
@@ -217,17 +218,16 @@ touch %{buildroot}%{_bindir}/wxrc
 mkdir %{buildroot}%{_datadir}/bakefile/presets/wx31
 mv %{buildroot}%{_datadir}/bakefile/presets/*.* %{buildroot}%{_datadir}/bakefile/presets/wx31
 
-%find_lang wxstd31
-%find_lang wxmsw31
-cat wxmsw31.lang >> wxstd31.lang
+%find_lang wxstd-3.1
 
 %check
 pushd %{gtk3dir}/tests
 make %{?_smp_mflags}
-LD_LIBRARY_PATH=%{buildroot}%{_libdir} TZ=UTC wxUSE_XVFB=1 xvfb-run -a ./test
-LD_LIBRARY_PATH=%{buildroot}%{_libdir} wxUSE_XVFB=1 xvfb-run -a ./test_gui \
+python3 -m httpbin.core &
+LD_LIBRARY_PATH=%{buildroot}%{_libdir} TZ=UTC wxUSE_XVFB=1 wxLXC=1 WX_TEST_WEBREQUEST_URL="http://localhost:5000" xvfb-run -a ./test ~WebRequest::SSL::Ignore ~wxLog::Trace ~wxExecute::RedirectUTF8 ~wxDateTime-BST-bugs
+LD_LIBRARY_PATH=%{buildroot}%{_libdir} wxUSE_XVFB=1 wxLXC=1 xvfb-run -a ./test_gui \
   ~wxDVC::GetItemRect ~wxHtmlPrintout::Pagination ~wxExecute::RedirectUTF8 \
-  ~WebView
+  ~WebView ~XRC::LoadURL
 popd
 
 %post -n %{wxbasename}-devel
@@ -282,7 +282,7 @@ fi
 %files gl
 %{_libdir}/libwx_gtk3u_gl-*.so.%{sover}*
 
-%files i18n -f wxstd31.lang
+%files i18n -f wxstd-3.1.lang
 
 %files media
 %{_libdir}/libwx_gtk3u_media-*.so.%{sover}*
@@ -304,6 +304,9 @@ fi
 %doc html
 
 %changelog
+* Thu Apr 15 2021 Scott Talbert <swt@techie.net> - 3.1.5-1
+- Update to new upstream release 3.1.5 (#1948935)
+
 * Thu Mar 04 2021 Scott Talbert <swt@techie.net> - 3.1.4-5
 - Fix FTBFS due to glibc non-const SIGSTKSZ