Bug 49749

Summary: 032-compress.brp и цепочки символических ссылок
Product: Sisyphus Reporter: Ivan A. Melnikov <iv>
Component: rpm-buildAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: arseny, glebfm, imz, ldv, placeholder, rider, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Ivan A. Melnikov 2024-03-20 14:06:17 MSK
В пакете pari (а точнее, в его подпакете pari-gp) наблюдается следующая картина:

/usr/share/man/man1/gp-2.15.1.xz
/usr/share/man/man1/gp.1.xz -> gp-2.15.1.xz
/usr/share/man/man1/pari.1.xz -> gp.1.xz

Изначально, апстримный make install создаёт цепочку pari.1 -> gp.1 -> gp-2.15.1, затем наш 032-compress.brp это переделывает в пожатое.

Однако при сборке в догоняющем girar'e loongarch64 это не срабатывает:

Compressing files in /usr/src/tmp/pari-buildroot (auto)
032-compress.brp: ERROR: file /usr/src/tmp/pari-buildroot/usr/share/man/man1/pari.1 points to non-existent file gp.1
error: Bad exit status from /usr/src/tmp/rpm-tmp.87422 (%install)

Предположительно, дело в том, что 032-compress.brp обходит симлинки в том порядке, в котором их находит find, однако этот порядок не гарантируется, и может по каким-то причинам оказаться другим.
Comment 1 Ivan A. Melnikov 2024-03-20 14:20:03 MSK
(In reply to Ivan A. Melnikov from comment #0)
> Предположительно, дело в том, что 032-compress.brp обходит симлинки в том
> порядке, в котором их находит find, однако этот порядок не гарантируется, и
> может по каким-то причинам оказаться другим.

Я вот про этот find:

https://git.altlinux.org/gears/r/rpm-build.git?p=rpm-build.git;a=blob;f=scripts/brp-compress.in;h=b13795802d74e59e71da30dd580bbd53fba094fb;hb=eecc36404dea40865c02f2fd091f002fff2675a5#l127
Comment 2 Ivan A. Melnikov 2024-03-20 14:21:42 MSK
Решить это можно по-разному, но главный вопрос у меня сейчас такой:

rpm-build поддерживает цепочки символических ссылок на man'ы?
Comment 3 Anton Farygin 2024-03-20 14:43:41 MSK
Спасибо за репорт. Вчера тоже столкнулся с такой ошибкой на x86.
Вся проблема была в том, что ссылка man страницы из собираемого пакета смотрела в уже собранный. 
Я не нашёл способа решить такую ошибку и просто удалил такую ссылку.