Bug 56201

Summary: генерация зависимости на stable ABI
Product: Sisyphus Reporter: Stanislav Levin <slev>
Component: rpm-build-pyprojectAssignee: Stanislav Levin <slev>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: ancieg, sbolshakov, slev
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Stanislav Levin 2025-09-29 15:23:39 MSK
По мотивам:
https://bugzilla.altlinux.org/show_bug.cgi?id=55340#c5

Согласно документации:
https://docs.python.org/3/c-api/stable.html#stable-abi

> Python provides a Stable ABI: a set of symbols that will remain ABI-compatible across Python 3.x versions.

> On some platforms, Python will look for and load shared library files named with the abi3 tag (e.g. mymodule.abi3.so). It does not check if such extensions conform to a Stable ABI. The user (or their packaging tools) need to ensure that, for example, extensions built with the 3.10+ Limited API are not installed for lower versions of Python.

Внешний распознаваемый признак - это ABI tag в имени файла
https://peps.python.org/pep-3149/#pep-384

Например,
foo.cpython-XY.so - ABI совместимо c cpython XY
foo.abi3.so - ABI совместимо с python3

В сизифе:
- 398 src пакетов, из которых собираются только Python специфичные ABI модули
- 38 src пакетов, из которых собираются только Python3 Stable ABI модули

Предлагается *не* генерировать альт-специфичную зависимость %python3_ABI_dep для модулей, собираемых в Python3 Stable ABI. Это позволит не пересобирать эти модули при обновлении минорной версии CPython.
Comment 1 Repository Robot 2025-11-06 13:39:19 MSK
rpm-build-pyproject-0.2.0-alt1 -> sisyphus:

Tue Oct 21 2025 Stanislav Levin <slev@altlinux> 0.2.0-alt1
- Added support for Python Stable ABI (closes: #56201).
- Fixed support for extensions having multiple init functions.