forked from pool/python-wxPython
- prepare for python 3.13
* Added wrappers for the OSXEnableAutomaticQuoteSubstitution, * Many of the deprecated items in wxWidgets and wxPython are being or have been removed. Be sure to test your code in a recent 4.0.x release with warnings enabled so you can see which class, method or function calls * Bug fixes in wx.lib.calendar: key navigation across month boundaries is * Switch to using a wx.Overlay in the Widget Inspection Tool to highlight * Fixed issue in wx.lib.agw.customtreectrl where the label editor could widgets like wx.ListCtrl, wx.TreeCtrl and wx.dataview.DataViewCtrl. * The wx.WS_EX_VALIDATE_RECURSIVELY extended style flag is obsolete, as it is now the default (and only) behavior. The style flag has been added back into wxPython for compatibility, but with a zero value. You can just * Fix a sometimes crash when using a wx.Overlay by letting the wx.DCOverlay * Replaced the Vagrant VMs used for building wxPython for various Linux distros * Added the wx.svg package which contains code for parsing SVG (Scalable Vector Graphics) files, and also code for integrating with wxPython. It can rasterize the SVG to a wx.Bitmap of any size with no loss of quality, and it can also render the SVG directly to a * Fixed wx.GetApp() to use wxWidgets' global wxApp instance instead of maintaining its own pointer. This way, if the wxApp is created by C++ * Added wx.adv.GenericAnimationCtrl so the generic version of the animation classes can be used even on the platforms that have a native version. Note that due to internal changes to support both types of animations, some API changes in how the Animation objects are created. See the * Added wrappers for the wx.grid.GridBlockCoords, wx.grid.GridBlocks, and wx.grid.GridBlockDiffResult classes, as well as associated new methods in the wx.grid.Grid class. These provide a new way to interact with blocks which should be a more efficient (time and memory) way to process large * Fixed issue when sys.prefix is not unicode (Python2) and when its contents OBS-URL: https://build.opensuse.org/package/show/X11:wxWidgets/python-wxPython?expand=0&rev=55
This commit is contained in:
commit
2955e5c25f
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
26
0001-Check-HSV-values-in-image-test.patch
Normal file
26
0001-Check-HSV-values-in-image-test.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From 12cb5458cf5c26080158ecbee010ae9073a907e7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||||
|
Date: Sun, 4 Oct 2020 21:19:36 +0200
|
||||||
|
Subject: [PATCH] Check HSV values in image test
|
||||||
|
|
||||||
|
---
|
||||||
|
unittests/test_image.py | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/unittests/test_image.py b/unittests/test_image.py
|
||||||
|
index 767b36a7..a1dc0d7d 100644
|
||||||
|
--- a/unittests/test_image.py
|
||||||
|
+++ b/unittests/test_image.py
|
||||||
|
@@ -234,6 +234,9 @@ class image_Tests(wtc.WidgetTestCase):
|
||||||
|
rgb = wx.Image.RGBValue(1,2,3)
|
||||||
|
hsv = wx.Image.RGBtoHSV(rgb)
|
||||||
|
rgb = wx.Image.HSVtoRGB(hsv)
|
||||||
|
+ self.assertAlmostEqual(hsv.value * 255.0, 3.0)
|
||||||
|
+ self.assertAlmostEqual(hsv.saturation* 255.0, 170.0)
|
||||||
|
+ self.assertAlmostEqual(hsv.hue * 360.0, 210.0)
|
||||||
|
self.assertEqual(rgb.red, 1)
|
||||||
|
self.assertEqual(rgb.green, 2)
|
||||||
|
self.assertEqual(rgb.blue, 3)
|
||||||
|
--
|
||||||
|
2.28.0
|
||||||
|
|
@ -0,0 +1,33 @@
|
|||||||
|
From 371101db7a010d679d214fde617dae9de02008d9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Scott Talbert <swt@techie.net>
|
||||||
|
Date: Fri, 14 Jul 2023 13:23:03 -0400
|
||||||
|
Subject: [PATCH] Handle wxGLCanvas::CreateSurface which is only available on
|
||||||
|
EGL
|
||||||
|
|
||||||
|
---
|
||||||
|
etg/_glcanvas.py | 9 +++++++++
|
||||||
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/etg/_glcanvas.py b/etg/_glcanvas.py
|
||||||
|
index 52992ed8..2e578645 100644
|
||||||
|
--- a/etg/_glcanvas.py
|
||||||
|
+++ b/etg/_glcanvas.py
|
||||||
|
@@ -125,6 +125,15 @@ def run():
|
||||||
|
sipRes = wxGLCanvas::IsDisplaySupported(attribPtr);
|
||||||
|
""")
|
||||||
|
|
||||||
|
+ c.find('CreateSurface').setCppCode("""\
|
||||||
|
+ #if wxUSE_GLCANVAS_EGL
|
||||||
|
+ return self->CreateSurface();
|
||||||
|
+ #else
|
||||||
|
+ wxPyRaiseNotImplemented();
|
||||||
|
+ return false;
|
||||||
|
+ #endif
|
||||||
|
+ """)
|
||||||
|
+
|
||||||
|
#-----------------------------------------------------------------
|
||||||
|
tools.doCommonTweaks(module)
|
||||||
|
tools.runGenerators(module)
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
48
0001-Support-building-with-Doxygen-1.9.7.patch
Normal file
48
0001-Support-building-with-Doxygen-1.9.7.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From 6a049ccc0ad96f25c3f7d8540b218ffe8921d8c5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Scott Talbert <swt@techie.net>
|
||||||
|
Date: Tue, 5 Dec 2023 23:42:21 -0500
|
||||||
|
Subject: [PATCH] Support building with Doxygen 1.9.7
|
||||||
|
|
||||||
|
Doxygen 1.9.7 made some changes whereby some method definitions are now
|
||||||
|
defined in separate XML files, with a "refid" that links to them. In
|
||||||
|
order to support this, we need to follow these "refids" to pick up the
|
||||||
|
method definition from the separate group XML files.
|
||||||
|
---
|
||||||
|
etgtools/extractors.py | 11 +++++++++++
|
||||||
|
1 file changed, 11 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/etgtools/extractors.py b/etgtools/extractors.py
|
||||||
|
index 8c992cb14..5ae1361f9 100644
|
||||||
|
--- a/etgtools/extractors.py
|
||||||
|
+++ b/etgtools/extractors.py
|
||||||
|
@@ -62,6 +62,8 @@ def extract(self, element):
|
||||||
|
# class. Should be overridden in derived classes to get what each one
|
||||||
|
# needs in addition to the base.
|
||||||
|
self.name = element.find(self.nameTag).text
|
||||||
|
+ if self.name is None:
|
||||||
|
+ self.name = ''
|
||||||
|
if '::' in self.name:
|
||||||
|
loc = self.name.rfind('::')
|
||||||
|
self.name = self.name[loc+2:]
|
||||||
|
@@ -1574,12 +1576,21 @@ def addElement(self, element):
|
||||||
|
extractingMsg(kind, element)
|
||||||
|
for node in element.findall('sectiondef/memberdef'):
|
||||||
|
self.addElement(node)
|
||||||
|
+ for node in element.findall('sectiondef/member'):
|
||||||
|
+ node = self.resolveRefid(node)
|
||||||
|
+ self.addElement(node)
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise ExtractorError('Unknown module item kind: %s' % kind)
|
||||||
|
|
||||||
|
return item
|
||||||
|
|
||||||
|
+ def resolveRefid(self, node):
|
||||||
|
+ from etgtools import XMLSRC
|
||||||
|
+ refid = node.get('refid')
|
||||||
|
+ fname = os.path.join(XMLSRC, refid.rsplit('_', 1)[0]) + '.xml'
|
||||||
|
+ root = et.parse(fname).getroot()
|
||||||
|
+ return root.find(".//memberdef[@id='{}']".format(refid))
|
||||||
|
|
||||||
|
|
||||||
|
def addCppFunction(self, type, name, argsString, body, doc=None, **kw):
|
@ -0,0 +1,73 @@
|
|||||||
|
From 7a198b8cae9a81cec4d25a0c6c5cc65ad8822bb2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Scott Talbert <swt@techie.net>
|
||||||
|
Date: Mon, 20 Nov 2023 22:12:58 -0500
|
||||||
|
Subject: [PATCH] Update wxTextCtrl OSX overrides since they're now documented
|
||||||
|
|
||||||
|
---
|
||||||
|
etg/textctrl.py | 48 +++++++++++++++++++++---------------------------
|
||||||
|
1 file changed, 21 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/etg/textctrl.py b/etg/textctrl.py
|
||||||
|
index af631a53..690d68c4 100644
|
||||||
|
--- a/etg/textctrl.py
|
||||||
|
+++ b/etg/textctrl.py
|
||||||
|
@@ -114,35 +114,29 @@ def parseAndTweakModule():
|
||||||
|
|
||||||
|
|
||||||
|
# OSX methods for controlling native features
|
||||||
|
- c.addCppMethod('void', 'OSXEnableAutomaticQuoteSubstitution', '(bool enable)',
|
||||||
|
- doc="Mac-only method for turning on/off automatic quote substitutions.",
|
||||||
|
- body="""\
|
||||||
|
- #ifdef __WXMAC__
|
||||||
|
- self->OSXEnableAutomaticQuoteSubstitution(enable);
|
||||||
|
- #else
|
||||||
|
- wxPyRaiseNotImplemented();
|
||||||
|
- #endif
|
||||||
|
- """)
|
||||||
|
+ c.find('OSXEnableAutomaticQuoteSubstitution').setCppCode("""\
|
||||||
|
+ #ifdef __WXMAC__
|
||||||
|
+ self->OSXEnableAutomaticQuoteSubstitution(enable);
|
||||||
|
+ #else
|
||||||
|
+ wxPyRaiseNotImplemented();
|
||||||
|
+ #endif
|
||||||
|
+ """)
|
||||||
|
|
||||||
|
- c.addCppMethod('void', 'OSXEnableAutomaticDashSubstitution', '(bool enable)',
|
||||||
|
- doc="Mac-only method for turning on/off automatic dash substitutions.",
|
||||||
|
- body="""\
|
||||||
|
- #ifdef __WXMAC__
|
||||||
|
- self->OSXEnableAutomaticDashSubstitution(enable);
|
||||||
|
- #else
|
||||||
|
- wxPyRaiseNotImplemented();
|
||||||
|
- #endif
|
||||||
|
- """)
|
||||||
|
+ c.find('OSXEnableAutomaticDashSubstitution').setCppCode("""\
|
||||||
|
+ #ifdef __WXMAC__
|
||||||
|
+ self->OSXEnableAutomaticDashSubstitution(enable);
|
||||||
|
+ #else
|
||||||
|
+ wxPyRaiseNotImplemented();
|
||||||
|
+ #endif
|
||||||
|
+ """)
|
||||||
|
|
||||||
|
- c.addCppMethod('void', 'OSXDisableAllSmartSubstitutions', '()',
|
||||||
|
- doc="Mac-only method to disable all automatic text substitutions.",
|
||||||
|
- body="""\
|
||||||
|
- #ifdef __WXMAC__
|
||||||
|
- self->OSXDisableAllSmartSubstitutions();
|
||||||
|
- #else
|
||||||
|
- wxPyRaiseNotImplemented();
|
||||||
|
- #endif
|
||||||
|
- """)
|
||||||
|
+ c.find('OSXDisableAllSmartSubstitutions').setCppCode("""\
|
||||||
|
+ #ifdef __WXMAC__
|
||||||
|
+ self->OSXDisableAllSmartSubstitutions();
|
||||||
|
+ #else
|
||||||
|
+ wxPyRaiseNotImplemented();
|
||||||
|
+ #endif
|
||||||
|
+ """)
|
||||||
|
|
||||||
|
# TODO: add support for wxTextProofOptions (only supported on MSW/GTK3)
|
||||||
|
# so will need stubs on other platforms.
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
25
0001-wxWidgets-Phoenix-integer-division.patch
Normal file
25
0001-wxWidgets-Phoenix-integer-division.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 3b042c863f4092f802a877a972fd6eb284451a78 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Greiner <code@bnavigator.de>
|
||||||
|
Date: Sat, 6 Jan 2024 21:58:29 +0100
|
||||||
|
Subject: [PATCH] integer division for randint
|
||||||
|
|
||||||
|
Python 3.12 does not accept floats for random.randint() anymore
|
||||||
|
---
|
||||||
|
unittests/test_dcDrawLists.py | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/unittests/test_dcDrawLists.py b/unittests/test_dcDrawLists.py
|
||||||
|
index 9e35e5eaf..6696a79a0 100644
|
||||||
|
--- a/unittests/test_dcDrawLists.py
|
||||||
|
+++ b/unittests/test_dcDrawLists.py
|
||||||
|
@@ -63,8 +63,8 @@ def makeRandomRectangles():
|
||||||
|
rects = []
|
||||||
|
|
||||||
|
for i in range(num):
|
||||||
|
- W = random.randint(10, w/2)
|
||||||
|
- H = random.randint(10, h/2)
|
||||||
|
+ W = random.randint(10, w//2)
|
||||||
|
+ H = random.randint(10, h//2)
|
||||||
|
x = random.randint(0, w - W)
|
||||||
|
y = random.randint(0, h - H)
|
||||||
|
rects.append( (x, y, W, H) )
|
49
0003-Make-pip-usage-in-wxget-optional.patch
Normal file
49
0003-Make-pip-usage-in-wxget-optional.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
From 00ba66a86f65abb24402427d66bf50e8da477321 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||||
|
Date: Tue, 28 Jun 2022 18:16:34 +0200
|
||||||
|
Subject: [PATCH 3/4] Make pip usage in wxget optional
|
||||||
|
|
||||||
|
As the code states, using pip to download is abusing it, and as it is
|
||||||
|
just a fallback in case neither wget nor urllib works.
|
||||||
|
---
|
||||||
|
wx/tools/wxget.py | 10 +++++++---
|
||||||
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/wx/tools/wxget.py b/wx/tools/wxget.py
|
||||||
|
index c83ced7a..75eb0f47 100644
|
||||||
|
--- a/wx/tools/wxget.py
|
||||||
|
+++ b/wx/tools/wxget.py
|
||||||
|
@@ -33,7 +33,6 @@ import os
|
||||||
|
import wx
|
||||||
|
import subprocess
|
||||||
|
import ssl
|
||||||
|
-import pip
|
||||||
|
|
||||||
|
if sys.version_info >= (3,):
|
||||||
|
from urllib.error import (HTTPError, URLError)
|
||||||
|
@@ -44,6 +43,11 @@ else:
|
||||||
|
from urllib2 import (HTTPError, URLError)
|
||||||
|
import urlparse
|
||||||
|
|
||||||
|
+try:
|
||||||
|
+ import pip
|
||||||
|
+except ImportError as e:
|
||||||
|
+ pip = None
|
||||||
|
+
|
||||||
|
def get_docs_demo_url(demo=False):
|
||||||
|
""" Get the URL for the docs or demo."""
|
||||||
|
if demo:
|
||||||
|
@@ -196,8 +200,8 @@ def download_file(url, dest=None, force=False, trusted=False):
|
||||||
|
success = download_wget(url, filename, trusted) # Try wget
|
||||||
|
if not success:
|
||||||
|
success = download_urllib(url, filename) # Try urllib
|
||||||
|
- if not success:
|
||||||
|
- success = download_pip(url, filename, force, trusted) # Try urllib
|
||||||
|
+ if not success and pip not None:
|
||||||
|
+ success = download_pip(url, filename, force, trusted) # Try pip
|
||||||
|
if not success:
|
||||||
|
split_url = url.split('/')
|
||||||
|
msg = '\n'.join([
|
||||||
|
--
|
||||||
|
2.36.1
|
||||||
|
|
@ -0,0 +1,55 @@
|
|||||||
|
From 70ecc1afcdd59bbd3b700d000e8f92740d218245 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||||
|
Date: Tue, 28 Jun 2022 18:32:32 +0200
|
||||||
|
Subject: [PATCH 4/4] Fix time_t ETG typedef, extend DateTime.FromTimeT tests
|
||||||
|
|
||||||
|
Before c78823549bac ("Ensure time_t is treated as a 64-bit value by SIP")
|
||||||
|
the typedef used "long" instead of wxInt64, which caused issues on Win64,
|
||||||
|
as long is 32bit there (LLP64). On the other hand, wxInt64 is wrong on
|
||||||
|
32 bit Linux (e.g. armv7, i586), and thus the code crashes.
|
||||||
|
|
||||||
|
As SIP_SSIZE_T is 64 bit for both LLP64 (Windows) and LP64 (Linux), but
|
||||||
|
32 bit on 32bit archs, it matches time_t better (though, according to the
|
||||||
|
C standard, it could even be a double).
|
||||||
|
---
|
||||||
|
etg/defs.py | 2 +-
|
||||||
|
unittests/test_wxdatetime.py | 8 +++++++-
|
||||||
|
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/etg/defs.py b/etg/defs.py
|
||||||
|
index 4445cf93..ceb9e2ef 100644
|
||||||
|
--- a/etg/defs.py
|
||||||
|
+++ b/etg/defs.py
|
||||||
|
@@ -73,7 +73,7 @@ def run():
|
||||||
|
td = module.find('wxUIntPtr')
|
||||||
|
module.insertItemAfter(td, etgtools.TypedefDef(type='wchar_t', name='wxUChar'))
|
||||||
|
module.insertItemAfter(td, etgtools.TypedefDef(type='wchar_t', name='wxChar'))
|
||||||
|
- module.insertItemAfter(td, etgtools.TypedefDef(type='wxInt64', name='time_t'))
|
||||||
|
+ module.insertItemAfter(td, etgtools.TypedefDef(type='long', name='time_t'))
|
||||||
|
module.insertItemAfter(td, etgtools.TypedefDef(type='long long', name='wxFileOffset'))
|
||||||
|
module.insertItemAfter(td, etgtools.TypedefDef(type='SIP_SSIZE_T', name='ssize_t'))
|
||||||
|
module.insertItemAfter(td, etgtools.TypedefDef(type='unsigned char', name='byte', pyInt=True))
|
||||||
|
diff --git a/unittests/test_wxdatetime.py b/unittests/test_wxdatetime.py
|
||||||
|
index 62e7d141..2f620045 100644
|
||||||
|
--- a/unittests/test_wxdatetime.py
|
||||||
|
+++ b/unittests/test_wxdatetime.py
|
||||||
|
@@ -25,9 +25,15 @@ class datetime_Tests(wtc.WidgetTestCase):
|
||||||
|
def test_datetime2(self):
|
||||||
|
d1 = wx.DateTime.FromHMS(8, 15, 45, 123)
|
||||||
|
d2 = wx.DateTime.FromJDN(12345.67)
|
||||||
|
- d3 = wx.DateTime.FromTimeT(int(time.time()))
|
||||||
|
d4 = wx.DateTime.FromDMY(1, wx.DateTime.Mar, 2012, 8, 15, 45, 123)
|
||||||
|
|
||||||
|
+ def test_datetimeTimeT(self):
|
||||||
|
+ d1 = wx.DateTime.FromTimeT(0)
|
||||||
|
+ self.assertEqual(d1.year, 1970)
|
||||||
|
+ d2 = wx.DateTime.FromTimeT(1643756400) # 2022-02-02
|
||||||
|
+ self.assertEqual(d2.year, 2022)
|
||||||
|
+ d3 = wx.DateTime.FromTimeT(int(time.time()))
|
||||||
|
+
|
||||||
|
def test_datetime3(self):
|
||||||
|
d1 = wx.DateTime.Today()
|
||||||
|
d2 = wx.DateTime.Now()
|
||||||
|
--
|
||||||
|
2.36.1
|
||||||
|
|
7
_constraints
Normal file
7
_constraints
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<constraints>
|
||||||
|
<hardware>
|
||||||
|
<disk>
|
||||||
|
<size unit="G">8</size>
|
||||||
|
</disk>
|
||||||
|
</hardware>
|
||||||
|
</constraints>
|
7
_multibuild
Normal file
7
_multibuild
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>python3</package>
|
||||||
|
<package>python39</package>
|
||||||
|
<package>python310</package>
|
||||||
|
<package>python311</package>
|
||||||
|
<package>python312</package>
|
||||||
|
</multibuild>
|
5640
drop-py2.patch
Normal file
5640
drop-py2.patch
Normal file
File diff suppressed because it is too large
Load Diff
3
python-wxPython-rpmlintrc
Normal file
3
python-wxPython-rpmlintrc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
addFilter("devel-file-in-non-devel-package")
|
||||||
|
# the multibuild flavors need differently named source packages
|
||||||
|
addFilter("invalid-spec-name")
|
617
python-wxPython.changes
Normal file
617
python-wxPython.changes
Normal file
@ -0,0 +1,617 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jun 30 20:55:59 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- prepare for python 3.13
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 30 13:08:43 UTC 2024 - Markéta Machová <mmachova@suse.com>
|
||||||
|
|
||||||
|
- Add drop-py2.patch to get rid of the six dependency (it will die
|
||||||
|
with Python 3.13)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat May 25 09:16:36 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Add wxwidgets-3.2.5.patch to resolve wxPython FTBFS
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Feb 23 12:16:15 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- Use newly supported shrink{} on OBS to exclude python flavors
|
||||||
|
when all python versions are skipped.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jan 15 16:29:26 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- Enable python312 as valid multibuild flavor.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jan 6 21:47:42 UTC 2024 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Update buildset:
|
||||||
|
* Tumbleweed: Prepare python312, drop python38
|
||||||
|
* 15.X: Prepare for "SLE15 Python module pythons" (The repository
|
||||||
|
does not have all the requirements yet to build)
|
||||||
|
- Add 0001-wxWidgets-Phoenix-integer-division.patch
|
||||||
|
* Required for Python 3.12
|
||||||
|
* gh#wxWidgets/Phoenix#2508
|
||||||
|
- Update requirements:
|
||||||
|
* This version requires Pillow again.
|
||||||
|
* Require numpy for all flavors: Add require-numpy.patch
|
||||||
|
* Upstream goes back and forth, see
|
||||||
|
https://github.com/wxWidgets/Phoenix/commits/master/requirements/install.txt
|
||||||
|
- Repack the source: Remove stray wxWidgets-4.1.0 tree
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 27 07:37:06 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||||||
|
|
||||||
|
- Add patch from upstream to fix building the package with
|
||||||
|
doxygen >=1.9.7 (gh#wxWidgets/Phoenix#2497):
|
||||||
|
* 0001-Support-building-with-Doxygen-1.9.7.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 13 23:00:29 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Add 0001-Update-wxTextCtrl-OSX-overrides-since-they-re-now-do.patch
|
||||||
|
0001-Handle-wxGLCanvas-CreateSurface-which-is-only-availa.patch
|
||||||
|
to fix build failures with wx 3.2.4.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 11 14:47:53 UTC 2023 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Update to release 4.2.1
|
||||||
|
* No changelog provided
|
||||||
|
- Drop upstream patches:
|
||||||
|
* 0001-pypubsub-Replace-deprecated-inspect.getargspec.patch
|
||||||
|
* 0001-Fix-overflow-check-for-wxUIntPtr-type.patch
|
||||||
|
* 0001-Only-import-attrdict-where-needed.patch
|
||||||
|
* ba0d8cfcec3d3b0112d1c54991853e6003f2fbf6.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jan 28 09:38:44 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- add ba0d8cfcec3d3b0112d1c54991853e6003f2fbf6.patch to resolve
|
||||||
|
python 3.11 build failure
|
||||||
|
- add 0001-pypubsub-Replace-deprecated-inspect.getargspec.patch
|
||||||
|
to fix another python 3.11 build failure
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jan 26 09:14:45 UTC 2023 - pgajdos@suse.com
|
||||||
|
|
||||||
|
- add repack script to sources in spec file
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 17 13:51:03 UTC 2023 - pgajdos@suse.com
|
||||||
|
|
||||||
|
- add repack script, do not include packaging/ dir in sources
|
||||||
|
[gh#wxWidgets/Phoenix#2105], [bsc#670523]
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Dec 5 13:07:46 UTC 2022 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Add python-pytest-forked as test dependency
|
||||||
|
* The pytest parameter --forked is provided by python-pytest-forked
|
||||||
|
which is no longer a transitive build requirement of
|
||||||
|
python-pytest-xdist
|
||||||
|
* gh#pytest-dev/pytest-xdist#468, gh#pytest-dev/pytest-xdist#821
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Aug 13 23:03:31 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Update to relase 4.2.0, matching wxWidgets 3.2.0
|
||||||
|
For a detailed changelog, see
|
||||||
|
https://www.wxpython.org/news/2022-08-07-wxpython-411-release/index.html
|
||||||
|
- Drop patch obsoleted by upstream changes:
|
||||||
|
* 0002-SIP-6.5-compat.patch
|
||||||
|
- Do not depend on pip for downloading in wxget, add
|
||||||
|
0003-Make-pip-usage-in-wxget-optional.patch
|
||||||
|
- Fix a wrong type size on 32 bit archs, add
|
||||||
|
0004-Fix-time_t-ETG-typedef-extend-DateTime.FromTimeT-tes.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jun 26 13:46:42 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Update to current git version for wxWidgets 3.1.6/3.1.7
|
||||||
|
compatibility.
|
||||||
|
- Drop upstream patches:
|
||||||
|
* fix_no_return_in_nonvoid.patch
|
||||||
|
* wxPython-4.1.1-fix-overrides.patch
|
||||||
|
* 2039-bunch-py310-fixes.patch
|
||||||
|
* additional-310-fixes.patch
|
||||||
|
- Regenerate bindings from wxWidgets 3.1.7 code
|
||||||
|
- Allow SIP generation with SIP 6.x < 6.6,
|
||||||
|
* 0001-Only-import-attrdict-where-needed.patch
|
||||||
|
* 0002-SIP-6.5-compat.patch
|
||||||
|
- Add patches for test suite (pending):
|
||||||
|
* 0001-Check-HSV-values-in-image-test.patch
|
||||||
|
* 0001-Fix-overflow-check-for-wxUIntPtr-type.patch
|
||||||
|
- Add some more dependencies required for the test suite
|
||||||
|
- Disable some tests which can not succeed
|
||||||
|
- Enable test suite by default
|
||||||
|
- Do not ship copy of wxWidgets locale
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 5 11:12:25 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Reduce complexity by not rewriting subpackages at all.
|
||||||
|
Multibuild flavors now must be a superset of all existing
|
||||||
|
python3 flavors.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 4 22:28:51 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- The difference of a single whitespace character is significant
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 4 13:58:38 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Appease factory-auto bot about package src name
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 4 10:18:08 UTC 2022 - Matej Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
|
- Add additional patches fixing the situation with Python 3.10
|
||||||
|
compatibility:
|
||||||
|
- 2039-bunch-py310-fixes.patch (from gh#wxWidgets/Phoenix#2039)
|
||||||
|
- additional-310-fixes.patch (from various commits on master)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 29 10:23:20 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Split out the TW python3 flavors into multibuild using the
|
||||||
|
python_subpackage_only mechanism: Multiple python3 flavors
|
||||||
|
sequentially require too much space and time in one build.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jun 12 16:32:57 UTC 2021 - Antoine Belvire <antoine.belvire@opensuse.org>
|
||||||
|
|
||||||
|
- Bump required wxWidgets version to 3.1.5.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
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>
|
||||||
|
|
||||||
|
- Don't build using Python 3.6 for test package, when that gets reenabled.
|
||||||
|
- Since build.py install helpfully installs every built shared object
|
||||||
|
under site-package directories, remove those not for that version of
|
||||||
|
Python. (bsc#1182822)
|
||||||
|
- Correct python uninstall alternatives to list all of them, not just one.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 30 17:48:02 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Use system wxWidgets (wxGTK3) instead of bundling
|
||||||
|
- Cleanup test dependencies and check section (tests still disabled
|
||||||
|
due to too many failures)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jul 1 12:55:23 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Wrap all relevant build dependencies when building with system
|
||||||
|
wxWidgets library.
|
||||||
|
- Add patches to allow building with STL variant of wxGTK:
|
||||||
|
* 0001-Fix-conversion-of-variant-list-members.patch
|
||||||
|
* use_stl_build.patch
|
||||||
|
* 0001-Fix-wxUIActionSimulator-Text-parameter-documentation.patch
|
||||||
|
* 0003-Use-explicit-wxString-c_str-conversion-for-sipFindTy.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 29 22:21:35 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Add explicit libXtst build dependency, required for Leap 15.1
|
||||||
|
(already implicit on Leap 15.2 and TW).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 28 09:01:51 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 4.1.0:
|
||||||
|
* Add a sample for wx.Font.AddPrivateFont to the demo.
|
||||||
|
* Added wrappers for the OSXEnableAutomaticQuoteSubstitution,
|
||||||
|
OSXEnableAutomaticDashSubstitution, and OSXDisableAllSmartSubstitutions
|
||||||
|
methods in wx.TextCtrl. Also added OSXEnableAutomaticTabbing in wx.App.
|
||||||
|
* Added wx.ColourDialogEvent, wx.DCTextBgColourChanger, wx.DCTextBgModeChanger,
|
||||||
|
wx.grid.GridCellDateRenderer, wx.grid.GridCellDateEditor, wx.SystemAppearance, etc.
|
||||||
|
* Many of the deprecated items in wxWidgets and wxPython are being or have
|
||||||
|
been removed. Be sure to test your code in a recent 4.0.x release with
|
||||||
|
warnings enabled so you can see which class, method or function calls
|
||||||
|
you need to change.
|
||||||
|
* Bug fixes in wx.lib.calendar: key navigation across month boundaries is
|
||||||
|
now possible; key navigation now sets the date and fires the EVT_CALENDAR event;
|
||||||
|
setter APIs now set the date correctly #1230.
|
||||||
|
* Switch to using a wx.Overlay in the Widget Inspection Tool to highlight
|
||||||
|
widgets when running on a GTK3 port.
|
||||||
|
* Fixed issue in wx.lib.agw.customtreectrl where the label editor could
|
||||||
|
remain stuck forever #1235.
|
||||||
|
* Grafted on a EnableSystemTheme method to the classes which support it.
|
||||||
|
This can be used to disable the default system theme on Windows for native
|
||||||
|
widgets like wx.ListCtrl, wx.TreeCtrl and wx.dataview.DataViewCtrl.
|
||||||
|
It has no effect on the other platforms.
|
||||||
|
* The wx.WS_EX_VALIDATE_RECURSIVELY extended style flag is obsolete,
|
||||||
|
as it is now the default (and only) behavior. The style flag has been added
|
||||||
|
back into wxPython for compatibility, but with a zero value. You can just
|
||||||
|
stop using it in your code with no change in behavior. #1278
|
||||||
|
* Fix a sometimes crash when using a wx.Overlay by letting the wx.DCOverlay
|
||||||
|
hold a reference to the DC, to ensure that the DCOverlay is destroyed first. PR#1301
|
||||||
|
* Replaced the Vagrant VMs used for building wxPython for various Linux distros
|
||||||
|
with Docker images.
|
||||||
|
* Add some missing methods in wx.adv.BitmapComboBox #1307
|
||||||
|
* Added the wx.svg package which contains code for parsing SVG
|
||||||
|
(Scalable Vector Graphics) files, and also code for integrating with
|
||||||
|
wxPython. It can rasterize the SVG to a wx.Bitmap of any size with no
|
||||||
|
loss of quality, and it can also render the SVG directly to a
|
||||||
|
wx.GraphicsContext using the GC's drawing primitives. PR#1323
|
||||||
|
* Ported the embedding sample from Classic, which shows how to use wxPython
|
||||||
|
from a C++ wxWidgets application that embeds Python. PR#1353
|
||||||
|
* Fixed wx.GetApp() to use wxWidgets' global wxApp instance instead of
|
||||||
|
maintaining its own pointer. This way, if the wxApp is created by C++
|
||||||
|
code wxPython will still be able to get access to it. #1126
|
||||||
|
* Added wrappers for the wx.ActivityIndicator class.
|
||||||
|
* Added wrappers for the wx.CollapsibleHeaderCtrl class.
|
||||||
|
* Fixed issues in PlotCanvas around displaying and using scrollbars. #1428
|
||||||
|
* Added wx.msw.CHMHelpController, and also a wx.HelpController factory function
|
||||||
|
that creates an instance of the best Help Controller for the platform. #1536
|
||||||
|
* Added wx.adv.GenericAnimationCtrl so the generic version of the animation
|
||||||
|
classes can be used even on the platforms that have a native version.
|
||||||
|
Note that due to internal changes to support both types of animations,
|
||||||
|
some API changes in how the Animation objects are created. See the
|
||||||
|
AnimationCtrl.py sample in the demo for the various usage patterns #1579
|
||||||
|
* Added wrappers for the wx.grid.GridBlockCoords, wx.grid.GridBlocks, and
|
||||||
|
wx.grid.GridBlockDiffResult classes, as well as associated new methods
|
||||||
|
in the wx.grid.Grid class. These provide a new way to interact with blocks
|
||||||
|
of selected cells, including an iterator interface in wx.grid.GridBlocks
|
||||||
|
which should be a more efficient (time and memory) way to process large
|
||||||
|
groups of selections.
|
||||||
|
- Disable Python2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 2 12:41:31 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
|
||||||
|
|
||||||
|
- Update to 4.0.7.post2:
|
||||||
|
* Bugfix to switch to AVFoundation instead of QTKit
|
||||||
|
- Fix building with new glut (pc file changed)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 12 04:15:41 UTC 2019 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Update to 4.0.7.post1
|
||||||
|
* This post-release just fixes a problem with the numpy dependency constraint
|
||||||
|
for Python 2.7. (#1415)
|
||||||
|
* Bug fixes in wx.lib.calendar: key navigation across month boundaries is
|
||||||
|
now possible; key navigation now sets the date and fires the EVT_CALENDAR
|
||||||
|
event; setter APIs now set the date correctly (#1230).
|
||||||
|
* Switch to using a wx.Overlay in the Widget Inspection Tool to highlight
|
||||||
|
widgets when running on a GTK3 port.
|
||||||
|
* Fixed issue in wx.lib.agw.customtreectrl where label editor could remain
|
||||||
|
stuck forever (#1235).
|
||||||
|
* Fix a sometimes crash when using a wx.Overlay by letting the wx.DCOverlay
|
||||||
|
hold a reference to the DC, to ensure that the DCOverlay is destroyed
|
||||||
|
first. (PR#1301)
|
||||||
|
* Ported the embedding sample from Classic, which shows how to use wxPython
|
||||||
|
from a C++ wxWidgets application that embeds Python. (PR #1353)
|
||||||
|
* Fixed wx.GetApp() to use wxWidgets' global wxApp instance instead of
|
||||||
|
maintaining its own pointer. This way, if the wxApp is created by C++ code
|
||||||
|
wxPython will still be able to get access to it. (#1126)
|
||||||
|
* Several other PRs have been backported from the master branch (which will
|
||||||
|
become wxPython 4.1.0), the full list can be seen here:
|
||||||
|
https://github.com/wxWidgets/Phoenix/pull/1357
|
||||||
|
* Fixed a probably rare, but fatal bug on OSX when calling certain overloaded
|
||||||
|
virtual methods with implementations in Python.
|
||||||
|
* Fixed char pointers in generated stub code to have a valid pointer value.
|
||||||
|
* Reverted the change that loads up install_requires from the contents of
|
||||||
|
requirements.txt. Split the requirements.txt file into one for install and
|
||||||
|
one for development.
|
||||||
|
* Added missing HtmlWindow.ScrollToAnchor method, and also a couple methods
|
||||||
|
in HtmlCell too. (#1141)
|
||||||
|
* Added missing setters for the wheel-related properties in wx.MouseEvent.
|
||||||
|
(#1140)
|
||||||
|
* Updated wxWidgets commit reference, bringing fixes for #1140, #1086 and
|
||||||
|
#1147.
|
||||||
|
* Fix the use of the output parameter in HtmlWindow.OnOpeningURL the same
|
||||||
|
way it was fixed in HtmlWindowInterface.OnHTMLOpeningURL. (#1068)
|
||||||
|
* Fixed a crashing bug when using a member of a transient wx.VisualAttributes
|
||||||
|
object. Also set the attributes to be read-only to simplify the fix.
|
||||||
|
(#1198).
|
||||||
|
* Updated the sip being used in wxPython builds to version 4.19.16.
|
||||||
|
* Added helper functions to check results of wxWidgets configure during the
|
||||||
|
build of wxPython. Currently used to determine if the wx webview, glcanvas,
|
||||||
|
and media libraries should be added to the link command. (#1138)
|
||||||
|
* Fixed scrollbar issue with ListCtrlAutoWidthMixin (#1215)
|
||||||
|
* Fixed file access in the wx.py and wx.tools.pywxrc packages to be Python 2
|
||||||
|
and 3 compatible. (#1193, #1156)
|
||||||
|
* Fixes for building with Python 3.8 on Linux. (#1227)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 7 18:42:42 UTC 2019 - Todd R <toddrme2178@gmail.com>
|
||||||
|
|
||||||
|
- Update to 4.0.4
|
||||||
|
* Fixed an issue where wx.lib.intctrl would erroneously attempt to use long
|
||||||
|
on Python3. (#898)
|
||||||
|
* Include the MSVC runtime DLLs for Python 3.7 builds too.
|
||||||
|
* Clear LIBPATH_PYEXT and LIB_PYEXT for linux builds too. (#904)
|
||||||
|
* Added a dependency on the Pillow package since it's used in some wx.lib.agw
|
||||||
|
modules. (PR #908)
|
||||||
|
* Add flag to hide page in wx.lib.agw.aui.notebook. (#895)
|
||||||
|
* Switch wx.lib.plot to issue deprecation warnings with PlotPendingDeprecation
|
||||||
|
so it doesn't have to enable all warnings to get them to be shown by default.
|
||||||
|
(#902)
|
||||||
|
* Added a Python 3.7 builder on Fedora 28. (#925)
|
||||||
|
* Fix the object ownership transfer for wx.Menu.Insert() (#931)
|
||||||
|
* Added wx.Treebook.GetTreeCtrl, wx.Listbook.GetListView and
|
||||||
|
wx.Choicebook.GetChoiceCtrl. (#918)
|
||||||
|
* Removed the wx.BookCtrlBase.RemovePage workaround as it was causing problems
|
||||||
|
and doesn't seem to be necessary any more. The existing wxWidgets assertions
|
||||||
|
are catching the out of range error just fine, however if wxWidgets was built
|
||||||
|
without the debug helpers turned on then it could still cause a crash. (#888)
|
||||||
|
* Reverted the changes which removed the content of the wx.lib.pubsub package
|
||||||
|
and encouraged users to switch to the real PyPubSub package instead. Removing
|
||||||
|
it caused more issues than were expected so it has been restored and the code
|
||||||
|
updated to PyPubSub v3.3.0. Version 4.0.0 is available upstream, but it is not
|
||||||
|
compatible with Python 2.7. Now, wx.lib.pubsub is actually deprecated instead
|
||||||
|
of just trying to pass control over to the upstream PyPubSub library. (#932)
|
||||||
|
* Improve calltip stability in pyshell. (#941)
|
||||||
|
* Fix TypeError in wx.lib.throbber. (#924)
|
||||||
|
* Fix missing parameter tool_id in
|
||||||
|
wx.lib.agw.ribbon.toolbar.RibbonToolBar.AddToggleTool. (#947)
|
||||||
|
* Add a step to wx.Config.ReadInt to attempt converting from long to int
|
||||||
|
under python2. (#384)
|
||||||
|
* Add virtual behavior for wx.RichTextCtrl and wx.TextCtrl's Copy/Cut/Paste methods
|
||||||
|
and their Can* counterparts. (#954)
|
||||||
|
* Fix IO type in wx.lib.agw.thumbnailctrl (#959)
|
||||||
|
* Fix type error that would occur using pycolourchooser. (#957)
|
||||||
|
* Optimize line drawing in HyperTreeList. (#973)
|
||||||
|
* Add wrapper for wx.StaticBox.GetBordersForSizer and use it in the demo to do
|
||||||
|
platform-specific layout of the items in the StaticBox. (#974)
|
||||||
|
* Update wx.Point, wx.RealPoint, and wx.Size to use floating
|
||||||
|
point arithmetic when conducting scalar multiplication (#971)
|
||||||
|
* Fix load/save bugs in PySlices (PR#978)
|
||||||
|
* Replace deprecated PIL.Image.tostring (PR#1005)
|
||||||
|
* Fix rendering and mouse sensitivity in UltimateListCtrl when adding HyperText
|
||||||
|
items. (#1010)
|
||||||
|
* Added a parameter to lib.agw.CustomTreeCtrl.SetItemWindow(), to allow
|
||||||
|
positioning the Window (a small image) on the left of text in a
|
||||||
|
CustomTreeItem. (#PR886).
|
||||||
|
* Declared DeleteAllPages in the notebook subclasses, so the proper C++
|
||||||
|
implementation will be called. (#972)
|
||||||
|
* Removed wx.lib.floatbar, which has been deprecated forever and probably
|
||||||
|
hasn't been working in nearly as long. (#976)
|
||||||
|
* Updated SIP to version 4.19.13.
|
||||||
|
* Fix an issue in wx.lib.agw.aui.AuiManager where the orientation of
|
||||||
|
an AuiToolBar would not be updated when calling LoadPerspective. (#917)
|
||||||
|
* Fixed a bug in wx.FileSystemHandler.OpenFile where the object ownership was
|
||||||
|
not being transferred correctly, causing a crash after a premature object
|
||||||
|
deletion. (#926)
|
||||||
|
* Fixed wx.ListCtrl.Append when wx.LC_SORT style is used, so appending items out
|
||||||
|
of order does not lose the data for the remaining columns. (#906)
|
||||||
|
* Add wx.Accessible, it's Windows-only, will raise a NotImplementedError
|
||||||
|
exception on the other platforms. (#958)
|
||||||
|
* Added the ability to generate stub classes for use when optional wxWidgets
|
||||||
|
features are not part of the build. So far, stubs are available for
|
||||||
|
wx.Accessible, wx.FileSystemWatcher, wx.glcanvas, wx.media and wx.html2.
|
||||||
|
* Moved the wxpy_api.h file into the wx package at wx/include/wxPython so it
|
||||||
|
will be included in the wheel file. (#961)
|
||||||
|
* Fixed how string data is added to a virtual file-like object in
|
||||||
|
wx.MemoryFSHandler. All strings are now added to the file as utf-8 encoded data,
|
||||||
|
in both Python2 and Python3, and will be read from the virtual file the same
|
||||||
|
way. If you need to use some other encoding for some reason you can first
|
||||||
|
convert the text to a bytesarray or other buffer protocol compatible object and
|
||||||
|
then create the virtual file from that data. (#969)
|
||||||
|
* Performance update for wx.lib.agw.customtreectrl (#1049)
|
||||||
|
* Ensure that colours set in wx.lib.agw.customtreectrl.TreeItemAttr are
|
||||||
|
instances of wx.Colour. (#1032)
|
||||||
|
* Fix drawing of ticks in wx.lib.agw.speedmeter when there are negative bounds
|
||||||
|
values. (#1013)
|
||||||
|
* wxWidgets for Mac includes the wxJoystick class now, also update the demo.
|
||||||
|
(#997)
|
||||||
|
* Fix wx.html.HtmlPrintout to not be seen as an abstract class, so it can be
|
||||||
|
instantiated. (#1060)
|
||||||
|
* Fix wx.aui.AuiNotbook.SetArtProvider to properly transfer ownership of the art
|
||||||
|
object from Python to C++. This possible double-deletion and related crashing
|
||||||
|
problems. (#1061)
|
||||||
|
* Fixed the wrappers for wx.html.HtmlWindow.OnOpeningURL to properly handle the
|
||||||
|
redirect output parameter. (#1068) This is a backwards-incompatible change,
|
||||||
|
please see the Migration Guide for details.
|
||||||
|
* TabNavigatorWindow works similarly to other programs now. It's resizable and
|
||||||
|
draggable so if user has tons of files with long names, it isn't an irritation
|
||||||
|
anymore plastered right in the middle of the screen and can't be worked with
|
||||||
|
easily and ESC now cancels the popup with a proper returnId. (#1096)
|
||||||
|
* Added missing methods in wx.ListBox, SetItemForegroundColour,
|
||||||
|
SetItemBackgroundColour and SetItemFont. (#1095)
|
||||||
|
* Backported a fix in wxWidgets that avoids crashing in hhctrl.ocx when using
|
||||||
|
context sensitive help in 64-bit builds on Windows. (#1104)
|
||||||
|
- Update to 4.0.3
|
||||||
|
* Fixed a linking problem on macOS. The new waf added an explicit link to the
|
||||||
|
Python shared library which meant that it would try to load it at runtime,
|
||||||
|
even if a different Python (such as Anaconda, EDM or Homebrew) was used to
|
||||||
|
import wxPython. This, of course, caused runtime errors. (#892)
|
||||||
|
* Sort pages by dock_pos when added to automatic (agw.aui) notebook. (#882)
|
||||||
|
* Fix a bug in py.introspect.getTokens. (#889)
|
||||||
|
* Added Vagrant configuration for Fedora-28. Removed Fedora-23 (#884)
|
||||||
|
* Added wrappers for the wx.WindowIDRef class and added the wx.NewIdRef
|
||||||
|
function. These will make it possible to create reserved Window IDs using the
|
||||||
|
same mechanism which is used when passing wx.ID_ANY to a widget constructor.
|
||||||
|
The object returned by wx.NewIdRef will automatically convert to an int when
|
||||||
|
passing it to a window constructor, and can also be used as the source in a
|
||||||
|
Bind(). (#896)
|
||||||
|
* Fixed issue when sys.prefix is not unicode (Python2) and when its contents
|
||||||
|
are not translatable to utf-8.
|
||||||
|
- Update to 4.0.2
|
||||||
|
* Fixed wx.html2.EVT_WEBVIEW_NAVIGATING event not being sent on some versions
|
||||||
|
of Linux. (#741)
|
||||||
|
* wx.Sizers can now be used as an iterator to iterate over the items within
|
||||||
|
the sizer. (#738)
|
||||||
|
* Fix Python3 division in ThumbnailCtrl. (#746)
|
||||||
|
* Fix leaking image list in CheckListCtrlMixin (#752)
|
||||||
|
* All items marked as deprecated in the wxWidgets interface (documentation)
|
||||||
|
files will now throw a DeprecationWarning when used from wxPython. Many of
|
||||||
|
these items are disappearing in 4.1 so it's important to ensure they are
|
||||||
|
deprecated at runtime too instead of just in the docs. (#749)
|
||||||
|
* Ensure that the attribute list given to the GLCanvas constructor is
|
||||||
|
zero-terminated like it was in Classic. (#770)
|
||||||
|
* Updated to the wxWidgets 3.0.4 release version.
|
||||||
|
* Added the wxWidgets version number to the tail end of the string returned by
|
||||||
|
wx.version().
|
||||||
|
* Bind EVT_WINDOW_DESTROY event only to the tree windows in CustomTreeCtrl,
|
||||||
|
since otherwise it would be caught when child windows are destroyed too,
|
||||||
|
which causes problems in this case. (#778)
|
||||||
|
* Fixed a problem where wx.TreeCtrl.OnCompareItems was not being called in
|
||||||
|
derived classes on Windows. This was due to an optimization that wasn't
|
||||||
|
compatible with how the classes are wrapped. (#774)
|
||||||
|
* Added wrappers for wx.ClassInfo and exposed wx.Object.GetClassInfo. This
|
||||||
|
class is part of wxWidgets' internal type information system and although
|
||||||
|
it is not very useful for Python applications it is useful for debugging
|
||||||
|
some internal wxPython issues.
|
||||||
|
* Removed the wx.lib.pubsub package, and replaced it with code that imports
|
||||||
|
the standalone PyPubSub in order remain compatible with older code that
|
||||||
|
still uses wx.lib.pubsub. (#782, #792)
|
||||||
|
* Fixed bug in wx.lib.intctrl (#790)
|
||||||
|
* Fixed subclassing of wx.TextCompleter and wx.TextCompleterSimple (#827)
|
||||||
|
* Fixes for Python3 compatibility in PyCrust. (#823)
|
||||||
|
* Fix wxGet to be able to use pip v10. (#817)
|
||||||
|
* Change winid parameter in wx.ScrolledWindow to id, for consistency. (#816)
|
||||||
|
* Ensure that the page exists in book controls GetPage and RemovePage methods.
|
||||||
|
At least one of the wx ports do not do this. (#830)
|
||||||
|
* Added missing wx.NumberEntryDialog
|
||||||
|
* Change wx.TextCompleterSimple.GetCompletions to send the list of strings
|
||||||
|
as a return value, rather than a parameter that gets filled. (#836)
|
||||||
|
* Enabled the wx.GraphicsContext.Create(metaFileDC) wrapper (#811)
|
||||||
|
* Metafile support is also available on OSX, so wx.msw.Metafile and
|
||||||
|
wx.msw.MetafileDC have been moved to the core wx module. So they can now be
|
||||||
|
accessed as wx.Metafile and wx.MetafileDC.
|
||||||
|
* Updated the waf tool used by the build to version 2.0.7. This fixes problems
|
||||||
|
with building for Python 3.7.
|
||||||
|
* Fixed alignment in buttons on MSW which have had foreground or background
|
||||||
|
colors set. (#815)
|
||||||
|
* Fix for unexpected assertion inside wx.aui.AuiMDIChildFrame.Close.
|
||||||
|
* Fix a bug in setting AuiDockingGuide size. (#727)
|
||||||
|
* Remove unnecessary AUI notebook updating, and use wx.BufferedDC in Repaint()
|
||||||
|
to mitigate flicker. (wx.lib.agw.aui). (#851, #686)
|
||||||
|
* Fixed crashing bug when using client data with items in
|
||||||
|
wx.dataview.DataViewTreeCtrl. (#856)
|
||||||
|
* Detach wx.Control in AuiToolbar from current sizer before attach to a new
|
||||||
|
one. (#843)
|
||||||
|
* Fixed a problem in wx.lib.mixins.listctrl.TextEditMixin where the height of
|
||||||
|
the editor widget could be set to zero. (See discussion in #849)
|
||||||
|
* Fix a bug in calculating whether a tool fits into the AuiToolBar. (#863)
|
||||||
|
* Override SetForegroundColour and SetBackgroundColour in MaskedEditMixin (#808)
|
||||||
|
* Add an explicit wx.GraphicsContext.Create overload for wx.AutoBufferedPaintDC. (#783)
|
||||||
|
* Return original AGW window style in AuiToolBar.GetAGWWindowStyleFlag. (#870)
|
||||||
|
* Fix a bug in group management on wx.lib.masked.numctrl; the previous code used
|
||||||
|
truediv ('/') to calculate _groupSpace, but in python 3.x this leads to a float
|
||||||
|
result, instead of an integer as was expected. Using floordiv ('//') instead
|
||||||
|
to solve the problem. (#865)
|
||||||
|
* Hide the window when the tool does not fit into AuiToolBar. (#872)
|
||||||
|
* Fixed the virtual dispatch code for the PGEditor.GetValueFromControl method
|
||||||
|
to properly pass the parameters to the Python implementation, and also fixed
|
||||||
|
how the return value is handled. (#742)
|
||||||
|
* Fixed all implementations of the PGProperty.StringToValue and IntToValue
|
||||||
|
methods to treat the value parameter as a return value. (#742)
|
||||||
|
* Add missing wx.adv.EVT_CALENDAR_WEEK_CLICKED (#875)
|
||||||
|
* Fixed the stock labels to conform to Windows design guidelines. (#787)
|
||||||
|
* Always reset floating size and style when floating a toolbar in agw.aui. (#880)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 18 14:40:11 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Add _constraints to avoid 'no space left' error
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 13 03:42:38 UTC 2018 - toddrme2178@gmail.com
|
||||||
|
|
||||||
|
- Add fix_no_return_in_nonvoid.patch
|
||||||
|
Fix lack of return in non-void function issue in generated sip
|
||||||
|
bindings.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 4 09:11:22 UTC 2018 - petr@cervinka.net
|
||||||
|
|
||||||
|
- Move "wx/*.so" libraries to main package, remove devel package (boo#1095747)
|
||||||
|
- Add rpmlintrc file to filter devel-file-in-non-devel-package
|
||||||
|
- Apply spec-cleaner
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 18 07:36:08 UTC 2018 - jengelh@inai.de
|
||||||
|
|
||||||
|
- Trim filler wording from description.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 28 20:32:18 UTC 2018 - toddrme2178@gmail.com
|
||||||
|
|
||||||
|
- Initial version
|
338
python-wxPython.spec
Normal file
338
python-wxPython.spec
Normal file
@ -0,0 +1,338 @@
|
|||||||
|
#
|
||||||
|
# spec file for package python-wxPython
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define X_display ":98"
|
||||||
|
%bcond_without test
|
||||||
|
%bcond_without syswx
|
||||||
|
# We rebuild the ETG and SIP files for two reasons:
|
||||||
|
# - Fixing a bug in the ETG time_t typedef (see patch)
|
||||||
|
# - Compatibility with SIP 6.5.x, for Leap 15.x
|
||||||
|
%bcond_without rebuild_sip
|
||||||
|
|
||||||
|
%if %{with syswx}
|
||||||
|
%define wx_args --use_syswx --gtk3 -v
|
||||||
|
%else
|
||||||
|
%define wx_args --gtk3 -v
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
%if "%flavor" == ""
|
||||||
|
# factory-auto requires the main build_flavor to match the specfile name
|
||||||
|
%define pprefix python
|
||||||
|
%define python_module() no-build-without-multibuild-flavor
|
||||||
|
ExclusiveArch: donotbuild
|
||||||
|
%else
|
||||||
|
%define pprefix %flavor
|
||||||
|
%if 0%{suse_version} >= 1599
|
||||||
|
# Tumbleweed has a varying number of python3 flavors. The flavor
|
||||||
|
# selection here and in _multibuild must be kept in sync with the Factory
|
||||||
|
# prjconf definition for pythons. If a skip is missing, all builds fail.
|
||||||
|
# Extraneous build_flavors and skips are excluded automatically so future
|
||||||
|
# additions can be included here early and old flavors can be removed some time
|
||||||
|
# after the global drop in Factory.
|
||||||
|
%if "%flavor" != "python39"
|
||||||
|
%define skip_python39 1
|
||||||
|
%endif
|
||||||
|
%if "%flavor" != "python310"
|
||||||
|
%define skip_python310 1
|
||||||
|
%endif
|
||||||
|
%if "%flavor" != "python311"
|
||||||
|
%define skip_python311 1
|
||||||
|
%endif
|
||||||
|
%if "%flavor" != "python312"
|
||||||
|
%define skip_python312 1
|
||||||
|
%endif
|
||||||
|
%if "%flavor" != "python313"
|
||||||
|
%define skip_python313 1
|
||||||
|
%endif
|
||||||
|
%else
|
||||||
|
# SLE/Leap
|
||||||
|
%if "%flavor" == "python3"
|
||||||
|
# python3 is the old 3.6
|
||||||
|
%define pythons python3
|
||||||
|
%define python3_provides %{nil}
|
||||||
|
%else
|
||||||
|
%{?sle15_python_module_pythons}
|
||||||
|
%if "%flavor" != "%pythons"
|
||||||
|
# sle15_python_module_pythons defines the flavor, otherwise don't build
|
||||||
|
%define pythons %{nil}
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%if "%{shrink:%pythons}" == ""
|
||||||
|
ExclusiveArch: donotbuild
|
||||||
|
%define python_module() %flavor-not-enabled-in-buildset-for-suse-%{?suse_version}
|
||||||
|
%else
|
||||||
|
%define python_files() -n %flavor-%{**}
|
||||||
|
%define python_module() %flavor-%{**}
|
||||||
|
%define python_exec python%{expand:%%%{flavor}_bin_suffix}
|
||||||
|
%define python_version %{expand:%%%{flavor}_version}
|
||||||
|
%define python_sitearch %{expand:%%%{flavor}_sitearch}
|
||||||
|
%define python_provides %{expand:%%%{flavor}_provides}
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
Name: %{pprefix}-wxPython
|
||||||
|
Version: 4.2.1
|
||||||
|
Release: 0
|
||||||
|
Summary: The "Phoenix" variant of the wxWidgets Python bindings
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
Group: System/Libraries
|
||||||
|
URL: https://github.com/wxWidgets/Phoenix
|
||||||
|
# repacked https://files.pythonhosted.org/packages/source/w/wxPython/wxPython-%%{version}.tar.gz
|
||||||
|
Source0: wxPython-%{version}.tar.gz
|
||||||
|
Source1: python-wxPython-rpmlintrc
|
||||||
|
Source2: repack
|
||||||
|
Patch1: 0001-Update-wxTextCtrl-OSX-overrides-since-they-re-now-do.patch
|
||||||
|
Patch2: 0001-Handle-wxGLCanvas-CreateSurface-which-is-only-availa.patch
|
||||||
|
# PATCH-FIX-UPSTREAM https://github.com/wxWidgets/Phoenix/pull/2497
|
||||||
|
Patch3: 0001-Support-building-with-Doxygen-1.9.7.patch
|
||||||
|
# PATCH-FIX-UPSTREAM https://github.com/wxWidgets/Phoenix/pull/2508
|
||||||
|
Patch4: 0001-wxWidgets-Phoenix-integer-division.patch
|
||||||
|
# PATCH-FIX-OPENSUSE
|
||||||
|
Patch12: use_stl_build.patch
|
||||||
|
# PATCH-FIX-UPSTREAM - https://github.com/wxWidgets/Phoenix/pull/2232
|
||||||
|
Patch13: 0003-Make-pip-usage-in-wxget-optional.patch
|
||||||
|
# PATCH-FIX-OPENSUSE
|
||||||
|
Patch14: 0004-Fix-time_t-ETG-typedef-extend-DateTime.FromTimeT-tes.patch
|
||||||
|
# PATCH-FIX-OPENSUSE - Test fixes/additions:
|
||||||
|
Patch112: 0001-Check-HSV-values-in-image-test.patch
|
||||||
|
# PATCH-FIX-OPENSUSE - Numpy for Python 3.12 is a thing
|
||||||
|
Patch113: require-numpy.patch
|
||||||
|
Patch114: wxwidgets-3.2.5.patch
|
||||||
|
# PATCH-FIX-UPSTREAM https://github.com/wxWidgets/Phoenix/pull/2540
|
||||||
|
Patch115: drop-py2.patch
|
||||||
|
# TODO: Replace deprecated setup.py calls in build.py with PEP517 without building wxWidgets into the wheel
|
||||||
|
BuildRequires: %{python_module base}
|
||||||
|
BuildRequires: %{python_module devel}
|
||||||
|
BuildRequires: %{python_module setuptools}
|
||||||
|
BuildRequires: c++_compiler
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
|
%if %{with syswx}
|
||||||
|
BuildRequires: %{python_module sip6-devel >= 6.5.1}
|
||||||
|
BuildRequires: waf
|
||||||
|
BuildRequires: wxGTK3-devel >= 3.2.0
|
||||||
|
BuildRequires: wxWidgets-3_2-doc-xml >= 3.2.0
|
||||||
|
%else
|
||||||
|
BuildRequires: freeglut-devel
|
||||||
|
BuildRequires: gstreamer-plugins-base-devel
|
||||||
|
BuildRequires: libjbig-devel
|
||||||
|
BuildRequires: pkgconfig(gstreamer-1.0)
|
||||||
|
BuildRequires: pkgconfig(gtk+-3.0)
|
||||||
|
BuildRequires: pkgconfig(libjpeg)
|
||||||
|
BuildRequires: pkgconfig(liblzma)
|
||||||
|
BuildRequires: pkgconfig(libmspack)
|
||||||
|
BuildRequires: pkgconfig(libnotify)
|
||||||
|
BuildRequires: pkgconfig(libpng16)
|
||||||
|
BuildRequires: pkgconfig(libtiff-4)
|
||||||
|
BuildRequires: pkgconfig(sdl2)
|
||||||
|
BuildRequires: pkgconfig(sm)
|
||||||
|
BuildRequires: pkgconfig(webkit2gtk-4.0)
|
||||||
|
BuildRequires: pkgconfig(x11)
|
||||||
|
BuildRequires: pkgconfig(xtst)
|
||||||
|
%endif
|
||||||
|
Requires: %{pprefix}-Pillow
|
||||||
|
Requires: %{pprefix}-numpy
|
||||||
|
Requires(post): update-alternatives
|
||||||
|
Requires(postun): update-alternatives
|
||||||
|
Conflicts: %{pprefix}-wxWidgets
|
||||||
|
Provides: %{pprefix}-wxWidgets = %{version}
|
||||||
|
%if "%{python_provides}" != ""
|
||||||
|
# for TW primary flavor provider
|
||||||
|
Conflicts: %{python_provides}-wxWidgets
|
||||||
|
Provides: %{python_provides}-wxPython = %{version}-%{release}
|
||||||
|
Provides: %{python_provides}-wxWidgets = %{version}
|
||||||
|
Obsoletes: %{python_provides}-wxPython < %{version}-%{release}
|
||||||
|
%endif
|
||||||
|
%if %{with test}
|
||||||
|
BuildRequires: %{python_module Pillow}
|
||||||
|
BuildRequires: %{python_module numpy}
|
||||||
|
BuildRequires: %{python_module pytest-forked}
|
||||||
|
BuildRequires: %{python_module pytest-xdist}
|
||||||
|
BuildRequires: %{python_module pytest}
|
||||||
|
BuildRequires: Mesa-dri
|
||||||
|
# Need at least one font installed
|
||||||
|
BuildRequires: google-opensans-fonts
|
||||||
|
# BuildRequires: wxWidgets-lang
|
||||||
|
BuildRequires: xorg-x11-server
|
||||||
|
BuildRequires: pkgconfig(cppunit)
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
Phoenix is a reimplementation of wxPython. Like the "classic"
|
||||||
|
wxPython, Phoenix wraps the wxWidgets C++ toolkit and provides access
|
||||||
|
to the user interface portions of the wxWidgets API, enabling Python
|
||||||
|
applications to have a GUI on Windows, macOS or Unix-like systems,
|
||||||
|
with a native look and feel and requiring very little (if any)
|
||||||
|
platform specific code.
|
||||||
|
|
||||||
|
%package lang
|
||||||
|
# We cannot use %%lang_package here. Editra translations use noarch incompatible path.
|
||||||
|
Summary: Languages for package %{name}
|
||||||
|
Group: System/Libraries
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
Requires: python(abi) = %python_version
|
||||||
|
Supplements: (bundle-lang-other and %{name})
|
||||||
|
Provides: %{name}-lang-all = %{version}
|
||||||
|
%if "%{python_provides}" != ""
|
||||||
|
# for TW primary flavor provider
|
||||||
|
Provides: %{python_provides}-wxPython-lang = %{version}-%{release}
|
||||||
|
Obsoletes: %{python_provides}-wxPython-lang < %{version}-%{release}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description lang
|
||||||
|
Provides translations to the package %{name}.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n wxPython-%{version} -p1
|
||||||
|
# https://github.com/wxWidgets/Phoenix/issues/2105
|
||||||
|
# https://bugzilla.suse.com/show_bug.cgi?id=670523
|
||||||
|
find -iname *.dll | grep . && \
|
||||||
|
{ echo "please run repack script (gh#2105)"; exit 1; }
|
||||||
|
# Lower minimum Python version
|
||||||
|
sed -i -e '/check_python_version/ s@3,7,0@3,6,0@' wscript
|
||||||
|
|
||||||
|
# Reuse locale from wxWidgets package
|
||||||
|
%if %{with syswx}
|
||||||
|
rm -Rf wx/locale
|
||||||
|
%endif
|
||||||
|
|
||||||
|
sed -i -e '/^#!\//, 1d' wx/py/*.py
|
||||||
|
sed -i -e '/^#!\//, 1d' wx/tools/*.py
|
||||||
|
sed -i -e '/^#!\//, 1d' wx/py/tests/*.py
|
||||||
|
echo "# empty module" >> wx/lib/pubsub/core/itopicdefnprovider.py
|
||||||
|
|
||||||
|
%build
|
||||||
|
export CFLAGS="%{optflags}"
|
||||||
|
|
||||||
|
%if %{with rebuild_sip}
|
||||||
|
# Save LICENSE* files from bundled siplib
|
||||||
|
mv sip/siplib{,_old}
|
||||||
|
|
||||||
|
export DOXYGEN=%{_bindir}/doxygen
|
||||||
|
export SIP=%{_bindir}/sip
|
||||||
|
export WAF=%{_bindir}/waf
|
||||||
|
mkdir -p /tmp/wxxml/docs/doxygen/out/
|
||||||
|
rm -f /tmp/wxxml/docs/doxygen/out/xml
|
||||||
|
cp ext/wxWidgets/docs/*.txt /tmp/wxxml/docs/
|
||||||
|
ln -sf %{_docdir}/wxWidgets*doc-xml /tmp/wxxml/docs/doxygen/out/xml
|
||||||
|
export WXWIN=/tmp/wxxml/
|
||||||
|
|
||||||
|
%python_exec build.py touch %{wx_args}
|
||||||
|
%python_exec build.py etg --nodoc %{wx_args}
|
||||||
|
%python_exec build.py sip %{wx_args}
|
||||||
|
cp sip/siplib_old/LICENSE* sip/siplib/
|
||||||
|
if [ ! -e sip/siplib/sip_array.c ]; then
|
||||||
|
cp sip/siplib/{,sip_}array.c
|
||||||
|
cp sip/siplib/{,sip_}array.h
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%python_exec build.py build %{wx_args}
|
||||||
|
|
||||||
|
%install
|
||||||
|
%python_exec build.py install %{wx_args} --destdir=%{buildroot} --extra_setup="-O1 --force"
|
||||||
|
|
||||||
|
%fdupes %{buildroot}%{_libdir}
|
||||||
|
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/helpviewer
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/img2png
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/img2py
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/img2xpm
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/pycrust
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/pyshell
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/pyslices
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/pyslicesshell
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/pywxrc
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/wxdemo
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/wxdocs
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/wxget
|
||||||
|
|
||||||
|
%if %{without syswx}
|
||||||
|
%find_lang wxstd
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%check
|
||||||
|
%if %{with test}
|
||||||
|
#############################################
|
||||||
|
### Launch a virtual framebuffer X server ###
|
||||||
|
#############################################
|
||||||
|
export DISPLAY=%{X_display}
|
||||||
|
Xvfb %{X_display} >& Xvfb.log &
|
||||||
|
trap "kill $! || true" EXIT
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
# Make sure "import wx" does not confuse the wx dir with the module
|
||||||
|
mv wx wx_temp
|
||||||
|
|
||||||
|
# pytest --forked from python-pytest-forked:
|
||||||
|
# Run each test as a separate process, otherwise multiple app
|
||||||
|
# instances will corrupt each others static data.
|
||||||
|
#
|
||||||
|
# Run UiAction tests one by one
|
||||||
|
%pytest_arch --forked -n 1 -k 'test_uiaction or test_mousemanager' unittests/
|
||||||
|
# Skip Auto ID management test (only enabled on Windows)
|
||||||
|
# Skip Frame restore (requires a window manager)
|
||||||
|
# Skip Locale.GetString, we do not ship translations for wxWidgets-3_2
|
||||||
|
# Skip wx.lib.pubsub, fails due to PYTHONDONTWRITEBYTECODE, also deprecated for pypubsub
|
||||||
|
# Skip UiAction tests (already done)
|
||||||
|
%{pytest_arch --forked -n 4 -k \
|
||||||
|
'(not test_newIdRef03) and (not test_uiaction) and (not test_mousemanager) and (not test_frameRestore) and (not test_intlGetString) and (not lib_pubsub_Except) and (not test_xrc7)' \
|
||||||
|
unittests/
|
||||||
|
}
|
||||||
|
|
||||||
|
mv wx_temp wx
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%post
|
||||||
|
%python_install_alternative pywxrc helpviewer img2png img2py img2xpm pycrust pyshell pyslices pyslicesshell wxdemo wxdocs wxget
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%python_uninstall_alternative pywxrc
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE.txt license/*.txt
|
||||||
|
%doc CHANGES.rst README.rst TODO.rst
|
||||||
|
%python_alternative %{_bindir}/helpviewer
|
||||||
|
%python_alternative %{_bindir}/img2png
|
||||||
|
%python_alternative %{_bindir}/img2py
|
||||||
|
%python_alternative %{_bindir}/img2xpm
|
||||||
|
%python_alternative %{_bindir}/pycrust
|
||||||
|
%python_alternative %{_bindir}/pyshell
|
||||||
|
%python_alternative %{_bindir}/pyslices
|
||||||
|
%python_alternative %{_bindir}/pyslicesshell
|
||||||
|
%python_alternative %{_bindir}/pywxrc
|
||||||
|
%python_alternative %{_bindir}/wxdemo
|
||||||
|
%python_alternative %{_bindir}/wxdocs
|
||||||
|
%python_alternative %{_bindir}/wxget
|
||||||
|
%{python_sitearch}/wxPython-%{version}-py*.egg-info
|
||||||
|
%{python_sitearch}/wx/
|
||||||
|
%if %{without syswx}
|
||||||
|
%exclude %{python_sitearch}/wx/locale/
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{without syswx}
|
||||||
|
%files lang -f wxstd.lang
|
||||||
|
%dir %{python_sitearch}/wx/locale/
|
||||||
|
%dir %{python_sitearch}/wx/locale/*
|
||||||
|
%dir %{python_sitearch}/wx/locale/*/LC_MESSAGES
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
4
repack
Normal file
4
repack
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
tar -xzf wxPython-*.gz
|
||||||
|
rm -r wxPython-*/packaging
|
||||||
|
tar -czf wxPython-*.gz wxPython-*/
|
11
require-numpy.patch
Normal file
11
require-numpy.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Revert https://github.com/wxWidgets/Phoenix/commit/b1c55639dfb73db3a11307c9de888540cec512df
|
||||||
|
|
||||||
|
--- a/requirements/install.txt 2023-06-07 01:31:16.000000000 +0000
|
||||||
|
+++ b/requirements/install.txt 2024-01-06 22:08:26.485981672 +0000
|
||||||
|
@@ -1,5 +1,4 @@
|
||||||
|
# Runtime dependencies needed when using wxPython Phoenix
|
||||||
|
-numpy < 1.17 ; python_version <= '2.7'
|
||||||
|
-numpy ; python_version >= '3.0' and python_version < '3.12'
|
||||||
|
+numpy
|
||||||
|
pillow
|
||||||
|
six
|
11
use_stl_build.patch
Normal file
11
use_stl_build.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- wxPython-4.1.0/buildtools/build_wxwidgets.py_orig 2020-05-30 01:24:47.890132236 +0200
|
||||||
|
+++ wxPython-4.1.0/buildtools/build_wxwidgets.py 2020-05-30 01:25:59.574988273 +0200
|
||||||
|
@@ -370,6 +370,8 @@
|
||||||
|
if os.path.exists(frameworkRootDir):
|
||||||
|
shutil.rmtree(frameworkRootDir)
|
||||||
|
|
||||||
|
+ configure_opts.append("--enable-stl")
|
||||||
|
+
|
||||||
|
print("Configure options: " + repr(configure_opts))
|
||||||
|
wxBuilder = builder.AutoconfBuilder()
|
||||||
|
if not options.no_config and not options.clean:
|
BIN
wxPython-4.2.1.tar.gz
(Stored with Git LFS)
Normal file
BIN
wxPython-4.2.1.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
34
wxwidgets-3.2.5.patch
Normal file
34
wxwidgets-3.2.5.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Do not fail the wxPython build when using a wxWidgets-3.2.5 base.
|
||||||
|
|
||||||
|
Generated by:
|
||||||
|
git diff 5622abb73deaa26dc2f6dc4cd8b4b2050396b49a..78938da1218483024b3a7acf55b5fb5513882916 etg/
|
||||||
|
|
||||||
|
|
||||||
|
diff --git etg/window.py etg/window.py
|
||||||
|
index c388df76..0c035f14 100644
|
||||||
|
--- a/etg/window.py
|
||||||
|
+++ a/etg/window.py
|
||||||
|
@@ -251,6 +251,23 @@ def run():
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
|
""")
|
||||||
|
+ c.find('GetOrCreateAccessible').setCppCode("""\
|
||||||
|
+ #if wxUSE_ACCESSIBILITY
|
||||||
|
+ return self->GetOrCreateAccessible();
|
||||||
|
+ #else
|
||||||
|
+ wxPyRaiseNotImplemented();
|
||||||
|
+ return NULL;
|
||||||
|
+ #endif
|
||||||
|
+ """)
|
||||||
|
+ c.find('CreateAccessible').factory = True
|
||||||
|
+ c.find('CreateAccessible').setCppCode("""\
|
||||||
|
+ #if wxUSE_ACCESSIBILITY
|
||||||
|
+ return self->CreateAccessible();
|
||||||
|
+ #else
|
||||||
|
+ wxPyRaiseNotImplemented();
|
||||||
|
+ return NULL;
|
||||||
|
+ #endif
|
||||||
|
+ """)
|
||||||
|
c.find('SetAccessible.accessible').transfer = True
|
||||||
|
c.find('SetAccessible').setCppCode("""\
|
||||||
|
#if wxUSE_ACCESSIBILITY
|
Loading…
Reference in New Issue
Block a user