# topdir: python-cmd2-4.3.1 (set via tar --transform to Name-Version) # Build path: 方案 pip (setuptools.build_meta backend, no setup.py present) # Patch0 removes setuptools-scm (build-system tool not in openEuler repos) and # pins static version=4.3.1 to avoid git-tag-based version inference in build env. # Patch1 converts PEP 639 SPDX license string (`license = "MIT"`) to PEP 621 # table form (`license = {text = "MIT"}`) for setuptools 68.0.0 compatibility. # The install section uses pip3 install --no-deps (runtime deps declared via # Requires/BR, not resolved by pip from the local wheels dir). %global pypi_name cmd2 Name: python-%{pypi_name} Version: 4.3.1 Release: 4%{?dist} Summary: Tool for building powerful, feature-rich, and user-friendly interactive command line applications License: MIT URL: https://github.com/python-cmd2/cmd2 Source0: %{url}/archive/refs/tags/%{version}/%{name}-%{version}.tar.gz Patch0: no-setuptools-scm.patch Patch1: fix-pyproject-license.patch BuildArch: noarch %description cmd2 is a tool for building powerful, feature-rich, and user-friendly interactive command line applications in Python. It extends the standard library's cmd.Cmd with argument parsing, generated help, tab completion, command history, scripting, output styling, and more. %package -n python3-%{pypi_name} Summary: Tool for building powerful, feature-rich, and user-friendly interactive command line applications Provides: python-%{pypi_name} Provides: python3dist(%{pypi_name}) = %{version} BuildRequires: python3-devel BuildRequires: python3-pip BuildRequires: python3-setuptools BuildRequires: python3-wheel # Runtime deps also as BuildRequires so they are present in the buildroot # for the check section (import cmd2 pulls prompt_toolkit/pyperclip/rich/rich_argparse). BuildRequires: python3-prompt-toolkit >= 3.0.53 BuildRequires: python3-pyperclip >= 1.8.2 BuildRequires: python3-rich >= 15.0.0 BuildRequires: python3-rich-argparse >= 1.7.2 Requires: python3-prompt-toolkit >= 3.0.53 Requires: python3-pyperclip >= 1.8.2 Requires: python3-rich >= 15.0.0 Requires: python3-rich-argparse >= 1.7.2 %description -n python3-%{pypi_name} cmd2 is a tool for building powerful, feature-rich, and user-friendly interactive command line applications in Python. It extends the standard library's cmd.Cmd with argument parsing, generated help, tab completion, command history, scripting, output styling, and more. %package help Summary: Development documents and examples for %{pypi_name} Requires: python3-%{pypi_name} Provides: python3-%{pypi_name}-doc %description help cmd2 is a tool for building powerful, feature-rich, and user-friendly interactive command line applications in Python. This package provides development documents and examples for cmd2. %prep %autosetup -n %{name}-%{version} -p1 %build pip3 wheel --no-build-isolation --no-deps --wheel-dir %{_builddir}/wheels . %install pip3 install --no-build-isolation --no-index --no-deps \ --find-links %{_builddir}/wheels \ --root %{buildroot} --prefix /usr \ %{pypi_name}==%{version} %check python3 -c "import cmd2" %files -n python3-%{pypi_name} %license LICENSE %{python3_sitelib}/cmd2/ %{python3_sitelib}/cmd2-%{version}*.dist-info/ %files help %doc README.md CHANGELOG.md %license LICENSE %changelog * Wed Oct 28 2026 Python_Bot - 4.3.1-4 - Replace undefined macro in check section: %{python3} -> python3 (the %{python3} macro is not defined in openEuler 24.03 build env, unlike %{__python3} and %{python3_sitelib} which are defined; unexpanded %{python3} literal caused "fg: no job control" shell error) * Wed Oct 28 2026 Python_Bot - 4.3.1-3 - Add --no-deps to the pip3 install in install section so pip does not try to resolve runtime deps (prompt-toolkit>=3.0.53 etc.) from the local wheels dir - Add runtime deps as BuildRequires so the check section (import cmd2) succeeds in buildroot * Wed Oct 28 2026 Python_Bot - 4.3.1-2 - Add Patch1 to convert PEP 639 license string to PEP 621 table form for setuptools 68.0.0 compatibility * Wed Oct 28 2026 Python_Bot - 4.3.1-1 - Initial package