Bug 40939 - Статический билд python3 ломает сборку пакетов, предлагая им линковаться с libpython3.9.a
Summary: Статический билд python3 ломает сборку пакетов, предлагая им линковаться с li...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: python3 (show other bugs)
Version: unstable
Hardware: x86 Linux
: P5 blocker
Assignee: Grigory Ustinov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-16 13:52 MSK by Grigory Ustinov
Modified: 2021-10-21 09:13 MSK (History)
10 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Grigory Ustinov 2021-09-16 13:52:15 MSK
По мотивам ошибки #40278.
Comment 1 Repository Robot 2021-09-23 22:50:07 MSK
python3-3.9.7-alt2 -> sisyphus:

 Mon Sep 20 2021 Grigory Ustinov <grenka@altlinux> 3.9.7-alt2
 - Bring back static build (thx to ilyakurdyukov@) (Closes: #40939).
Comment 2 Dmitry V. Levin 2021-09-24 12:43:25 MSK
Судя по результатам тестовой пересборки, что-то пошло не так.
Comment 3 Grigory Ustinov 2021-09-24 12:57:15 MSK
(Ответ для Dmitry V. Levin на комментарий #2)
> Судя по результатам тестовой пересборки, что-то пошло не так.

Так это чудесно! Я сломал несколько пакетиков, а не несколько сотен пакетиков.
Comment 4 ilyakurdyukov 2021-09-24 13:04:27 MSK
Не забывайте про флаги, которые ускоряют динамическую библиотеку. Почти эквивалентно static билду (упоминалось в #40278). С этими флагами отстаёт от статика лишь на несколько процентов.

export CFLAGS_NODIST="-fno-semantic-interposition"
export LDFLAGS_NODIST="-fno-semantic-interposition"

И даже со статик билдом следует использовать, так как будет быстрее libpython, что будет использоваться для вызова питона с других языков.
Comment 5 Yuri N. Sedunov 2021-09-25 21:20:55 MSK
(Ответ для Grigory Ustinov на комментарий #3)
> (Ответ для Dmitry V. Levin на комментарий #2)
> > Судя по результатам тестовой пересборки, что-то пошло не так.
> 
> Так это чудесно! Я сломал несколько пакетиков, а не несколько сотен
> пакетиков.

По-умолчанию теперь следует вкомпилячивать libpython.a? Eсли задумывалось иначе --- исправьте.

$ python3 -c 'import sys ; import distutils.sysconfig ; sys.stdout.write(distutils.sysconfig.get_config_var("BLDLIBRARY"))'
libpython3.9.a
Comment 6 Dmitry V. Levin 2021-09-25 22:26:04 MSK
(In reply to Grigory Ustinov from comment #3)
> (Ответ для Dmitry V. Levin на комментарий #2)
> > Судя по результатам тестовой пересборки, что-то пошло не так.
> 
> Так это чудесно! Я сломал несколько пакетиков, а не несколько сотен
> пакетиков.

Эти "несколько пакетиков" сломаны неисправимым образом, поскольку теперь питон предлагает им линковаться с libpython3.9.a.
Comment 7 Grigory Ustinov 2021-09-25 23:39:35 MSK
(Ответ для Dmitry V. Levin на комментарий #6)
> (In reply to Grigory Ustinov from comment #3)
> > (Ответ для Dmitry V. Levin на комментарий #2)
> > > Судя по результатам тестовой пересборки, что-то пошло не так.
> > 
> > Так это чудесно! Я сломал несколько пакетиков, а не несколько сотен
> > пакетиков.
> 
> Эти "несколько пакетиков" сломаны неисправимым образом, поскольку теперь
> питон предлагает им линковаться с libpython3.9.a.

Да я уж и сам заметил, спасибо!
Comment 8 ilyakurdyukov 2021-09-26 05:46:09 MSK
Нужно чтобы файл, где лежит эта настройка - брался из динамической сборки. Сейчас собираются обе, сначала install динамической, затем install статической, тем самым от динамической остаётся .so либа. Надо еще настройку на либу вернуть. Статическая либа удаляется.
Comment 9 Repository Robot 2021-10-02 03:21:38 MSK
python3-3.9.7-alt3 -> sisyphus:

 Fri Oct 01 2021 Grigory Ustinov <grenka@altlinux> 3.9.7-alt3
 - Fix previous change to make python link as shared library (Closes: #40939).
Comment 10 Yuri N. Sedunov 2021-10-09 12:16:25 MSK
Не вышел каменный цветок.

$ python3 -c 'import sys ; import distutils.sysconfig ; sys.stdout.write(distutils.sysconfig.get_config_var("LIBPL"))'
/usr/lib64/python3.9/config-3.9-x86_64-linux-gnu
Comment 11 Grigory Ustinov 2021-10-11 09:06:44 MSK
(Ответ для Yuri N. Sedunov на комментарий #10)
> Не вышел каменный цветок.
> 
> $ python3 -c 'import sys ; import distutils.sysconfig ;
> sys.stdout.write(distutils.sysconfig.get_config_var("LIBPL"))'
> /usr/lib64/python3.9/config-3.9-x86_64-linux-gnu

А какое поведение ожидается?
Comment 12 Grigory Ustinov 2021-10-12 15:46:25 MSK
Так что не работает то? Или закрываем багу?
Comment 13 Grigory Ustinov 2021-10-21 09:13:03 MSK
Видимо всё-таки закрываем.