[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