%global _trivial .0 %global _buildid .1 %global python3_version 3.14 %global _venv_name python3.14-bootstrap-bundle-venv %global _venv_install_path %{_datadir}/%{name}/%{_venv_name} # Venv creation path used during the Venv tarball generation (for shebang patching) #global _venv_build_path /build/builddir/BUILD/%{_venv_name} Name: python%{python3_version}-bootstrap-bundle Version: 1.0 Release: 6%{dist}%{?_trivial}%{?_buildid} Summary: A self-contained, architecture-specific environment for building Python 3.14 core ecosystem. License: MIT and various (from bundled packages) BuildArch: %{_arch} # Source0: x86_64 Venv tarball Source0: python%{python3_version}-bootstrap-bundle-x86_64.tar.gz # Source1: aarch64 Venv tarball Source1: python%{python3_version}-bootstrap-bundle-aarch64.tar.gz Source2: generate_venv_provides.py Source3: macros.zzz-python314-default Source4: pathfix.py Source5: pip-25.2-py3-none-any.whl Source6: setuptools-79.0.1-py3-none-any.whl BuildRequires: python%{python3_version} Requires: python%{python3_version} Provides: python-pip-wheel Provides: python-setuptools-wheel Provides: python-pip-wheel = 25.2 Provides: python-setuptools-wheel = 79.0.1 Provides: python3-alabaster = 1.0.0 Provides: python3.14-alabaster = 1.0.0 Provides: python3dist(alabaster) = 1.0.0 Provides: python3.14dist(alabaster) = 1.0.0 Provides: python3-autocommand = 2.2.2 Provides: python3.14-autocommand = 2.2.2 Provides: python3dist(autocommand) = 2.2.2 Provides: python3.14dist(autocommand) = 2.2.2 Provides: python3-babel = 2.17.0 Provides: python3.14-babel = 2.17.0 Provides: python3dist(babel) = 2.17.0 Provides: python3.14dist(babel) = 2.17.0 Provides: python3dist(babel[dev]) = 2.17.0 Provides: python3.14dist(babel[dev]) = 2.17.0 Provides: python3-backports-tarfile = 1.2.0 Provides: python3.14-backports-tarfile = 1.2.0 Provides: python3dist(backports-tarfile) = 1.2.0 Provides: python3.14dist(backports-tarfile) = 1.2.0 Provides: python3dist(backports-tarfile[docs]) = 1.2.0 Provides: python3.14dist(backports-tarfile[docs]) = 1.2.0 Provides: python3dist(backports-tarfile[testing]) = 1.2.0 Provides: python3.14dist(backports-tarfile[testing]) = 1.2.0 Provides: python3-build = 1.3.0 Provides: python3.14-build = 1.3.0 Provides: python3dist(build) = 1.3.0 Provides: python3.14dist(build) = 1.3.0 Provides: python3dist(build[uv]) = 1.3.0 Provides: python3.14dist(build[uv]) = 1.3.0 Provides: python3dist(build[virtualenv]) = 1.3.0 Provides: python3.14dist(build[virtualenv]) = 1.3.0 Provides: python3-cachetools = 6.2.2 Provides: python3.14-cachetools = 6.2.2 Provides: python3dist(cachetools) = 6.2.2 Provides: python3.14dist(cachetools) = 6.2.2 Provides: python3-certifi = 2025.11.12 Provides: python3.14-certifi = 2025.11.12 Provides: python3dist(certifi) = 2025.11.12 Provides: python3.14dist(certifi) = 2025.11.12 Provides: python3-chardet = 5.2.0 Provides: python3.14-chardet = 5.2.0 Provides: python3dist(chardet) = 5.2.0 Provides: python3.14dist(chardet) = 5.2.0 Provides: python3-charset-normalizer = 3.4.4 Provides: python3.14-charset-normalizer = 3.4.4 Provides: python3dist(charset-normalizer) = 3.4.4 Provides: python3.14dist(charset-normalizer) = 3.4.4 Provides: python3dist(charset-normalizer[unicode-backport]) = 3.4.4 Provides: python3.14dist(charset-normalizer[unicode-backport]) = 3.4.4 Provides: python3-click = 8.3.1 Provides: python3.14-click = 8.3.1 Provides: python3dist(click) = 8.3.1 Provides: python3.14dist(click) = 8.3.1 Provides: python3-colorama = 0.4.6 Provides: python3.14-colorama = 0.4.6 Provides: python3dist(colorama) = 0.4.6 Provides: python3.14dist(colorama) = 0.4.6 Provides: python3-coverage = 7.12.0 Provides: python3.14-coverage = 7.12.0 Provides: python3dist(coverage) = 7.12.0 Provides: python3.14dist(coverage) = 7.12.0 Provides: python3dist(coverage[toml]) = 7.12.0 Provides: python3.14dist(coverage[toml]) = 7.12.0 Provides: python3-distlib = 0.4.0 Provides: python3.14-distlib = 0.4.0 Provides: python3dist(distlib) = 0.4.0 Provides: python3.14dist(distlib) = 0.4.0 Provides: python3-docutils = 0.21.2 Provides: python3.14-docutils = 0.21.2 Provides: python3dist(docutils) = 0.21.2 Provides: python3.14dist(docutils) = 0.21.2 Provides: python3-editables = 0.5 Provides: python3.14-editables = 0.5 Provides: python3dist(editables) = 0.5 Provides: python3.14dist(editables) = 0.5 Provides: python3-execnet = 2.1.2 Provides: python3.14-execnet = 2.1.2 Provides: python3dist(execnet) = 2.1.2 Provides: python3.14dist(execnet) = 2.1.2 Provides: python3dist(execnet[testing]) = 2.1.2 Provides: python3.14dist(execnet[testing]) = 2.1.2 Provides: python3-filelock = 3.20.0 Provides: python3.14-filelock = 3.20.0 Provides: python3dist(filelock) = 3.20.0 Provides: python3.14dist(filelock) = 3.20.0 Provides: python3-flit-core = 3.12.0 Provides: python3.14-flit-core = 3.12.0 Provides: python3dist(flit-core) = 3.12.0 Provides: python3.14dist(flit-core) = 3.12.0 Provides: python3-hatch-fancy-pypi-readme = 25.1.0 Provides: python3.14-hatch-fancy-pypi-readme = 25.1.0 Provides: python3dist(hatch-fancy-pypi-readme) = 25.1.0 Provides: python3.14dist(hatch-fancy-pypi-readme) = 25.1.0 Provides: python3dist(hatch-fancy-pypi-readme[dev]) = 25.1.0 Provides: python3.14dist(hatch-fancy-pypi-readme[dev]) = 25.1.0 Provides: python3dist(hatch-fancy-pypi-readme[tests]) = 25.1.0 Provides: python3.14dist(hatch-fancy-pypi-readme[tests]) = 25.1.0 Provides: python3-hatch-vcs = 0.5.0 Provides: python3.14-hatch-vcs = 0.5.0 Provides: python3dist(hatch-vcs) = 0.5.0 Provides: python3.14dist(hatch-vcs) = 0.5.0 Provides: python3-hatchling = 1.27.0 Provides: python3.14-hatchling = 1.27.0 Provides: python3dist(hatchling) = 1.27.0 Provides: python3.14dist(hatchling) = 1.27.0 Provides: python3-idna = 3.11 Provides: python3.14-idna = 3.11 Provides: python3dist(idna) = 3.11 Provides: python3.14dist(idna) = 3.11 Provides: python3dist(idna[all]) = 3.11 Provides: python3.14dist(idna[all]) = 3.11 Provides: python3-imagesize = 1.4.1 Provides: python3.14-imagesize = 1.4.1 Provides: python3dist(imagesize) = 1.4.1 Provides: python3.14dist(imagesize) = 1.4.1 Provides: python3-importlib-metadata = 8.0.0 Provides: python3.14-importlib-metadata = 8.0.0 Provides: python3dist(importlib-metadata) = 8.0.0 Provides: python3.14dist(importlib-metadata) = 8.0.0 Provides: python3dist(importlib-metadata[doc]) = 8.0.0 Provides: python3.14dist(importlib-metadata[doc]) = 8.0.0 Provides: python3dist(importlib-metadata[perf]) = 8.0.0 Provides: python3.14dist(importlib-metadata[perf]) = 8.0.0 Provides: python3dist(importlib-metadata[test]) = 8.0.0 Provides: python3.14dist(importlib-metadata[test]) = 8.0.0 Provides: python3-inflect = 7.3.1 Provides: python3.14-inflect = 7.3.1 Provides: python3dist(inflect) = 7.3.1 Provides: python3.14dist(inflect) = 7.3.1 Provides: python3dist(inflect[doc]) = 7.3.1 Provides: python3.14dist(inflect[doc]) = 7.3.1 Provides: python3dist(inflect[test]) = 7.3.1 Provides: python3.14dist(inflect[test]) = 7.3.1 Provides: python3-ini2toml = 0.15 Provides: python3.14-ini2toml = 0.15 Provides: python3dist(ini2toml) = 0.15 Provides: python3.14dist(ini2toml) = 0.15 Provides: python3dist(ini2toml[all]) = 0.15 Provides: python3.14dist(ini2toml[all]) = 0.15 Provides: python3dist(ini2toml[experimental]) = 0.15 Provides: python3.14dist(ini2toml[experimental]) = 0.15 Provides: python3dist(ini2toml[full]) = 0.15 Provides: python3.14dist(ini2toml[full]) = 0.15 Provides: python3dist(ini2toml[lite]) = 0.15 Provides: python3.14dist(ini2toml[lite]) = 0.15 Provides: python3dist(ini2toml[testing]) = 0.15 Provides: python3.14dist(ini2toml[testing]) = 0.15 Provides: python3dist(ini2toml[typechecking]) = 0.15 Provides: python3.14dist(ini2toml[typechecking]) = 0.15 Provides: python3-iniconfig = 2.3.0 Provides: python3.14-iniconfig = 2.3.0 Provides: python3dist(iniconfig) = 2.3.0 Provides: python3.14dist(iniconfig) = 2.3.0 Provides: python3-installer = 0.7.0 Provides: python3.14-installer = 0.7.0 Provides: python3dist(installer) = 0.7.0 Provides: python3.14dist(installer) = 0.7.0 Provides: python3-jaraco-collections = 5.1.0 Provides: python3.14-jaraco-collections = 5.1.0 Provides: python3dist(jaraco-collections) = 5.1.0 Provides: python3.14dist(jaraco-collections) = 5.1.0 Provides: python3dist(jaraco-collections[check]) = 5.1.0 Provides: python3.14dist(jaraco-collections[check]) = 5.1.0 Provides: python3dist(jaraco-collections[cover]) = 5.1.0 Provides: python3.14dist(jaraco-collections[cover]) = 5.1.0 Provides: python3dist(jaraco-collections[doc]) = 5.1.0 Provides: python3.14dist(jaraco-collections[doc]) = 5.1.0 Provides: python3dist(jaraco-collections[enabler]) = 5.1.0 Provides: python3.14dist(jaraco-collections[enabler]) = 5.1.0 Provides: python3dist(jaraco-collections[test]) = 5.1.0 Provides: python3.14dist(jaraco-collections[test]) = 5.1.0 Provides: python3dist(jaraco-collections[type]) = 5.1.0 Provides: python3.14dist(jaraco-collections[type]) = 5.1.0 Provides: python3-jaraco-context = 5.3.0 Provides: python3.14-jaraco-context = 5.3.0 Provides: python3dist(jaraco-context) = 5.3.0 Provides: python3.14dist(jaraco-context) = 5.3.0 Provides: python3dist(jaraco-context[docs]) = 5.3.0 Provides: python3.14dist(jaraco-context[docs]) = 5.3.0 Provides: python3dist(jaraco-context[testing]) = 5.3.0 Provides: python3.14dist(jaraco-context[testing]) = 5.3.0 Provides: python3-jaraco-envs = 2.6.0 Provides: python3.14-jaraco-envs = 2.6.0 Provides: python3dist(jaraco-envs) = 2.6.0 Provides: python3.14dist(jaraco-envs) = 2.6.0 Provides: python3dist(jaraco-envs[docs]) = 2.6.0 Provides: python3.14dist(jaraco-envs[docs]) = 2.6.0 Provides: python3dist(jaraco-envs[testing]) = 2.6.0 Provides: python3.14dist(jaraco-envs[testing]) = 2.6.0 Provides: python3-jaraco-functools = 4.0.1 Provides: python3.14-jaraco-functools = 4.0.1 Provides: python3dist(jaraco-functools) = 4.0.1 Provides: python3.14dist(jaraco-functools) = 4.0.1 Provides: python3dist(jaraco-functools[docs]) = 4.0.1 Provides: python3.14dist(jaraco-functools[docs]) = 4.0.1 Provides: python3dist(jaraco-functools[testing]) = 4.0.1 Provides: python3.14dist(jaraco-functools[testing]) = 4.0.1 Provides: python3-jaraco-path = 3.7.2 Provides: python3.14-jaraco-path = 3.7.2 Provides: python3dist(jaraco-path) = 3.7.2 Provides: python3.14dist(jaraco-path) = 3.7.2 Provides: python3dist(jaraco-path[check]) = 3.7.2 Provides: python3.14dist(jaraco-path[check]) = 3.7.2 Provides: python3dist(jaraco-path[cover]) = 3.7.2 Provides: python3.14dist(jaraco-path[cover]) = 3.7.2 Provides: python3dist(jaraco-path[doc]) = 3.7.2 Provides: python3.14dist(jaraco-path[doc]) = 3.7.2 Provides: python3dist(jaraco-path[enabler]) = 3.7.2 Provides: python3.14dist(jaraco-path[enabler]) = 3.7.2 Provides: python3dist(jaraco-path[test]) = 3.7.2 Provides: python3.14dist(jaraco-path[test]) = 3.7.2 Provides: python3dist(jaraco-path[type]) = 3.7.2 Provides: python3.14dist(jaraco-path[type]) = 3.7.2 Provides: python3-jaraco-test = 5.5.1 Provides: python3.14-jaraco-test = 5.5.1 Provides: python3dist(jaraco-test) = 5.5.1 Provides: python3.14dist(jaraco-test) = 5.5.1 Provides: python3dist(jaraco-test[check]) = 5.5.1 Provides: python3.14dist(jaraco-test[check]) = 5.5.1 Provides: python3dist(jaraco-test[cover]) = 5.5.1 Provides: python3.14dist(jaraco-test[cover]) = 5.5.1 Provides: python3dist(jaraco-test[doc]) = 5.5.1 Provides: python3.14dist(jaraco-test[doc]) = 5.5.1 Provides: python3dist(jaraco-test[enabler]) = 5.5.1 Provides: python3.14dist(jaraco-test[enabler]) = 5.5.1 Provides: python3dist(jaraco-test[test]) = 5.5.1 Provides: python3.14dist(jaraco-test[test]) = 5.5.1 Provides: python3dist(jaraco-test[type]) = 5.5.1 Provides: python3.14dist(jaraco-test[type]) = 5.5.1 Provides: python3-jaraco-text = 3.12.1 Provides: python3.14-jaraco-text = 3.12.1 Provides: python3dist(jaraco-text) = 3.12.1 Provides: python3.14dist(jaraco-text) = 3.12.1 Provides: python3dist(jaraco-text[doc]) = 3.12.1 Provides: python3.14dist(jaraco-text[doc]) = 3.12.1 Provides: python3dist(jaraco-text[test]) = 3.12.1 Provides: python3.14dist(jaraco-text[test]) = 3.12.1 Provides: python3-jinja2 = 3.1.6 Provides: python3.14-jinja2 = 3.1.6 Provides: python3dist(jinja2) = 3.1.6 Provides: python3.14dist(jinja2) = 3.1.6 Provides: python3dist(jinja2[i18n]) = 3.1.6 Provides: python3.14dist(jinja2[i18n]) = 3.1.6 Provides: python3-markupsafe = 3.0.3 Provides: python3.14-markupsafe = 3.0.3 Provides: python3dist(markupsafe) = 3.0.3 Provides: python3.14dist(markupsafe) = 3.0.3 Provides: python3-more-itertools = 10.3.0 Provides: python3.14-more-itertools = 10.3.0 Provides: python3dist(more-itertools) = 10.3.0 Provides: python3.14dist(more-itertools) = 10.3.0 Provides: python3-ordered-set = 4.1.0 Provides: python3.14-ordered-set = 4.1.0 Provides: python3dist(ordered-set) = 4.1.0 Provides: python3.14dist(ordered-set) = 4.1.0 Provides: python3dist(ordered-set[dev]) = 4.1.0 Provides: python3.14dist(ordered-set[dev]) = 4.1.0 Provides: python3-packaging = 24.2 Provides: python3.14-packaging = 24.2 Provides: python3dist(packaging) = 24.2 Provides: python3.14dist(packaging) = 24.2 Provides: python3-path = 17.1.1 Provides: python3.14-path = 17.1.1 Provides: python3dist(path) = 17.1.1 Provides: python3.14dist(path) = 17.1.1 Provides: python3dist(path[check]) = 17.1.1 Provides: python3.14dist(path[check]) = 17.1.1 Provides: python3dist(path[cover]) = 17.1.1 Provides: python3.14dist(path[cover]) = 17.1.1 Provides: python3dist(path[doc]) = 17.1.1 Provides: python3.14dist(path[doc]) = 17.1.1 Provides: python3dist(path[enabler]) = 17.1.1 Provides: python3.14dist(path[enabler]) = 17.1.1 Provides: python3dist(path[test]) = 17.1.1 Provides: python3.14dist(path[test]) = 17.1.1 Provides: python3dist(path[type]) = 17.1.1 Provides: python3.14dist(path[type]) = 17.1.1 Provides: python3-pathspec = 0.12.1 Provides: python3.14-pathspec = 0.12.1 Provides: python3dist(pathspec) = 0.12.1 Provides: python3.14dist(pathspec) = 0.12.1 Provides: python3-pdm-backend = 2.4.6 Provides: python3.14-pdm-backend = 2.4.6 Provides: python3dist(pdm-backend) = 2.4.6 Provides: python3.14dist(pdm-backend) = 2.4.6 Provides: python3-pip = 25.3 Provides: python3.14-pip = 25.3 Provides: python3dist(pip) = 25.3 Provides: python3.14dist(pip) = 25.3 Provides: python3-platformdirs = 4.2.2 Provides: python3.14-platformdirs = 4.2.2 Provides: python3dist(platformdirs) = 4.2.2 Provides: python3.14dist(platformdirs) = 4.2.2 Provides: python3dist(platformdirs[docs]) = 4.2.2 Provides: python3.14dist(platformdirs[docs]) = 4.2.2 Provides: python3dist(platformdirs[test]) = 4.2.2 Provides: python3.14dist(platformdirs[test]) = 4.2.2 Provides: python3dist(platformdirs[type]) = 4.2.2 Provides: python3.14dist(platformdirs[type]) = 4.2.2 Provides: python3-pluggy = 1.6.0 Provides: python3.14-pluggy = 1.6.0 Provides: python3dist(pluggy) = 1.6.0 Provides: python3.14dist(pluggy) = 1.6.0 Provides: python3dist(pluggy[dev]) = 1.6.0 Provides: python3.14dist(pluggy[dev]) = 1.6.0 Provides: python3dist(pluggy[testing]) = 1.6.0 Provides: python3.14dist(pluggy[testing]) = 1.6.0 Provides: python3-poetry-core = 2.2.1 Provides: python3.14-poetry-core = 2.2.1 Provides: python3dist(poetry-core) = 2.2.1 Provides: python3.14dist(poetry-core) = 2.2.1 Provides: python3-pretend = 1.0.9 Provides: python3.14-pretend = 1.0.9 Provides: python3dist(pretend) = 1.0.9 Provides: python3.14dist(pretend) = 1.0.9 Provides: python3-pygments = 2.19.2 Provides: python3.14-pygments = 2.19.2 Provides: python3dist(pygments) = 2.19.2 Provides: python3.14dist(pygments) = 2.19.2 Provides: python3dist(pygments[plugins]) = 2.19.2 Provides: python3.14dist(pygments[plugins]) = 2.19.2 Provides: python3dist(pygments[windows-terminal]) = 2.19.2 Provides: python3.14dist(pygments[windows-terminal]) = 2.19.2 Provides: python3-pyparsing = 3.2.5 Provides: python3.14-pyparsing = 3.2.5 Provides: python3dist(pyparsing) = 3.2.5 Provides: python3.14dist(pyparsing) = 3.2.5 Provides: python3dist(pyparsing[diagrams]) = 3.2.5 Provides: python3.14dist(pyparsing[diagrams]) = 3.2.5 Provides: python3-pyproject-api = 1.10.0 Provides: python3.14-pyproject-api = 1.10.0 Provides: python3dist(pyproject-api) = 1.10.0 Provides: python3.14dist(pyproject-api) = 1.10.0 Provides: python3dist(pyproject-api[docs]) = 1.10.0 Provides: python3.14dist(pyproject-api[docs]) = 1.10.0 Provides: python3dist(pyproject-api[testing]) = 1.10.0 Provides: python3.14dist(pyproject-api[testing]) = 1.10.0 Provides: python3-pyproject-hooks = 1.2.0 Provides: python3.14-pyproject-hooks = 1.2.0 Provides: python3dist(pyproject-hooks) = 1.2.0 Provides: python3.14dist(pyproject-hooks) = 1.2.0 Provides: python3-pytest = 9.0.1 Provides: python3.14-pytest = 9.0.1 Provides: python3dist(pytest) = 9.0.1 Provides: python3.14dist(pytest) = 9.0.1 Provides: python3dist(pytest[dev]) = 9.0.1 Provides: python3.14dist(pytest[dev]) = 9.0.1 Provides: python3-pytest-asyncio = 1.3.0 Provides: python3.14-pytest-asyncio = 1.3.0 Provides: python3dist(pytest-asyncio) = 1.3.0 Provides: python3.14dist(pytest-asyncio) = 1.3.0 Provides: python3dist(pytest-asyncio[docs]) = 1.3.0 Provides: python3.14dist(pytest-asyncio[docs]) = 1.3.0 Provides: python3dist(pytest-asyncio[testing]) = 1.3.0 Provides: python3.14dist(pytest-asyncio[testing]) = 1.3.0 Provides: python3-pytest-cov = 7.0.0 Provides: python3.14-pytest-cov = 7.0.0 Provides: python3dist(pytest-cov) = 7.0.0 Provides: python3.14dist(pytest-cov) = 7.0.0 Provides: python3dist(pytest-cov[testing]) = 7.0.0 Provides: python3.14dist(pytest-cov[testing]) = 7.0.0 Provides: python3-pytest-home = 0.6.0 Provides: python3.14-pytest-home = 0.6.0 Provides: python3dist(pytest-home) = 0.6.0 Provides: python3.14dist(pytest-home) = 0.6.0 Provides: python3dist(pytest-home[doc]) = 0.6.0 Provides: python3.14dist(pytest-home[doc]) = 0.6.0 Provides: python3dist(pytest-home[test]) = 0.6.0 Provides: python3.14dist(pytest-home[test]) = 0.6.0 Provides: python3-pytest-html = 4.1.1 Provides: python3.14-pytest-html = 4.1.1 Provides: python3dist(pytest-html) = 4.1.1 Provides: python3.14dist(pytest-html) = 4.1.1 Provides: python3dist(pytest-html[docs]) = 4.1.1 Provides: python3.14dist(pytest-html[docs]) = 4.1.1 Provides: python3dist(pytest-html[test]) = 4.1.1 Provides: python3.14dist(pytest-html[test]) = 4.1.1 Provides: python3-pytest-metadata = 3.1.1 Provides: python3.14-pytest-metadata = 3.1.1 Provides: python3dist(pytest-metadata) = 3.1.1 Provides: python3.14dist(pytest-metadata) = 3.1.1 Provides: python3dist(pytest-metadata[test]) = 3.1.1 Provides: python3.14dist(pytest-metadata[test]) = 3.1.1 Provides: python3-pytest-mock = 3.15.1 Provides: python3.14-pytest-mock = 3.15.1 Provides: python3dist(pytest-mock) = 3.15.1 Provides: python3.14dist(pytest-mock) = 3.15.1 Provides: python3dist(pytest-mock[dev]) = 3.15.1 Provides: python3.14dist(pytest-mock[dev]) = 3.15.1 Provides: python3-pytest-rerunfailures = 16.1 Provides: python3.14-pytest-rerunfailures = 16.1 Provides: python3dist(pytest-rerunfailures) = 16.1 Provides: python3.14dist(pytest-rerunfailures) = 16.1 Provides: python3-pytest-subprocess = 1.5.3 Provides: python3.14-pytest-subprocess = 1.5.3 Provides: python3dist(pytest-subprocess) = 1.5.3 Provides: python3.14dist(pytest-subprocess) = 1.5.3 Provides: python3dist(pytest-subprocess[dev]) = 1.5.3 Provides: python3.14dist(pytest-subprocess[dev]) = 1.5.3 Provides: python3dist(pytest-subprocess[docs]) = 1.5.3 Provides: python3.14dist(pytest-subprocess[docs]) = 1.5.3 Provides: python3dist(pytest-subprocess[test]) = 1.5.3 Provides: python3.14dist(pytest-subprocess[test]) = 1.5.3 Provides: python3-pytest-timeout = 2.4.0 Provides: python3.14-pytest-timeout = 2.4.0 Provides: python3dist(pytest-timeout) = 2.4.0 Provides: python3.14dist(pytest-timeout) = 2.4.0 Provides: python3-pytest-xdist = 3.8.0 Provides: python3.14-pytest-xdist = 3.8.0 Provides: python3dist(pytest-xdist) = 3.8.0 Provides: python3.14dist(pytest-xdist) = 3.8.0 Provides: python3dist(pytest-xdist[psutil]) = 3.8.0 Provides: python3.14dist(pytest-xdist[psutil]) = 3.8.0 Provides: python3dist(pytest-xdist[setproctitle]) = 3.8.0 Provides: python3.14dist(pytest-xdist[setproctitle]) = 3.8.0 Provides: python3dist(pytest-xdist[testing]) = 3.8.0 Provides: python3.14dist(pytest-xdist[testing]) = 3.8.0 Provides: python3-requests = 2.32.5 Provides: python3.14-requests = 2.32.5 Provides: python3dist(requests) = 2.32.5 Provides: python3.14dist(requests) = 2.32.5 Provides: python3dist(requests[security]) = 2.32.5 Provides: python3.14dist(requests[security]) = 2.32.5 Provides: python3dist(requests[socks]) = 2.32.5 Provides: python3.14dist(requests[socks]) = 2.32.5 Provides: python3dist(requests[use-chardet-on-py3]) = 2.32.5 Provides: python3.14dist(requests[use-chardet-on-py3]) = 2.32.5 Provides: python3-roman-numerals-py = 3.1.0 Provides: python3.14-roman-numerals-py = 3.1.0 Provides: python3dist(roman-numerals-py) = 3.1.0 Provides: python3.14dist(roman-numerals-py) = 3.1.0 Provides: python3dist(roman-numerals-py[lint]) = 3.1.0 Provides: python3.14dist(roman-numerals-py[lint]) = 3.1.0 Provides: python3dist(roman-numerals-py[test]) = 3.1.0 Provides: python3.14dist(roman-numerals-py[test]) = 3.1.0 Provides: python3-setuptools = 80.9.0 Provides: python3.14-setuptools = 80.9.0 Provides: python3dist(setuptools) = 80.9.0 Provides: python3.14dist(setuptools) = 80.9.0 Provides: python3dist(setuptools[certs]) = 80.9.0 Provides: python3.14dist(setuptools[certs]) = 80.9.0 Provides: python3dist(setuptools[check]) = 80.9.0 Provides: python3.14dist(setuptools[check]) = 80.9.0 Provides: python3dist(setuptools[core]) = 80.9.0 Provides: python3.14dist(setuptools[core]) = 80.9.0 Provides: python3dist(setuptools[cover]) = 80.9.0 Provides: python3.14dist(setuptools[cover]) = 80.9.0 Provides: python3dist(setuptools[doc]) = 80.9.0 Provides: python3.14dist(setuptools[doc]) = 80.9.0 Provides: python3dist(setuptools[enabler]) = 80.9.0 Provides: python3.14dist(setuptools[enabler]) = 80.9.0 Provides: python3dist(setuptools[ssl]) = 80.9.0 Provides: python3.14dist(setuptools[ssl]) = 80.9.0 Provides: python3dist(setuptools[test]) = 80.9.0 Provides: python3.14dist(setuptools[test]) = 80.9.0 Provides: python3dist(setuptools[type]) = 80.9.0 Provides: python3.14dist(setuptools[type]) = 80.9.0 Provides: python3-setuptools-scm = 9.2.2 Provides: python3.14-setuptools-scm = 9.2.2 Provides: python3dist(setuptools-scm) = 9.2.2 Provides: python3.14dist(setuptools-scm) = 9.2.2 Provides: python3dist(setuptools-scm[rich]) = 9.2.2 Provides: python3.14dist(setuptools-scm[rich]) = 9.2.2 Provides: python3dist(setuptools-scm[simple]) = 9.2.2 Provides: python3.14dist(setuptools-scm[simple]) = 9.2.2 Provides: python3dist(setuptools-scm[toml]) = 9.2.2 Provides: python3.14dist(setuptools-scm[toml]) = 9.2.2 Provides: python3-six = 1.17.0 Provides: python3.14-six = 1.17.0 Provides: python3dist(six) = 1.17.0 Provides: python3.14dist(six) = 1.17.0 Provides: python3-snowballstemmer = 3.0.1 Provides: python3.14-snowballstemmer = 3.0.1 Provides: python3dist(snowballstemmer) = 3.0.1 Provides: python3.14dist(snowballstemmer) = 3.0.1 Provides: python3-sphinx = 8.2.3 Provides: python3.14-sphinx = 8.2.3 Provides: python3dist(sphinx) = 8.2.3 Provides: python3.14dist(sphinx) = 8.2.3 Provides: python3dist(sphinx[docs]) = 8.2.3 Provides: python3.14dist(sphinx[docs]) = 8.2.3 Provides: python3dist(sphinx[lint]) = 8.2.3 Provides: python3.14dist(sphinx[lint]) = 8.2.3 Provides: python3dist(sphinx[test]) = 8.2.3 Provides: python3.14dist(sphinx[test]) = 8.2.3 Provides: python3-sphinxcontrib-applehelp = 2.0.0 Provides: python3.14-sphinxcontrib-applehelp = 2.0.0 Provides: python3dist(sphinxcontrib-applehelp) = 2.0.0 Provides: python3.14dist(sphinxcontrib-applehelp) = 2.0.0 Provides: python3dist(sphinxcontrib-applehelp[lint]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-applehelp[lint]) = 2.0.0 Provides: python3dist(sphinxcontrib-applehelp[standalone]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-applehelp[standalone]) = 2.0.0 Provides: python3dist(sphinxcontrib-applehelp[test]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-applehelp[test]) = 2.0.0 Provides: python3-sphinxcontrib-devhelp = 2.0.0 Provides: python3.14-sphinxcontrib-devhelp = 2.0.0 Provides: python3dist(sphinxcontrib-devhelp) = 2.0.0 Provides: python3.14dist(sphinxcontrib-devhelp) = 2.0.0 Provides: python3dist(sphinxcontrib-devhelp[lint]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-devhelp[lint]) = 2.0.0 Provides: python3dist(sphinxcontrib-devhelp[standalone]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-devhelp[standalone]) = 2.0.0 Provides: python3dist(sphinxcontrib-devhelp[test]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-devhelp[test]) = 2.0.0 Provides: python3-sphinxcontrib-htmlhelp = 2.1.0 Provides: python3.14-sphinxcontrib-htmlhelp = 2.1.0 Provides: python3dist(sphinxcontrib-htmlhelp) = 2.1.0 Provides: python3.14dist(sphinxcontrib-htmlhelp) = 2.1.0 Provides: python3dist(sphinxcontrib-htmlhelp[lint]) = 2.1.0 Provides: python3.14dist(sphinxcontrib-htmlhelp[lint]) = 2.1.0 Provides: python3dist(sphinxcontrib-htmlhelp[standalone]) = 2.1.0 Provides: python3.14dist(sphinxcontrib-htmlhelp[standalone]) = 2.1.0 Provides: python3dist(sphinxcontrib-htmlhelp[test]) = 2.1.0 Provides: python3.14dist(sphinxcontrib-htmlhelp[test]) = 2.1.0 Provides: python3-sphinxcontrib-jsmath = 1.0.1 Provides: python3.14-sphinxcontrib-jsmath = 1.0.1 Provides: python3dist(sphinxcontrib-jsmath) = 1.0.1 Provides: python3.14dist(sphinxcontrib-jsmath) = 1.0.1 Provides: python3dist(sphinxcontrib-jsmath[test]) = 1.0.1 Provides: python3.14dist(sphinxcontrib-jsmath[test]) = 1.0.1 Provides: python3-sphinxcontrib-qthelp = 2.0.0 Provides: python3.14-sphinxcontrib-qthelp = 2.0.0 Provides: python3dist(sphinxcontrib-qthelp) = 2.0.0 Provides: python3.14dist(sphinxcontrib-qthelp) = 2.0.0 Provides: python3dist(sphinxcontrib-qthelp[lint]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-qthelp[lint]) = 2.0.0 Provides: python3dist(sphinxcontrib-qthelp[standalone]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-qthelp[standalone]) = 2.0.0 Provides: python3dist(sphinxcontrib-qthelp[test]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-qthelp[test]) = 2.0.0 Provides: python3-sphinxcontrib-serializinghtml = 2.0.0 Provides: python3.14-sphinxcontrib-serializinghtml = 2.0.0 Provides: python3dist(sphinxcontrib-serializinghtml) = 2.0.0 Provides: python3.14dist(sphinxcontrib-serializinghtml) = 2.0.0 Provides: python3dist(sphinxcontrib-serializinghtml[lint]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-serializinghtml[lint]) = 2.0.0 Provides: python3dist(sphinxcontrib-serializinghtml[standalone]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-serializinghtml[standalone]) = 2.0.0 Provides: python3dist(sphinxcontrib-serializinghtml[test]) = 2.0.0 Provides: python3.14dist(sphinxcontrib-serializinghtml[test]) = 2.0.0 Provides: python3-testpath = 0.6.0 Provides: python3.14-testpath = 0.6.0 Provides: python3dist(testpath) = 0.6.0 Provides: python3.14dist(testpath) = 0.6.0 Provides: python3dist(testpath[test]) = 0.6.0 Provides: python3.14dist(testpath[test]) = 0.6.0 Provides: python3-tomcli = 0.10.1 Provides: python3.14-tomcli = 0.10.1 Provides: python3dist(tomcli) = 0.10.1 Provides: python3.14dist(tomcli) = 0.10.1 Provides: python3dist(tomcli[all]) = 0.10.1 Provides: python3.14dist(tomcli[all]) = 0.10.1 Provides: python3dist(tomcli[codeqa]) = 0.10.1 Provides: python3.14dist(tomcli[codeqa]) = 0.10.1 Provides: python3dist(tomcli[dev]) = 0.10.1 Provides: python3.14dist(tomcli[dev]) = 0.10.1 Provides: python3dist(tomcli[formatters]) = 0.10.1 Provides: python3.14dist(tomcli[formatters]) = 0.10.1 Provides: python3dist(tomcli[test]) = 0.10.1 Provides: python3.14dist(tomcli[test]) = 0.10.1 Provides: python3dist(tomcli[tomli]) = 0.10.1 Provides: python3.14dist(tomcli[tomli]) = 0.10.1 Provides: python3dist(tomcli[tomlkit]) = 0.10.1 Provides: python3.14dist(tomcli[tomlkit]) = 0.10.1 Provides: python3dist(tomcli[typing]) = 0.10.1 Provides: python3.14dist(tomcli[typing]) = 0.10.1 Provides: python3-tomli = 1.2.3 Provides: python3.14-tomli = 1.2.3 Provides: python3dist(tomli) = 1.2.3 Provides: python3.14dist(tomli) = 1.2.3 Provides: python3-tomli-w = 1.2.0 Provides: python3.14-tomli-w = 1.2.0 Provides: python3dist(tomli-w) = 1.2.0 Provides: python3.14dist(tomli-w) = 1.2.0 Provides: python3-tox = 4.32.0 Provides: python3.14-tox = 4.32.0 Provides: python3dist(tox) = 4.32.0 Provides: python3.14dist(tox) = 4.32.0 Provides: python3-trove-classifiers = 2025.11.14.15 Provides: python3.14-trove-classifiers = 2025.11.14.15 Provides: python3dist(trove-classifiers) = 2025.11.14.15 Provides: python3.14dist(trove-classifiers) = 2025.11.14.15 Provides: python3-typeguard = 4.3.0 Provides: python3.14-typeguard = 4.3.0 Provides: python3dist(typeguard) = 4.3.0 Provides: python3.14dist(typeguard) = 4.3.0 Provides: python3dist(typeguard[doc]) = 4.3.0 Provides: python3.14dist(typeguard[doc]) = 4.3.0 Provides: python3dist(typeguard[test]) = 4.3.0 Provides: python3.14dist(typeguard[test]) = 4.3.0 Provides: python3-typing-extensions = 4.12.2 Provides: python3.14-typing-extensions = 4.12.2 Provides: python3dist(typing-extensions) = 4.12.2 Provides: python3.14dist(typing-extensions) = 4.12.2 Provides: python3-urllib3 = 2.5.0 Provides: python3.14-urllib3 = 2.5.0 Provides: python3dist(urllib3) = 2.5.0 Provides: python3.14dist(urllib3) = 2.5.0 Provides: python3dist(urllib3[brotli]) = 2.5.0 Provides: python3.14dist(urllib3[brotli]) = 2.5.0 Provides: python3dist(urllib3[h2]) = 2.5.0 Provides: python3.14dist(urllib3[h2]) = 2.5.0 Provides: python3dist(urllib3[socks]) = 2.5.0 Provides: python3.14dist(urllib3[socks]) = 2.5.0 Provides: python3dist(urllib3[zstd]) = 2.5.0 Provides: python3.14dist(urllib3[zstd]) = 2.5.0 Provides: python3-virtualenv = 20.35.4 Provides: python3.14-virtualenv = 20.35.4 Provides: python3dist(virtualenv) = 20.35.4 Provides: python3.14dist(virtualenv) = 20.35.4 Provides: python3dist(virtualenv[docs]) = 20.35.4 Provides: python3.14dist(virtualenv[docs]) = 20.35.4 Provides: python3dist(virtualenv[test]) = 20.35.4 Provides: python3.14dist(virtualenv[test]) = 20.35.4 Provides: python3-wheel = 0.45.1 Provides: python3.14-wheel = 0.45.1 Provides: python3dist(wheel) = 0.45.1 Provides: python3.14dist(wheel) = 0.45.1 Provides: python3dist(wheel[test]) = 0.45.1 Provides: python3.14dist(wheel[test]) = 0.45.1 Provides: python3-zipp = 3.19.2 Provides: python3.14-zipp = 3.19.2 Provides: python3dist(zipp) = 3.19.2 Provides: python3.14dist(zipp) = 3.19.2 Provides: python3dist(zipp[doc]) = 3.19.2 Provides: python3.14dist(zipp[doc]) = 3.19.2 Provides: python3dist(zipp[test]) = 3.19.2 Provides: python3.14dist(zipp[test]) = 3.19.2 %description This package provides a self-contained, isolated environment containing the full set of Python 3.14 build tools, solving circular dependencies and ensuring native compilation on the target architecture. %prep # --- 1. CONDITIONAL SOURCE EXTRACTION (Selects and extracts the correct Venv tarball) --- %ifarch x86_64 tar -xf %{SOURCE0} %endif %ifarch aarch64 tar -xf %{SOURCE1} %endif %build # NOTE: The actual Venv creation (e.g., python3.14 -m venv ...) was performed # externally on the build machine to generate the Source0/Source1 tarballs. # The build phase here is empty as we are only packaging the result. %{nil} %install # 1. Install the entire Venv structure to the system share directory echo "### 1. Installing Venv structure to %{_datadir}/%{name}/..." install -d -m 755 %{buildroot}%{_datadir}/%{name} # CRITICAL FIX: Copy Venv contents (from current directory '.') into the final folder name. cp -a . %{buildroot}%{_datadir}/%{name}/%{_venv_name} # 2. CRITICAL FIX: Shebang Relocation (Patching the absolute path) echo "### 2. Patching Venv shebangs for final system path..." VENV_INSTALL_BIN_DIR="%{buildroot}%{_datadir}/%{name}/%{_venv_name}/bin" FINAL_SHEBANG="#!/usr/bin/python%{python3_version}" for script in "$VENV_INSTALL_BIN_DIR"/*; do if [ -f "$script" ] && head -n 1 "$script" | grep -q "python"; then echo "$FINAL_SHEBANG" > "$script".tmp tail -n +2 "$script" >> "$script".tmp mv "$script".tmp "$script" fi done chmod 755 $VENV_INSTALL_BIN_DIR/* # 3. Create Global Symlinks for usability (pytest-3.14, pip-3.14, etc.) # Actually moved to %posst echo "### 3. Creating system-level symlinks in %{_bindir}..." VENV_BIN_DIR="%{_datadir}/%{name}/%{_venv_name}/bin" mkdir -p %{buildroot}%{_bindir} pushd %{buildroot}%{_bindir} # 4. Create the .pth Injection File (Registers the Venv's site-packages) VENV_SITE_PATH="%{_datadir}/%{name}/%{_venv_name}/lib/python%{python3_version}/site-packages" SYSTEM_SITE_PATH="%{buildroot}%{_libdir}/python%{python3_version}/site-packages" install -d -m 755 $SYSTEM_SITE_PATH echo "$VENV_SITE_PATH" > %{buildroot}%{_libdir}/python%{python3_version}/site-packages/%{name}.pth # 5. FINALIZATION: Install Default Macros (New Step) # -------------------------------------------------- echo "Installing default Python 3.14 macros..." mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/ install -m 644 %{SOURCE3} %{buildroot}%{_rpmconfigdir}/macros.d/ # 6. extras install -m 644 %{SOURCE4} %{buildroot}%{_bindir}/pathfix.py # setuptools/pip wheels %global _bootstrap_wheels_dir %{buildroot}%{_datadir}/%{name}/%{_venv_name}/wheels mkdir -p %{_bootstrap_wheels_dir} install -m 644 %{SOURCE5} %{_bootstrap_wheels_dir}/ install -m 644 %{SOURCE6} %{_bootstrap_wheels_dir}/ %files # We list the entire Venv directory structure under /usr/share/ %{_datadir}/%{name}/%{_venv_name}/ %{_libdir}/python%{python3_version}/site-packages/%{name}.pth %{_rpmconfigdir}/macros.d/macros.zzz-python314-default %{_bindir}/pathfix.py %post VENV_BIN="%{_datadir}/%{name}/%{_venv_name}/bin" SYS_BIN="%{_bindir}" for script_path in "$VENV_BIN"/*; do script_name=$(basename "$script_path") if [[ "$script_name" =~ ^(pip|wheel|pytest|tox|rst2|sphinx|pygmentize|hatch|pdm|build|virtualenv|setuptools|pyproject|pybabel|py.test|normalizer|ini2toml|docutils|coverag).* ]]; then if [ ! -e "$SYS_BIN/$script_name" ]; then ln -s "$script_path" "$SYS_BIN/$script_name" # echo "Shadow Bootstrap: Created symlink for $script_name" fi if [[ "$script_name" =~ ^(pytest|wheel|virtualenv|pip)$ ]]; then ver_link_name="${script_name}-%{python3_version}" if [ ! -e "$SYS_BIN/$ver_link_name" ]; then ln -s "$script_path" "$SYS_BIN/$ver_link_name" fi fi fi done SYS_WHEELS_DIR="/usr/share/python-wheels" PRIV_WHEELS_DIR="%{_datadir}/%{name}/%{_venv_name}/wheels" mkdir -p $SYS_WHEELS_DIR for whl_path in "$PRIV_WHEELS_DIR"/*.whl; do [ -e "$whl_path" ] || continue whl_name=$(basename "$whl_path") target_link="$SYS_WHEELS_DIR/$whl_name" if [ ! -e "$target_link" ]; then ln -s "$whl_path" "$target_link" fi done %changelog * Fri Nov 21 2025 Yonghang Wang - 1.0-1 - Initial build of the Uber-Venv bootstrap package.