Bug 46683 - Успешность сборки зависит от порядка обхода файлов
Summary: Успешность сборки зависит от порядка обхода файлов
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libwaylandpp (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Sergey Bolshakov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-06-28 12:26 MSK by Ivan A. Melnikov
Modified: 2023-06-30 09:17 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan A. Melnikov 2023-06-28 12:26:02 MSK
Проблема стабильно воспроизводится при попытке собрать libwaylandpp-1.0.0-alt2 на riscv64, однако, похоже, носит кросплатформенный характер.

При сборке в sisyphus_riscv64 в пакете libwaylandpp-devel оказываются broken symlinks, /usr/lib64/libwayland-client-extra++.so и /usr/lib64/libwayland-server-unstable++.so; из-за них symlink.req генерирует зависимости, оказывающиеся анметами:

symlinks.req: /usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-extra++.so: /usr/lib64/libwayland-client-extra++.so.1 -> /usr/lib64/libwayland-client-extra++.so.1 (raw, not installed)
symlinks.req: /usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-unstable++.so: /usr/lib64/libwayland-server-unstable++.so.1 -> /usr/lib64/libwayland-server-unstable++.so.1 (raw, not installed)

Эти симлинки, похоже должны удаляться командой find, которая появилась в alt2[1], однако этого не происходит.

[1] https://git.altlinux.org/gears/l/libwaylandpp.git?a=blob;f=waylandpp.spec;h=18228e9b92da1d729a7f478ab63e3194137fec25#l39

По всей видимости, find сначала находит разделяемую библиотеку и удаляет её, после чего находит симлинк, но для него тест `-xtype f` уже не проходит: симлинк указывает не на файл, а в никуда. Чтобы проверить эту гипотезу, я заменил команду find на более развёрнутую:

find /usr/src/tmp/libwaylandpp-buildroot/usr/lib64 '(' -name '*extra*' -o -name '*unstable*' ')' -print -xtype f -print -delete

Вот её вывод во время сборки:

/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-extra++.so
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-extra++.so
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-extra++.so.1.0.0
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-extra++.so.1.0.0
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-extra++.so.1
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-unstable++.so.1.0.0
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-unstable++.so.1.0.0
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-extra++.so.1
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-extra++.so.1
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-unstable++.so
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-unstable++.so
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-unstable++.so.1.0.0
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-unstable++.so.1.0.0
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-extra++.so
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-extra++.so.1.0.0
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-extra++.so.1.0.0
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-unstable++.so
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-server-unstable++.so.1
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/pkgconfig/wayland-server-extra++.pc
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/pkgconfig/wayland-server-extra++.pc
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/pkgconfig/wayland-server-unstable++.pc
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/pkgconfig/wayland-server-unstable++.pc
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/pkgconfig/wayland-client-extra++.pc
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/pkgconfig/wayland-client-extra++.pc
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/pkgconfig/wayland-client-unstable++.pc
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/pkgconfig/wayland-client-unstable++.pc
/usr/src/tmp/libwaylandpp-buildroot/usr/lib64/libwayland-client-unstable++.so.1

Обратите внимание: ссылки, которые остались в пакете, упоминаются после их целей, и только один раз.
Comment 1 Repository Robot 2023-06-28 15:33:58 MSK
libwaylandpp-1.0.0-alt3 -> sisyphus:

 Wed Jun 28 2023 Sergey Bolshakov <sbolshakov@altlinux.ru> 1.0.0-alt3
 - rebuilt with scripting fixed, possibly (closes: 46683)
Comment 2 Ivan A. Melnikov 2023-06-30 09:17:05 MSK
(In reply to Repository Robot from comment #1)
> libwaylandpp-1.0.0-alt3 -> sisyphus:
> 
>  Wed Jun 28 2023 Sergey Bolshakov <sbolshakov@altlinux.ru> 1.0.0-alt3
>  - rebuilt with scripting fixed, possibly (closes: 46683)

В sisyphus_riscv64 собралось, спасибо.