Bug 46837 - Обновить libpaper до 2.x
Summary: Обновить libpaper до 2.x
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libpaper (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: fidel@altlinux.org
QA Contact: qa-sisyphus
URL: https://github.com/rrthomas/libpaper
Keywords:
Depends on:
Blocks: 46625
  Show dependency tree
 
Reported: 2023-07-10 14:57 MSK by Vitaly Lipatov
Modified: 2023-07-26 16:26 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2023-07-10 14:57:16 MSK
Нужно обновить в Сизифе libpaper до версии 2.x вместе с пакетом paper https://github.com/rrthomas/paper
Comment 1 Mikhail Tergoev 2023-07-11 16:51:01 MSK
При попытке обновить libpaper с пакетами от него зависимыми:
324637 FAILED #6 [test-only] sisyphus libpaper.git=2.1.1-alt1 boomaga.git=3.0.0-alt1.1 cups.git=2.4.2-alt3 enscript.git=1.6.6-alt2 a2ps.git=4.14-alt3 ghostscript.git=10.01.1-alt1 ghostscript9.git=9.54.0-alt4 srpm=poster-1.0.1-alt3.20050907.qa1.src.rpm ted.git=2.23-alt2.1 srpm=texlive-2021-alt3_3.src.rpm tuxpaint.git=0.9.29-alt1 srpm=tuxpaint-config-0.0.12-alt1.3.src.rpm srpm=xmlto-0.0.28-alt2.src.rpm xpdf.git=4.04-alt1

Лог сборки:
https://git.altlinux.org/tasks/324637/logs/events.6.1.log

Падает на:
The following packages have unmet dependencies:
ImageMagick-tools: Depends: libImageMagick6.7 (= 6.9.12.73-alt1:sisyphus+314149.100.1.1)
ghostscript-utils: Depends: texlive
                   Depends: ghostscript-classic (= 10.01.1-alt1:sisyphus+318450.100.1.1)
gv: Depends: ghostscript-module-X (>= 7.05)
E: Broken packages

Багу по пересборке пакета texlive создал:
https://bugzilla.altlinux.org/46864
Comment 2 Mikhail Tergoev 2023-07-24 12:11:48 MSK
Обновлено в задании: 325166
https://git.altlinux.org/tasks/archive/done/_317/325166/logs/events.15.2.log
Comment 3 Gleb F-Malinovskiy 2023-07-24 15:31:48 MSK
А зачем переносить старый soname в другой пакет?
Comment 4 Mikhail Tergoev 2023-07-24 22:07:40 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #3)
> А зачем переносить старый soname в другой пакет?

Совместив статью
https://www.altlinux.org/Shared_Libs_Policy 
и примеры пакетов:
libwlroots10 libwlroots11
получил libpaper1 и libpaper2.

Вижу что вы уже пакеты пересобрали.
Изучаю изменения.
Comment 5 Anton Farygin 2023-07-24 22:24:19 MSK
очень плохо когда библиотека из одного пакета перезжает в другой без смены soname - обычно это приводит к проблемам при обновлении из-за сложностей с зависимостями и поведения apt
Comment 6 Gleb F-Malinovskiy 2023-07-24 23:22:49 MSK
(In reply to Mikhail Tergoev from comment #4)
> (Ответ для Gleb F-Malinovskiy на комментарий #3)
> > А зачем переносить старый soname в другой пакет?
> 
> Совместив статью
> https://www.altlinux.org/Shared_Libs_Policy 
> и примеры пакетов:
> libwlroots10 libwlroots11
> получил libpaper1 и libpaper2.

Я спрашивал про бинарный пакет, конечно.  Один или оба исходных неизбежно должны были получить цифру в названии.
В wlroots можно увидеть, что был переименован исходный пакет, а имя бинарного пакета осталось то же самое, так что там нет такой проблемы и такого вопроса.
Comment 7 Vitaly Lipatov 2023-07-25 00:55:32 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #3)
> А зачем переносить старый soname в другой пакет?
На мой взгляд, из основного пакета после его обновления до новой версии уже нельзя собрать старый soname, поэтому этот старый soname собирается в стороне, отдельно и временно.
Comment 8 Vitaly Lipatov 2023-07-25 00:57:51 MSK
c(Ответ для Anton Farygin на комментарий #5)
> очень плохо когда библиотека из одного пакета перезжает в другой без смены
> soname - обычно это приводит к проблемам при обновлении из-за сложностей с
> зависимостями и поведения apt
Не очень понимаю, было бы лучше собрать libpaper.so.1 в пакет libpaper?
То есть бинарный libpaper2 собирался бы из libpaper
а бинарный libpaper собирался бы из libpaper1
Так лучше?
Comment 9 Anton Farygin 2023-07-25 10:21:23 MSK
(Ответ для Vitaly Lipatov на комментарий #8)
> c(Ответ для Anton Farygin на комментарий #5)
> > очень плохо когда библиотека из одного пакета перезжает в другой без смены
> > soname - обычно это приводит к проблемам при обновлении из-за сложностей с
> > зависимостями и поведения apt
> Не очень понимаю, было бы лучше собрать libpaper.so.1 в пакет libpaper?
> То есть бинарный libpaper2 собирался бы из libpaper
> а бинарный libpaper собирался бы из libpaper1
> Так лучше?

Лучше сделать так, что бы пакет с библиотекой не менял имя.
Я обычно просто переименовываю исходник, бинарник не трогаю.
А как назвать исходный пакет с новым бинарным не имеет значения, но для сохранения истории лучше его назвать libpaper.
Comment 10 Vitaly Lipatov 2023-07-25 11:02:14 MSK
(Ответ для Anton Farygin на комментарий #9)
> (Ответ для Vitaly Lipatov на комментарий #8)
> > c(Ответ для Anton Farygin на комментарий #5)
> > > очень плохо когда библиотека из одного пакета перезжает в другой без смены
> > > soname - обычно это приводит к проблемам при обновлении из-за сложностей с
> > > зависимостями и поведения apt
> > Не очень понимаю, было бы лучше собрать libpaper.so.1 в пакет libpaper?
> > То есть бинарный libpaper2 собирался бы из libpaper
> > а бинарный libpaper собирался бы из libpaper1
> > Так лучше?
> 
> Лучше сделать так, что бы пакет с библиотекой не менял имя.
> Я обычно просто переименовываю исходник, бинарник не трогаю.
> А как назвать исходный пакет с новым бинарным не имеет значения, но для
> сохранения истории лучше его назвать libpaper.
Да, так понимаю. Но мне казалось, что проблемы с аптом (при переезде библиотеки в пакет с другим названием) уже и нет на самом деле.
Спасибо.
Comment 11 Gleb F-Malinovskiy 2023-07-25 11:19:12 MSK
(In reply to Vitaly Lipatov from comment #10)
> Да, так понимаю. Но мне казалось, что проблемы с аптом (при переезде
> библиотеки в пакет с другим названием) уже и нет на самом деле.
> Спасибо.

Я (как автор того изменения в apt, которое улучшило положение дел) всегда был уверен, что просто сильно уменьшилась вероятность.
Comment 12 Mikhail Tergoev 2023-07-25 21:56:01 MSK
Создал страницу на Вики, для упрощения понимания как поступать в такой ситуации:

https://www.altlinux.org/ExampleOfPacketPeparation

Прошу проверить информацию и скорректировать при необходимости. После чего могу расписать более подробно каждый шаг.
Comment 13 Anton Farygin 2023-07-26 10:34:21 MSK
Вот это зачем нужно ?

Было бы неплохо межпактные зависимости в статье хорошенько откомментировать.

Provides: libpaper1 = %EVR
Obsoletes: libpaper1 < %EVR
Comment 14 Anton Farygin 2023-07-26 10:35:24 MSK
Conflicts: libpaper < 1.1.28-alt3
Таких конфликтов не должно быть. Основная цель смены имени - дать возможность одновременной установки библиотеки _старой_ версии и новой в одну систему.
Comment 15 Mikhail Tergoev 2023-07-26 16:26:26 MSK
(Ответ для Anton Farygin на комментарий #14)
> Conflicts: libpaper < 1.1.28-alt3
> Таких конфликтов не должно быть. Основная цель смены имени - дать
> возможность одновременной установки библиотеки _старой_ версии и новой в
> одну систему.

Из истории изменений:
- libpaper2: добавлено 'Conflicts: libpaper < 1.1.28-alt3' из-за конфликтующих
версии утилиты /usr/bin/paperconf.

Но в пакете libpaper1 версия бинарника libpaper 1.1.28-alt4 в котором нет /usr/bin/paperconf в следствии чего совместная установка обоих пакетов возможна.


(Ответ для Anton Farygin на комментарий #13)
> Вот это зачем нужно ?
> 
> Provides: libpaper1 = %EVR
> Obsoletes: libpaper1 < %EVR

Смотрим историю изменений libpaper1:

- Изменил имя пакета libpaper1 на libpaper, чтобы предотвратить ненужное
перемещение поставщика имен файлов libpaper.so.1.
- libpaper: добавлено Provides: libpaper1 и Obsoletes: libpaper1, потому что
он уже загружен в репозиторий Sisyphus. 

Про последнее - если бы бинарника libpaper1 я изначально не создал, то и добавлять не было бы смысла.

Если ошибаюсь, то поправьте.

И да, в следствии вышесказанного, пример из libpaper получается не очень хороший.
Provides: libpaper1 = %EVR
Obsoletes: libpaper1 < %EVR
по идеи и не должно было быть.