Bug 37313 (python2) - [META] Удалить модули python2 из репозитория
Summary: [META] Удалить модули python2 из репозитория
Status: NEW
Alias: python2
Product: Sisyphus
Classification: Development
Component: python (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Vladimir D. Seleznev
QA Contact: qa-sisyphus
URL:
Keywords: METABUG
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
Blocks:
  Show dependency tree
 
Reported: 2019-10-08 14:14 MSK by Vitaly Lipatov
Modified: 2023-07-29 19:40 MSK (History)
11 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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, но без страшных хаков это сделать нельзя.