Update to new upstream release 3.1.6 (#2071576)

This commit is contained in:
Scott Talbert 2022-04-06 19:54:56 -04:00
parent 87cff18cb5
commit 72d22dc779
13 changed files with 35 additions and 471 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/wxWidgets-3.1.3.tar.bz2
/wxWidgets-3.1.4.tar.bz2
/wxWidgets-3.1.5.tar.bz2
/wxWidgets-3.1.6.tar.bz2

View File

@ -1,27 +0,0 @@
From 28b84a1e96a3f061f4ba56d64829206dbd0628c0 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Thu, 27 Jan 2022 15:30:22 +0100
Subject: [PATCH] Avoid gcc 12 -Warith-conversion in
wxImageHistogram::MakeKey()
Explicitly convert the operands to unsigned because we do actually want
the result to be unsigned here.
Co-Authored-By: Scott Talbert <swt@techie.net>
---
include/wx/image.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/wx/image.h b/include/wx/image.h
index 682e952f69be..35fd263e201d 100644
--- a/include/wx/image.h
+++ b/include/wx/image.h
@@ -210,7 +210,7 @@ class wxImageHistogram : public wxImageHistogramBase
unsigned char g,
unsigned char b)
{
- return (r << 16) | (g << 8) | b;
+ return ((unsigned)r << 16) | ((unsigned)g << 8) | (unsigned)b;
}
// find first colour that is not used in the image and has higher

View File

@ -1,141 +0,0 @@
From 37a4bf86937e4e18c5cce70913b6b90e39df20cc Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Thu, 27 Jan 2022 15:46:42 +0100
Subject: [PATCH] Add wxColour::Get{Red,Green,Blue,Alpha}() to avoid gcc 12
warnings
These functions return the colour components as unsigned int and so
promote to this type in arithmetic expressions, unlike unsigned char
returned by the existing accessors without the "Get" prefix, which
promotes to (signed) int and results in gcc 12 -Warith-conversion
warnings when the result is then converted to unsigned, as it happened
in our own wxColour::GetRGB() and GetRGBA() functions and would probably
happen in a lot of code outside wx, which could also be updated to use
the new functions instead of inserting casts.
---
include/wx/colour.h | 11 ++++++++--
interface/wx/colour.h | 51 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 60 insertions(+), 2 deletions(-)
diff --git a/include/wx/colour.h b/include/wx/colour.h
index 4e9e0a185407..22a145ab22d1 100644
--- a/include/wx/colour.h
+++ b/include/wx/colour.h
@@ -125,6 +125,13 @@ class WXDLLIMPEXP_CORE wxColourBase : public
virtual ChannelType Alpha() const
{ return wxALPHA_OPAQUE ; }
+ // These getters return the values as unsigned int, which avoids promoting
+ // them to (signed) int in arithmetic expressions, unlike the ones above.
+ unsigned int GetRed() const { return Red(); }
+ unsigned int GetGreen() const { return Green(); }
+ unsigned int GetBlue() const { return Blue(); }
+ unsigned int GetAlpha() const { return Alpha(); }
+
virtual bool IsSolid() const
{ return true; }
@@ -147,10 +154,10 @@ class WXDLLIMPEXP_CORE wxColourBase : public
}
wxUint32 GetRGB() const
- { return Red() | (Green() << 8) | (Blue() << 16); }
+ { return GetRed() | (GetGreen() << 8) | (GetBlue() << 16); }
wxUint32 GetRGBA() const
- { return Red() | (Green() << 8) | (Blue() << 16) | (Alpha() << 24); }
+ { return GetRed() | (GetGreen() << 8) | (GetBlue() << 16) | (GetAlpha() << 24); }
#if !wxCOLOUR_IS_GDIOBJECT
virtual bool IsOk() const= 0;
diff --git a/interface/wx/colour.h b/interface/wx/colour.h
index 32424f1123c7..9cc0ac7c9dec 100644
--- a/interface/wx/colour.h
+++ b/interface/wx/colour.h
@@ -34,6 +34,20 @@ const unsigned char wxALPHA_OPAQUE = 0xff;
You can retrieve the current system colour settings with wxSystemSettings.
+
+ @section colour_accessors Channel Accessor Functions
+
+ Note that this class provides pairs of functions for each of the colour
+ channels, i.e. red, green, blue and alpha values. The one word functions
+ Red(), Green(), Blue() and Alpha() return the values of type @c unsigned @c
+ char, while GetRed(), GetGreen(), GetBlue() and GetAlpha() returns the same
+ value as @c unsigned @c int. According to the C++ integer promotion rules,
+ the result of any arithmetic expression involving the former will be
+ (signed) @c int, while that of the latter will be @c unsigned, which is
+ what would be commonly expected, so the latter family of functions should
+ be typically preferred (but they are only available since wxWidgets 3.1.6).
+
+
@library{wxcore}
@category{gdi}
@@ -94,14 +108,47 @@ class wxColour : public wxObject
/**
Returns the alpha value, on platforms where alpha is not yet supported, this
always returns wxALPHA_OPAQUE.
+
+ @see GetAlpha()
*/
virtual unsigned char Alpha() const;
/**
Returns the blue intensity.
+
+ @see GetBlue()
*/
virtual unsigned char Blue() const;
+ /**
+ Returns the alpha value, on platforms where alpha is not yet supported, this
+ always returns wxALPHA_OPAQUE.
+
+ @since 3.1.6
+ */
+ unsigned int GetAlpha() const;
+
+ /**
+ Returns the blue intensity as unsigned int.
+
+ @since 3.1.6
+ */
+ unsigned int GetBlue() const;
+
+ /**
+ Returns the green intensity as unsigned int.
+
+ @since 3.1.6
+ */
+ unsigned int GetGreen() const;
+
+ /**
+ Returns the red intensity as unsigned int.
+
+ @since 3.1.6
+ */
+ unsigned int GetRed() const;
+
/**
Converts this colour to a wxString using the given flags.
@@ -184,6 +231,8 @@ class wxColour : public wxObject
/**
Returns the green intensity.
+
+ @see GetGreen()
*/
virtual unsigned char Green() const;
@@ -195,6 +244,8 @@ class wxColour : public wxObject
/**
Returns the red intensity.
+
+ @see GetRed()
*/
virtual unsigned char Red() const;

View File

@ -1,68 +0,0 @@
commit 34650cd9ea2f7e4aa1e61b84ecf9913b87870680
Author: Tom Hughes <tom@compton.nu>
Date: Fri Feb 19 10:45:49 2021 +0000
Patch for non-constant SIGSTKSZ
diff --git a/include/internal/catch_fatal_condition.hpp b/include/internal/catch_fatal_condition.hpp
index 1dcd545d..f7d9e10d 100644
--- a/3rdparty/catch/include/internal/catch_fatal_condition.hpp
+++ b/3rdparty/catch/include/internal/catch_fatal_condition.hpp
@@ -136,7 +136,7 @@ namespace Catch {
static bool isSet;
static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)];
static stack_t oldSigStack;
- static char altStackMem[SIGSTKSZ];
+ static char altStackMem[32768];
static void handleSignal( int sig ) {
std::string name = "<unknown signal>";
@@ -156,7 +156,7 @@ namespace Catch {
isSet = true;
stack_t sigStack;
sigStack.ss_sp = altStackMem;
- sigStack.ss_size = SIGSTKSZ;
+ sigStack.ss_size = 32768;
sigStack.ss_flags = 0;
sigaltstack(&sigStack, &oldSigStack);
struct sigaction sa = { 0 };
@@ -188,7 +188,7 @@ namespace Catch {
bool FatalConditionHandler::isSet = false;
struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {};
stack_t FatalConditionHandler::oldSigStack = {};
- char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
+ char FatalConditionHandler::altStackMem[32768] = {};
} // namespace Catch
diff --git a/single_include/catch.hpp b/single_include/catch.hpp
index fdb046fe..d64fd1a5 100644
--- a/3rdparty/catch/single_include/catch.hpp
+++ b/3rdparty/catch/single_include/catch.hpp
@@ -6540,7 +6540,7 @@ namespace Catch {
static bool isSet;
static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)];
static stack_t oldSigStack;
- static char altStackMem[SIGSTKSZ];
+ static char altStackMem[32768];
static void handleSignal( int sig ) {
std::string name = "<unknown signal>";
@@ -6560,7 +6560,7 @@ namespace Catch {
isSet = true;
stack_t sigStack;
sigStack.ss_sp = altStackMem;
- sigStack.ss_size = SIGSTKSZ;
+ sigStack.ss_size = 32768;
sigStack.ss_flags = 0;
sigaltstack(&sigStack, &oldSigStack);
struct sigaction sa = { 0 };
@@ -6591,7 +6591,7 @@ namespace Catch {
bool FatalConditionHandler::isSet = false;
struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {};
stack_t FatalConditionHandler::oldSigStack = {};
- char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
+ char FatalConditionHandler::altStackMem[32768] = {};
} // namespace Catch

View File

@ -1,23 +0,0 @@
From d68c3709e49b967272b0794b0dd30e57e46326e8 Mon Sep 17 00:00:00 2001
From: Scott Talbert <swt@techie.net>
Date: Thu, 30 Dec 2021 10:10:56 -0500
Subject: [PATCH] wxGLCanvas EGL: don't assert if eglChooseConfig fails
This assert prevents wxGLCanvas::IsDisplaySupported() from working properly
in the case where unsupported attributes are passed.
---
src/unix/glegl.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/unix/glegl.cpp b/src/unix/glegl.cpp
index fa4ad29b5124..5e831713b51f 100644
--- a/src/unix/glegl.cpp
+++ b/src/unix/glegl.cpp
@@ -578,7 +578,6 @@ EGLConfig *wxGLCanvasEGL::InitConfig(const wxGLAttributes& dispAttrs)
}
else
{
- wxFAIL_MSG("eglChooseConfig failed");
delete config;
return NULL;
}

View File

@ -1,12 +0,0 @@
diff -up wxWidgets-3.1.4/tests/filename/filenametest.cpp.mock wxWidgets-3.1.4/tests/filename/filenametest.cpp
--- wxWidgets-3.1.4/tests/filename/filenametest.cpp.mock 2020-07-22 13:20:06.000000000 -0400
+++ wxWidgets-3.1.4/tests/filename/filenametest.cpp 2020-07-22 19:21:26.982426344 -0400
@@ -757,7 +757,7 @@ void FileNameTestCase::TestExists()
// These files are only guaranteed to exist under Linux.
// No need for wxFILE_EXISTS_NO_FOLLOW here; wxFILE_EXISTS_SYMLINK implies it
CPPUNIT_ASSERT( wxFileName::Exists("/proc/self", wxFILE_EXISTS_SYMLINK) );
- CPPUNIT_ASSERT( wxFileName::Exists("/dev/log", wxFILE_EXISTS_SOCKET) );
+ //CPPUNIT_ASSERT( wxFileName::Exists("/dev/log", wxFILE_EXISTS_SOCKET) );
#endif // __LINUX__
#ifndef __VMS
wxString fifo = dirTemp.GetPath() + "/fifo";

View File

@ -1,39 +0,0 @@
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

View File

@ -1,118 +0,0 @@
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

View File

@ -1,12 +0,0 @@
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

View File

@ -1 +1 @@
SHA512 (wxWidgets-3.1.5.tar.bz2) = ce9c31f0c502135839330150ec08724d69b64910d3e1d3dc11eb587b079bb8bdedd515ff980e7992c68ff1ba59d962353a079ee72a19a03923fc4755826714c9
SHA512 (wxWidgets-3.1.6.tar.bz2) = c55f8ecb62bc47c053e24fa8c5cbb744afe4c4b00a3fae760035c539499b3875cabfb5c4542d721efec83464f48925fdd05b7d9ca624b430567c0b579afa7277

View File

@ -1,14 +0,0 @@
--- wxWidgets-3.0.2/src/common/appbase.cpp.abicheck 2015-05-28 12:36:40.697163073 +0900
+++ wxWidgets-3.0.2/src/common/appbase.cpp 2015-05-28 12:38:30.597154298 +0900
@@ -762,10 +762,7 @@
msg.Printf(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."),
lib.c_str(), progName.c_str(), prog.c_str());
- wxLogFatalError(msg.c_str());
-
- // normally wxLogFatalError doesn't return
- return false;
+ wxLogWarning(msg.c_str());
}
return true;

View File

@ -0,0 +1,16 @@
diff -up wxWidgets-3.1.6/src/common/appbase.cpp.abicheck wxWidgets-3.1.6/src/common/appbase.cpp
--- wxWidgets-3.1.6/src/common/appbase.cpp.abicheck 2022-04-04 09:41:33.000000000 -0400
+++ wxWidgets-3.1.6/src/common/appbase.cpp 2022-04-04 19:14:33.883814729 -0400
@@ -843,11 +843,8 @@ bool wxAppConsoleBase::CheckBuildOptions
wxString prog = wxString::FromAscii(optionsSignature);
wxString progName = wxString::FromAscii(componentName);
- wxLogFatalError(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."),
+ wxLogWarning(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."),
lib, progName, prog);
-
- // normally wxLogFatalError doesn't return
- return false;
}
return true;

View File

@ -1,11 +1,11 @@
%global srcname wxWidgets
%global wxbasename wxBase
%global gtk3dir bld_gtk3
%global sover 5
%global sover 6
Name: wxGTK
Version: 3.1.5
Release: 6%{?dist}
Version: 3.1.6
Release: 1%{?dist}
Summary: GTK port of the wxWidgets GUI library
License: wxWidgets
URL: https://www.wxwidgets.org/
@ -15,15 +15,7 @@ Source10: wx-config
# https://bugzilla.redhat.com/show_bug.cgi?id=1225148
# remove abort when ABI check fails
# Backport from wxGTK
Patch0: %{name}-3.0.3-abicheck.patch
Patch1: disable-tests-failing-mock.patch
Patch2: catch1-sigstksz.patch
Patch3: gcc11_1.patch
Patch4: gcc11_2.patch
Patch5: gcc11_3.patch
Patch6: https://github.com/wxWidgets/wxWidgets/commit/d68c3709e49b967272b0794b0dd30e57e46326e8.patch
Patch7: https://github.com/wxWidgets/wxWidgets/commit/28b84a1e96a3f061f4ba56d64829206dbd0628c0.patch
Patch8: https://github.com/wxWidgets/wxWidgets/commit/37a4bf86937e4e18c5cce70913b6b90e39df20cc.patch
Patch0: %{name}-3.1.6-abicheck.patch
BuildRequires: make
BuildRequires: gcc-c++
@ -229,13 +221,19 @@ mv %{buildroot}%{_datadir}/bakefile/presets/*.* %{buildroot}%{_datadir}/bakefile
pushd %{gtk3dir}/tests
make %{?_smp_mflags}
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
LD_LIBRARY_PATH=%{buildroot}%{_libdir} wxUSE_XVFB=1 wxLXC=1 xvfb-run -a \
LD_LIBRARY_PATH=%{buildroot}%{_libdir} TZ=UTC wxUSE_XVFB=1 \
WX_TEST_WEBREQUEST_URL="http://localhost:5000" xvfb-run -a ./test ~[.] \
%ifarch s390x
~wxTextFile::Special ~wxFileName::GetSizeSpecial ~wxFile::Special \
%endif
~WebRequest::SSL::Ignore
LD_LIBRARY_PATH=%{buildroot}%{_libdir} wxUSE_XVFB=1 xvfb-run -a \
./test_gui ~[.] \
%ifarch i686
~ImageTestCase \
%endif
%ifarch s390x
~WebView \
%endif
~wxHtmlPrintout::Pagination
popd
@ -314,6 +312,9 @@ fi
%doc html
%changelog
* Mon Apr 04 2022 Scott Talbert <swt@techie.net> - 3.1.6-1
- Update to new upstream release 3.1.6 (#2071576)
* Tue Feb 01 2022 Scott Talbert <swt@techie.net> - 3.1.5-6
- Add some BRs to enable more tests