Bug 36701

Summary: apt-get обновляет пакеты, помеченные как allow-duplicated
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: aptAssignee: Ivan Zakharyaschev <imz>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aen, boyarsh, darktemplaralt, glebfm, imz, iv, lav, ldv, mike, placeholder, rider, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 34231    

Description Anton Farygin 2019-04-30 11:52:09 MSK
У нас пакеты для ядра могут быть установлены разных версий и релизов. Обновляться должны только через apt-get install, dist-upgrade обычно их не трогает.

Но сегодня я поймал такую проблему:
# apt-get dist-upgrade 
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Подсчет обновлений... Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
  apt-scripts-nvidia audacity bind-utils dhcpcd gobject-introspection gobject-introspection-x11 i586-steam.32bit intel-gen4asm intel-gpu-tools
  kernel-modules-acpi_call-un-def#0.1-alt5.k.327689.1 kernel-modules-bbswitch-un-def#0.8-alt1.k.327689.1
  kernel-modules-bcmwl-un-def#6.30.223.248-alt15.k.327689.1 kf5-kglobalaccel kf5-kglobalaccel-common kodi kodi-data libbind libkf5globalaccel
  libkf5globalaccelprivate libnss-role libprocps perl-YAML procps python-module-colorama python-module-funcsigs python-sphinx-objects.inv
  python3-module-bottle python3-module-markdown python3-module-pbr python3-module-sphinx usbids xl2tpd xterm
33 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/46,2MB архивов.
После распаковки будет освобождено 23,3MB дискового пространства.
Продолжить? [Y/n] 
Совершаем изменения...  
Подготовка...                                      #################################################################################################### [100%]
        файл /lib/modules/5.0.9-un-def-alt1/net/wl.ko из устанавливаемого пакета kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64 конфликтует с файлом из пакета kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64
        файл /lib/modules/5.0.9-un-def-alt1/acpi/bbswitch.ko из устанавливаемого пакета kernel-modules-bbswitch-un-def-0.8-alt1.k.327689.1.x86_64 конфликтует с файлом из пакета kernel-modules-bbswitch-un-def-0.8-alt1.k.327689.1.x86_64
        файл /lib/modules/5.0.9-un-def-alt1/misc/acpi_call.ko из устанавливаемого пакета kernel-modules-acpi_call-un-def-0.1-alt5.k.327689.1.x86_64 конфликтует с файлом из пакета kernel-modules-acpi_call-un-def-0.1-alt5.k.327689.1.x86_64
E: Ошибка во время исполнения транзакции

Эти модули ядра были обновлены без обновления самого ядра. Раньше такое изменение не приводило к тому, что бы apt включал данные пакеты в список обновляемых.

Полагаю, что это какие-то наведённые disttag'ом ошибки, ломающие нормальное обновление системы.
Comment 1 Anton Farygin 2019-04-30 12:00:02 MSK
Непонятно, зачем он вообще обновляет эти пакеты?
$ rpm -qa|grep kernel-modules-bcmwl-un-def
kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64

$ apt-cache showpkg kernel-modules-bcmwl-un-def
Package: kernel-modules-bcmwl-un-def
Versions: 

Reverse Depends: 
Dependencies: 
Provides: 
Reverse Provides: 
kernel-modules-bcmwl-un-def#6.30.223.248-alt15.k.327689.1 6.30.223.248-alt15.k.327689.1
kernel-modules-bcmwl-un-def#6.30.223.248-alt15.k.327689.1 6.30.223.248-alt15.k.327689.1

Почему-то apt вдруг решил, что это два разных пакета, хотя и disttag и версия-релиз у них одинаковые.
Comment 2 Ivan A. Melnikov 2019-04-30 12:15:22 MSK
> Эти модули ядра были обновлены без обновления самого ядра

http://git.altlinux.org/tasks/archive/done/_222/228167/logs/events.11.1.log


> файл /lib/modules/5.0.9-un-def-alt1/net/wl.ko из устанавливаемого
> пакета kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64
> конфликтует с файлом из пакета
> kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64

https://bugzilla.altlinux.org/36696?
Comment 3 Anton Farygin 2019-04-30 13:58:26 MSK
$  rpm -qp --qf '%{DISTTAG}\n' /mnt/rider/Sisyphus/x86_64/RPMS.classic/kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64.rpm 
sisyphus+228167.1700.11.1
$ rpm -q --qf '%{DISTTAG}\n' kernel-modules-bcmwl-un-def
sisyphus+227938.600.1.2

Видимо, в каких то случаях disttag надо игнорировать.
Comment 4 Dmitry V. Levin 2019-04-30 14:04:14 MSK
(In reply to comment #3)
> $  rpm -qp --qf '%{DISTTAG}\n'
> /mnt/rider/Sisyphus/x86_64/RPMS.classic/kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64.rpm 
> sisyphus+228167.1700.11.1
> $ rpm -q --qf '%{DISTTAG}\n' kernel-modules-bcmwl-un-def
> sisyphus+227938.600.1.2
> 
> Видимо, в каких то случаях disttag надо игнорировать.

Или конфликты в пакеты добавлять.
Comment 5 Anton Farygin 2019-04-30 14:24:06 MSK
На самого себя той же версии ? А что будет с аптом в этом случае ?
Comment 6 Ivan Zakharyaschev 2019-04-30 16:32:16 MSK
(In reply to comment #4)
> (In reply to comment #3)
> > $  rpm -qp --qf '%{DISTTAG}\n'
> > /mnt/rider/Sisyphus/x86_64/RPMS.classic/kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64.rpm 
> > sisyphus+228167.1700.11.1
> > $ rpm -q --qf '%{DISTTAG}\n' kernel-modules-bcmwl-un-def
> > sisyphus+227938.600.1.2
> > 
> > Видимо, в каких то случаях disttag надо игнорировать.
> 
> Или конфликты в пакеты добавлять.

Или Obsoletes на себя. Это по смыслу, может быть, даже ближе, чем просто конфликт. Не уверен, будет ли это работать.

Obsoletes: %name = %EVR
Comment 7 Aleksei Nikiforov 2019-04-30 16:41:07 MSK
(В ответ на комментарий №6)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > $  rpm -qp --qf '%{DISTTAG}\n'
> > > /mnt/rider/Sisyphus/x86_64/RPMS.classic/kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64.rpm 
> > > sisyphus+228167.1700.11.1
> > > $ rpm -q --qf '%{DISTTAG}\n' kernel-modules-bcmwl-un-def
> > > sisyphus+227938.600.1.2
> > > 
> > > Видимо, в каких то случаях disttag надо игнорировать.
> > 
> > Или конфликты в пакеты добавлять.
> 
> Или Obsoletes на себя. Это по смыслу, может быть, даже ближе, чем просто
> конфликт. Не уверен, будет ли это работать.
> 
> Obsoletes: %name = %EVR

Интересно, не спровоцирует ли это нечто аналогичное багу #36421 ?
Comment 8 Anton Farygin 2019-05-01 10:33:21 MSK
(В ответ на комментарий №6)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > $  rpm -qp --qf '%{DISTTAG}\n'
> > > /mnt/rider/Sisyphus/x86_64/RPMS.classic/kernel-modules-bcmwl-un-def-6.30.223.248-alt15.k.327689.1.x86_64.rpm 
> > > sisyphus+228167.1700.11.1
> > > $ rpm -q --qf '%{DISTTAG}\n' kernel-modules-bcmwl-un-def
> > > sisyphus+227938.600.1.2
> > > 
> > > Видимо, в каких то случаях disttag надо игнорировать.
> > 
> > Или конфликты в пакеты добавлять.
> 
> Или Obsoletes на себя. Это по смыслу, может быть, даже ближе, чем просто
> конфликт. Не уверен, будет ли это работать.
> 
> Obsoletes: %name = %EVR

А может быть просто apt починить ?