Sync from SUSE:SLFO:Main python-PyQt6 revision 68441506b352fb990b3a5dce5f677b88
This commit is contained in:
4
_multibuild
Normal file
4
_multibuild
Normal file
@@ -0,0 +1,4 @@
|
||||
<multibuild>
|
||||
<flavor>qt6pdf</flavor>
|
||||
</multibuild>
|
||||
|
14
fix-build-without-qtcore.patch
Normal file
14
fix-build-without-qtcore.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
Index: pyqt6-6.8.1/project.py
|
||||
===================================================================
|
||||
--- pyqt6-6.8.1.orig/project.py
|
||||
+++ pyqt6-6.8.1/project.py
|
||||
@@ -180,7 +180,8 @@ del find_qt
|
||||
'win32': 'Windows',
|
||||
}
|
||||
|
||||
- self.bindings['QtCore'].tags.append(
|
||||
+ if QtCore in self.bindings:
|
||||
+ self.bindings['QtCore'].tags.append(
|
||||
platform_tags_map.get(self.py_platform, 'Linux'))
|
||||
|
||||
# Make sure the bindings are buildable.
|
@@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 25 07:44:03 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Split the package to build the Qt6Pdf bindings as a separate
|
||||
flavor. This allows to build most of the bindings in SLFO but
|
||||
only build the Qt6Pdf bindings (which need qt6-webengine) in
|
||||
Backports.
|
||||
- Add patch to allow building only the Qt6Pdf bindings without
|
||||
having to build Qt6Core too:
|
||||
* fix-build-without-qtcore.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 3 17:05:34 UTC 2025 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
|
@@ -19,8 +19,27 @@
|
||||
%define plainpython python
|
||||
%define mname PyQt6
|
||||
%define pyqt_build_for_qt6 1
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
|
||||
%if "%{flavor}" == "qt6pdf"
|
||||
%define pkg_suffix -qt6pdf
|
||||
%bcond_without qt6pdf
|
||||
|
||||
%if (0%{?suse_version} == 1600 && !0%{?is_opensuse}) || 0%{?suse_version} < 1600
|
||||
# SLFO and SLE15 don't have cmake(Qt6Pdf)
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
%ifnarch aarch64 x86_64 riscv64
|
||||
# qt6-pdf-devel is built in qt6-webengine with ExclusiveArch
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
|
||||
%else
|
||||
%bcond_with qt6pdf
|
||||
%endif
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-%{mname}
|
||||
Name: python-%{mname}%{?pkg_suffix}
|
||||
Version: 6.8.1
|
||||
Release: 0
|
||||
Summary: Python bindings for Qt 6
|
||||
@@ -34,6 +53,8 @@ Patch0: disable-rpaths.diff
|
||||
Patch1: 0001-Use-a-noarch-wrapper-for-dbus-mainloop-integration.patch
|
||||
# PATCH-FIX-UPSTREAM PyQt6-Qt6.9.0.patch -- this is basically 6.9.0.dev2504021615 without the version bump
|
||||
Patch2: PyQt6-Qt6.9.0.patch
|
||||
# PATCH-FIX-UPSTREAM fix-build-without-qtcore.patch -- Allow building only the Qt6Pdf bindings
|
||||
Patch3: fix-build-without-qtcore.patch
|
||||
BuildRequires: %{python_module PyQt6-sip >= 13.8}
|
||||
BuildRequires: %{python_module dbus-python-devel >= 0.8}
|
||||
BuildRequires: %{python_module devel >= 3.9}
|
||||
@@ -47,6 +68,11 @@ BuildRequires: python-pyqt-rpm-macros
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: qt6-base-devel
|
||||
BuildRequires: qt6-macros
|
||||
%if %{with qt6pdf}
|
||||
BuildRequires: cmake(Qt6Pdf)
|
||||
BuildRequires: cmake(Qt6PdfWidgets)
|
||||
BuildRequires: %{python_module PyQt6-devel}
|
||||
%else
|
||||
BuildRequires: cmake(Qt6Bluetooth)
|
||||
BuildRequires: cmake(Qt6Designer)
|
||||
BuildRequires: cmake(Qt6DBus)
|
||||
@@ -57,14 +83,6 @@ BuildRequires: cmake(Qt6Network)
|
||||
BuildRequires: cmake(Qt6Nfc)
|
||||
BuildRequires: cmake(Qt6OpenGL)
|
||||
BuildRequires: cmake(Qt6OpenGLWidgets)
|
||||
%if %{?suse_version} >= 1550
|
||||
# no pdf headers in 15.X
|
||||
%ifarch aarch64 x86_64 riscv64
|
||||
# qt6-pdf-devel is built in qt6-webengine with ExclusiveArch
|
||||
BuildRequires: cmake(Qt6Pdf)
|
||||
BuildRequires: cmake(Qt6PdfWidgets)
|
||||
%endif
|
||||
%endif
|
||||
BuildRequires: cmake(Qt6Positioning)
|
||||
BuildRequires: cmake(Qt6PrintSupport)
|
||||
BuildRequires: cmake(Qt6Qml)
|
||||
@@ -80,6 +98,7 @@ BuildRequires: cmake(Qt6SerialPort)
|
||||
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 155000
|
||||
BuildRequires: cmake(Qt6SpatialAudio)
|
||||
%endif
|
||||
BuildRequires: cmake(Qt6StateMachine)
|
||||
BuildRequires: cmake(Qt6Sql)
|
||||
BuildRequires: cmake(Qt6Svg)
|
||||
BuildRequires: cmake(Qt6SvgWidgets)
|
||||
@@ -91,9 +110,15 @@ BuildRequires: cmake(Qt6WebChannel)
|
||||
BuildRequires: cmake(Qt6WebSockets)
|
||||
BuildRequires: cmake(Qt6Widgets)
|
||||
BuildRequires: cmake(Qt6Xml)
|
||||
%endif
|
||||
Requires: python-PyQt6-sip >= %(rpm -q --whatprovides python-PyQt6-sip --qf "%%{version}")
|
||||
Requires: python-dbus-python >= %(rpm -q --whatprovides python-dbus-python --qf "%%{version}")
|
||||
%if %{with qt6pdf}
|
||||
Requires: python-PyQt6
|
||||
%else
|
||||
Recommends: python-PyQt6-qt6pdf
|
||||
Provides: python-qt6 = %{version}-%{release}
|
||||
%endif
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
@@ -107,6 +132,10 @@ Requires: python-dbus-python-devel >= 0.8
|
||||
Requires: python-devel
|
||||
Requires: qt6-base-devel
|
||||
Requires: qt6-macros
|
||||
%if %{with qt6pdf}
|
||||
Requires: cmake(Qt6Pdf)
|
||||
Requires: cmake(Qt6PdfWidgets)
|
||||
%else
|
||||
Requires: cmake(Qt6Bluetooth)
|
||||
Requires: cmake(Qt6Designer)
|
||||
Requires: cmake(Qt6DBus)
|
||||
@@ -117,14 +146,6 @@ Requires: cmake(Qt6Network)
|
||||
Requires: cmake(Qt6Nfc)
|
||||
Requires: cmake(Qt6OpenGL)
|
||||
Requires: cmake(Qt6OpenGLWidgets)
|
||||
%if %{?suse_version} >= 1550
|
||||
# no pdf headers in 15.X
|
||||
%ifarch aarch64 x86_64 riscv64
|
||||
# qt6-pdf-devel is built in qt6-webengine with ExclusiveArch
|
||||
Requires: cmake(Qt6Pdf)
|
||||
Requires: cmake(Qt6PdfWidgets)
|
||||
%endif
|
||||
%endif
|
||||
Requires: cmake(Qt6Positioning)
|
||||
Requires: cmake(Qt6PrintSupport)
|
||||
Requires: cmake(Qt6Qml)
|
||||
@@ -151,14 +172,19 @@ Requires: cmake(Qt6WebChannel)
|
||||
Requires: cmake(Qt6WebSockets)
|
||||
Requires: cmake(Qt6Widgets)
|
||||
Requires: cmake(Qt6Xml)
|
||||
%endif
|
||||
Requires: %plainpython(abi) = %{python_version}
|
||||
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.
|
||||
%if %{with qt6pdf}
|
||||
Requires: python-PyQt6-devel
|
||||
%else
|
||||
Recommends: python-sip-devel
|
||||
Recommends: python-qscintilla-qt6
|
||||
Provides: python-qt6-devel = %{version}-%{release}
|
||||
%endif
|
||||
|
||||
%description devel
|
||||
PyQt is a set of Python bindings for the Qt framework.
|
||||
@@ -189,17 +215,42 @@ dos2unix examples/multimedia*/*/*.ui
|
||||
-s %{quote:--pep484-pyi \
|
||||
--confirm-license \
|
||||
--qt-shared \
|
||||
--qmake-setting 'QMAKE_CXXFLAGS_RELEASE=%{optflags} -DQT_NO_INT128'}}
|
||||
--qmake-setting 'QMAKE_CXXFLAGS_RELEASE=%{optflags} -DQT_NO_INT128'\
|
||||
%if %{with qt6pdf}
|
||||
--enable QtPdf \
|
||||
%endif
|
||||
%{nil}
|
||||
}}
|
||||
|
||||
%install
|
||||
%pyqt_install
|
||||
%if %{without qt6pdf}
|
||||
%pyqt_install_examples %mname
|
||||
|
||||
%python_clone -a %{buildroot}%{_bindir}/pyuic6
|
||||
%python_clone -a %{buildroot}%{_bindir}/pylupdate6
|
||||
%else
|
||||
# We have to remove installed files that aren't part of qt6pdf
|
||||
rm %{buildroot}%{_bindir}/pyuic6 \
|
||||
%{buildroot}%{_bindir}/pylupdate6
|
||||
rm -Rf %{buildroot}%{_qt6_datadir}/qsci
|
||||
%{python_expand
|
||||
rm -Rf %{buildroot}%{$python_sitelib}/dbus \
|
||||
%{buildroot}%{$python_sitearch}/PyQt6/uic \
|
||||
%{buildroot}%{$python_sitearch}/PyQt6/lupdate \
|
||||
%{buildroot}%{$python_sitearch}/PyQt6-%{version}.dist-info
|
||||
rm %{buildroot}%{$python_sitearch}/PyQt6/__init__.py \
|
||||
%{buildroot}%{$python_sitearch}/PyQt6/dbus_mainloop.abi3.so \
|
||||
%{buildroot}%{$python_sitearch}/PyQt6/py.typed \
|
||||
%{buildroot}%{$python_sitearch}/PyQt6/sip.pyi
|
||||
}
|
||||
%endif
|
||||
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
|
||||
|
||||
%if %{without qt6pdf}
|
||||
|
||||
%check
|
||||
export PYTHONDONTWRITEBYTECODE=1 # boo#1047218
|
||||
%{python_expand # there is no test suite. If it compiles and imports, it should be okay.
|
||||
@@ -213,8 +264,11 @@ $python -c 'from PyQt6 import QtCore; assert QtCore.PYQT_VERSION_STR == "%{versi
|
||||
%postun devel
|
||||
%python_uninstall_alternative pyuic6
|
||||
|
||||
%endif
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE
|
||||
%if %{without qt6pdf}
|
||||
%doc README.md NEWS ChangeLog
|
||||
%{python_sitearch}/PyQt6/
|
||||
%{python_sitearch}/PyQt6-%{version}.dist-info/
|
||||
@@ -224,9 +278,15 @@ $python -c 'from PyQt6 import QtCore; assert QtCore.PYQT_VERSION_STR == "%{versi
|
||||
%dir %{_qt6_pluginsdir}/PyQt6/
|
||||
%{_qt6_pluginsdir}/PyQt6/libpy%{python_bin_suffix}qt6qmlplugin.so
|
||||
%exclude %pyqt6_sipdir
|
||||
%exclude %{python_sitearch}/PyQt6/QtPdf.*
|
||||
%else
|
||||
%{python_sitearch}/PyQt6/QtPdf.*
|
||||
%endif
|
||||
|
||||
%files %{python_files devel}
|
||||
%license LICENSE
|
||||
%pyqt6_sipdir
|
||||
%if %{without qt6pdf}
|
||||
%python_alternative %{_bindir}/pyuic6
|
||||
%python_alternative %{_bindir}/pylupdate6
|
||||
%dir %{_qt6_pluginsdir}/designer/
|
||||
@@ -235,7 +295,6 @@ $python -c 'from PyQt6 import QtCore; assert QtCore.PYQT_VERSION_STR == "%{versi
|
||||
%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
|
||||
@@ -243,5 +302,6 @@ $python -c 'from PyQt6 import QtCore; assert QtCore.PYQT_VERSION_STR == "%{versi
|
||||
%exclude %{_docdir}/%{python_prefix}-%{mname}/README.md
|
||||
%exclude %{_docdir}/%{python_prefix}-%{mname}/NEWS
|
||||
%exclude %{_docdir}/%{python_prefix}-%{mname}/ChangeLog
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
Reference in New Issue
Block a user