Bug 55340 - rpm-build-pyproject: зависимости на %python3_ABI_dep
Summary: rpm-build-pyproject: зависимости на %python3_ABI_dep
Status: CLOSED MOVED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build-pyproject (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Stanislav Levin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-07-24 15:54 MSK by Ivan A. Melnikov
Modified: 2025-09-29 15:24 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan A. Melnikov 2025-07-24 15:54:35 MSK
Бинарные модули питона должны получать зависимость на %python3_ABI_dep, например такую:

$ rpm -qR python3-module-wx | grep -e -ABI
python3.12-ABI(64bit)

Однако при переходе на генерацию requirements исключительно средcтвами rpm-build-pyproject (AutoReq: yes, nopython3) эта зависимость не возникает. В результате пакет может быть поставлен в среду с другим питоном, однако работать в ней не будет.

rpm-build-pyproject позиционируется как более полный способ проставлять requirements, однако в данном случае наблюдается явная регрессия по сравнению с python3.req.
Comment 1 Ivan A. Melnikov 2025-07-24 15:55:13 MSK
Наткнулся сегодня, разбираясь, почему с python 3.13 не собирается boost -- оказалось, что тот очевидный факт, что numpy необходимо пересобирать с каждым новым питном, теперь не отражён в зависимостях python3-module-numpy.
Comment 2 Ivan A. Melnikov 2025-07-24 16:28:31 MSK
Помимо numpy нагреплись ещё python3-module-pymunk и python3-module-silx как пакеты с so-файлами и без зависимости на %python3_ABI_dep.
Comment 3 Stanislav Levin 2025-07-24 18:00:18 MSK
(In reply to Ivan A. Melnikov from comment #0)
> Бинарные модули питона должны получать зависимость на %python3_ABI_dep,
> например такую:
> 
> $ rpm -qR python3-module-wx | grep -e -ABI
> python3.12-ABI(64bit)
> 
> Однако при переходе на генерацию requirements исключительно средcтвами
> rpm-build-pyproject (AutoReq: yes, nopython3) эта зависимость не возникает.
> В результате пакет может быть поставлен в среду с другим питоном, однако
> работать в ней не будет.

В экосистеме питона невозможно указать непитон-зависимости (системные библиотеки, бинари и прочее), если они не забандлены в соответствующие питон-проекты. Поэтому такой поддержки в rpm-build-pyproject нет.

В случае с архитектурно-зависимым проектом совместимость конкретного дистрибутива (wheel) с платформой задается через *имя артефакта сборки*(https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/).
Такой фичи у rpm-build-pyproject нет.

> 
> rpm-build-pyproject позиционируется как более полный способ проставлять
> requirements, однако в данном случае наблюдается явная регрессия по
> сравнению с python3.req.

rpm-build-pyproject - это способ указать зависимости питон проектов в виде, который предусмотрен экосистемой питона и не в каждом случае удастся обойтись без python3.req.
Comment 4 Repository Robot 2025-08-07 11:17:34 MSK
rpm-build-pyproject-0.1.0-alt1 -> sisyphus:

Mon Aug 04 2025 Stanislav Levin <slev@altlinux> 0.1.0-alt1
- Added support for alt-specific dependency on Python ABI (closes: #55340).
Comment 5 Sergey Bolshakov 2025-09-22 11:49:00 MSK
А из чего собственно следует, что (все, глядя в реализацию r-b-py*) бинарные модули питона должны получать зависимость на %python3_ABI_dep ?

Цитируемый в коде stable-api 
https://docs.python.org/3/c-api/stable.html#stable-application-binary-interface
как раз утверждает, что компилируемые с Py_LIMITED_API расширения совместимы вверх 
и позволяют избавиться от этой зависимости.
Comment 6 Stanislav Levin 2025-09-29 15:24:57 MSK
https://bugzilla.altlinux.org/56201