[devel] Fwd: [sisyphus] Новая версия GnuPG в Сизифе
Vladimir D. Seleznev
vseleznv на altlinux.org
Пн Окт 21 19:27:32 MSK 2019
On Mon, Oct 21, 2019 at 05:31:12PM +0300, Paul Wolneykien wrote:
> В Sat, 19 Oct 2019 02:03:30 +0300
> "Vladimir D. Seleznev" <vseleznv на altlinux.org> пишет:
>
> > On Sat, Oct 19, 2019 at 01:39:02AM +0300, Paul Wolneykien wrote:
> > > 19.10.2019 1:37, Vladimir D. Seleznev пишет:
> > > > On Sat, Oct 19, 2019 at 01:02:52AM +0300, Paul Wolneykien wrote:
> > > >>>> [skip]
> > > >>>>
> > > >>> Нет, ты не понял: ты не можешь исправить зависимости на _уже_
> > > >>> установленных системах у всех пользователей. Поэтому гораздо
> > > >>> проще и предсказуемее оставить /usr/bin/gpg за первым gnupg, а
> > > >>> переводить те пакеты, которым нужен gnupg2, на /usr/bin/gpg2.
> > > >>>
> > > >>>>> Ты не можешь исправить у всех пользователей на всех уже
> > > >>>>> установленных системах /usr/bin/gpg на /usr/bin/gpg1,
> > > >>>>
> > > >>>> Почему? При обновлении новая версия пакета gnupg2 установит
> > > >>>> /usr/bin/gpg, а новая версия gnupg установит /usr/bin/gpg1 —
> > > >>>> файловых конфликтов между ними не будет так же, как их нет
> > > >>>> сейчас. Само собой, если система не обновляется, то все эти
> > > >>>> "переименования" её не затронут.
> > > >>>
> > > >>> И это сломает уже установленные пакеты, которые рассчитывают,
> > > >>> что /usr/bin/gpg — это первый gnupg.
> > > >>
> > > >> Объясни же наконец, почему уже установленные пакеты не будут
> > > >> обновляться?
> > > >
> > > > Потому что речь идёт про точечные обновления.
> > >
> > > Но я же могу прописать в пакете Conflict или Obsolete и тогда
> > > обновление перестанет быть точечным.
> >
> > Давай ещё раз что ты предлагаешь? По пунктам. Какие пакеты будут, что
> > они будут obsolete'еть и с чем конфликтовать, и какие экзекьютейблы,
> > которые требуются другим программам, в них будут упакованы.
>
> Я пока думаю так:
>
> Name: gnupg
> Version: 1.4.23
> -Release: alt1
> +Release: alt2
> -Provies: gpg, openpgp
> +Provies: gpg1, openpgp1, gnupg1
> ...
> -%_bindir/gpg?*
> +%_bindir/gpg1
>
> ---
>
> Name: gnupg2
> Version: 2.2.17
> -Release: alt4
> +Release: alt5
> +Provies: gpg, openpgp, gnupg
> +Obsoletes: gnupg < 1.4.23-alt2
> ...
> %configure \
> - --enable-gpg-is-gpg2 \
> ...
> +%_bindir/gpg
>
> ---
>
> Во всех пакетах, для которых критична совместимость со старой GnuPG
> (apt, rpm?):
>
> -Requires: gnupg
> +Requires: gnupg1
>
> или
>
> -Requires: gpg
> +Requires: gpg1
>
> А также где-то в коде:
>
> - ... "/usr/bin/gpg" ...
> + ... "/usr/bin/gpg1" ...
>
>
> Исходя из этого, я рассчитываю, что при точечном обновлении пакета
> gnupg, будет предложено установить версию gnupg-1.4.23-alt2, а также
> обновить все затронутые пакеты до версий, использующих "/usr/bin/gpg1".
Проблема в том, что при точечном обновлении gnupg не будет предложено
обновить всех клиентов gnupg до тех, которые понимают, что /usr/bin/gpg
— это /usr/bin/gpg2, а не бинарник из gnupg. Я не готов сказать, как
поведёт себя apt, т.к. это слабопредсказуемо, но по опыту могу
предположить следующие два варианта: либо будут удалены из системы все
клиенты gnupg (наиболее вероятно), либо будет доустановлен gnupg2, и
клиенты gnupg сломаются в рантайме.
> Дальше. При точечном обновлении пакета gnupg2 будет предложено
> установить версию gnupg2-2.2.17-alt5, а также обновить пакет gnupg до
> версии gnupg-1.4.23-alt2 и все затронутые пакеты до версий,
> использующих "/usr/bin/gpg1", если пакет gnupg был установлен и не был
> обновлён ранее.
Подозреваю, что в этом случае вылезет неявный конфликт на установленную
версию gnupg, и установка обвалится.
> При dist-upgrade я ожидаю, что снос системы не произойдёт потому, что
> новые версии пакетов, предпочитающих gnupg1 также попадут в обновление
> и вытянут за собой новую версию gnupg-1.4.23-alt2, не попадающую под
> Obsoletes (там строго < 1.4.23-alt2).
Также как и при точечном обновлении gnupg из первого цитирования, слабо
прогнозирую, что произойдёт, но по опыту предполагаю, что как раз-таки
будет предложено снести полсистемы.
--
С уважением,
Владимир Селезнев
Подробная информация о списке рассылки Devel