Bug 36342

Summary: разные с apt-get алгоритмы обновления системы (disttag)
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: packagekitAssignee: Anton Farygin <rider>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aen, cas, darktemplar, darktemplaralt, imz, lav, rider, vseleznv, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 34231    

Description Anton Farygin 2019-03-22 10:06:33 MSK
PackageKit и libapt используют разные алгоритмы обновления системы.
В результате PackageKit не умеет использовать disttag и это приводит к такому:
$ pkcon get-updates
Получение обновлений[=========================]         
Загрузка кэша     [=========================]         
Запрос                  [=========================]         
Завершено            [=========================]         
Обычное grub-efi-2.02-alt16.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic)  GRand Unified Bootloader (UEFI variant)
Обычное libkwin4_effect_builtins1-5.12.8-alt1.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic)        KF5 library
Обычное libkwin5-5.12.8-alt1.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic) KF5 library
Обычное libkwineffects11-5.12.8-alt1.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic) KF5 library
Обычное libkwinglutils11-5.12.8-alt1.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic) KF5 library
Обычное libkwinxrenderutils11-5.12.8-alt1.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic)    KF5 library
Обычное openttd-1.8.0-alt3.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic)   An open source clone of the Microprose game "Transport Tycoon Deluxe".
Обычное openttd-data-1.8.0-alt3.noarch (alt_linux_team-ALT Linux Sisyphus-classic)      Data files for openttd
Обычное plasma5-integration-1:5.12.8-alt1.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic)    KDE Workspace 5 integration of Qt applications
Обычное plasma5-kwin-5.12.8-alt1.x86_64 (alt_linux_team-ALT Linux Sisyphus-classic)     KDE Workspace 5 Window Manager
Обычное plasma5-kwin-common-5.12.8-alt1.noarch (alt_linux_team-ALT Linux Sisyphus-classic)      plasma5-kwin common package

$ pkcon update
Получение обновлений[=========================]         
Завершено            [=========================]         
Запрос                  [=========================]         
Проверка изменений[=========================]         
Завершено            [=========================]         
Обновление пакетов[=========================]         
Загрузка кэша     [=========================]         
Завершено            [=========================]         
В данный момент обновления отсутствуют.
Comment 1 Anton Farygin 2019-03-22 10:08:53 MSK
Ну и через apt данные пакеты обновляются нормально.
# apt-get dist-upgrade      
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Подсчет обновлений... Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
  grub-efi libkwin4_effect_builtins1 libkwin5 libkwineffects11 libkwinglutils11 libkwinxrenderutils11 openttd openttd-data plasma5-integration plasma5-kwin
  plasma5-kwin-common
11 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/21,4MB архивов.
После распаковки будет освобождено 91,3kB дискового пространства.
Продолжить? [Y/n]
Comment 2 Anton Farygin 2019-03-22 10:09:53 MSK
Добавлю, что перед этим система была обновлена через packagekit и в результате этого появилось 11 пакетов, которые он не может обновить.
Comment 3 Aleksei Nikiforov 2019-03-22 10:13:09 MSK
Подтверждаю. Проверил и обнаружил проблему обновления qt-creator,
пересобранного без увеличения релиза с новым libbotan:

$ pkcon update
Получение обновлений[=========================]         
Завершено            [=========================]         
Запрос                  [=========================]         
Проверка изменений[=========================]         
Завершено            [=========================]         
Неисправимая ошибка: The following packages have unmet dependencies:
  qt-creator: Depends: libbotan-2.so.7()(64bit) (>=
set:qj8jynvbXaIsNFTUrpuZxl0HaEVwwZKORljillmx6Y6Dc3zBrIbD2Y81p0lyI8eR1GIkePZECznHDjSDFRSLVJMcwuZHzPZkZBVEZn5ci0XY6jjBm5ysEkXpDz6Ahgo2wFlQOfzYa11Ysbns0PZDBxQiyCuoy9Ogp8fT4mTRHgCXEMO8SotSdOP8cZmLcraZgz1ELCwJ7jh3SuJn55OVBitMVK5Ky6OKdKLlqgUeSMBZyqQ4aoI4egDcmKnbB2RZE2FQQXkM0gTaBDmZio0hLfZwwIrcmmg)

$ rpm -q qt-creator
qt-creator-4.8.2-alt1.x86_64

$ rpm -q libbotan
libbotan-2.7.0-alt1.x86_64

$ apt-cache showpkg qt-creator | head -n 5
Package: qt-creator
Versions: 
4.8.2-alt1(/var/lib/apt/lists/_mnt_repo_Sisyphus_x86%5f64_base_pkglist.classic)
4.8.2-alt1(/var/lib/rpm/Packages)

$ apt-cache showpkg libbotan | head -n 5
Package: libbotan
Versions: 
2.9.0-alt1(/var/lib/apt/lists/_mnt_repo_Sisyphus_x86%5f64_base_pkglist.classic)
2.7.0-alt1(/var/lib/rpm/Packages)
Comment 4 Vladimir D. Seleznev 2019-03-22 10:32:06 MSK
Проверьте, воспроизводится ли с самыми свежими сборками rpm и apt из заданий #224998 и #223177.
Comment 5 Repository Robot 2019-03-22 14:48:13 MSK
mcelog-162-alt2 -> sisyphus:

Fri Mar 22 2019 Anton Farygin <rider@altlinux.ru> 162-alt2
- added post script for service mcelog (closes: #36342)
Comment 6 Anton Farygin 2019-03-22 14:49:00 MSK
промахнулся, извините
Comment 7 Aleksei Nikiforov 2019-03-25 12:58:52 MSK
(В ответ на комментарий №4)
> Проверьте, воспроизводится ли с самыми свежими сборками rpm и apt из заданий
> #224998 и #223177.

Проверил. Поставил qt-creator на свежем Сизифе, выполнил 'apt-get remove libbotan' (удалило qt-creator, qt-creator-data и libbotan), добавил указанные задания и выполнил 'apt-get dist-upgrade', поставил qt-creator, qt-creator-data и libbotan-2.7.0-alt1 из архива за 10 марта 2019, и запустил опять pkcon update. Проблема осталась.
Comment 8 Aleksei Nikiforov 2019-04-01 17:52:40 MSK
Удалось заставить packagekit нормально делать 'pkcon update' с помощью apt из задания #223177, а также дополнительных изменений для packagekit:

http://git.altlinux.org/people/darktemplar/packages/?p=PackageKit.git;a=commitdiff;h=082f591ca3d6da623d772a60d2d00a068b4988f9

Ждём apt с поддержкой disttag в Сизифе.
Comment 9 Repository Robot 2019-04-05 20:07:47 MSK
mcelog-162-alt2 -> p8:

Fri Mar 22 2019 Anton Farygin <rider@altlinux.ru> 162-alt2
- added post script for service mcelog (closes: #36342)

Thu Mar 21 2019 Anton Farygin <rider@altlinux.ru> 162-alt1
- 159 -> 162
- fixed condreload target in initscript (closes: #36328)
- logrotate setting has been moved from cron to main package (closes: #36329)
- updated logrotate settings from ALT bug #36329

Wed Aug 08 2018 Anton Farygin <rider@altlinux.ru> 159-alt1
- version up to 159
- built from upstream git

Tue Jul 26 2016 Fr. Br. George <george@altlinux.ru> 138-alt1
- Autobuild version bump to 138
Comment 10 Anton Farygin 2019-04-05 21:42:18 MSK
промахнулся дважды
Comment 11 Anton Farygin 2019-06-27 00:44:24 MSK
после последних изменений в apt'е обновление через packagekit перестало работать совсем.
Comment 12 Aleksei Nikiforov 2019-08-29 17:21:27 MSK
Больше не могу воспроизвести проблему. Похоже, было исправлено в apt, скорее всего в релизах 0.5.15lorg2-alt68 или 0.5.15lorg2-alt68.1.
Comment 13 Aleksei Nikiforov 2019-08-29 17:40:35 MSK
Старая проблема была исправлена, нашёл другую после обновления с помощью pkcon update с архива на 10 марта 2019 до текущего Сизифа, предварительно установив текущие apt и rpm:

$ pkcon get-updates
Получение обновлений[=========================]
Загрузка кэша     [=========================]         
Запрос                  [=========================]         
Завершено            [=========================]         
В данный момент обновления отсутствуют.

# apt-get dist-upgrade
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Подсчет обновлений... Завершено
Следующие пакеты будут ЗАМЕНЕНЫ:
  libucil (by libucil2)  xorg-rgb (by rgb)
Следующие НОВЫЕ пакеты будут установлены:
  libucil2 rgb
0 будет обновлено, 2 новых установлено, 2 пакетов будет заменено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/49,1kB архивов.
После распаковки будет освобождено 79,3kB дискового пространства.
Продолжить?
Comment 14 Repository Robot 2019-08-30 13:05:05 MSK
packagekit-1.1.12-alt8 -> sisyphus:

Fri Aug 30 2019 Aleksei Nikiforov <darktemplar@altlinux> 1.1.12-alt8
- Fixed processing obsoletes during upgrades (Closes: #36342).
Comment 15 AEN 2019-08-30 13:10:59 MSK
Спасибо!
Comment 16 Ivan Zakharyaschev 2019-08-30 13:34:37 MSK
Спасибо, отправил и в p9 сейчас. cas@, наверное, одобрит это исправление.
Comment 17 Ivan Zakharyaschev 2019-08-30 14:01:48 MSK
(In reply to comment #8)
> Удалось заставить packagekit нормально делать 'pkcon update' с помощью apt из
> задания #223177, а также дополнительных изменений для packagekit:
> 
> http://git.altlinux.org/people/darktemplar/packages/?p=PackageKit.git;a=commitdiff;h=082f591ca3d6da623d772a60d2d00a068b4988f9
> 
> Ждём apt с поддержкой disttag в Сизифе.

Да, тогда мы с vseleznv@ пробовали подход к учёту disttag как дополнительной информации для сравнения версия пакетов, без изменения формата VerStr. Но всех клиентов apt тогда нужно было бы пропатчить для правильной работы. (Вообще-то, это нужно было ещё сделать ради сравнения buildtime давно, но тогда это было не так заметно.) Я посмотрел aptitude, perl-чего-то-там-Apt, вот тут ещё патч на packagekit, и совершенно не захотелось трогать так много пакетов и отклоняться в них сильнее от upstream. В общем, рад, что решили добавить всю информацию в VerStr в apt-0.5.15lorg2-alt68 и что все клиенты могут продолжать пользоваться старым API.

(In reply to comment #12)
> Больше не могу воспроизвести проблему. Похоже, было исправлено в apt, скорее
> всего в релизах 0.5.15lorg2-alt68 или 0.5.15lorg2-alt68.1.

0.5.15lorg2-alt68.1 может помочь правильной работе, когда данные о пакетах пихают в apt из разных источников (индексы в репозиториях, локальная база данных установленных пакетов RPM) и данные друг друга дополняют по сути (например, полезные Provides, которые в одном источнике есть для пакета, в другом нет для того же самого пакета). При этом идентификаторы версий (VerStr) не во всех источниках могли быть полными (включать disttag или buildtime и т.п.) -- это осложняло их объединение. С этим релизом это должно работать получше.