Bug 35125

Summary: rpm: manifest comments handling
Product: Sisyphus Reporter: Pavel Nakonechnyi <zorg1331>
Component: rpmAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: at, glebfm, imz, iv, ldv, m, omg, placeholder, vt
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
build logs mentioned in the bugreport
none
logs_mkimage-bug35125.tar.gz none

Description Pavel Nakonechnyi 2018-07-04 15:54:31 MSK
Created attachment 7641 [details]
build logs mentioned in the bugreport

Прилагаю здесь выдержки из переписки, которые могут быть полезны при отладке этой проблемы.

=== первый багрепорт ===
при сборке текущей версией
git://git.altlinux.org/people/mike/packages/mkimage-profiles
(2d38fc3f) некоторых образов (всех, которые пробовал), получаю
следующую ошибку:

$ make DEBUG=1 ISOHYBRID=1 regular-rescue.iso
** ARCH: x86_64
23:26:53 initializing BUILDDIR: build/
23:26:53 preparing distro config: build/distcfg.mk
23:26:55 starting image build: tail -f build/build.log
23:28:54 failed, see log above
error: open of kernel-image-un-def failed: No such file or directory
hsh-install: Packages installation failed.
make[1]: *** [lib/build.mk:51: build-image] Error 2

От собственно типа ядра ошибка не зависит.

Сборка делалась с пустым ~/.hasher/config

$ cat /etc/hasher-priv/user.d/pavel
user1=pavel_a
user2=pavel_b
allowed_mountpoints=/dev,/proc

=== ===

=== дополнительная отладка ===
Провел несколько экспериментов с разными источниками в sources.list.
Каждый раз делался `make distclean` в mkimage-profiles. Git
mkimage-profiles -- d993b9071. Никаких модификаций. Команда сборки
всегда `make DEBUG=1 ISOHYBRID=1 regular-rescue.iso`.

Результаты:
* локальный репо
Собирается. Лог в аттаче -- build-sisyphus-local.log.xz

* репо на яндексе
Ошибка насчет ядра. Лог в аттаче -- build-sisyphus-yandex.log.xz

* репо на яндексе, перед этим вычищен /var/cache/apt
Ошибка насчет ядра. Лог в аттаче -- build-sisyphus-yandex-clean-cache.log.xz

* репо -- архив сизифа
(http://ftp.altlinux.org/pub/distributions/archive/sisyphus/date/2018/07/03/)
(что-то сегодня ftp.altlinux.org особенно медленный, а на
download.basealt.ru архива нет)
Ошибка насчет ядра. Лог в аттаче -- build-sisyphus-archive.log.xz

Срез на яндексе стабильный. После синхронизации делал сборки через
mkimage, потом синхронизировал опять, расхождений не было.
Строка синхронизации как в скрипте:
rsync -PavH --delete-after \
               --max-size=90m \
               --include '*x86_64-i586/*/*' \
               --include '*x86_64-i586*' \
               --exclude '*SRPMS*' \
               --exclude '*i586*' \
               --exclude '*aarch64*' \
               --exclude 'files/arm/*' \
               --exclude 'arm/*' \
               --exclude 'files/armh/*' \
               --exclude 'armh/*' \
               --exclude '*debuginfo*' \
               --exclude '*-devel-static-*' \
               --exclude 'kernel-source-*' \
               --exclude 'asterisk-*-sounds-*' \
               --exclude 'FlightGear*' \
               --exclude 'runawfe*' \
               --exclude '*fglrx*' \
               --exclude '*nvidia*' \
               --exclude 'kde5*' \
               --exclude 'i586-kde5*' \
               --exclude 'i586-*devel*' \
               --exclude '*mpl_toolkits.basemap-data*' \
               --exclude '*obsolete/*' \
               --exclude '*orphaned/*' \
               --include 'libreoffice*' \
               --include 'LibreOffice*' \
               --include 'texlive-latex-extra*' \
               rsync://mirror.yandex.ru/altlinux/Sisyphus/ \
               /home/pavel/j.alt/Sisyphus/
=== ===
Comment 1 mikhailnov 2018-07-04 16:15:39 MSK
Подтверждаю проблему. Сизиф. Стартеркит Билдер (р9) нормально собирает.
Comment 2 mikhailnov 2018-07-04 16:18:14 MSK
Created attachment 7642 [details]
logs_mkimage-bug35125.tar.gz
Comment 3 mikhailnov 2018-07-04 16:20:51 MSK
Криво выразился.

1. Система, установленная из mate-regular.iso (Sisyphus) - тоже ошибки:
* open of kernel-image-un-def failed: No such file or directory
* open of kernel-image-st-def failed: No such file or directory
При этом tar архив rootfs собирается нормально.

2. Starterkit Builder (p8) собирает корректно.
Comment 4 Ivan A. Melnikov 2018-12-29 12:43:26 MSK
Метод http сохраняет rpm-ки ядер с решеткой и версией, соответственно в список файлов попадает что-то типа

kernel-image-std-def#1%3a4.14.89-alt1_1%3a4.14.89-alt1_x86%5f64_1545057451.rpm

Однако наш новый rpm, который 4.13, считает комментарием всё после решетки

http://git.altlinux.org/gears/r/rpm.git?p=rpm.git;a=blob;f=lib/manifest.c;h=5d71f3f258b156480b840184c9815f38ea46f602;hb=c4b50e5f9f2540511bb704155fbdfaff026959c9#l87

Так что эта строчка сокращается до kernel-image-std-def.

Как показал быстрый взгляд на git, при переезде на rpm 4.13 потерялся коммит имени ldv@, который делал поведение rpm менее суровым: комментариями считались только строки, начинающиеся с '#' (возможно, с пробелами перед ней):

http://git.altlinux.org/gears/r/rpm.git?p=rpm.git;a=commitdiff;h=6535b7f1cc7915e0f3af4529617f248f0f2ae484

Коммит хороший, предлагаю его вернуть в rpm. Думаю, это исправит и изначальную проблему.
Comment 5 Repository Robot 2019-01-16 02:14:22 MSK
rpm-4.13.0.1-alt5 -> sisyphus:

Tue Jan 15 2019 Vladimir D. Seleznev <vseleznv@altlinux> 4.13.0.1-alt5
- implemented DistTag support when comparing package versions;
- fixed handling of ancient packages (closes: #33710);
- rpmquery: disabled glob by default (thx Dmitry V. Levin; closes: #35828);
- fixed manifest comments handling (thx Dmitry V. Levin; closes: #35125);
- dirty hacked to make upgrade packages between branches possible;
- rpmpopt: made query info command display DistTag;
- spec: removed excess %EVR in intersubpackages dependencies.