Bug 37313 (python2)

Summary: [META] Удалить модули python2 из репозитория
Product: Sisyphus Reporter: Vitaly Lipatov <lav>
Component: pythonAssignee: Vladimir D. Seleznev <vseleznv>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: cow, george, glebfm, imz, iv, ldv, legion, mcpain, mike, rider, vseleznv
Version: unstableKeywords: METABUG
Hardware: all   
OS: Linux   
Bug Depends on: 40366, 47069, 32478, 36974, 37286, 37289, 37290, 37312, 37390, 38253, 38255, 38271, 39165, 39169, 39170, 39171, 39173, 39194, 39207, 39216, 39246, 39730, 39737, 39854, 39982, 40376, 40626, 40681, 40691, 40692, 40722, 40730, 40732, 40736, 40738, 40739, 40741, 40742, 40755, 40756, 40757, 40758    
Bug Blocks:    

Description Vitaly Lipatov 2019-10-08 14:14:03 MSK
В связи с окончанием срока жизни python 2 нам предстоит удалить интерпретатор и все модули python2 из репозитория.

Здесь можно отслеживать, какие нерешённые задачи этому мешают.
Comment 1 Dmitry V. Levin 2019-10-09 11:12:23 MSK
Задача сформулирована неправильно, поскольку окончание официальной поддержки апстримом не приведёт к удалению python2 из репозитория.
Тем не менее, все проекты, которые можно перевести с python2 на python3, следует перевести, а все неиспользуемые модули python2 следует удалить.
Comment 2 Anton Farygin 2019-10-09 12:11:11 MSK
Да, всё верно - нужно сделать так, что бы интерпретатор остался, но им никто не пользовался.

Сейчас rpm-build зависит от python-2.7 через rpm-build-python и, соответственно, все пакеты в репозитории по сборке тянут python-2.7.

Но это последнее, что надо будет чинить.
Comment 3 Anton Farygin 2019-10-09 12:19:08 MSK
(В ответ на комментарий №1)

> следует перевести, а все неиспользуемые модули python2 следует удалить.

С неиспользуемым модулями есть нюанс. У нас сейчас часто всё, что написано на python - называется python-module, хотя в них содержатся не только библиотеки python, то и бинарники в /usr/bin

Пример тому - python3-module-sphinx, который в общем то и модулем не является.

Надо, по хорошему, изменить политику и добавить разделение - прикладное ПО на python (например python-sphinx) и библиотека python (наприме python-module-sphinx). 

А ещё у нас всё, что .py во всём репозитории - считается rpm-build'ом как python2. И это тоже приводит к непритносям при сборке python3 пакетов.
Comment 4 Vitaly Lipatov 2019-10-09 12:53:48 MSK
(В ответ на комментарий №3)
...
> Надо, по хорошему, изменить политику и добавить разделение - прикладное ПО на
> python (например python-sphinx) и библиотека python (наприме
> python-module-sphinx). 
Я считаю, что это бага упаковки, когда программа лежит в python-module.
Но и префикс python добавлять не нужно к программам — кому какое дело, на чём она написана. А то так мы будем к каждой программе на go, ruby, python, tcl дописывать префикс. Можно начать с программ на C++ :) Тем более что программа может несколько языков использовать. Например, netdata.

> А ещё у нас всё, что .py во всём репозитории - считается rpm-build'ом как
> python2. И это тоже приводит к непритносям при сборке python3 пакетов.
Comment 5 Ivan A. Melnikov 2020-07-28 10:51:00 MSK
> Сейчас rpm-build зависит от python-2.7 через rpm-build-python и, соответственно, все пакеты в репозитории по сборке тянут python-2.7.

А кстати зачем эта зависимость в rpmbuild? Легаси^WТрадиции?
Comment 6 Dmitry V. Levin 2020-07-28 10:53:33 MSK
(In reply to Ivan A. Melnikov from comment #5)
> > Сейчас rpm-build зависит от python-2.7 через rpm-build-python и, соответственно, все пакеты в репозитории по сборке тянут python-2.7.
> 
> А кстати зачем эта зависимость в rpmbuild? Легаси^WТрадиции?

Они самые.
Comment 7 Michael Shigorin 2020-10-31 17:51:21 MSK
(Ответ для Dmitry V. Levin на комментарий #1)
> Задача сформулирована неправильно, поскольку окончание официальной поддержки
> апстримом не приведёт к удалению python2 из репозитория.

Более того, в случае выполнения изначально означенной задачи к p10 он бы оказался для части пользователей сразу критически хуже CentOS 6/7/8: http://www.opennet.ru/opennews/art.shtml?num=39565

Бывают обезумевшие апстримы, пытающиеся сожрать себя сами вместо разумного пути развития и обновления плода своих трудов.  Так убивали Apache 1.3, KDE 3.5, затем вот Python 2.7 (и пытались убить Perl 5) -- при полностью непригодных к собственно эксплуатации "новых версиях" (в Apache 2.0 дырки долго чинили чуть ли не еженедельно, KDE4 стал притчей во языцех, с Python 2 явно уже никогда не мигрирует огромное количество того же научного софта).

Не понимаю, зачем нам-то поддаваться такому безумию.  Надо опять научиться выносить ещё работающие, но не поддерживаемые пакеты в contrib (от которого не должно зависеть ничто в основном сизифе/бранче) -- либо вернуться к main, от которого зависит примерно весь остальной репозиторий, но где мы можем себе позволить выписать то, что мы, собственно, берёмся обещать и ожидаем.
Comment 8 Vitaly Lipatov 2020-10-31 18:30:14 MSK
(Ответ для Michael Shigorin на комментарий #7)
> (Ответ для Dmitry V. Levin на комментарий #1)
> > Задача сформулирована неправильно, поскольку окончание официальной поддержки
> > апстримом не приведёт к удалению python2 из репозитория.
Да, лучше уточнить, что задача только в удалении всех модули python2 из репозитория. Пока python2 не перестанет пересобираться, вряд ли его кто-то решит удалять.
Более того, как я понимаю, в репозитории сейчас 1,5 тысячи пакетов используют python2 при сборке.

> Более того, в случае выполнения изначально означенной задачи к p10 он бы
> оказался для части пользователей сразу критически хуже CentOS 6/7/8:
> http://www.opennet.ru/opennews/art.shtml?num=39565
Надеюсь, к p10 означенную задачу мы осилим.

> Бывают обезумевшие апстримы, пытающиеся сожрать себя сами вместо разумного
> пути развития и обновления плода своих трудов.  Так убивали Apache 1.3, KDE
> 3.5, затем вот Python 2.7 (и пытались убить Perl 5) -- при полностью
> непригодных к собственно эксплуатации "новых версиях" (в Apache 2.0 дырки
> долго чинили чуть ли не еженедельно, KDE4 стал притчей во языцех, с Python 2
> явно уже никогда не мигрирует огромное количество того же научного софта).
Я не знаю, как называются программные луддиты, которые продолжают использовать gtk1 и qt3.
 
> Не понимаю, зачем нам-то поддаваться такому безумию.  Надо опять научиться
> выносить ещё работающие, но не поддерживаемые пакеты в contrib (от которого
> не должно зависеть ничто в основном сизифе/бранче) -- либо вернуться к main,
> от которого зависит примерно весь остальной репозиторий, но где мы можем
> себе позволить выписать то, что мы, собственно, берёмся обещать и ожидаем.
Обозначь цель, пожалуйста. А то не ясно, что ты предлагаешь.
Comment 9 Vitaly Lipatov 2021-03-31 00:05:19 MSK
(Ответ для Ivan A. Melnikov на комментарий #5)
> > Сейчас rpm-build зависит от python-2.7 через rpm-build-python и, соответственно, все пакеты в репозитории по сборке тянут python-2.7.
> 
> А кстати зачем эта зависимость в rpmbuild? Легаси^WТрадиции?

https://bugzilla.altlinux.org/show_bug.cgi?id=34308
Comment 10 Michael Shigorin 2021-08-16 12:49:30 MSK
Хозяйке на заметку:

---
Позвольте добавление. Astra на Debian 9.12. Из более новых версий выброшены Python 2.7 и вся обвязка. Поэтому исходя из требований прикладного ПО (не нашей разработки) мы не сможем перейти на более новые версии, в том числе Debian-а и деривативов. В Alt данные версии сохранены, и наше ПО работает в любой версии Альт. Просьба прокомментировать, если можно.
--- http://www.opennet.ru/openforum/vsluhforumID3/125028.html#170
Comment 11 Alexey Gladkov 2021-08-16 12:57:17 MSK
chromium использует для сборки python2. Процесс миграции у них идёт, но полностью не завершён ещё. Причём в коде используются вот такие скрипты, чтобы умники не подменяли шебанг: 

http://git.altlinux.org/gears/c/chromium.git?p=chromium.git;a=blob;f=build/util/python2_action.py;h=609665b002795a6f6ffb4e72bc7ad9afef3240bf;hb=2314b04363d25339815c4ead9da917420dcc21ce

В текущем релизе chromium я бытался выкинуть python2, но без страшных хаков это сделать нельзя.