428 lines
14 KiB
RPMSpec
428 lines
14 KiB
RPMSpec
%global toolchain clang
|
|
%global _lto_cflags %{nil}
|
|
%undefine __cmake_in_source_build
|
|
|
|
%global pypi_name pyside2
|
|
%global camel_name PySide2
|
|
%global qt5ver 5.14
|
|
|
|
# Pass `--without tests` to rpmbuild or mock to skip the test suite
|
|
%bcond_without tests
|
|
|
|
Name: python-%{pypi_name}
|
|
Epoch: 1
|
|
Version: 5.15.7
|
|
Release: 2%{?dist}
|
|
Summary: Python bindings for the Qt 5 cross-platform application and UI framework
|
|
|
|
License: BSD and GPLv2 and GPLv3 and LGPLv3
|
|
URL: https://wiki.qt.io/Qt_for_Python
|
|
|
|
Source0: https://download.qt.io/official_releases/QtForPython/%{pypi_name}/%{camel_name}-%{version}-src/pyside-setup-opensource-src-%{version}.tar.xz
|
|
|
|
# PySide2 tools are "reinstalled" for pip installs but breaks distro builds.
|
|
Patch0: pyside2-tools-obsolete.patch
|
|
# setuptools --reuse-build option was broken in 5.15.2
|
|
Patch2: python-pyside2-options_py.patch
|
|
|
|
# Work around clang assumptions on header types, .h==c, not c++.
|
|
Patch4: https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch
|
|
|
|
# Python 3.11
|
|
# - Fix a crash in Shiboken::Object::isValid():
|
|
# https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=52df3b8f64
|
|
# - Fix usage of Py_TYPE() for Python 3.11
|
|
# https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=73adefe22f (different, but same purpose)
|
|
# - Fix crashes with static strings in Python 3.11:
|
|
# https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=a09a1db8391243e6bb290ee66bb6e3afbb114c61
|
|
# - Add Python 3.11 to the list of supported versions
|
|
# (not sent upstream)
|
|
Patch5: python3.11.patch
|
|
|
|
# Enable tests in the CMake build
|
|
# This also adds known test failures to blacklist.txt
|
|
Patch: build-tests.patch
|
|
|
|
%if 0%{?rhel} && 0%{?rhel} < 8
|
|
BuildRequires: llvm-toolset-7-clang-devel llvm-toolset-7-llvm-devel
|
|
BuildRequires: cmake3
|
|
%endif
|
|
BuildRequires: cmake
|
|
BuildRequires: gcc graphviz
|
|
BuildRequires: clang-devel llvm-devel
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: libxslt-devel
|
|
BuildRequires: python3-devel
|
|
BuildRequires: python3-sphinx
|
|
BuildRequires: python3-setuptools
|
|
BuildRequires: python3-wheel
|
|
# Shiboken2
|
|
BuildRequires: cmake(Qt5Core) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Gui) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Xml) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Widgets) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5WebKit) >= %{qt5ver}
|
|
# Needed for Cmake UI Config
|
|
BuildRequires: cmake(Qt5UiTools) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5X11Extras) >= %{qt5ver}
|
|
# PySide2
|
|
BuildRequires: qt5-qtbase-private-devel >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Charts) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5DataVisualization) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Multimedia) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5QuickControls2) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5RemoteObjects) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Script) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Scxml) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Sensors) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5SerialPort) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Svg) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5TextToSpeech) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5XmlPatterns) >= %{qt5ver}
|
|
%ifnarch ppc64le s390x
|
|
BuildRequires: cmake(Qt5WebEngine) >= %{qt5ver}
|
|
%endif
|
|
BuildRequires: cmake(Qt5WebSockets) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt53DCore) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Designer) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5Help) >= %{qt5ver}
|
|
BuildRequires: cmake(Qt5UiPlugin) >= %{qt5ver}
|
|
|
|
%if %{with tests}
|
|
# Tests use a fake graphical environment
|
|
BuildRequires: /usr/bin/xvfb-run
|
|
BuildRequires: mesa-dri-drivers
|
|
%endif
|
|
|
|
|
|
%description
|
|
PySide2 is the official Python module from the Qt for Python project, which
|
|
provides access to the complete Qt 5.13+ framework.
|
|
|
|
The name Shiboken2 and PySide2 make reference to the Qt 5 compatibility, since
|
|
the previous versions (without the 2) refer to Qt 4.
|
|
|
|
%package -n python3-%{pypi_name}
|
|
Provides: python3-%{camel_name} = %{version}-%{release}
|
|
Summary: %{summary}
|
|
%{?python_provide:%python_provide python3-%{pypi_name}}
|
|
%{?python_provide:%python_provide python3-%{camel_name}}
|
|
|
|
%description -n python3-%{pypi_name}
|
|
PySide2 is the official Python module from the Qt for Python project, which
|
|
provides access to the complete Qt 5.13+ framework.
|
|
|
|
The name Shiboken2 and PySide2 make reference to the Qt 5 compatibility, since
|
|
the previous versions (without the 2) refer to Qt 4.
|
|
|
|
|
|
%package -n python3-%{pypi_name}-devel
|
|
Requires: pyside2-tools
|
|
Requires: shiboken2
|
|
Summary: Development files related to %{name}
|
|
%{?python_provide:%python_provide python3-%{pypi_name}-devel}
|
|
%{?python_provide:%python_provide python3-%{camel_name}-devel}
|
|
|
|
%description -n python3-%{pypi_name}-devel
|
|
%{summary}.
|
|
|
|
|
|
%package -n pyside2-tools
|
|
Summary: PySide2 tools for the Qt 5 framework
|
|
|
|
%description -n pyside2-tools
|
|
PySide2 provides Python bindings for the Qt5 cross-platform application
|
|
and UI framework.
|
|
|
|
This package ships the following accompanying tools:
|
|
* pyside2-rcc - PySide2 resource compiler
|
|
* pyside2-uic - Python User Interface Compiler for PySide2
|
|
* pyside2-lupdate - update Qt Linguist translation files for PySide2
|
|
|
|
The name Shiboken2 and PySide2 make reference to the Qt 5 compatibility, since
|
|
the previous versions (without the 2) refer to Qt 4.
|
|
|
|
|
|
%package -n shiboken2
|
|
Summary: Python / C++ bindings generator for %camel_name
|
|
|
|
%description -n shiboken2
|
|
Shiboken is the Python binding generator that Qt for Python uses to create the
|
|
PySide module, in other words, is the system we use to expose the Qt C++ API to
|
|
Python.
|
|
|
|
The name Shiboken2 and PySide2 make reference to the Qt 5 compatibility, since
|
|
the previous versions (without the 2) refer to Qt 4.
|
|
|
|
%package -n python3-shiboken2
|
|
Summary: Python / C++ bindings libraries for %camel_name
|
|
|
|
%description -n python3-shiboken2
|
|
Shiboken is the Python binding generator that Qt for Python uses to create the
|
|
PySide module, in other words, is the system we use to expose the Qt C++ API to
|
|
Python.
|
|
|
|
The name Shiboken2 and PySide2 make reference to the Qt 5 compatibility, since
|
|
the previous versions (without the 2) refer to Qt 4.
|
|
|
|
%package -n python3-shiboken2-devel
|
|
Summary: Python / C++ bindings helper module for %camel_name
|
|
Requires: shiboken2
|
|
Requires: python3-shiboken2
|
|
|
|
%description -n python3-shiboken2-devel
|
|
Shiboken is the Python binding generator that Qt for Python uses to create the
|
|
PySide module, in other words, is the system we use to expose the Qt C++ API to
|
|
Python.
|
|
|
|
The name Shiboken2 and PySide2 make reference to the Qt 5 compatibility, since
|
|
the previous versions (without the 2) refer to Qt 4.
|
|
|
|
|
|
%prep
|
|
%autosetup -p1 -n pyside-setup-opensource-src-%{version}
|
|
|
|
|
|
%build
|
|
# Use cmake3 on EL
|
|
%if 0%{?rhel}
|
|
%global cmake %cmake3
|
|
|
|
%if 0%{?rhel} < 8
|
|
. /opt/rh/devtoolset-7/enable
|
|
. /opt/rh/llvm-toolset-7/enable
|
|
%else
|
|
export CXX=$(which clang++)
|
|
%endif
|
|
%endif
|
|
|
|
%cmake -DUSE_PYTHON_VERSION=3 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DBUILD_TESTS:BOOL=ON
|
|
|
|
# Generate a build_history entry (for tests) manually, since we're performing
|
|
# a cmake build.
|
|
TODAY=$(date -Id)
|
|
mkdir build_history/$TODAY
|
|
echo $PWD/%{__cmake_builddir}/sources > build_history/$TODAY/build_dir.txt
|
|
|
|
%cmake_build
|
|
|
|
|
|
%install
|
|
%cmake_install
|
|
|
|
#
|
|
# Generate egg-info manually and install since we're performing a cmake build.
|
|
#
|
|
# Copy CMake configuration files from the BINARY dir back to the SOURCE dir so
|
|
# setuptools can find them.
|
|
cp %{__cmake_builddir}/sources/shiboken2/shibokenmodule/{*.py,*.txt} sources/shiboken2/shibokenmodule/
|
|
cp %{__cmake_builddir}/sources/pyside2/PySide2/*.py sources/pyside2/PySide2/
|
|
%{__python3} setup.py egg_info
|
|
for name in PySide2 shiboken2 shiboken2_generator; do
|
|
mkdir -p %{buildroot}%{python3_sitearch}/$name-%{version}-py%{python3_version}.egg-info
|
|
cp -p $name.egg-info/{PKG-INFO,not-zip-safe,top_level.txt} \
|
|
%{buildroot}%{python3_sitearch}/$name-%{version}-py%{python3_version}.egg-info/
|
|
done
|
|
|
|
# Fix all Python shebangs recursively
|
|
# -p preserves timestamps
|
|
# -n prevents creating ~backup files
|
|
# -i specifies the interpreter for the shebang
|
|
# Need to list files that do not match ^[a-zA-Z0-9_]+\.py$ explicitly!
|
|
%py3_shebang_fix %{buildroot}%{_bindir}/*
|
|
|
|
|
|
%check
|
|
# Do basic import test (even without the test bcond)
|
|
export LD_LIBRARY_PATH="%{buildroot}%{_libdir}"
|
|
%py3_check_import PySide2
|
|
%py3_check_import shiboken2
|
|
|
|
%if %{with tests}
|
|
export PYTHONPATH="%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}"
|
|
export PYTHONDONTWRITEBYTECODE=1
|
|
xvfb-run %{__python3} testrunner.py test
|
|
%endif
|
|
|
|
|
|
%files -n python3-%{pypi_name}
|
|
%license LICENSE.LGPLv3
|
|
%doc README.md
|
|
%{_libdir}/libpyside2*.so.5.15*
|
|
%{python3_sitearch}/%{camel_name}/
|
|
%{python3_sitearch}/%{camel_name}-%{version}-py%{python3_version}.egg-info/
|
|
|
|
%files -n python3-%{pypi_name}-devel
|
|
%{_datadir}/PySide2/
|
|
%{_includedir}/PySide2/
|
|
%{_libdir}/libpyside2*.so
|
|
%{_libdir}/cmake/PySide2*
|
|
%{_libdir}/pkgconfig/pyside2.pc
|
|
|
|
%files -n pyside2-tools
|
|
%doc README.pyside*
|
|
%license LICENSE.GPL2
|
|
%{_bindir}/pyside*
|
|
%{_mandir}/man1/pyside*.1*
|
|
|
|
%files -n shiboken2
|
|
%doc README.shiboken2-generator.md
|
|
%license LICENSE.GPLv3
|
|
%{_bindir}/shiboken2
|
|
%{_bindir}/shiboken_tool.py
|
|
|
|
%files -n python3-shiboken2
|
|
%doc README.shiboken2.md
|
|
%license LICENSE.LGPLv3
|
|
%{_libdir}/libshiboken2*.so.5.15*
|
|
%{python3_sitearch}/shiboken2/
|
|
%{python3_sitearch}/shiboken2-%{version}-py%{python3_version}.egg-info/
|
|
|
|
%files -n python3-shiboken2-devel
|
|
%doc README.shiboken2.md
|
|
%{_includedir}/shiboken2/
|
|
%{_libdir}/cmake/Shiboken2-%{version}/
|
|
%{_libdir}/libshiboken2*.so
|
|
%{_libdir}/pkgconfig/shiboken2.pc
|
|
%{python3_sitearch}/shiboken2_generator/
|
|
%{python3_sitearch}/shiboken2_generator-%{version}-py%{python3_version}.egg-info/
|
|
|
|
|
|
%changelog
|
|
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.15.7-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
|
|
* Thu Nov 24 2022 Richard Shaw <hobbes1069@gmail.com> - 1:5.15.7-1
|
|
- Update to 5.15.7.
|
|
|
|
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.15.2.1-7
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
|
|
* Thu Jul 14 2022 Jan Grulich <jgrulich@redhat.com> - 1:5.15.2.1-6
|
|
- Rebuild (qt5)
|
|
|
|
* Wed Jun 29 2022 Python Maint <python-maint@redhat.com> - 1:5.15.2.1-5
|
|
- Rebuilt for Python 3.11
|
|
- Build and run the test suite
|
|
|
|
* Tue May 17 2022 Jan Grulich <jgrulich@redhat.com> - 1:5.15.2.1-4
|
|
- Rebuild (qt5)
|
|
|
|
* Tue Mar 08 2022 Jan Grulich <jgrulich@redhat.com> - 1:5.15.2.1-3
|
|
- Rebuild (qt5)
|
|
|
|
* Wed Feb 02 2022 Richard Shaw <hobbes1069@gmail.com> - 1:5.15.2.1-2
|
|
- Add patch to deal with clang issue with headers.
|
|
|
|
* Mon Jan 31 2022 Richard Shaw <hobbes1069@gmail.com> - 1:5.15.2.1-1
|
|
- Update to 5.15.2.1, fixes BZ#1990768.
|
|
|
|
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.15.2-6
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
|
|
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.15.2-5
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
|
|
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1:5.15.2-4
|
|
- Rebuilt for Python 3.10
|
|
|
|
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.15.2-3
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
|
|
* Fri Jan 22 2021 Tom Stellard <tstellar@redhat.com> - 1:5.15.2-2
|
|
- Rebuild for clang-11.1.0
|
|
|
|
* Sat Nov 28 2020 Richard Shaw <hobbes1069@gmail.com> - 1:5.15.2-1
|
|
- Update to 5.15.2.
|
|
|
|
* Mon Nov 23 07:54:22 CET 2020 Jan Grulich <jgrulich@redhat.com> - 1:5.15.1-2
|
|
- rebuild (qt5)
|
|
|
|
* Thu Nov 05 2020 Richard Shaw <hobbes1069@gmail.com> - 1:5.15.1-1
|
|
- Update to 5.15.1.
|
|
- Update conditionals to support older Fedora and EPEL 8.
|
|
|
|
* Sat Sep 12 2020 Richard Shaw <hobbes1069@gmail.com> - 1:5.15.0-4
|
|
- Rebuild for Qt 5.15.
|
|
|
|
* Fri Sep 11 2020 Jan Grulich <jgrulich@redhat.com> - 1:5.15.0-4
|
|
- rebuild (qt5)
|
|
|
|
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.15.0-3
|
|
- Second attempt - Rebuilt for
|
|
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
|
|
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.15.0-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
|
|
* Thu Jun 18 2020 Marie Loise Nolden <loise@kde.org> - 1:5.15.0-1
|
|
- Update to 5.15.0.
|
|
- Convert Qt BRs to cmake(Qt5...) variant.
|
|
- Include new supported Qt5 modules.
|
|
|
|
* Wed May 27 2020 Richard Shaw <hobbes1069@gmail.com> - 1:5.14.2.2-1
|
|
- Update to 5.14.2.2.
|
|
|
|
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1:5.14.2.1-2
|
|
- Rebuilt for Python 3.9
|
|
|
|
* Fri Apr 24 2020 Richard Shaw <hobbes1069@gmail.com> - 1:5.14.2.1-1
|
|
- Update to 5.14.2.1.
|
|
|
|
* Fri Apr 10 2020 Richard Shaw <hobbes1069@gmail.com> - 1:5.14.2-1
|
|
- Update to 5.14.2.
|
|
|
|
* Thu Apr 09 2020 Morian Sonnet <MorianSonnet@googlemail.com> - 1:5.13.2-3
|
|
- Fix ignored --debug-level issue
|
|
|
|
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.13.2-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
|
|
* Fri Dec 13 2019 Richard Shaw <hobbes1069@gmail.com> - 1:5.13.2-1
|
|
- Update to 5.13.2.
|
|
|
|
* Mon Dec 09 2019 Jan Grulich <jgrulich@redhat.com> - 1:5.12.6-2
|
|
- rebuild (qt5)
|
|
|
|
* Fri Nov 22 2019 Richard Shaw <hobbes1069@gmail.com> - 1:5.12.6-1
|
|
- Update to 5.12.6.
|
|
|
|
* Wed Oct 09 2019 Rex Dieter <rdieter@fedoraproject.org> - 1:5.12.5-1.1
|
|
- branch rebuild (qt5)
|
|
|
|
* Mon Sep 30 2019 Richard Shaw <hobbes1069@gmail.com> - 1:5.12.5-1
|
|
- Downgrade to 5.12.5 as the MAJOR & MINOR versions must match Qt.
|
|
|
|
* Wed Sep 25 2019 Jan Grulich <jgrulich@redhat.com> - 5.13.1-2
|
|
- rebuild (qt5)
|
|
|
|
* Mon Sep 09 2019 Richard Shaw <hobbes1069@gmail.com> - 5.13.1-1
|
|
- Update to 5.13.1.
|
|
|
|
* Thu Aug 15 2019 Richard Shaw <hobbes1069@gmail.com> - 5.12.4-1
|
|
- Update to 5.12.4.
|
|
|
|
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.12.3-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
|
|
* Sun Jun 09 2019 Richard Shaw <hobbes1069@gmail.com> - 5.12.3-1
|
|
- Update to 5.12.3.
|
|
|
|
* Tue Jun 04 2019 Richard Shaw <hobbes1069@gmail.com> - 5.12.1-4
|
|
- Change python3-shiboken-libs to python3-shiboken.
|
|
|
|
* Tue Apr 23 2019 Richard Shaw <hobbes1069@gmail.com> - 5.12.1-3
|
|
- Update per review comments.
|
|
- Make library globs dependent on soname.
|
|
- Add explicit requires for skiboken2 on shiboken2-devel.
|
|
- Try to workaround qt5-qtwebengine not being available on ppc64le and s390x.
|
|
|
|
* Thu Apr 18 2019 Richard Shaw <hobbes1069@gmail.com> - 5.12.1-2
|
|
- Update spec per review request comments.
|
|
|
|
* Sat Mar 02 2019 Richard Shaw <hobbes1069@gmail.com> - 5.12.1-1
|
|
- Update to 5.12.1 now that the correct version of Qt5 is in Rawhide.
|
|
|
|
* Tue Feb 05 2019 Miro Hrončok <mhroncok@redhat.com> - 5.11.22-1
|
|
- Inital package
|