Rebuild with sip 5; remove unused Python 2 support for clarity

f41
Scott Talbert 4 years ago
parent 4838b81175
commit f5e5d04dd0

@ -2,12 +2,6 @@
%global with_python3 1
%global python3_dbus_dir %(%{__python3} -c "import dbus.mainloop; print(dbus.mainloop.__path__[0])" 2>/dev/null || echo "%{python3_sitearch}/dbus/mainloop")
%endif
# sip too old for python2 in EPEL
%if 0%{?fedora} < 32 && 0%{?rhel} < 9
%global with_python2 1
%global python2_dbus_dir %(%{__python2} -c "import dbus.mainloop; print(dbus.mainloop.__path__[0])" 2>/dev/null || echo "%{python2_sitearch}/dbus/mainloop")
%global enginio 1
%endif
# enable/disable individual modules
# drop power64, it's not supported yet (than)
@ -22,18 +16,6 @@
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
## f29+ no longer using separate sipdir for python3
%global py3_sipdir %{_datadir}/sip/PyQt5
#if 0%%{?fedora} < 29
#global py3_sipdir %%{_datadir}/python3-sip/PyQt5
#endif
%if 0%{?rhel} == 7
%global py3_sip %{_bindir}/python3-sip
%endif
%global sip_ver 4.19.23
# see also https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/JQQ66XJSIT2FGTK2YQY7AXMEH5IXMPUX/
%undefine _strict_symbol_defs_build
@ -42,7 +24,7 @@
Summary: PyQt5 is Python bindings for Qt5
Name: python-qt5
Version: 5.15.0
Release: 9%{?dist}
Release: 10%{?dist}
License: GPLv3
Url: http://www.riverbankcomputing.com/software/pyqt/
@ -58,9 +40,8 @@ Source4: pyuic5.sh
## upstream patches
## upstreamable patches
Patch0: python-qt5_sipdir.patch
# support newer Qt5 releases
Patch1: PyQt5-Timeline.patch
Patch0: PyQt5-Timeline.patch
BuildRequires: make
BuildRequires: chrpath
@ -93,23 +74,11 @@ BuildRequires: pkgconfig(Qt5X11Extras)
BuildRequires: pkgconfig(Qt5Xml) pkgconfig(Qt5XmlPatterns)
BuildRequires: pkgconfig(Qt5WebChannel)
BuildRequires: pkgconfig(Qt5WebSockets)
%if 0%{?with_python2}
BuildRequires: python27
BuildRequires: python2-enum34
%if 0%{?fedora} > 27
%global python2_dbus python2-dbus
%else
%global python2_dbus dbus-python
%endif
BuildRequires: %{python2_dbus}
BuildRequires: python2-pyqt5-sip >= %{sip_ver}
BuildRequires: python2-sip-devel >= %{sip_ver}
%endif # with_python2
%if 0%{?with_python3}
BuildRequires: python%{python3_pkgversion}-devel python%{python3_pkgversion}
BuildRequires: python%{python3_pkgversion}-dbus
BuildRequires: python%{python3_pkgversion}-pyqt5-sip >= %{sip_ver}
BuildRequires: python%{python3_pkgversion}-sip-devel >= %{sip_ver}
BuildRequires: %{py3_dist PyQt-builder} >= 1.1.0
BuildRequires: %{py3_dist sip} >= 5.3
%endif # with_python3
# when split out
@ -122,45 +91,6 @@ Obsoletes: python-qt5 < 5.5.1-10
%global __provides_exclude_from ^(%{_qt5_plugindir}/.*\\.so)$
%if 0%{?with_python2}
%package -n python2-qt5
Summary: Python 2 bindings for Qt5
Requires: python2-qt5-base%{?_isa} = %{version}-%{release}
BuildRequires: python27
Requires: python2-enum34
Provides: python2-PyQt5 = %{version}-%{release}
Provides: python2-PyQt5%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python2-qt5}
%description -n python2-qt5
%{summary}.
%package -n python2-qt5-base
Summary: Python bindings for Qt5 base
Requires: %{name}-rpm-macros = %{version}-%{release}
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}
%{?_sip_api:Requires: python2-pyqt5-sip-api(%{_sip_api_major}) >= %{_sip_api}}
Requires: %{python2_dbus}
Obsoletes: python-qt5 < 5.5.1-10
Provides: python2-PyQt5-base = %{version}-%{release}
Provides: python2-PyQt5-base%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python2-qt5-base}
%description -n python2-qt5-base
%{summary}.
%package -n python2-qt5-devel
Summary: Development files for %{name}
Requires: python2-qt5%{?_isa} = %{version}-%{release}
Requires: qt5-qtbase-devel
Requires: python2-sip-devel
Provides: PyQt5-devel = %{version}-%{release}
Provides: python2-PyQt5-devel = %{version}-%{release}
%{?python_provide:%python_provide python2-qt5-devel}
%description -n python2-qt5-devel
Files needed to build other bindings for C++ classes that inherit from
any of the Qt5 classes.
%endif
%package rpm-macros
Summary: RPM macros %{name}
# when split out
@ -188,11 +118,6 @@ Requires: python%{python3_pkgversion}-qt5-base%{?_isa} = %{version}-%{release}
%package -n python%{python3_pkgversion}-qt5-base
Summary: Python 3 bindings for Qt5 base
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}
%if 0%{?_python3_sip_api_major}
%{?_python3_sip_api:Requires: python%{python3_pkgversion}-pyqt5-sip-api(%{_python3_sip_api_major}) >= %{_python3_sip_api}}
%else
%{?_sip_api:Requires: python%{python3_pkgversion}-pyqt5-sip-api(%{_sip_api_major}) >= %{_sip_api}}
%endif
Provides: python%{python3_pkgversion}-PyQt5-base = %{version}-%{release}
Provides: python%{python3_pkgversion}-PyQt5-base%{?_isa} = %{version}-%{release}
Requires: %{name}-rpm-macros = %{version}-%{release}
@ -205,7 +130,7 @@ Requires: python%{python3_pkgversion}-dbus
Summary: Development files for python3-qt5
Requires: python%{python3_pkgversion}-qt5%{?_isa} = %{version}-%{release}
Requires: qt5-qtbase-devel
Requires: python%{python3_pkgversion}-sip-devel
Requires: %{py3_dist sip} >= 5.3
Provides: python%{python3_pkgversion}-PyQt5-devel = %{version}-%{release}
%{?python_provide:%python_provide python%{python3_pkgversion}-qt5-devel}
%description -n python%{python3_pkgversion}-qt5-devel
@ -220,17 +145,6 @@ BuildArch: noarch
%{summary}.
%if 0%{?webengine}
%if 0%{?with_python2}
%package -n python2-qt5-webengine
Summary: Python bindings for Qt5 WebEngine
BuildRequires: pkgconfig(Qt5WebEngine)
Obsoletes: python-qt5 < 5.5.1-10
Requires: python2-qt5%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python2-qt5-webengine}
%description -n python2-qt5-webengine
%{summary}.
%endif
%package -n python%{python3_pkgversion}-qt5-webengine
Summary: Python3 bindings for Qt5 WebEngine
BuildRequires: pkgconfig(Qt5WebEngine)
@ -243,19 +157,6 @@ Requires: python%{python3_pkgversion}-qt5%{?_isa} = %{version}-%{release}
%endif
%if 0%{?webkit}
%if 0%{?with_python2}
%package -n python2-qt5-webkit
Summary: Python bindings for Qt5 Webkit
BuildRequires: pkgconfig(Qt5WebKit)
BuildRequires: pkgconfig(Qt5WebKitWidgets)
Obsoletes: python3-webkit < 5.5.1-12
Obsoletes: python-qt5 < 5.5.1-10
Requires: python2-qt5%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python2-qt5-webkit}
%description -n python2-qt5-webkit
%{summary}.
%endif
%package -n python%{python3_pkgversion}-qt5-webkit
Summary: Python3 bindings for Qt5 Webkit
BuildRequires: pkgconfig(Qt5WebKit)
@ -272,7 +173,6 @@ Requires: python%{python3_pkgversion}-qt5%{?_isa} = %{version}-%{release}
%setup -q -n PyQt5-%{version}%{?snap:.%{snap}}
%patch0 -p1
%patch1 -p1
%build
@ -280,48 +180,25 @@ Requires: python%{python3_pkgversion}-qt5%{?_isa} = %{version}-%{release}
PATH=%{_qt5_bindir}:$PATH ; export PATH
# Python 2 build:
%if 0%{?with_python2}
mkdir %{_target_platform}
# copy sources, seems pure shadow build support broke with 5.9 -- rex
cp -a * %{_target_platform}/ ||:
pushd %{_target_platform}
%{__python2} ./configure.py \
--assume-shared \
--confirm-license \
--no-designer-plugin \
--no-qml-plugin \
--qmake=%{_qt5_qmake} \
%{!?with_python3:--no-qsci-api}%{?with_python3:--qsci-api --qsci-api-destdir=%{_qt5_datadir}/qsci} \
--verbose \
--dbus=%{_includedir}/dbus-1.0/ \
QMAKE_CFLAGS_RELEASE="%{optflags}" \
QMAKE_CXXFLAGS_RELEASE="%{optflags} `pkg-config --cflags dbus-python`" \
QMAKE_LFLAGS_RELEASE="%{?__global_ldflags}"
%make_build
popd
%endif # with_python2
# Python 3 build:
%if 0%{?with_python3}
mkdir %{_target_platform}-python3
cp -a * %{_target_platform}-python3/ ||:
pushd %{_target_platform}-python3
%{__python3} ./configure.py \
--assume-shared \
sip-build \
--no-make \
--qt-shared \
--confirm-license \
--qmake=%{_qt5_qmake} \
%{?with_python2:--no-qsci-api}%{!?with_python2:--qsci-api --qsci-api-destdir=%{_qt5_datadir}/qsci} \
%{?py3_sip:--sip=%{_bindir}/python3-sip} \
%{?py3_sipdir:--sipdir=%{py3_sipdir}} \
--api-dir=%{_qt5_datadir}/qsci/api/python \
--verbose \
--dbus=%{_includedir}/dbus-1.0/ \
QMAKE_CFLAGS_RELEASE="%{optflags}" \
QMAKE_CXXFLAGS_RELEASE="%{optflags} `pkg-config --cflags dbus-python`" \
QMAKE_LFLAGS_RELEASE="%{?__global_ldflags}"
--pep484-pyi \
--qmake-setting 'QMAKE_CFLAGS_RELEASE="%{optflags}"' \
--qmake-setting 'QMAKE_CXXFLAGS_RELEASE="%{optflags} `pkg-config --cflags dbus-python`"' \
--qmake-setting 'QMAKE_LFLAGS_RELEASE="%{?__global_ldflags}"'
%make_build
%make_build -C build
popd
%endif # with_python3
@ -330,17 +207,11 @@ popd
# Python 3 build:
%if 0%{?with_python3}
%make_install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-python3
%make_install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-python3/build
if [ "%{_prefix}" != "/usr" ]; then
cp -ru %{buildroot}/usr/* %{buildroot}%{_prefix}/
rm -rf %{buildroot}/usr/*
fi
%if "%py3_sipdir" == "%{_datadir}/sip/PyQt5"
# copy files to old location for compat purposes temporarily
mkdir -p %{buildroot}%{_datadir}/python3-sip
cp -alf %{buildroot}%{py3_sipdir} \
%{buildroot}%{_datadir}/python3-sip/PyQt5
%endif
if [ "%{_prefix}" != "/usr" ]; then
cp -ru %{buildroot}/usr/* %{buildroot}%{_prefix}/ || echo "Nothing to copy"
@ -358,22 +229,6 @@ find %{buildroot} -type f -name '*.so' | xargs chmod a+rx
#done
%endif # with_python3
# Python 2 build:
%if 0%{?with_python2}
%make_install INSTALL_ROOT=%{buildroot} -C %{_target_platform}
if [ "%{_prefix}" != "/usr" ]; then
cp -ru %{buildroot}/usr/* %{buildroot}%{_prefix}/
rm -rf %{buildroot}/usr/*
fi
# ensure .so modules are executable for proper -debuginfo extraction
find %{buildroot} -type f -name '*.so' | xargs chmod a+rx
#for i in %%{buildroot}%%{python2_sitearch}/PyQt5/*.so %%{buildroot}%%{python2_dbus_dir}/pyqt5.so ; do
#test -x $i || chmod a+rx $i
#done
%endif # with_python2
# remove Python3 code from Python2 directory, fixes FTBFS like PyQt4 (#564633)
rm -rfv %{buildroot}%{python2_sitearch}/PyQt5/uic/port_v3/
# remove Python2 code from Python3 directory (for when/if we support python3 here)
rm -rfv %{buildroot}%{python3_sitearch}/PyQt5/uic/port_v2/
@ -400,77 +255,6 @@ sed -i \
%{buildroot}%{_bindir}/{pyrcc5,pylupdate5,pyuic5}
%endif
%if 0%{?with_python2}
%files -n python2-qt5
%if 0%{?enginio}
%{python2_sitearch}/PyQt5/Enginio.so
%endif
%{python2_sitearch}/PyQt5/QtBluetooth.so
%{python2_sitearch}/PyQt5/QtDesigner.so
%{python2_sitearch}/PyQt5/QtHelp.so
%{python2_sitearch}/PyQt5/QtLocation.so
%{python2_sitearch}/PyQt5/QtMultimedia.so
%{python2_sitearch}/PyQt5/QtMultimediaWidgets.so
%{python2_sitearch}/PyQt5/QtNfc.so
%{python2_sitearch}/PyQt5/QtPositioning.so
%{python2_sitearch}/PyQt5/QtQml.so
%{python2_sitearch}/PyQt5/QtQuick.so
%{python2_sitearch}/PyQt5/QtQuickWidgets.so
%{python2_sitearch}/PyQt5/QtSensors.so
%{python2_sitearch}/PyQt5/QtSerialPort.so
%{python2_sitearch}/PyQt5/QtSvg.so
%{python2_sitearch}/PyQt5/QtWebChannel.so
%{python2_sitearch}/PyQt5/QtWebSockets.so
%{python2_sitearch}/PyQt5/QtX11Extras.so
%{python2_sitearch}/PyQt5/QtXmlPatterns.so
%files -n python2-qt5-base
%doc NEWS README
%license LICENSE
%{python2_dbus_dir}/pyqt5.so
%dir %{python2_sitearch}/PyQt5/
%{python2_sitearch}/PyQt5-%{version}%{?snap:.%{snap}}.dist-info
%{python2_sitearch}/PyQt5/__init__.py*
%{python2_sitearch}/PyQt5/Qt.so
%{python2_sitearch}/PyQt5/QtCore.so
%{python2_sitearch}/PyQt5/QtDBus.so
%{python2_sitearch}/PyQt5/QtGui.so
%{python2_sitearch}/PyQt5/QtNetwork.so
%{python2_sitearch}/PyQt5/QtOpenGL.so
%{python2_sitearch}/PyQt5/QtPrintSupport.so
%{python2_sitearch}/PyQt5/QtSql.so
%{python2_sitearch}/PyQt5/QtTest.so
%{python2_sitearch}/PyQt5/QtWidgets.so
%{python2_sitearch}/PyQt5/QtXml.so
%{python2_sitearch}/PyQt5/_QOpenGLFunctions_2_0.so
%{python2_sitearch}/PyQt5/_QOpenGLFunctions_2_1.so
%{python2_sitearch}/PyQt5/_QOpenGLFunctions_4_1_Core.so
# *was* in -devel
%{_bindir}/pylupdate5
%{_bindir}/pyrcc5
%{_bindir}/pyuic5
%{python2_sitearch}/PyQt5/uic/
%{python2_sitearch}/PyQt5/pylupdate.so
%{python2_sitearch}/PyQt5/pylupdate_main.py*
%{python2_sitearch}/PyQt5/pyrcc.so
%{python2_sitearch}/PyQt5/pyrcc_main.py*
%if 0%{?webengine}
%files -n python2-qt5-webengine
%{python2_sitearch}/PyQt5/QtWebEngine.*
%{python2_sitearch}/PyQt5/QtWebEngineCore.*
%{python2_sitearch}/PyQt5/QtWebEngineWidgets.*
%endif
%if 0%{?webkit}
%files -n python2-qt5-webkit
%{python2_sitearch}/PyQt5/QtWebKit.*
%{python2_sitearch}/PyQt5/QtWebKitWidgets.*
%endif
%files -n python2-qt5-devel
%{_datadir}/sip/PyQt5/
%endif
%files rpm-macros
%{rpm_macros_dir}/macros.pyqt5
@ -502,7 +286,7 @@ sed -i \
%files -n python%{python3_pkgversion}-qt5-base
%doc NEWS README
%license LICENSE
%{python3_dbus_dir}/pyqt5.so
%{python3_dbus_dir}/pyqt5.abi3.so
%dir %{python3_sitearch}/PyQt5/
%{python3_sitearch}/PyQt5-%{version}%{?snap:.%{snap}}.dist-info
%{python3_sitearch}/PyQt5/__pycache__/__init__.*
@ -529,10 +313,10 @@ sed -i \
%{_bindir}/pylupdate5
%{_bindir}/pyrcc5
%{_bindir}/pyuic5
%{python3_sitearch}/PyQt5/pylupdate.so
%{python3_sitearch}/PyQt5/pylupdate.abi3.so
%{python3_sitearch}/PyQt5/pylupdate_main.py*
%{python3_sitearch}/PyQt5/__pycache__/pylupdate_main*
%{python3_sitearch}/PyQt5/pyrcc.so
%{python3_sitearch}/PyQt5/pyrcc.abi3.so
%{python3_sitearch}/PyQt5/pyrcc_main.py*
%{python3_sitearch}/PyQt5/__pycache__/pyrcc_main*
@ -550,10 +334,7 @@ sed -i \
%endif
%files -n python%{python3_pkgversion}-qt5-devel
%{py3_sipdir}/
# compat location
%dir %{_datadir}/python3-sip/
%{_datadir}/python3-sip/PyQt5/
%{python3_sitearch}/PyQt5/bindings/
%endif # with_python3
%files doc
@ -567,6 +348,9 @@ sed -i \
%changelog
* Sun Jun 06 2021 Scott Talbert <swt@techie.net> - 5.15.0-10
- Rebuild with sip 5; remove unused Python 2 support for clarity
* Thu Jun 03 2021 Python Maint <python-maint@redhat.com> - 5.15.0-9
- Rebuilt for Python 3.10

Loading…
Cancel
Save