[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