Files
python-PyQt6/python-PyQt6.spec
Benjamin Greiner c381ca3aac Accepting request 984164 from home:bnavigator:branches:KDE:Qt:PyQt
- Update to version 6.3.1
  * Added qRegisterResourceData() and qUnregisterResourceData() to
    QtCore to help in supporting legacy resource files from PyQt5.
  * Requires v13.4 of the sip module which adds support for enums
    with missing members and the sip.array support.
  * Reverted the Qt.GestureType related changes made in v6.2.3 as
    they are no longer necessary with the support for missing enum
    members.
  * The QEvent constructor that takes an int argument is now
    deprecated.
  * Refactored the draw methods of QPainter to accept sip.array
    objects of appropriate types.  Such arrays, once initialised,
    can be used very efficiently as they do not require repeated
    conversion from the usual Python collection types.
  * Added resize() to QPolygon, QPolygonF and QXmlStreamAttributes.
  * Bug fixes.

OBS-URL: https://build.opensuse.org/request/show/984164
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:PyQt/python-PyQt6?expand=0&rev=16
2022-06-25 09:40:21 +00:00

194 lines
6.3 KiB
RPMSpec

#
# spec file
#
# Copyright (c) 2021 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 plainpython python
%define mname PyQt6
%define pyqt_build_for_qt6 1
Name: python-%{mname}
Version: 6.3.1
Release: 0
Summary: Python bindings for Qt 6
License: GPL-3.0-only OR SUSE-GPL-2.0-with-FLOSS-exception OR NonFree
Group: Development/Libraries/Python
URL: https://www.riverbankcomputing.com/software/pyqt
Source: https://files.pythonhosted.org/packages/source/P/PyQt6/PyQt6-%{version}.tar.gz
# PATCH-FIX-OPENSUSE - disable-rpaths.diff - Disable RPATH when building PyQt6.
Patch0: disable-rpaths.diff
# PATCH-FIX-OPENSUSE - install binary dbus mainloop integration in arch dependent directory
Patch1: 0001-Use-a-noarch-wrapper-for-dbus-mainloop-integration.patch
BuildRequires: %{python_module PyQt6-sip >= 13.4}
BuildRequires: %{python_module dbus-python-devel >= 0.8}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pyqt-builder >= 1.11}
BuildRequires: %{python_module sip-devel >= 6.5}
BuildRequires: dbus-1-devel
BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: gdb
BuildRequires: python-pyqt-rpm-macros
BuildRequires: python-rpm-macros
BuildRequires: qt6-base-devel
BuildRequires: qt6-macros
BuildRequires: cmake(Qt6Bluetooth)
BuildRequires: cmake(Qt6Designer)
BuildRequires: cmake(Qt6Help)
BuildRequires: cmake(Qt6Multimedia)
BuildRequires: cmake(Qt6MultimediaWidgets)
BuildRequires: cmake(Qt6Nfc)
BuildRequires: cmake(Qt6Positioning)
BuildRequires: cmake(Qt6Qml)
BuildRequires: cmake(Qt6Quick)
BuildRequires: cmake(Qt6QuickWidgets)
BuildRequires: cmake(Qt6RemoteObjects)
BuildRequires: cmake(Qt6Sensors)
BuildRequires: cmake(Qt6SerialPort)
BuildRequires: cmake(Qt6Svg)
BuildRequires: cmake(Qt6WebChannel)
BuildRequires: cmake(Qt6WebSockets)
%if 0%{?suse_version} >= 1550
BuildRequires: cmake(Qt6Quick3D)
BuildRequires: cmake(Qt6Quick3DRuntimeRender)
%endif
%requires_ge python-PyQt6-sip
%requires_ge python-dbus-python
Provides: python-qt6 = %{version}-%{release}
%python_subpackages
%description
PyQt is a set of Python bindings for the Qt framework.
%package devel
Summary: PyQt - devel part of python bindings for Qt 6
Group: Development/Libraries/Python
Requires: python-%{mname} = %{version}
Requires: python-dbus-python-devel >= 0.8
Requires: python-devel
Requires: qt6-base-devel
Requires: qt6-macros
Requires: cmake(Qt6Bluetooth)
Requires: cmake(Qt6Designer)
Requires: cmake(Qt6Help)
Requires: cmake(Qt6Multimedia)
Requires: cmake(Qt6MultimediaWidgets)
Requires: cmake(Qt6Nfc)
Requires: cmake(Qt6Positioning)
Requires: cmake(Qt6Qml)
Requires: cmake(Qt6Quick)
Requires: cmake(Qt6QuickWidgets)
Requires: cmake(Qt6RemoteObjects)
Requires: cmake(Qt6Sensors)
Requires: cmake(Qt6SerialPort)
Requires: cmake(Qt6Svg)
Requires: cmake(Qt6WebChannel)
Requires: cmake(Qt6WebSockets)
Requires: %plainpython(abi) = %{python_version}
%if 0%{?suse_version} >= 1550
Requires: cmake(Qt6Quick3D)
Requires: cmake(Qt6Quick3DRuntimeRender)
%endif
Requires(post): update-alternatives
Requires(postun):update-alternatives
# If and which version of sip is required depends on the project trying
# to build against PyQt6.
Recommends: python-sip-devel
Recommends: python-qscintilla-qt6
Provides: python-qt6-devel = %{version}-%{release}
%description devel
PyQt is a set of Python bindings for the Qt framework.
This package contains all the developer tools you need to create your
own PyQt applications
%package doc
Summary: Examples for %{name}
Group: Documentation/Other
Provides: python-qt6-doc = %{version}
BuildArch: noarch
%description doc
PyQt is a set of Python bindings for the Qt framework.
This package contains programming examples for PyQt6.
%prep
%autosetup -p1 -n PyQt6-%{version}
dos2unix examples/quick/models/*/view.qml
dos2unix examples/multimedia*/*/*.ui
%build
%{pyqt_build -v \
-s %{quote:--pep484-pyi \
--confirm-license \
--qt-shared}}
%install
%pyqt_install
%pyqt_install_examples %mname
%python_clone -a %{buildroot}%{_bindir}/pyuic6
%python_clone -a %{buildroot}%{_bindir}/pylupdate6
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
export PYTHONDONTWRITEBYTECODE=1 # boo#1047218
%{python_expand # there is no test suite. If it compiles and imports, it should be okay.
export PYTHONPATH=%{buildroot}%{$python_sitearch}
$python -c 'from PyQt6 import QtCore; assert QtCore.PYQT_VERSION_STR == "%{version}"'
}
%post devel
%python_install_alternative pyuic6 pylupdate6
%postun devel
%python_uninstall_alternative pyuic6
%files %{python_files}
%license LICENSE
%doc README NEWS ChangeLog
%{python_sitearch}/PyQt6/
%{python_sitearch}/PyQt6-%{version}.dist-info/
%dir %{python_sitelib}/dbus
%dir %{python_sitelib}/dbus/mainloop
%{python_sitelib}/dbus/mainloop/pyqt6.py
%dir %{_qt6_pluginsdir}/PyQt6/
%{_qt6_pluginsdir}/PyQt6/libpy%{python_bin_suffix}qt6qmlplugin.so
%exclude %pyqt6_sipdir
%files %{python_files devel}
%license LICENSE
%python_alternative %{_bindir}/pyuic6
%python_alternative %{_bindir}/pylupdate6
%dir %{_qt6_pluginsdir}/designer/
%{_qt6_pluginsdir}/designer/libpy%{python_bin_suffix}qt6.so
%dir %{_qt6_datadir}/qsci/
%dir %{_qt6_datadir}/qsci/api/
%dir %{_qt6_datadir}/qsci/api/python_%{python_bin_suffix}/
%{_qt6_datadir}/qsci/api/python_%{python_bin_suffix}/PyQt6.api
%pyqt6_sipdir
%files %{python_files doc}
%license LICENSE
%{_docdir}/%{python_prefix}-%{mname}
%exclude %{_docdir}/%{python_prefix}-%{mname}/README
%exclude %{_docdir}/%{python_prefix}-%{mname}/NEWS
%exclude %{_docdir}/%{python_prefix}-%{mname}/ChangeLog
%changelog