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

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

    <bug>
          <bug_id>36375</bug_id>
          
          <creation_ts>2019-03-25 11:14:27 +0300</creation_ts>
          <short_desc>rpm: после прерывания обновления нельзя удалить дублированные пакеты с одинаковыми %EVR</short_desc>
          <delta_ts>2019-06-03 14:02:00 +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>rpm</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34231</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aleksei Nikiforov">darktemplaralt</reporter>
          <assigned_to name="Vladimir D. Seleznev">vseleznv</assigned_to>
          <cc>aen</cc>
    
    <cc>at</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>jenya</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>sbolshakov</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179867</commentid>
    <comment_count>0</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2019-03-25 11:14:27 +0300</bug_when>
    <thetext>Система неожиданно зависла при обновлении по неопределённым причинам. В результате этого на системе оказалось много дублированных пакетов. Однако, дальнейшее обновление невозможно:

# apt-get dist-upgrade --fix-broken
... пропущено много строк ...

52 будет обновлено, 6 новых установлено, 589 пакетов будет удалено и 1 не будет обновлено.
Необходимо получить 0B/151MB архивов.
После распаковки будет освобождено 7215MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...  
Подготовка...                                                                                                                     #################################################################################################### [100%]
        пакет plasma5-kwin-common-5.12.8-alt1.noarch уже установлен
        файл /usr/share/kf5/doc/HTML/ca/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/ca/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/de/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/de/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/en/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/en/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/it/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/it/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/nl/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/nl/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/pt/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/pt/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/pt_BR/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/pt_BR/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/ru/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/ru/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/sv/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/sv/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/uk/kcontrol/kwindecoration/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        файл /usr/share/kf5/doc/HTML/uk/kcontrol/windowbehaviour/index.cache.bz2 из устанавливаемого пакета plasma5-kwin-common-5.12.8-alt1.noarch конфликтует с файлом из пакета plasma5-kwin-common-5.12.8-alt1.noarch
        пакет libkwinglutils11-5.12.8-alt1.x86_64 уже установлен
        файл /usr/lib64/libkwinglutils.so.5.12.8 из устанавливаемого пакета libkwinglutils11-5.12.8-alt1.x86_64 конфликтует с файлом из пакета libkwinglutils11-5.12.8-alt1.x86_64
        пакет libkwin5-5.12.8-alt1.x86_64 уже установлен
        файл /usr/lib64/libkwin.so.5.12.8 из устанавливаемого пакета libkwin5-5.12.8-alt1.x86_64 конфликтует с файлом из пакета libkwin5-5.12.8-alt1.x86_64
E: Ошибка во время исполнения транзакции


# rpm -e --nodeps plasma5-kwin-common-5.12.8-alt1
ошибка: &quot;plasma5-kwin-common-5.12.8-alt1&quot; specifies multiple packages:
  plasma5-kwin-common-5.12.8-alt1.noarch
  plasma5-kwin-common-5.12.8-alt1.noarch

# rpm -qa | grep plasma5-kwin-common-5.12.8-alt1
plasma5-kwin-common-5.12.8-alt1.noarch
plasma5-kwin-common-5.12.8-alt1.noarch

# rpm -q plasma5-kwin-common --qf &apos;%{NAME} %{EVR} %{DISTTAG}\n&apos;
plasma5-kwin-common 5.12.8-alt1 sisyphus+223879.1400.2.3
plasma5-kwin-common 5.12.8-alt1 sisyphus+225279.100.1.1


До введения DISTTAG в аналогичной ситуации вполне можно было исправить систему, удаляя дублированные пакеты на основе их версий, поскольку эпохи/версии/релизы у пакетов отличались, сейчас возможности удалить один из дублированных пакетов - нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179869</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2019-03-25 11:21:02 +0300</bug_when>
    <thetext>Указать disttag при удалении нельзя?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179871</commentid>
    <comment_count>2</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2019-03-25 11:26:44 +0300</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; Указать disttag при удалении нельзя?

Я пока такой возможности не видел. Неплохо бы к возможности указывать disttag при удалении также добавить вывод %DISTTAG если выводится %EVR, например, при выводе списка дублированных пакетов, чтобы отдельно дополнительное rpm query не писать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179880</commentid>
    <comment_count>3</comment_count>
    <who name="Vladimir D. Seleznev">vseleznv</who>
    <bug_when>2019-03-25 13:35:26 +0300</bug_when>
    <thetext>(In reply to comment #2)
&gt; (В ответ на комментарий №1)
&gt; &gt; Указать disttag при удалении нельзя?
&gt; 
&gt; Я пока такой возможности не видел. Неплохо бы к возможности указывать disttag
&gt; при удалении также добавить вывод %DISTTAG если выводится %EVR, например, при
&gt; выводе списка дублированных пакетов, чтобы отдельно дополнительное rpm query не
&gt; писать.

У меня были наработки на эту тему. Соберу следующий релиз rpm с возможностью указать disttag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179881</commentid>
    <comment_count>4</comment_count>
    <who name="Vladimir D. Seleznev">vseleznv</who>
    <bug_when>2019-03-25 13:39:14 +0300</bug_when>
    <thetext>Вопрос: стоит ли менять при этом формат вывода `rpm -qa`? Чтобы вместо &quot;%{name}-%{version}.%{release}&quot; выводилось &quot;%{name}-%{EVR}:%{?disttag::%disttag}&quot;? Мне не очевидно, что от такого изменения может сломаться?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179882</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2019-03-25 13:41:25 +0300</bug_when>
    <thetext>(In reply to comment #4)
&gt; Вопрос: стоит ли менять при этом формат вывода `rpm -qa`?

А зачем?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179883</commentid>
    <comment_count>6</comment_count>
    <who name="Vladimir D. Seleznev">vseleznv</who>
    <bug_when>2019-03-25 13:50:53 +0300</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Вопрос: стоит ли менять при этом формат вывода `rpm -qa`?
&gt; 
&gt; А зачем?

Чтобы явно было видно, что установлен не два раза одна версия пакета, а два различных пакета, например. И чтобы было понятно, что именно писать в `rpm -e`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179884</commentid>
    <comment_count>7</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2019-03-25 13:52:26 +0300</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; Вопрос: стоит ли менять при этом формат вывода `rpm -qa`?
&gt; &gt; 
&gt; &gt; А зачем?
&gt; 
&gt; Чтобы явно было видно, что установлен не два раза одна версия пакета, а два
&gt; различных пакета, например. И чтобы было понятно, что именно писать в `rpm -e`

Можно добавить опцию для отображения (или спрятывания) %DISTTAG из вывода.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179885</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2019-03-25 14:01:54 +0300</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; Вопрос: стоит ли менять при этом формат вывода `rpm -qa`?
&gt; &gt; 
&gt; &gt; А зачем?
&gt; 
&gt; Чтобы явно было видно, что установлен не два раза одна версия пакета, а два
&gt; различных пакета, например. И чтобы было понятно, что именно писать в `rpm -e`

Там даже Epoch не выводится, и ничего, никому не надо было.  Я бы традиционный формат вывода не трогал, во избежание.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179887</commentid>
    <comment_count>9</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-03-25 14:14:45 +0300</bug_when>
    <thetext>главное научиться обрабатывать disttag в rpm -e.

Запросить то можно и через query-format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179893</commentid>
    <comment_count>10</comment_count>
    <who name="Vladimir D. Seleznev">vseleznv</who>
    <bug_when>2019-03-25 14:53:31 +0300</bug_when>
    <thetext>Можно в выводе &quot;error: &quot;pkg&quot; specifies multiple packages:&quot; выводить формат с disttag. По идее, это ничего не должно сломать, очень удивлюсь, если скрипты это используют и парсят.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179902</commentid>
    <comment_count>11</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2019-03-25 15:08:48 +0300</bug_when>
    <thetext>(In reply to comment #10)
&gt; Можно в выводе &quot;error: &quot;pkg&quot; specifies multiple packages:&quot; выводить формат с
&gt; disttag. По идее, это ничего не должно сломать, очень удивлюсь, если скрипты
&gt; это используют и парсят.

Тут, я думаю, мы ничем не рискуем, расширяя формат вывода.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179913</commentid>
    <comment_count>12</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2019-03-25 16:16:44 +0300</bug_when>
    <thetext>Как workaround для систем, где такое случилось, glebfm@ предложил использовать --allmatches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179934</commentid>
    <comment_count>13</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-03-25 21:19:57 +0300</bug_when>
    <thetext>Всё-таки с выводом более-менее понятно. Вопрос в удалении мусора.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180302</commentid>
    <comment_count>14</comment_count>
    <who name="Sergey Bolshakov">sbolshakov</who>
    <bug_when>2019-04-02 15:01:05 +0300</bug_when>
    <thetext>(In reply to comment #9)
&gt; главное научиться обрабатывать disttag в rpm -e.
&gt; 
&gt; Запросить то можно и через query-format.

Да, именно так.
Несчастные случаи на производстве с подобным итогом что-то часты в последнее время, --allmatches не спасает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181168</commentid>
    <comment_count>15</comment_count>
    <who name="Bolshedvorsky Evgeny">jenya</who>
    <bug_when>2019-04-23 17:13:51 +0300</bug_when>
    <thetext>Нажатие ctrl+c при dist-upgrade  так-же приводит в появлению трудноудаляемых пакетов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182142</commentid>
    <comment_count>16</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2019-06-03 14:02:00 +0300</bug_when>
    <thetext>rpm-4.13.0.1-alt7 -&gt; sisyphus:

Mon May 27 2019 Ivan Zakharyaschev &lt;imz@altlinux&gt; 4.13.0.1-alt7
(thx Vladimir D. Seleznev vseleznv@)
- Added support for dbi matching against DistTag and BuildTime (closes: #36375).
- Display NEVR with DistTag or BuildTime when label, specified to erase, is
  matching to multiple packages.
(thx Gleb F-Malinovskiy glebfm@)
- Fix non-LFS functions on i586 in rpm-plugins/systemd_inhibit.so,
  /usr/lib/rpm/sepdebugcrcfix (thx glebfm@).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>