[devel] Спасём python3 вместе! (действительно) - Stable ABI
Anton Zhukharev
ancieg на altlinux.org
Чт Окт 2 16:44:44 MSK 2025
Всем привет!
Последние таски по обновлению Python выглядят пугающее: объем
пересобираемых пакетов невероятно огромный и постоянно растет из-за чего
обновление самого Python в Sisyphus происходит дольше, чем в апстриме...
Я прошу обратить внимание на эту проблему куда большую часть сообщества
и принять хоть какое-нибудь решение, которое не оставит все как есть.
А под "хоть какое-нибудь решение" я имею ввиду единственное, на данный
момент предложенное. Читать тут:
https://bugzilla.altlinux.org/show_bug.cgi?id=55340#c5
https://bugzilla.altlinux.org/56201
Сейчас чуть подробнее введу в курс (небольшая, но важная выжимка из
https://docs.python.org/3/c-api/stable.html).
* Stable ABI — это набор символов в CPython, которые остаются бинарно-
совместимыми для различных минорных версий Python 3.X. Экстеншн,
собранный под Stable ABI (и правильно использующий Limited API),
должен работать без пересборки на всех минорных версиях Python,
начиная с той, для которой он был скомпилирован.
Такие модули часто имеют в имени файла тег abi3
(например, mymodule.abi3.so)
* Limited C API — это подмножество C API Python, использование
которого гарантирует совместимость с Stable ABI.
* Интерпретатор Python не проверяет, действительно ли модуль с тегом
abi3 соответствует Stable ABI. Ответственность за обеспечение
корректности лежит на мейнтейнере.
В Sisyphus сейчас есть модули с тэгом abi3 (будем надеятся, что они
соблюдают Stable ABI) и собранные для конкретной минорной версии
Python. Текущая идея сборки компилируемых модулей заключается в том,
чтобы везде ставить зависимость на %python3_ABI_dep. Естественно, это
приводит к тому, что у нас сейчас при обновлении Python мучается один
бедный grenka, а все сидят и смотрят на это в ожидании окончания
(кто-то даже успевает продлять ему муки).
В общем, идея решения заключается в том, чтобы для модулей, собираемых
под Stable ABI эту зависимость не генерировать и как-нибудь проверять,
что там действительно Stable ABI. Для этого есть инструмент abi3audit,
собираемый в этом задании: https://packages.altlinux.org/tasks/396283
--
Anton Zhukharev
ALT Linux Team
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : signature.asc
Тип : application/pgp-signature
Размер : 833 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20251002/c0cb4e89/attachment.bin>
Подробная информация о списке рассылки Devel