Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-wxPython for openSUSE:Factory checked in at 2022-01-05 15:44:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-wxPython (Old) and /work/SRC/openSUSE:Factory/.python-wxPython.new.1896 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-wxPython" Wed Jan 5 15:44:31 2022 rev:13 rq:944035 version:4.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-wxPython/python-wxPython.changes 2021-08-27 21:43:24.061935577 +0200 +++ /work/SRC/openSUSE:Factory/.python-wxPython.new.1896/python-wxPython.changes 2022-01-05 15:44:36.438258964 +0100 @@ -1,0 +2,32 @@ +Wed Jan 5 11:12:25 UTC 2022 - Ben Greiner <c...@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 <c...@bnavigator.de> + +- The difference of a single whitespace character is significant + +------------------------------------------------------------------- +Tue Jan 4 13:58:38 UTC 2022 - Ben Greiner <c...@bnavigator.de> + +- Appease factory-auto bot about package src name + +------------------------------------------------------------------- +Tue Jan 4 10:18:08 UTC 2022 - Matej Cepl <mc...@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 <c...@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. + +------------------------------------------------------------------- New: ---- 2039-bunch-py310-fixes.patch _multibuild additional-310-fixes.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-wxPython.spec ++++++ --- /var/tmp/diff_new_pack.BUYZKf/_old 2022-01-05 15:44:37.474259618 +0100 +++ /var/tmp/diff_new_pack.BUYZKf/_new 2022-01-05 15:44:37.478259621 +0100 @@ -1,7 +1,7 @@ # -# spec file for package python-wxPython +# spec file # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,9 +16,6 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} -%define skip_python2 1 -%define oldpython python %define X_display ":98" %bcond_with test %bcond_without syswx @@ -27,11 +24,58 @@ %else %define wx_args --gtk3 -v %endif -%if %{with test} -# No numpy for Python 3.6 + +%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" != "python36" %define skip_python36 1 %endif -Name: python-wxPython +%if "%flavor" != "python38" +%define skip_python38 1 +%endif +%if "%flavor" != "python39" +%define skip_python39 1 +%endif +%if "%flavor" != "python310" +%define skip_python310 1 +%endif +%else +# SLE/Leap: python3 only +%if "%flavor" != "python3" +%define pythons %{nil} +%else +%define pythons python3 +%define python3_provides %{nil} +%endif +%endif +# The obs server-side interpreter cannot use lua or rpm shrink +%if "%pythons" == "" || "%pythons" == " " || "%pythons" == " " || "%pythons" == " " || "%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.1.1 Release: 0 Summary: The "Phoenix" variant of the wxWidgets Python bindings @@ -46,6 +90,13 @@ Patch1: use_stl_build.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 +# PATCH-FIX-UPSTREAM 2039-bunch-py310-fixes.patch gh#wxWidgets/Phoenix#2039 mc...@suse.com +# Fix a bunch of Python 3.10 issues with pure-Python classes and demos +Patch3: 2039-bunch-py310-fixes.patch +# PATCH-FIX-UPSTREAM additional-310-fixes.patch bsc#[0-9]+ mc...@suse.com +# collection of patches: +Patch4: additional-310-fixes.patch +BuildRequires: %{python_module base} BuildRequires: %{python_module devel} BuildRequires: %{python_module requests} BuildRequires: %{python_module setuptools} @@ -73,11 +124,18 @@ BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xtst) %endif -Requires: python-six +Requires: %{pprefix}-six Requires(post): update-alternatives Requires(postun):update-alternatives -Conflicts: python-wxWidgets -Provides: python-wxWidgets = %{version} +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 numpy} BuildRequires: %{python_module pytest-xdist} @@ -89,11 +147,6 @@ BuildRequires: xorg-x11-server BuildRequires: pkgconfig(cppunit) %endif -%ifpython2 -Conflicts: %{oldpython}-wxWidgets -Provides: %{oldpython}-wxWidgets = %{version} -%endif -%python_subpackages %description Phoenix is a reimplementation of wxPython. Like the "classic" @@ -108,31 +161,35 @@ Summary: Languages for package %{name} Group: System/Libraries Requires: %{name} = %{version} -Requires: python-base +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 + 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}" export DOXYGEN=%{_bindir}/doxygen -%python_expand $python build.py build %{wx_args} +%python_exec build.py build %{wx_args} %install -%python_expand $python build.py install %{wx_args} --destdir=%{buildroot} --extra_setup="-O1 --force" -# build.py install helpfully installs built shared libraries for all versions, -# so remove those for other versions. -%{python_expand find %{buildroot}%{$python_sitearch} -name *.so ! -name *cpython-%{$python_version_nodots}*so -delete} +%python_exec build.py install %{wx_args} --destdir=%{buildroot} --extra_setup="-O1 --force" -%python_expand %fdupes %{buildroot}%{$python_sitearch} +%fdupes %{buildroot}%{_libdir} %python_clone -a %{buildroot}%{_bindir}/helpviewer %python_clone -a %{buildroot}%{_bindir}/img2png @@ -147,6 +204,8 @@ %python_clone -a %{buildroot}%{_bindir}/wxdocs %python_clone -a %{buildroot}%{_bindir}/wxget +%find_lang wxstd + %check %if %{with test} ############################################# @@ -173,12 +232,12 @@ %endif %post -%{python_install_alternative pywxrc helpviewer img2png img2py img2xpm pycrust pyshell pyslices pyslicesshell wxdemo wxdocs wxget} +%python_install_alternative pywxrc helpviewer img2png img2py img2xpm pycrust pyshell pyslices pyslicesshell wxdemo wxdocs wxget %postun -%{python_uninstall_alternative pywxrc helpviewer img2png img2py img2xpm pycrust pyshell pyslices pyslicesshell wxdemo wxdocs wxget} +%python_uninstall_alternative pywxrc -%files %{python_files} +%files %license LICENSE.txt license/*.txt %doc CHANGES.rst README.rst TODO.rst %python_alternative %{_bindir}/helpviewer @@ -197,7 +256,9 @@ %{python_sitearch}/wx/ %exclude %{python_sitearch}/wx/locale/ -%files %{python_files lang} -%{python_sitearch}/wx/locale/ +%files lang -f wxstd.lang +%dir %{python_sitearch}/wx/locale/ +%dir %{python_sitearch}/wx/locale/* +%dir %{python_sitearch}/wx/locale/*/LC_MESSAGES %changelog ++++++ 2039-bunch-py310-fixes.patch ++++++ ++++ 2982 lines (skipped) ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.BUYZKf/_old 2022-01-05 15:44:37.514259644 +0100 +++ /var/tmp/diff_new_pack.BUYZKf/_new 2022-01-05 15:44:37.518259646 +0100 @@ -1,7 +1,7 @@ <constraints> <hardware> <disk> - <size unit="G">15</size> + <size unit="G">8</size> </disk> </hardware> </constraints> ++++++ _multibuild ++++++ <multibuild> <package>python3</package> <package>python36</package> <package>python38</package> <package>python39</package> <package>python310</package> </multibuild> ++++++ additional-310-fixes.patch ++++++ --- docker/build/ubuntu-18.04/Dockerfile | 4 +++- docker/build/ubuntu-20.04/Dockerfile | 2 +- wx/lib/agw/flatnotebook.py | 14 +++++++------- wx/svg/__init__.py | 4 ++-- 4 files changed, 13 insertions(+), 11 deletions(-) --- a/docker/build/ubuntu-18.04/Dockerfile +++ b/docker/build/ubuntu-18.04/Dockerfile @@ -53,6 +53,7 @@ RUN \ apt-get install -y python3.7 python3.7-dev libpython3.7-dev python3.7-venv; \ apt-get install -y python3.8 python3.8-dev libpython3.8-dev python3.8-venv; \ apt-get install -y python3.9 python3.9-dev libpython3.9-dev python3.9-venv; \ + apt-get install -y python3.10 python3.10-dev libpython3.10-dev python3.10-venv; \ apt-get clean; # Add files from host into the container @@ -72,7 +73,8 @@ RUN \ python3.6 -m venv venvs/Py36; \ python3.7 -m venv venvs/Py37; \ python3.8 -m venv venvs/Py38; \ - python3.9 -m venv venvs/Py39; + python3.9 -m venv venvs/Py39; \ + python3.10 -m venv venvs/Py310; # Define default command CMD ["/bin/bash", "-l"] --- a/docker/build/ubuntu-20.04/Dockerfile +++ b/docker/build/ubuntu-20.04/Dockerfile @@ -3,7 +3,7 @@ FROM ubuntu:20.04 # Set environment variables ENV DIST_NAME=ubuntu-20.04 -ENV USE_DEADSNAKES=no +ENV USE_DEADSNAKES=yes ENV USER=wxpy ENV HOME=/home/$USER ENV PYTHONUNBUFFERED=1 --- a/wx/lib/agw/flatnotebook.py +++ b/wx/lib/agw/flatnotebook.py @@ -925,14 +925,14 @@ def DrawButton(dc, rect, focus, upperTab if focus: if upperTabs: - leftPt = wx.Point(rect.x, rect.y + (rect.height / 10)*8) - rightPt = wx.Point(rect.x + rect.width - 2, rect.y + (rect.height / 10)*8) + leftPt = wx.Point(rect.x, int(rect.y + (rect.height / 10)*8)) + rightPt = wx.Point(rect.x + rect.width - 2, int(rect.y + (rect.height / 10)*8)) else: - leftPt = wx.Point(rect.x, rect.y + (rect.height / 10)*5) - rightPt = wx.Point(rect.x + rect.width - 2, rect.y + (rect.height / 10)*5) + leftPt = wx.Point(rect.x, int(rect.y + (rect.height / 10)*5)) + rightPt = wx.Point(rect.x + rect.width - 2, int(rect.y + (rect.height / 10)*5)) else: - leftPt = wx.Point(rect.x, rect.y + (rect.height / 2)) - rightPt = wx.Point(rect.x + rect.width - 2, rect.y + (rect.height / 2)) + leftPt = wx.Point(rect.x, int(rect.y + (rect.height / 2))) + rightPt = wx.Point(rect.x + rect.width - 2, int(rect.y + (rect.height / 2))) # Define the top region top = wx.Rect(rect.GetTopLeft(), rightPt) @@ -2765,7 +2765,7 @@ class FNBRendererFirefox2(FNBRenderer): if pageTextColour is not None: dc.SetTextForeground(pageTextColour) - dc.DrawText(pc.GetPageText(tabIdx), posx + textOffset, imageYCoord) + dc.DrawText(pc.GetPageText(tabIdx), int(posx + textOffset), imageYCoord) # draw 'x' on tab (if enabled) if pc.HasAGWFlag(FNB_X_ON_TAB) and tabIdx == pc.GetSelection(): --- a/wx/svg/__init__.py +++ b/wx/svg/__init__.py @@ -132,8 +132,8 @@ class SVGimage(SVGimageBase): """ size = wx.Size(*size) if window: - size.width *= window.GetContentScaleFactor() - size.height *= window.GetContentScaleFactor() + size.width = int(size.width * window.GetContentScaleFactor()) + size.height = int(size.height * window.GetContentScaleFactor()) # We can only have one overall scale factor for both dimensions with # this rasterization method, so chose either the minimum of width or ++++++ python-wxPython-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.BUYZKf/_old 2022-01-05 15:44:37.562259674 +0100 +++ /var/tmp/diff_new_pack.BUYZKf/_new 2022-01-05 15:44:37.562259674 +0100 @@ -1,2 +1,4 @@ addFilter("devel-file-in-non-devel-package") +# the multibuild flavors need differently named source packages +addFilter("invalid-spec-name")