1
0
Dominique Leuenberger 2021-06-16 18:33:19 +00:00 committed by Git OBS Bridge
commit b1d47d43b5
9 changed files with 99 additions and 323 deletions

View File

@ -1,72 +0,0 @@
From 0c055a0af876d4f44ebe04ebb744dfc88b2243ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Sat, 30 May 2020 02:04:41 +0200
Subject: [PATCH 1/3] Fix conversion of variant list members
Item() returns either a Node* or (with wxUSE_STL=1) a
compatibility_iterator. While the former is silently and erroneously
converted to a Variant using the Variant(void*) overload, the STL
flavor fortunately failed. Dereference the Node*/iterator before
passing it to wxVariant_out_helper(const Variant&).
---
sip/cpp/sip_corewxVariantList.cpp | 2 +-
sip/cpp/sip_propgridwxPGVariantList.cpp | 2 +-
src/pgvariant.sip | 2 +-
src/variant.sip | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/sip/cpp/sip_corewxVariantList.cpp b/sip/cpp/sip_corewxVariantList.cpp
index 0c9f0f4c..fe9be050 100644
--- a/sip/cpp/sip_corewxVariantList.cpp
+++ b/sip/cpp/sip_corewxVariantList.cpp
@@ -84,7 +84,7 @@ static PyObject *convertFrom_wxVariantList(void *sipCppV, PyObject *)
size_t idx = 0;
PyObject* value = PyList_New(0);
for (idx=0; idx < sipCpp->GetCount(); idx++) {
- PyObject* item = wxVariant_out_helper(sipCpp->Item(idx));
+ PyObject* item = wxVariant_out_helper(sipCpp->Item(idx)->GetData());
PyList_Append(value, item);
}
return value;
diff --git a/sip/cpp/sip_propgridwxPGVariantList.cpp b/sip/cpp/sip_propgridwxPGVariantList.cpp
index 2c21df45..ca2d0b65 100644
--- a/sip/cpp/sip_propgridwxPGVariantList.cpp
+++ b/sip/cpp/sip_propgridwxPGVariantList.cpp
@@ -84,7 +84,7 @@ static PyObject *convertFrom_wxPGVariantList(void *sipCppV, PyObject *)
size_t idx = 0;
PyObject* value = PyList_New(0);
for (idx=0; idx < sipCpp->GetCount(); idx++) {
- PyObject* item = wxPGVariant_out_helper(sipCpp->Item(idx));
+ PyObject* item = wxPGVariant_out_helper(sipCpp->Item(idx)->GetData());
PyList_Append(value, item);
}
return value;
diff --git a/src/pgvariant.sip b/src/pgvariant.sip
index 05a2d429..32cd5fe4 100644
--- a/src/pgvariant.sip
+++ b/src/pgvariant.sip
@@ -182,7 +182,7 @@ PyObject* wxPGVariant_out_helper(const wxVariant& value)
size_t idx = 0;
PyObject* value = PyList_New(0);
for (idx=0; idx < sipCpp->GetCount(); idx++) {
- PyObject* item = wxPGVariant_out_helper(sipCpp->Item(idx));
+ PyObject* item = wxPGVariant_out_helper(sipCpp->Item(idx)->GetData());
PyList_Append(value, item);
}
return value;
diff --git a/src/variant.sip b/src/variant.sip
index c4a53eef..9e2572e7 100644
--- a/src/variant.sip
+++ b/src/variant.sip
@@ -77,7 +77,7 @@
size_t idx = 0;
PyObject* value = PyList_New(0);
for (idx=0; idx < sipCpp->GetCount(); idx++) {
- PyObject* item = wxVariant_out_helper(sipCpp->Item(idx));
+ PyObject* item = wxVariant_out_helper(sipCpp->Item(idx)->GetData());
PyList_Append(value, item);
}
return value;
--
2.26.2

View File

@ -1,59 +0,0 @@
From 5b810b129db00a98c84672cd94a4a4be83ba8e69 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Mon, 1 Jun 2020 17:25:41 +0200
Subject: [PATCH] Fix wxUIActionSimulator::Text() parameter documentation
This function explicitly accepts ASCII strings only, so it's limited to
"const char*", but was incorrectly documented as taking wxString.
Closes https://github.com/wxWidgets/wxWidgets/pull/1879
---
ext/wxWidgets/interface/wx/uiaction.h | 4 ++--
sip/cpp/sip_corewxUIActionSimulator.cpp | 2 +-
sip/gen/uiaction.sip | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/ext/wxWidgets/interface/wx/uiaction.h b/ext/wxWidgets/interface/wx/uiaction.h
index 27b3aaf2..7d4eba52 100644
--- a/ext/wxWidgets/interface/wx/uiaction.h
+++ b/ext/wxWidgets/interface/wx/uiaction.h
@@ -176,8 +176,8 @@ public:
keyboard layout but may not work with other layouts.
@param text
- The string to type.
+ The string, containing only US ASCII characters, to type.
*/
- bool Text(const wxString& text);
+ bool Text(const char* text);
};
diff --git a/sip/cpp/sip_corewxUIActionSimulator.cpp b/sip/cpp/sip_corewxUIActionSimulator.cpp
index 42bc481a..85a47384 100644
--- a/sip/cpp/sip_corewxUIActionSimulator.cpp
+++ b/sip/cpp/sip_corewxUIActionSimulator.cpp
@@ -496,7 +496,7 @@ static PyObject *meth_wxUIActionSimulator_Text(PyObject *sipSelf, PyObject *sipA
PyErr_Clear();
Py_BEGIN_ALLOW_THREADS
- sipRes = sipCpp->Text(*text);
+ sipRes = sipCpp->Text(text->c_str());
Py_END_ALLOW_THREADS
sipReleaseType(const_cast< ::wxString *>(text),sipType_wxString,textState);
diff --git a/sip/gen/uiaction.sip b/sip/gen/uiaction.sip
index 788e2b65..ff27dfa0 100644
--- a/sip/gen/uiaction.sip
+++ b/sip/gen/uiaction.sip
@@ -129,7 +129,7 @@ public:
%End
bool Text(
- const wxString & text
+ const char* text
);
%Docstring
Text(text) -> bool
--
2.27.0

View File

@ -1,181 +0,0 @@
From a88ca321429320675fba92f74d4f88d7e9a1845e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Mon, 1 Jun 2020 04:06:53 +0200
Subject: [PATCH 3/3] Use explicit wxString::c_str conversion for
sipFindType(const char*)
---
etgtools/tweaker_tools.py | 6 +++---
sip/cpp/sip_corecmodule.cpp | 18 +++++++++---------
sip/gen/object.sip | 6 +++---
sip/gen/window.sip | 6 +++---
src/wxpy_api.sip | 6 +++---
5 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/etgtools/tweaker_tools.py b/etgtools/tweaker_tools.py
index 09c798be..c07fdfa6 100644
--- a/etgtools/tweaker_tools.py
+++ b/etgtools/tweaker_tools.py
@@ -520,14 +520,14 @@ def addSipConvertToSubClassCode(klass):
%ConvertToSubClassCode
const wxClassInfo* info = sipCpp->GetClassInfo();
wxString name = info->GetClassName();
- bool exists = sipFindType(name) != NULL;
+ bool exists = sipFindType(name.c_str()) != NULL;
while (info && !exists) {
info = info->GetBaseClass1();
name = info->GetClassName();
- exists = sipFindType(name) != NULL;
+ exists = sipFindType(name.c_str()) != NULL;
}
if (info)
- sipType = sipFindType(name);
+ sipType = sipFindType(name.c_str());
else
sipType = NULL;
%End
diff --git a/sip/cpp/sip_corecmodule.cpp b/sip/cpp/sip_corecmodule.cpp
index bab2a087..3fcddece 100644
--- a/sip/cpp/sip_corecmodule.cpp
+++ b/sip/cpp/sip_corecmodule.cpp
@@ -7576,7 +7576,7 @@ static PyObject* i_wxPyConstructObject(void* ptr,
if (pos != wxNOT_FOUND)
name = name.Mid(pos + nsDelimiter.Len());
- const sipTypeDef* td = sipFindType(name);
+ const sipTypeDef* td = sipFindType(name.c_str());
if (!td)
return NULL;
PyObject* transferObj = setThisOwn ? Py_None : NULL;
@@ -7594,7 +7594,7 @@ static bool i_wxPyWrappedPtr_Check(PyObject* obj)
// Check if a PyObject is a specific wrapped class or subclass
static bool i_wxPyWrappedPtr_TypeCheck(PyObject* obj, const wxString& className)
{
- const sipTypeDef* td = sipFindType(className);
+ const sipTypeDef* td = sipFindType(className.c_str());
if (!td)
return false;
return sipCanConvertToType(obj, td, SIP_NO_CONVERTORS);
@@ -7604,7 +7604,7 @@ static bool i_wxPyWrappedPtr_TypeCheck(PyObject* obj, const wxString& className)
// Convert a wrapped SIP object to its C++ pointer, ensuring that it is of the expected type
static bool i_wxPyConvertWrappedPtr(PyObject* obj, void **ptr, const wxString& className)
{
- const sipTypeDef* td = sipFindType(className);
+ const sipTypeDef* td = sipFindType(className.c_str());
if (!td)
return false;
if (! sipCanConvertToType(obj, td, SIP_NO_CONVERTORS))
@@ -16045,14 +16045,14 @@ static const sipTypeDef *sipSubClass_wxObject(void **sipCppRet)
const wxClassInfo* info = sipCpp->GetClassInfo();
wxString name = info->GetClassName();
- bool exists = sipFindType(name) != NULL;
+ bool exists = sipFindType(name.c_str()) != NULL;
while (info && !exists) {
info = info->GetBaseClass1();
name = info->GetClassName();
- exists = sipFindType(name) != NULL;
+ exists = sipFindType(name.c_str()) != NULL;
}
if (info)
- sipType = sipFindType(name);
+ sipType = sipFindType(name.c_str());
else
sipType = NULL;
@@ -16069,14 +16069,14 @@ static const sipTypeDef *sipSubClass_wxWindow(void **sipCppRet)
const wxClassInfo* info = sipCpp->GetClassInfo();
wxString name = info->GetClassName();
- bool exists = sipFindType(name) != NULL;
+ bool exists = sipFindType(name.c_str()) != NULL;
while (info && !exists) {
info = info->GetBaseClass1();
name = info->GetClassName();
- exists = sipFindType(name) != NULL;
+ exists = sipFindType(name.c_str()) != NULL;
}
if (info)
- sipType = sipFindType(name);
+ sipType = sipFindType(name.c_str());
else
sipType = NULL;
diff --git a/sip/gen/object.sip b/sip/gen/object.sip
index d94e1243..71d2fe78 100644
--- a/sip/gen/object.sip
+++ b/sip/gen/object.sip
@@ -189,14 +189,14 @@ public:
%ConvertToSubClassCode
const wxClassInfo* info = sipCpp->GetClassInfo();
wxString name = info->GetClassName();
- bool exists = sipFindType(name) != NULL;
+ bool exists = sipFindType(name.c_str()) != NULL;
while (info && !exists) {
info = info->GetBaseClass1();
name = info->GetClassName();
- exists = sipFindType(name) != NULL;
+ exists = sipFindType(name.c_str()) != NULL;
}
if (info)
- sipType = sipFindType(name);
+ sipType = sipFindType(name.c_str());
else
sipType = NULL;
%End
diff --git a/sip/gen/window.sip b/sip/gen/window.sip
index 6ad84464..b29898bb 100644
--- a/sip/gen/window.sip
+++ b/sip/gen/window.sip
@@ -2932,14 +2932,14 @@ public:
%ConvertToSubClassCode
const wxClassInfo* info = sipCpp->GetClassInfo();
wxString name = info->GetClassName();
- bool exists = sipFindType(name) != NULL;
+ bool exists = sipFindType(name.c_str()) != NULL;
while (info && !exists) {
info = info->GetBaseClass1();
name = info->GetClassName();
- exists = sipFindType(name) != NULL;
+ exists = sipFindType(name.c_str()) != NULL;
}
if (info)
- sipType = sipFindType(name);
+ sipType = sipFindType(name.c_str());
else
sipType = NULL;
%End
diff --git a/src/wxpy_api.sip b/src/wxpy_api.sip
index 5e63fc58..ac9c10ad 100644
--- a/src/wxpy_api.sip
+++ b/src/wxpy_api.sip
@@ -111,7 +111,7 @@ static PyObject* i_wxPyConstructObject(void* ptr,
if (pos != wxNOT_FOUND)
name = name.Mid(pos + nsDelimiter.Len());
- const sipTypeDef* td = sipFindType(name);
+ const sipTypeDef* td = sipFindType(name.c_str());
if (!td)
return NULL;
PyObject* transferObj = setThisOwn ? Py_None : NULL;
@@ -129,7 +129,7 @@ static bool i_wxPyWrappedPtr_Check(PyObject* obj)
// Check if a PyObject is a specific wrapped class or subclass
static bool i_wxPyWrappedPtr_TypeCheck(PyObject* obj, const wxString& className)
{
- const sipTypeDef* td = sipFindType(className);
+ const sipTypeDef* td = sipFindType(className.c_str());
if (!td)
return false;
return sipCanConvertToType(obj, td, SIP_NO_CONVERTORS);
@@ -139,7 +139,7 @@ static bool i_wxPyWrappedPtr_TypeCheck(PyObject* obj, const wxString& className)
// Convert a wrapped SIP object to its C++ pointer, ensuring that it is of the expected type
static bool i_wxPyConvertWrappedPtr(PyObject* obj, void **ptr, const wxString& className)
{
- const sipTypeDef* td = sipFindType(className);
+ const sipTypeDef* td = sipFindType(className.c_str());
if (!td)
return false;
if (! sipCanConvertToType(obj, td, SIP_NO_CONVERTORS))
--
2.26.2

View File

@ -1,7 +1,7 @@
<constraints>
<hardware>
<disk>
<size unit="G">10</size>
<size unit="G">15</size>
</disk>
</hardware>
</constraints>

View File

@ -1,3 +1,82 @@
-------------------------------------------------------------------
Fri Jun 11 01:41:18 UTC 2021 - Stanislav Brabec <sbrabec@suse.com>
- Increase disk space constraint to 15G.
-------------------------------------------------------------------
Tue Jun 8 17:52:01 UTC 2021 - Antoine Belvire <antoine.belvire@opensuse.org>
- Update to version 4.1.1:
* wxWidgets is now validating the flags passed when adding items
to a sizer, to ensure that they are the correct flags for the
type of the sizer. If the given flags do not make sense, for
example using horizontal alignment flags in a horizontal box
sizer, then a wxAssertionError error is raised.
* Fixed missing binder for wxEVT_STC_AUTOCOMP_SELECTION_CHANGE.
(PR#1613).
* DataViewModel.HasValue can be overridden and will inform the
DataViewCtrl whether or not an item and column has data. If
HasValue returns False, then GetValue for that item/col will
not be called. This allows a distinction between a truly empty
cell, and one that has a value even if it is an empty string.
(PR#1600)
* Added flag that allows blocking of item dragging in the
UltimateListControl class. (PR#1620)
* Add the column index to notification events in
UltimateListControl (PR#1630).
* Added orientation parameter to UltimateListControl.GetScrollPos.
(PR#1632)
* wx.lib.agw.aui.AuiNotebook RemovePage() now hides the removed
page, so it needs to be shown again if it is reused in another
place. (PR#1668)
* Fixed issue that could modify bytes objects under Python.
(PR#1680)
* Added wx.lib.agw.aui.EVT_AUI_PANE_CLOSE event which is sent when
a AUI (the agw version) Pane has been closed (after it has been
closed, not when it is about to be closed, which is when
EVT_AUI_PANE_CLOSE is sent.) (PR#1628)
* Exposed the wx.DC methods GetGraphicsContext and
SetGraphicsContext. Depending on the platform and the type of
the DC, there may be a wx.GraphicsContext used for the
implementation of the DC. If so, the GetGraphicsContext method
enables access to it. Be sure to check that the return value is
not None before trying to use it.
* Simplified the implementation of the wx.App.InitLocale method.
See the MigrationGuide for more information.
* Added wx.lib.agw.aui.AUI_DOCKART_HINT_WINDOW_BORDER_COLOUR
constant so the hint window border color can be themed as well.
* The wx.lib.mixins.listCtrl.CheckListCtrlMixin is now obsolete
because wx.ListCtrl has new functionality which does pretty much
the same thing. In fact there is some overlap in method names
which may trip up some use cases. It is advised to drop the use
of CheckListCtrlMixin and just use the wx.ListBox functionality.
You will need to call EnableCheckBoxes to turn it on, and you
may need to change some event handlers or overloaded methods.
* wx.html2.WebView is now able to use Microsoft's Edge browser
component as its backend renderer. This should improve the
capabilities of the WebView widget on Windows, and be more
consistent with the WebViews on the other platforms, compared to
the original IE 11 backend. Using this backed requires that a
new-ish version of the Edge browser is installed on the end
user's computer.
* Added the wx.Image.ConvertToRegion method. This lets you create
a wx.Region from an image and a specified color or the mask if
the image has one. This was done to workaround a bug in wxMac,
but it seems worthwhile enough to keep it around even after the
bug was fixed.
* Added the missing context manager methods for wx.LogNull.
(PR#1842)
* Refactored ScrolledThumbnail out of agw.ThumbnailCtrl so as to
be usable outside of ThumbnailCtrl.
- Add wxPython-4.1.1-fix-overrides.patch: Fix build with wxWidgets
3.1.5 (gh#wxWidgets/Phoenix#1909).
- Remove patches merged upstream:
* 0001-Fix-conversion-of-variant-list-members.patch
* 0001-Fix-wxUIActionSimulator-Text-parameter-documentation.patch
* 0003-Use-explicit-wxString-c_str-conversion-for-sipFindTy.patch
- Increase required disk space to 15GB: Fix build failures due to
disk space exhaustion.
-------------------------------------------------------------------
Wed Mar 31 01:32:34 UTC 2021 - Steve Kowalik <steven.kowalik@suse.com>

View File

@ -32,7 +32,7 @@
%define skip_python36 1
%endif
Name: python-wxPython
Version: 4.1.0
Version: 4.1.1
Release: 0
Summary: The "Phoenix" variant of the wxWidgets Python bindings
License: GPL-2.0-or-later
@ -44,12 +44,8 @@ Source1: python-wxPython-rpmlintrc
Patch0: fix_no_return_in_nonvoid.patch
# PATCH-FIX-OPENSUSE
Patch1: use_stl_build.patch
# PATCH-FIX-UPSTREAM -- patch for bundled wxWidgets
Patch2: 0001-Fix-conversion-of-variant-list-members.patch
# PATCH-FIX-UPSTREAM
Patch3: 0001-Fix-wxUIActionSimulator-Text-parameter-documentation.patch
# PATCH-FIX-UPSTREAM
Patch4: 0003-Use-explicit-wxString-c_str-conversion-for-sipFindTy.patch
# PATCH-FIX-UPSTREAM wxPython-4.1.1-fix-overrides.patch -- Fix build with wxWidgets 3.1.5 (gh#wxWidgets/Phoenix#1909)
Patch2: wxPython-4.1.1-fix-overrides.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module setuptools}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2e2475cb755ac8d93d2f9335c39c060b4d17ecb5d4e0e86626d1e2834b64a48b
size 65752038

View File

@ -0,0 +1,13 @@
--- wxPython-4.1.1.orig/sip/cpp/sip_gridwxGridEvent.cpp 2020-11-21 20:10:38.000000000 +0100
+++ wxPython-4.1.1/sip/cpp/sip_gridwxGridEvent.cpp 2021-05-16 03:21:55.031555889 +0200
@@ -32,8 +32,8 @@
* this class.
*/
protected:
- int GetRow() SIP_OVERRIDE;
- int GetCol() SIP_OVERRIDE;
+ int GetRow();
+ int GetCol();
::wxEvent* Clone() const SIP_OVERRIDE;
::wxEventCategory GetEventCategory() const SIP_OVERRIDE;

3
wxPython-4.1.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:00e5e3180ac7f2852f342ad341d57c44e7e4326de0b550b9a5c4a8361b6c3528
size 66043287