Bug 39039

Summary: Конфликтует с python-module-intelhex
Product: Sisyphus Reporter: Антон Мидюков <antohami>
Component: python3-module-intelhexAssignee: Grigory Ustinov <grenka>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, cas, cow, evg, george, grenka, imz, kotopesutility, lav, nbr, qa_viy, rider, sem, shaba, sin, slev, toni, vitty, viy
Version: unstable   
Hardware: all   
OS: Linux   

Description Антон Мидюков 2020-10-05 19:06:05 MSK
python3-module-intelhex конфликтует с python-module-intelhex. И там и там опакечен одинаковый %_bindir/*
python-module-intelhex из Сизифа удалён, но проблему конфликта это никак не решает для тех, у кого пакет уже установлен.
Выхода вижу два: назначить Obsoletes: python-module-intelhex, либо переименовать файлы в %_bindir/, заменив окончание .py на .py3

Какой вариант предпочтительнее?

Сдаётся мне, таких пакетов у нас много.
Comment 1 Grigory Ustinov 2020-10-05 19:30:49 MSK
У нас таких пакетов много. Предпочтительнее делать conflicts-obsoletes.
Comment 2 Антон Мидюков 2020-10-05 19:50:05 MSK
(Ответ для Grigory Ustinov на комментарий #1)
> У нас таких пакетов много. Предпочтительнее делать conflicts-obsoletes.

А obsoletes разве недостаточно? Нужен ещё и conflicts?
Comment 3 Alexey Shabalin 2020-10-05 20:48:27 MSK
На каком основании указываете Obsoletes? Модули python3 ни разу не obsolete для python. Мне кажется корректно указывать только конфликт.
Comment 4 Vitaly Lipatov 2020-10-05 21:45:20 MSK
(Ответ для Alexey Shabalin на комментарий #3)
> На каком основании указываете Obsoletes? Модули python3 ни разу не obsolete
> для python. Мне кажется корректно указывать только конфликт.
В ряде случаев, когда python2-пакет содержал команду, разумно заместить эту команду командой из пакета python3.

> либо переименовать файлы в %_bindir/, заменив окончание .py на .py3
Обычно в bindir кладут файлы без расширения, поэтому я бы всячески боролся с .py3. Если кому-то очень надо, можно .py2 сделать.
Comment 5 Alexey Shabalin 2020-10-05 23:36:42 MSK
(Ответ для Vitaly Lipatov на комментарий #4)
> (Ответ для Alexey Shabalin на комментарий #3)
> > На каком основании указываете Obsoletes? Модули python3 ни разу не obsolete
> > для python. Мне кажется корректно указывать только конфликт.
> В ряде случаев, когда python2-пакет содержал команду, разумно заместить эту
> команду командой из пакета python3.
> 

Я придираюсь, но "разумность" тут не то определение :) Удобство, замести мусор под ковер, или что-то аналогичное, но не разумность :)

Представьте, что в каком-то пакете (программе на python2) вручную выставлена зависимость на python-module-foo,которая автоматом не вычисляется (autoreq для python2 не идеален), если вместо него прилетит по зависимости python3-module-foo, то получим нерабочую программу.
Так что для одинаковых бинарников (скриптов в /usr/bin)  будет более честно выставить конфликт.
Comment 6 Vitaly Lipatov 2020-10-06 00:51:48 MSK
(Ответ для Alexey Shabalin на комментарий #5)
> (Ответ для Vitaly Lipatov на комментарий #4)
> > (Ответ для Alexey Shabalin на комментарий #3)
> > > На каком основании указываете Obsoletes? Модули python3 ни разу не obsolete
> > > для python. Мне кажется корректно указывать только конфликт.
> > В ряде случаев, когда python2-пакет содержал команду, разумно заместить эту
> > команду командой из пакета python3.
> > 
> 
> Я придираюсь, но "разумность" тут не то определение :) Удобство, замести
> мусор под ковер, или что-то аналогичное, но не разумность :)
> 
> Представьте, что в каком-то пакете (программе на python2) вручную выставлена
> зависимость на python-module-foo,которая автоматом не вычисляется (autoreq
> для python2 не идеален), если вместо него прилетит по зависимости
> python3-module-foo, то получим нерабочую программу.
> Так что для одинаковых бинарников (скриптов в /usr/bin)  будет более честно
> выставить конфликт.
Возможно, есть путаница с Provides.
Если пакет содержит переиспользуемые модули, Provides там быть не должно.
Но при Obsoletes пакет не прилетит вместо. Он удалит собой python-module-foo. И тот пакет, который его требовал, будет вынужден удалиться тоже.

То есть
Conflicts точно (поскольку есть пересечение по файлам).
Provides — нет
Obsoletes — если мы хотим предложить ту же команду, и заместить старый пакет.
Comment 7 Антон Мидюков 2020-10-06 05:55:28 MSK
Есть же ещё один вариант. Вынести %_bindir/ из пакета в отдельный пакет. И назначить конфликт ему. Это позволит одновременно использовать python3-module, не удаляя старый python-module.

Может стоит поставить вопрос о введении политики запрета упаковки %_bindir в python3-module? Раз модуль, то там должен быть только модуль.

(Ответ для Vitaly Lipatov на комментарий #4)
> Обычно в bindir кладут файлы без расширения, поэтому я бы всячески боролся с
> .py3. Если кому-то очень надо, можно .py2 сделать.

А как вариант с окончанием -py и -py3?
Comment 8 Vitaly Lipatov 2020-10-06 13:07:47 MSK
(Ответ для Антон Мидюков на комментарий #7)
> Есть же ещё один вариант. Вынести %_bindir/ из пакета в отдельный пакет. И
> назначить конфликт ему. Это позволит одновременно использовать
> python3-module, не удаляя старый python-module.
> 
> Может стоит поставить вопрос о введении политики запрета упаковки %_bindir в
> python3-module? Раз модуль, то там должен быть только модуль.
Хорошее предложение. И надо его совместить с запретом провайдить модули python, если пакет не python3-module. Чтобы разные серверы и программы не провайдили свои потроха, предназначенные для внутреннего использования. Лучше, конечно, не в публичный site-packages их ставить, но я не знаю, как.

> (Ответ для Vitaly Lipatov на комментарий #4)
> > Обычно в bindir кладут файлы без расширения, поэтому я бы всячески боролся с
> > .py3. Если кому-то очень надо, можно .py2 сделать.
> 
> А как вариант с окончанием -py и -py3?
Мне кажется, название команд нельзя менять, их же потом скрипты не найдут. Сейчас python2 в прошлом, и я бы перестал его учитывать. Другое дело, что скоро у нас в пакетах python3-modules- будут лежать модули для 4-го питона :)
Comment 9 Repository Robot 2020-10-06 13:08:25 MSK
python3-module-intelhex-2.2.1-alt3 -> sisyphus:

 Tue Oct 06 2020 Grigory Ustinov <grenka@altlinux> 2.2.1-alt3
 - Fix port on python3 (Closes: #39039).
Comment 10 Антон Мидюков 2020-10-06 13:32:23 MSK
(Ответ для Repository Robot на комментарий #9)
> python3-module-intelhex-2.2.1-alt3 -> sisyphus:
> 
>  Tue Oct 06 2020 Grigory Ustinov <grenka@altlinux> 2.2.1-alt3
>  - Fix port on python3 (Closes: #39039).

Договорились же не делать obsoletes?
http://git.altlinux.org/gears/p/python3-module-intelhex.git?p=python3-module-intelhex.git;a=commitdiff;h=c97b02b48f0d5531e8034837892e04423c918199
Comment 11 Grigory Ustinov 2020-10-06 13:40:46 MSK
(Ответ для Антон Мидюков на комментарий #10)
> (Ответ для Repository Robot на комментарий #9)
> > python3-module-intelhex-2.2.1-alt3 -> sisyphus:
> > 
> >  Tue Oct 06 2020 Grigory Ustinov <grenka@altlinux> 2.2.1-alt3
> >  - Fix port on python3 (Closes: #39039).
> 
> Договорились же не делать obsoletes?
> http://git.altlinux.org/gears/p/python3-module-intelhex.git?p=python3-module-
> intelhex.git;a=commitdiff;h=c97b02b48f0d5531e8034837892e04423c918199

Кто договорился? Я делаю так, как делал с другими питоновскими модулями. Я ни с кем ни о чём договаривался.