196 lines
6.8 KiB
RPMSpec
196 lines
6.8 KiB
RPMSpec
# SPDX-FileCopyrightText: (C) 2025 Institute of Software, Chinese Academy of Sciences (ISCAS)
|
|
# SPDX-FileCopyrightText: (C) 2025 openRuyi Project Contributors
|
|
# SPDX-FileContributor: yyjeqhc <jialin.oerv@isrc.iscas.ac.cn>
|
|
#
|
|
# SPDX-License-Identifier: MulanPSL-2.0
|
|
|
|
%global pypi_name pyside6
|
|
%global camel_name PySide6
|
|
%global qt6ver 6.10.1
|
|
|
|
%bcond doc 0
|
|
|
|
Name: python-%{pypi_name}
|
|
Version: 6.10.1
|
|
Release: %autorelease
|
|
Summary: Python bindings for the Qt 6 cross-platform application and UI framework
|
|
License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
URL: https://wiki.qt.io/Qt_for_Python
|
|
#!RemoteAsset
|
|
Source0: https://download.qt.io/official_releases/QtForPython/%{pypi_name}/%{camel_name}-%{qt6ver}-src/pyside-setup-everywhere-src-%{version}.tar.xz
|
|
BuildSystem: cmake
|
|
|
|
Patch0: 0001-Revert-Modify-headers-installation-for-CMake-builds.patch
|
|
Patch1: 0002-Always-link-to-python-libraries.patch
|
|
Patch2: 0003-Fix-installation.patch
|
|
|
|
BuildOption(conf): -DCMAKE_BUILD_TYPE=Release
|
|
BuildOption(conf): -DBUILD_TESTING=OFF
|
|
BuildOption(conf): -DBUILD_DOCS=OFF
|
|
BuildOption(conf): -DNO_QT_TOOLS=yes
|
|
BuildOption(conf): -DCMAKE_SKIP_INSTALL_RPATH=ON
|
|
BuildOption(conf): -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON
|
|
BuildOption(conf): -DFORCE_LIMITED_API=no
|
|
|
|
BuildRequires: cmake
|
|
BuildRequires: ninja
|
|
BuildRequires: gcc
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: git
|
|
BuildRequires: clang-devel
|
|
BuildRequires: llvm-devel
|
|
BuildRequires: pkgconfig(python3)
|
|
BuildRequires: python3-numpy
|
|
BuildRequires: python3-setuptools
|
|
BuildRequires: python3-wheel
|
|
BuildRequires: python3-packaging
|
|
BuildRequires: qt6-macros
|
|
BuildRequires: qt6-tools
|
|
BuildRequires: qt6-doctools
|
|
BuildRequires: pkgconfig(libffi)
|
|
BuildRequires: pkgconfig(libxslt)
|
|
BuildRequires: cmake(Qt6Core) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Gui) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Widgets) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Network) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6DBus) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Test) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Concurrent) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Sql) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Xml) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6PrintSupport) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6OpenGL) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6OpenGLWidgets) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Qml) >= %{qt6ver}
|
|
BuildRequires: cmake(Qt6Quick) >= %{qt6ver}
|
|
|
|
BuildRequires: cmake(Qt6UiPlugin) >= %{qt6ver}
|
|
BuildRequires: qt6-designer >= %{qt6ver}
|
|
|
|
%description
|
|
PySide6 is the official Python module from the Qt for Python project, which
|
|
provides access to the complete Qt 6+ framework.
|
|
|
|
%package -n python3-%{pypi_name}
|
|
Summary: %{summary}
|
|
Provides: python3-%{camel_name} = %{version}-%{release}
|
|
|
|
%description -n python3-%{pypi_name}
|
|
PySide6 Python module.
|
|
|
|
%package -n python3-%{pypi_name}-devel
|
|
Summary: Development files related to %{name}
|
|
Requires: pyside6-tools
|
|
Requires: shiboken6
|
|
|
|
%description -n python3-%{pypi_name}-devel
|
|
Development files for PySide6.
|
|
|
|
%package -n pyside6-tools
|
|
Summary: PySide6 tools for the Qt 6 framework
|
|
Requires: python3-%{pypi_name}
|
|
|
|
%description -n pyside6-tools
|
|
PySide6 tools.
|
|
|
|
%package -n shiboken6
|
|
Summary: Python / C++ bindings generator for %camel_name
|
|
|
|
%description -n shiboken6
|
|
Shiboken binding generator.
|
|
|
|
%package -n python3-shiboken6
|
|
Summary: Python / C++ bindings libraries for %camel_name
|
|
|
|
%description -n python3-shiboken6
|
|
Shiboken Python libraries.
|
|
|
|
%package -n python3-shiboken6-devel
|
|
Summary: Python / C++ bindings helper module for %camel_name
|
|
Requires: shiboken6
|
|
Requires: python3-shiboken6
|
|
|
|
%description -n python3-shiboken6-devel
|
|
Shiboken development files.
|
|
|
|
%prep -a
|
|
sed -i 's#${base}/../shiboken6/##' sources/pyside6/CMakeLists.txt
|
|
|
|
%install -a
|
|
cp -r %{_vpath_builddir}/sources/shiboken6/shibokenmodule/{*.py,*.txt} sources/shiboken6/shibokenmodule/
|
|
cp -r %{_vpath_builddir}/sources/pyside6/PySide6/*.py sources/pyside6/PySide6/
|
|
|
|
%{__python3} setup.py --qtpaths=/usr/%{_lib}/qt6/bin/qtpaths install_scripts --install-dir=%{buildroot}%{_bindir}
|
|
|
|
for name in PySide6 shiboken6 shiboken6_generator; do
|
|
mkdir -p %{buildroot}%{python3_sitearch}/$name-%{version}-py%{python3_version}.egg-info
|
|
cp -p $name.egg-info/{PKG-INFO,top_level.txt} \
|
|
%{buildroot}%{python3_sitearch}/$name-%{version}-py%{python3_version}.egg-info/
|
|
if [ -f $name.egg-info/entry_points.txt ]; then
|
|
cp -p $name.egg-info/entry_points.txt %{buildroot}%{python3_sitearch}/$name-%{version}-py%{python3_version}.egg-info/
|
|
fi
|
|
done
|
|
|
|
mkdir -p %{buildroot}%{python3_sitelib}/%{camel_name}/Qt/libexec
|
|
ln -sf %{_libexecdir}/qt6/{rcc,uic} %{buildroot}%{python3_sitelib}/%{camel_name}/Qt/libexec
|
|
ln -sf %{_bindir}/{lrelease,lupdate} %{buildroot}%{python3_sitelib}/%{camel_name}
|
|
|
|
mkdir -p %{buildroot}%{python3_sitelib}/%{camel_name}/scripts
|
|
mv %{buildroot}%{_bindir}/{pyside_tool.py,project.py} %{buildroot}%{python3_sitelib}/%{camel_name}/scripts || :
|
|
|
|
mkdir -p %{buildroot}%{python3_sitelib}/shiboken6_generator/scripts
|
|
mv %{buildroot}%{_bindir}/shiboken_tool.py %{buildroot}%{python3_sitelib}/shiboken6_generator/scripts || :
|
|
|
|
if [ -f %{_vpath_builddir}/sources/shiboken6/generator/shiboken6 ]; then
|
|
mv %{_vpath_builddir}/sources/shiboken6/generator/shiboken6 %{buildroot}%{python3_sitelib}/shiboken6_generator
|
|
fi
|
|
|
|
sed -i 's#/typesystems#/share/PySide6/typesystems#g' %{buildroot}%{_libdir}/cmake/PySide6/*.cmake
|
|
sed -i 's#/glue#/share/PySide6/glue#g' %{buildroot}%{_libdir}/cmake/PySide6/*.cmake
|
|
|
|
%py3_shebang_fix %{buildroot}%{python3_sitelib}/%{camel_name}/scripts
|
|
%py3_shebang_fix %{buildroot}%{python3_sitelib}/shiboken6_generator/scripts
|
|
|
|
%check
|
|
export LD_LIBRARY_PATH="%{buildroot}%{_libdir}"
|
|
%py3_check_import PySide6
|
|
%py3_check_import shiboken6
|
|
|
|
%files -n python3-%{pypi_name}
|
|
%license LICENSES/*
|
|
%{_libdir}/libpyside6*.so.6*
|
|
%{python3_sitelib}/%{camel_name}/
|
|
%{python3_sitearch}/%{camel_name}-%{version}-py%{python3_version}.egg-info/
|
|
|
|
%files -n python3-%{pypi_name}-devel
|
|
%{_datadir}/PySide6/
|
|
%{_includedir}/PySide6/
|
|
%{_libdir}/libpyside6*.so
|
|
%{_libdir}/libpyside6remoteobjects.a
|
|
%{_libdir}/cmake/PySide6*
|
|
%{_libdir}/pkgconfig/pyside6.pc
|
|
|
|
%files -n pyside6-tools
|
|
%{_bindir}/pyside*
|
|
%{_libdir}/qt6/plugins/designer/libPySidePlugin.so
|
|
|
|
%files -n shiboken6
|
|
%{_libdir}/cmake/Shiboken6Tools/*
|
|
|
|
%files -n python3-shiboken6
|
|
%{_libdir}/libshiboken6*.so.6*
|
|
%{python3_sitelib}/shiboken6/
|
|
%{python3_sitearch}/shiboken6-%{version}-py%{python3_version}.egg-info/
|
|
|
|
%files -n python3-shiboken6-devel
|
|
%{_bindir}/shiboken6*
|
|
%{_includedir}/shiboken6/
|
|
%{_libdir}/cmake/Shiboken6/
|
|
%{_libdir}/libshiboken6*.so
|
|
%{_libdir}/pkgconfig/shiboken6.pc
|
|
%{python3_sitelib}/shiboken6_generator/
|
|
%{python3_sitearch}/shiboken6_generator-%{version}-py%{python3_version}.egg-info/
|
|
|
|
%changelog
|
|
%{?autochangelog}
|