<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>46837</bug_id>
          
          <creation_ts>2023-07-10 14:57:16 +0300</creation_ts>
          <short_desc>Обновить libpaper до 2.x</short_desc>
          <delta_ts>2023-07-26 16:26:26 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>libpaper</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://github.com/rrthomas/libpaper</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46625</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="fidel@altlinux.org">fidel</assigned_to>
          <cc>fidel</cc>
    
    <cc>glebfm</cc>
    
    <cc>rider</cc>
    
    <cc>tergoev-m</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229384</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2023-07-10 14:57:16 +0300</bug_when>
    <thetext>Нужно обновить в Сизифе libpaper до версии 2.x вместе с пакетом paper https://github.com/rrthomas/paper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229480</commentid>
    <comment_count>1</comment_count>
    <who name="Mikhail Tergoev">tergoev-m</who>
    <bug_when>2023-07-11 16:51:01 +0300</bug_when>
    <thetext>При попытке обновить 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 (&gt;= 7.05)
E: Broken packages

Багу по пересборке пакета texlive создал:
https://bugzilla.altlinux.org/46864</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230237</commentid>
    <comment_count>2</comment_count>
    <who name="Mikhail Tergoev">tergoev-m</who>
    <bug_when>2023-07-24 12:11:48 +0300</bug_when>
    <thetext>Обновлено в задании: 325166
https://git.altlinux.org/tasks/archive/done/_317/325166/logs/events.15.2.log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230277</commentid>
    <comment_count>3</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2023-07-24 15:31:48 +0300</bug_when>
    <thetext>А зачем переносить старый soname в другой пакет?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230298</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Tergoev">tergoev-m</who>
    <bug_when>2023-07-24 22:07:40 +0300</bug_when>
    <thetext>(Ответ для Gleb F-Malinovskiy на комментарий #3)
&gt; А зачем переносить старый soname в другой пакет?

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

Вижу что вы уже пакеты пересобрали.
Изучаю изменения.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230299</commentid>
    <comment_count>5</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-07-24 22:24:19 +0300</bug_when>
    <thetext>очень плохо когда библиотека из одного пакета перезжает в другой без смены soname - обычно это приводит к проблемам при обновлении из-за сложностей с зависимостями и поведения apt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230305</commentid>
    <comment_count>6</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2023-07-24 23:22:49 +0300</bug_when>
    <thetext>(In reply to Mikhail Tergoev from comment #4)
&gt; (Ответ для Gleb F-Malinovskiy на комментарий #3)
&gt; &gt; А зачем переносить старый soname в другой пакет?
&gt; 
&gt; Совместив статью
&gt; https://www.altlinux.org/Shared_Libs_Policy 
&gt; и примеры пакетов:
&gt; libwlroots10 libwlroots11
&gt; получил libpaper1 и libpaper2.

Я спрашивал про бинарный пакет, конечно.  Один или оба исходных неизбежно должны были получить цифру в названии.
В wlroots можно увидеть, что был переименован исходный пакет, а имя бинарного пакета осталось то же самое, так что там нет такой проблемы и такого вопроса.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230307</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2023-07-25 00:55:32 +0300</bug_when>
    <thetext>(Ответ для Gleb F-Malinovskiy на комментарий #3)
&gt; А зачем переносить старый soname в другой пакет?
На мой взгляд, из основного пакета после его обновления до новой версии уже нельзя собрать старый soname, поэтому этот старый soname собирается в стороне, отдельно и временно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230308</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2023-07-25 00:57:51 +0300</bug_when>
    <thetext>c(Ответ для Anton Farygin на комментарий #5)
&gt; очень плохо когда библиотека из одного пакета перезжает в другой без смены
&gt; soname - обычно это приводит к проблемам при обновлении из-за сложностей с
&gt; зависимостями и поведения apt
Не очень понимаю, было бы лучше собрать libpaper.so.1 в пакет libpaper?
То есть бинарный libpaper2 собирался бы из libpaper
а бинарный libpaper собирался бы из libpaper1
Так лучше?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230310</commentid>
    <comment_count>9</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-07-25 10:21:23 +0300</bug_when>
    <thetext>(Ответ для Vitaly Lipatov на комментарий #8)
&gt; c(Ответ для Anton Farygin на комментарий #5)
&gt; &gt; очень плохо когда библиотека из одного пакета перезжает в другой без смены
&gt; &gt; soname - обычно это приводит к проблемам при обновлении из-за сложностей с
&gt; &gt; зависимостями и поведения apt
&gt; Не очень понимаю, было бы лучше собрать libpaper.so.1 в пакет libpaper?
&gt; То есть бинарный libpaper2 собирался бы из libpaper
&gt; а бинарный libpaper собирался бы из libpaper1
&gt; Так лучше?

Лучше сделать так, что бы пакет с библиотекой не менял имя.
Я обычно просто переименовываю исходник, бинарник не трогаю.
А как назвать исходный пакет с новым бинарным не имеет значения, но для сохранения истории лучше его назвать libpaper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230312</commentid>
    <comment_count>10</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2023-07-25 11:02:14 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #9)
&gt; (Ответ для Vitaly Lipatov на комментарий #8)
&gt; &gt; c(Ответ для Anton Farygin на комментарий #5)
&gt; &gt; &gt; очень плохо когда библиотека из одного пакета перезжает в другой без смены
&gt; &gt; &gt; soname - обычно это приводит к проблемам при обновлении из-за сложностей с
&gt; &gt; &gt; зависимостями и поведения apt
&gt; &gt; Не очень понимаю, было бы лучше собрать libpaper.so.1 в пакет libpaper?
&gt; &gt; То есть бинарный libpaper2 собирался бы из libpaper
&gt; &gt; а бинарный libpaper собирался бы из libpaper1
&gt; &gt; Так лучше?
&gt; 
&gt; Лучше сделать так, что бы пакет с библиотекой не менял имя.
&gt; Я обычно просто переименовываю исходник, бинарник не трогаю.
&gt; А как назвать исходный пакет с новым бинарным не имеет значения, но для
&gt; сохранения истории лучше его назвать libpaper.
Да, так понимаю. Но мне казалось, что проблемы с аптом (при переезде библиотеки в пакет с другим названием) уже и нет на самом деле.
Спасибо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230316</commentid>
    <comment_count>11</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2023-07-25 11:19:12 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #10)
&gt; Да, так понимаю. Но мне казалось, что проблемы с аптом (при переезде
&gt; библиотеки в пакет с другим названием) уже и нет на самом деле.
&gt; Спасибо.

Я (как автор того изменения в apt, которое улучшило положение дел) всегда был уверен, что просто сильно уменьшилась вероятность.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230375</commentid>
    <comment_count>12</comment_count>
    <who name="Mikhail Tergoev">tergoev-m</who>
    <bug_when>2023-07-25 21:56:01 +0300</bug_when>
    <thetext>Создал страницу на Вики, для упрощения понимания как поступать в такой ситуации:

https://www.altlinux.org/ExampleOfPacketPeparation

Прошу проверить информацию и скорректировать при необходимости. После чего могу расписать более подробно каждый шаг.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230387</commentid>
    <comment_count>13</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-07-26 10:34:21 +0300</bug_when>
    <thetext>Вот это зачем нужно ?

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

Provides: libpaper1 = %EVR
Obsoletes: libpaper1 &lt; %EVR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230388</commentid>
    <comment_count>14</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-07-26 10:35:24 +0300</bug_when>
    <thetext>Conflicts: libpaper &lt; 1.1.28-alt3
Таких конфликтов не должно быть. Основная цель смены имени - дать возможность одновременной установки библиотеки _старой_ версии и новой в одну систему.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230413</commentid>
    <comment_count>15</comment_count>
    <who name="Mikhail Tergoev">tergoev-m</who>
    <bug_when>2023-07-26 16:26:26 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #14)
&gt; Conflicts: libpaper &lt; 1.1.28-alt3
&gt; Таких конфликтов не должно быть. Основная цель смены имени - дать
&gt; возможность одновременной установки библиотеки _старой_ версии и новой в
&gt; одну систему.

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

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


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

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

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

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

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

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

    </bug>

</bugzilla>