openSUSE:打包 PyQt 和 SIP

跳转到:导航搜索


打包 PyQt 和 SIP 指南概述了如何使用 PyQtSIP 框架为 openSUSE 和其他系统构建 Python 软件包,使用 openSUSE 构建服务

PyQt 是一组用于 Qt 框架的 Python 绑定。它使用 SIP 作为构建后端。SIP 是一种工具,可以轻松创建 C 和 C++ 库的 Python 绑定。

构建要求

使用 SIP v5 或 SIP v6 构建的软件包需要 python-sip-devel 包。

BuildRequires:  %{python_module sip-devel}

如果您的软件包依赖于已弃用的 SIP4,请使用 python-sip4-devel 包

BuildRequires:  %{python_module sip4-devel}

PyQt5 和 PyQt6 系列有一个专门的软件包,用于增强 SIP 构建系统

BuildRequires:  %{python_module pyqt-builder}

运行时要求

使用 SIP v4 的软件包历史上导入了已弃用的 Python 顶级模块 sip。为了确保二进制兼容性,sip4-devel 包提供了一个指定正确版本的宏

Requires:       python-sip(api) = %{python_sip_api_ver}

较新的软件包使用 Python 模块 PyQt5.sip 或 PyQt6.sip。它们作为单独的软件包提供,并且未固定到 PyQt ABI。

Requires:    python-qt5-sip

Requires:    python-PyQt6-sip

我们使用一组辅助宏来构建使用 SIP 的 PyQt 软件包。这些主要用于核心 PyQt 软件包,但对于其他基于 SIP 的软件也可能有用。

BuildRequires:  python-pyqt-rpm-macros

%define use_sip4 1

为需要 SIP v4 的发行版或软件包定义此项

%define pyqt_build_for_qt6 1

为针对 Qt6 构建定义此项。需要 SIP v6。

%sip4_only()%sip5_only()

如果仅为构建的子集定义了 %use_sip4,则仅对 SIP v4 或 SIP v5 构建应用参数。

%pyqt<N>_sipdir 用于 <N> 在 {4, 5, 6} 中

包含 .sip 绑定文件的目录的路径。


构建和安装

以下宏负责不同 Python 风格的构建目录调整。

%pyqt_build()

使用 SIP v4 或 SIP v5/v6(由 %use_sip4 定义)构建软件包的说明

选项

  • -c %{quote:--configure-parameters}:SIP v4 构建中用于 configure.py 的其他参数。
  • -v:对于“非标准”configure.py 是必需的:调用 configure.py --verbose 而不是标准的 configure -w
  • -s %{quote:--sip-build-parameters}:SIP v5 和 v6 sip-build 的其他参数。
  • -m %{quote:make_flags}make 的其他参数。

%pyqt_install

安装软件包的说明。对于 SIP v4,该宏还将 QScintilla API 文件和 SIP 绑定文件移动到特定于风格的路径名。PyQt[56] 插件也重命名为包含构建它们的 Python 风格,以避免文件冲突。

%pyqt_install_examples suffix

将示例子目录安装到 %_docdir/%python_prefix-suffix,并调整脚本解释器行(shebang)以使用正确的 Python 风格。