Бинарные модули питона должны получать зависимость на %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.
Наткнулся сегодня, разбираясь, почему с python 3.13 не собирается boost -- оказалось, что тот очевидный факт, что numpy необходимо пересобирать с каждым новым питном, теперь не отражён в зависимостях python3-module-numpy.
Помимо numpy нагреплись ещё python3-module-pymunk и python3-module-silx как пакеты с so-файлами и без зависимости на %python3_ABI_dep.
(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.
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).
А из чего собственно следует, что (все, глядя в реализацию r-b-py*) бинарные модули питона должны получать зависимость на %python3_ABI_dep ? Цитируемый в коде stable-api https://docs.python.org/3/c-api/stable.html#stable-application-binary-interface как раз утверждает, что компилируемые с Py_LIMITED_API расширения совместимы вверх и позволяют избавиться от этой зависимости.
https://bugzilla.altlinux.org/56201