LINUX.ORG.RU

Funtoo, «Python fix» first step

 , ,


1

1

И начинает drobbins с исправления eclasses:

Первым шагом является решение некоторых проблем, которые существуют в Gentoo python eclasses. Я обновил [эти классы], чтобы они были хотя бы немного лучше, чем в Gentoo.

Для новых ebuilds теперь можно использовать следующее, а не перечислять каждую отдельную версию Python:

PYTHON_COMPAT=( python3+ )

Это гарантирует, что ebuild будет помечен как совместимый с 3.7 (минимальной поддерживаемой версией python3) и с более поздними версиями Python.

Также новые eclasses поддерживают:

PYTHON_COMPAT=( python2+ ) # python2_7, python3_7, and beyond
PYTHON_COMPAT=( python3_7+ ) # same as python3+ since we start counting at 3_7
PYTHON_COMPAT=( python3_8+ ) # should be self-explanatory... 
PYTHON_COMPAT=( python3_9+ )

pypy и pypy3 по-прежнему нужно указывать вручную, и их можно комбинировать, как обычно:

PYTHON_COMPAT=( python3+ pypy3 )

Ebuilds, все еще ссылающиеся на python3_5 или python3_6, будут автоматически обновлены для совместимости с python3_7. Также включается поддержка eclasses для Python 3.9.

Эти изменения приводят к пересборке всех Python-пакетов, и пакетов использующих Python. Но так как эта «косметическая» операция не приводит к каким-либо изменениям, за исключением USE-флагов в /var/db/pkg - она не является обязательной и срочной.

Updated Python Eclasses and Autogen

Перемещено Pinkbyte из gentoo

★★★★★

Лучше бы мультилиб переделали. В дебиане офигенный мультилиб, даже x32 abi по дефолту работает.
В генте нет какого-то адекватного соглашения по путям к библиотекам, а если добавить x32 то придётся избавляться от всего что этот x32 не поддерживает т.к все архитектуры должны быть собраны с одинаковыми юзфлагами. Не собирается llvm под x32? Собирай всё без поддержки llvm под все архитектуры. А ведь мультилтб обычно нужен в минимальной конфигурации. Почему не сделать по аналогии со слотами? Ввбирать архитектуру юз-флагом это какое-то убожество

mittorn ★★★★★ ()

Это гарантирует, что ebuild будет помечен как совместимый с 3.7 (минимальной поддерживаемой версией python3) и с более поздними версиями Python.

Осталось только обеспечить, чтобы пакет тоже поддерживал выше указанной минимальной, что не всегда работает.

Python 3.6 уже удалили в funtoo?

Upd:

python3_6, будут автоматически обновлены для совместимости с python3_7

Видимо да

Эти изменения приводят к пересборке всех Python-пакетов, и пакетов использующих Python. Но так как эта «косметическая» операция не приводит к каким-либо изменениям

Ещё как приводит, если пакет был в установлен в site_packages для python3_6

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 3)

Раньше в генте так и было и от этого как раз наоборот сознательно ушли. Потому что несмотря на штабильность питона в плане обратной совместимости - для мало-мальски сложных пакетов постоянно возникают нюансы. Но в этом и заключается смысл своего производного дистрибутива - в возможности наверчивать всякую прикольную шнягу поверх решений апстрима :-)

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Да даже для небольших пакетов, наподобие ruamel-yaml официальная поддержка python 3.8 появилась только в версиях 1.16 - что-то там автору докрутить пришлось.

Про scons и говорить нечего, там тоже частенько дополнительные действия со стороны апстрима нужны для совместимости с новыми версиями python3.

grem ★★★★★ ()