[devel] Fwd: [sisyphus] Новая версия GnuPG в Сизифе
Paul Wolneykien
manowar на altlinux.org
Пн Окт 21 17:31:12 MSK 2019
В 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".
Дальше. При точечном обновлении пакета gnupg2 будет предложено
установить версию gnupg2-2.2.17-alt5, а также обновить пакет gnupg до
версии gnupg-1.4.23-alt2 и все затронутые пакеты до версий,
использующих "/usr/bin/gpg1", если пакет gnupg был установлен и не был
обновлён ранее.
При dist-upgrade я ожидаю, что снос системы не произойдёт потому, что
новые версии пакетов, предпочитающих gnupg1 также попадут в обновление
и вытянут за собой новую версию gnupg-1.4.23-alt2, не попадающую под
Obsoletes (там строго < 1.4.23-alt2).
Подробная информация о списке рассылки Devel