Bug 32879 - apt-printchanges doesn't work with rpm 4.13
Summary: apt-printchanges doesn't work with rpm 4.13
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: apt-printchanges (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Evgenii Terechkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-10 14:12 MSK by Vladimir D. Seleznev
Modified: 2023-08-14 11:55 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 Vladimir D. Seleznev 2016-12-10 14:12:20 MSK
After recent rpm upgrade apt-printchanges script does not print last changelog entry of installed/upgraded packages, instead of this there is:

* Thu Jan 01 1970 <type 'exceptions.Exception'>
'module' object has no attribute 'headerFromPackage'
Comment 1 Michael Shigorin 2016-12-13 12:33:32 MSK
...it also prints file paths instead of package names:

=== apt-printchanges ===
==/var/ftp/pub/Linux/ALT/Sisyphus/x86_64-i586/RPMS.classic/i586-libfreetype-2.6.3-alt1.i586.rpm /var/ftp/pub/Linux/ALT/Sisyphus/x86_64/RPMS.classic/libfreetype-2.6.3-alt1.x86_64.rpm /var/ftp/pub/Linux/ALT/Sisyphus/x86_64/RPMS.classic/python-module-efl-1.18.0-alt1.x86_64.rpm==
* Thu Jan 01 1970 <type 'exceptions.Exception'>
'module' object has no attribute 'headerFromPackage'
Comment 2 Evgenii Terechkov 2016-12-13 17:11:08 MSK
Разобрался, там несложно поправить. Но чтобы оттестировать результат, хорошо бы иметь чуть более рабочий rpm.
Comment 3 Gleb F-Malinovskiy 2016-12-13 17:26:06 MSK
(В ответ на комментарий №2)
> Разобрался, там несложно поправить. Но чтобы оттестировать результат, хорошо бы
> иметь чуть более рабочий rpm.

В этом всего хватит?
#174342 TESTED #2 [test-only] sisyphus rpm4.git=4.13.0-alt4
Comment 4 Gleb F-Malinovskiy 2016-12-14 16:27:07 MSK
Евгений, мне пофиксить или у вас уже есть фикс?
Comment 5 Evgenii Terechkov 2016-12-14 16:46:40 MSK
Фикса у меня нет, только пример нового кода.

Если кто-то пофиксит и как следует оттестит, я только за. ACL разрешает.
Comment 6 Gleb F-Malinovskiy 2016-12-14 16:52:37 MSK
(В ответ на комментарий №5)
> Фикса у меня нет, только пример нового кода.
> 
> Если кто-то пофиксит и как следует оттестит, я только за. ACL разрешает.

Есть мнение, что
-            (headers, _) = rpm.headerFromPackage(f.fileno())
+            ts = rpm.TransactionSet()
+            headers = ts.hdrFromFdno(f.fileno())
может быть недостаточно?

P.S. Вообще, в современном мире можно изменить этот скрипт, чтобы он показывал не последнее изменение, а все изменения по сравнению с установленной версией (наверное, с разумным ограничением на количество changelog entry).
Раньше, наверное, база rpm была залочена в этот момент, а теперь оттуда можно смело читать.
Comment 7 Evgenii Terechkov 2016-12-14 17:14:04 MSK
Не знаю, починит ли это указание имён файлов пакетов вместо имён самих пакетов. Я собирался это выяснить на практике (при тестировании).

Я уже не помню, почему печатаются только последние элементы, возможно действительно больше смысла печатать изменения с установленной версии (или последние 0-1 изменений при установке пакета с нуля). Если реализуете, буду очень признателен.
Comment 8 Gleb F-Malinovskiy 2016-12-14 17:17:48 MSK
(В ответ на комментарий №7)
> Не знаю, починит ли это указание имён файлов пакетов вместо имён самих пакетов.
> Я собирался это выяснить на практике (при тестировании).

Не, это результат той же ошибки.  Если случается Exception, оно вместо имени пакета выводит путь.  Если Exception не случается, лампочка горит.
Comment 9 Ivan A. Melnikov 2023-08-14 08:16:45 MSK
Я правильно понимаю, что проблему решил Глеб ещё в  0.01.1-alt1, а эту багу просто забыли закрыть?
Comment 10 Gleb F-Malinovskiy 2023-08-14 11:55:05 MSK
Похоже на то.