ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Anton Zhukharev <ancieg@altlinux.org>
To: devel@lists.altlinux.org
Subject: [devel] Спасём python3 вместе! (действительно) - Stable ABI
Date: Thu, 2 Oct 2025 16:44:44 +0300
Message-ID: <aN6BzMZQxrtTbqyw@ancieg.ipa.basealt.ru> (raw)

[-- Attachment #1: Type: text/plain, Size: 3523 bytes --]

Всем привет!

Последние таски по обновлению 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

             reply	other threads:[~2025-10-02 13:44 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-02 13:44 Anton Zhukharev [this message]
2025-10-02 19:45 ` Grigory Ustinov
2025-10-03  6:18   ` Anton Zhukharev
2025-10-03 13:51     ` Anton Zhukharev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aN6BzMZQxrtTbqyw@ancieg.ipa.basealt.ru \
    --to=ancieg@altlinux.org \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git