Initial PyQt6

Signed-off-by: Onuralp SEZER <thunderbirdtr@fedoraproject.org>
This commit is contained in:
Onuralp SEZER 2022-09-06 18:40:06 +03:00
parent 245e68d6c2
commit ab081ebd8a
No known key found for this signature in database
GPG Key ID: 44887BE9A1D41395
4 changed files with 242 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/PyQt6-6.3.0.tar.gz

8
macros.pyqt6 Normal file
View File

@ -0,0 +1,8 @@
%pyqt6 @@NAME@@
%pyqt6_epoch @@EPOCH@@
%pyqt6_version @@VERSION@@
%pyqt6_evr @@EVR@@
%pyqt6_requires \
Requires: %{pyqt6} >= %{pyqt6_evr} \
%{nil}

232
python-pyqt6.spec Normal file
View File

@ -0,0 +1,232 @@
%if 0%{?fedora} || 0%{?rhel} > 6
%global python3_dbus_dir %(%{__python3} -c "import dbus.mainloop; print(dbus.mainloop.__path__[0])" 2>/dev/null || echo "%{python3_sitearch}/dbus/mainloop")
%endif
Summary: PyQt6 is Python bindings for Qt6
Name: python-pyqt6
Version: 6.3.0
Release: 1%{?dist}
License: GPLv3
Url: http://www.riverbankcomputing.com/software/pyqt/
Source0: https://pypi.python.org/packages/source/P/PyQt6/PyQt6-%{version}.tar.gz
Source1: macros.pyqt6
BuildRequires: make
BuildRequires: chrpath
BuildRequires: findutils
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dbus-python)
BuildRequires: pkgconfig(libpulse-mainloop-glib)
BuildRequires: qt6-qtbase-private-devel
BuildRequires: cmake(Qt6Core)
BuildRequires: cmake(Qt6Bluetooth)
BuildRequires: cmake(Qt6DBus)
BuildRequires: cmake(Qt6Designer)
BuildRequires: cmake(Qt6Gui)
BuildRequires: cmake(Qt6Multimedia)
BuildRequires: cmake(Qt6Nfc)
BuildRequires: cmake(Qt6Network)
BuildRequires: cmake(Qt6OpenGL)
BuildRequires: cmake(Qt6Positioning)
BuildRequires: cmake(Qt6Quick) cmake(Qt6QuickWidgets)
BuildRequires: cmake(Qt6Sensors)
BuildRequires: cmake(Qt6SerialPort)
BuildRequires: cmake(Qt6Sql)
BuildRequires: cmake(Qt6Svg)
BuildRequires: cmake(Qt6Test)
BuildRequires: cmake(Qt6Xml)
BuildRequires: cmake(Qt6WebChannel)
BuildRequires: cmake(Qt6WebSockets)
BuildRequires: cmake(Qt6Quick3D)
BuildRequires: cmake(Qt6Quick3DRuntimeRender)
BuildRequires: cmake(Qt6RemoteObjects)
BuildRequires: python%{python3_pkgversion}-devel python%{python3_pkgversion}
BuildRequires: python%{python3_pkgversion}-dbus
BuildRequires: %{py3_dist PyQt-builder} >= 1.1.0
BuildRequires: %{py3_dist sip}
%description
%{summary}.
%global __provides_exclude_from ^(%{_qt6_plugindir}/.*\\.so)$
%package rpm-macros
Summary: RPM macros %{name}
BuildArch: noarch
%description rpm-macros
%{summary}.
%package -n python%{python3_pkgversion}-pyqt6
Summary: Python 3 bindings for Qt6
Provides: PyQt6 = %{version}-%{release}
Provides: PyQt6%{?_isa} = %{version}-%{release}
Provides: python%{python3_pkgversion}-PyQt6 = %{version}-%{release}
Provides: python%{python3_pkgversion}-PyQt6%{?_isa} = %{version}-%{release}
Requires: python%{python3_pkgversion}-pyqt6-base%{?_isa} = %{version}-%{release}
%{?py_provides:%py_provides python%{python3_pkgversion}-pyqt6}
%description -n python%{python3_pkgversion}-pyqt6
%{summary}.
%package -n python%{python3_pkgversion}-pyqt6-base
Summary: Python 3 bindings for Qt6 base
%{?_qt6:Requires: %{_qt6}%{?_isa} = %{_qt6_version}}
Provides: python%{python3_pkgversion}-PyQt6-base = %{version}-%{release}
Provides: python%{python3_pkgversion}-PyQt6-base%{?_isa} = %{version}-%{release}
Requires: %{name}-rpm-macros = %{version}-%{release}
Requires: python%{python3_pkgversion}-dbus
%{?py_provides:%py_provides python%{python3_pkgversion}-pyqt6-base}
%description -n python%{python3_pkgversion}-pyqt6-base
%{summary}.
%package -n python%{python3_pkgversion}-pyqt6-devel
Summary: Development files for python3-qt6
Requires: python%{python3_pkgversion}-pyqt6%{?_isa} = %{version}-%{release}
Requires: qt6-qtbase-devel
Provides: python%{python3_pkgversion}-PyQt6-devel = %{version}-%{release}
%{?py_provides:%py_provides python%{python3_pkgversion}-pyqt6-devel}
%description -n python%{python3_pkgversion}-pyqt6-devel
Files needed to build other bindings for C++ classes that inherit from any
of the Qt6 classes.
%package doc
Summary: Developer documentation for %{name}
Provides: PyQt6-doc = %{version}-%{release}
BuildArch: noarch
%description doc
%{summary}.
%prep
%autosetup -n PyQt6-%{version}%{?snap:.%{snap}} -p1
%build
PATH=%{_qt6_bindir}:$PATH ; export PATH
# Python 3 build:
sip-build \
--no-make \
--qt-shared \
--confirm-license \
--qmake=%{_qt6_qmake} \
--api-dir=%{_qt6_datadir}/qsci/api/python \
--verbose \
--dbus=%{_includedir}/dbus-1.0/ \
--pep484-pyi \
--qmake-setting 'QMAKE_CFLAGS_RELEASE="%{build_cflags}"' \
--qmake-setting 'QMAKE_CXXFLAGS_RELEASE="%{build_cxxflags} `pkg-config --cflags dbus-python`"' \
--qmake-setting 'QMAKE_LFLAGS_RELEASE="%{build_ldflags}"'
%make_build -C build
%install
# Python 3 build:
%make_install INSTALL_ROOT=%{buildroot} -C build
if [ "%{_prefix}" != "/usr" ]; then
cp -ru %{buildroot}/usr/* %{buildroot}%{_prefix}/ || echo "Nothing to copy"
rm -rf %{buildroot}/usr/*
fi
# Explicitly byte compile as the automagic byte compilation doesn't work for
# /app prefix in flatpak builds
%py_byte_compile %{__python3} %{buildroot}%{python3_sitearch}/PyQt6
# ensure .so modules are executable for proper -debuginfo extraction
find %{buildroot} -type f -name '*.so' | xargs chmod a+rx
# rpm macros
install -p -m644 -D %{SOURCE1} \
%{buildroot}%{_rpmmacrodir}/macros.pyqt6
sed -i \
-e "s|@@NAME@@|%{name}|g" \
-e "s|@@EPOCH@@|%{?epoch}%{!?epoch:0}|g" \
-e "s|@@VERSION@@|%{version}|g" \
-e "s|@@EVR@@|%{?epoch:%{epoch:}}%{version}-%{release}|g" \
%{buildroot}%{_rpmmacrodir}/macros.pyqt6
%files rpm-macros
%{_rpmmacrodir}/macros.pyqt6
%files -n python%{python3_pkgversion}-pyqt6
%{python3_sitearch}/PyQt6/QtBluetooth.*
%{python3_sitearch}/PyQt6/QtDesigner.*
%{python3_sitearch}/PyQt6/QtHelp.*
%{python3_sitearch}/PyQt6/QtMultimedia.*
%{python3_sitearch}/PyQt6/QtMultimediaWidgets.*
%{python3_sitearch}/PyQt6/QtNfc.*
%{python3_sitearch}/PyQt6/QtPositioning.*
%{python3_sitearch}/PyQt6/QtQml.*
%{python3_sitearch}/PyQt6/QtQuick.*
%{python3_sitearch}/PyQt6/QtQuickWidgets.*
%{python3_sitearch}/PyQt6/QtSensors.*
%{python3_sitearch}/PyQt6/QtSerialPort.*
%{python3_sitearch}/PyQt6/QtSvg.*
%{python3_sitearch}/PyQt6/QtWebChannel.*
%{python3_sitearch}/PyQt6/QtWebSockets.*
%{python3_sitearch}/PyQt6/QtOpenGLWidgets.*
%{python3_sitearch}/PyQt6/QtSvgWidgets.*
%{python3_sitearch}/PyQt6/QtQuick3D.*
%{python3_sitearch}/PyQt6/QtRemoteObjects.*
%files -n python%{python3_pkgversion}-pyqt6-base
%doc NEWS README
%license LICENSE
%{python3_dbus_dir}/pyqt6.abi3.so
%dir %{python3_sitearch}/PyQt6/
%{python3_sitearch}/PyQt6-%{version}%{?snap:.%{snap}}.dist-info
%{python3_sitearch}/PyQt6/__pycache__/__init__.*
%{python3_sitearch}/PyQt6/__init__.py*
%{python3_sitearch}/PyQt6/QtCore.*
%{python3_sitearch}/PyQt6/QtDBus.*
%{python3_sitearch}/PyQt6/QtGui.*
%{python3_sitearch}/PyQt6/QtNetwork.*
%{python3_sitearch}/PyQt6/QtOpenGL.*
%{python3_sitearch}/PyQt6/QtPrintSupport.*
%{python3_sitearch}/PyQt6/QtSql.*
%{python3_sitearch}/PyQt6/QtTest.*
%{python3_sitearch}/PyQt6/QtWidgets.*
%{python3_sitearch}/PyQt6/QtXml.*
# plugins
%{_qt6_plugindir}/PyQt6/
%{_qt6_plugindir}/designer/libpyqt6.so
%{python3_sitearch}/PyQt6/uic/
%{python3_sitearch}/PyQt6/lupdate/
%{_bindir}/pylupdate6
%{_bindir}/pyuic6
%{python3_sitearch}/PyQt6/py.typed
%{python3_sitearch}/PyQt6/sip.pyi
%files -n python%{python3_pkgversion}-pyqt6-devel
%{python3_sitearch}/PyQt6/bindings/
%files doc
#doc doc/*
%doc examples/
# avoid dep on qscintilla-python, own %%_qt6_datadir/qsci/... here for now
%dir %{_qt6_datadir}/qsci/
%dir %{_qt6_datadir}/qsci/api/
%dir %{_qt6_datadir}/qsci/api/python/
%doc %{_qt6_datadir}/qsci/api/python/PyQt6.api
%changelog
* Tue Sep 06 2022 Onuralp Sezer <thunderbirdtr@fedoraproject.org> - 6.3.0-1
- Initial PyQt6

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (PyQt6-6.3.0.tar.gz) = 1ab2baa90bc3a96254348d0a170ceb39a29d1a6e2c6517dc3be6403ccd46e2096fc4317de0828ed61d7fbbe68bd6556b2d214be0442126a16cb4394d55dd4fb7