Bug 56201 - генерация зависимости на stable ABI
Summary: генерация зависимости на stable ABI
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build-pyproject (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Stanislav Levin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-09-29 15:23 MSK by Stanislav Levin
Modified: 2025-11-06 13:39 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.