Bug 48055 - Заменить абсолютный симлинк на относительный
Summary: Заменить абсолютный симлинк на относительный
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-image-un-def (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-18 12:17 MSK by Anton Farygin
Modified: 2024-08-08 21:09 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 Anton Farygin 2023-10-18 12:17:05 MSK
При обработке пакета (распаковкой в какой-то каталог) гораздо удобнее, если симплинк в нём будет не абсолюный а относительный.
Просьба поправить, с точки зрения использования разницы никакой нет.

/lib/devicetree/6.5.7-un-def-alt1 —> /boot/devicetree/6.5.7-un-def-alt1
Comment 1 Vitaly Chikunov 2023-10-21 20:42:04 MSK
@antohami зачем нужна дира /lib/devicetree? Может её не паковать?
Comment 2 Антон Мидюков 2023-10-22 04:50:37 MSK
(Ответ для Vitaly Chikunov на комментарий #1)
> @antohami зачем нужна дира /lib/devicetree? Может её не паковать?

Для обратной совместимости со скриптами, которые ожидают каталог /lib/devicetree/ядро/, а не /boot/devicetree/ядро/. Я думаю, что ничего страшного от замены на относительный симлинк не случится.
Comment 3 Антон Мидюков 2023-10-22 04:59:28 MSK
(Ответ для Антон Мидюков на комментарий #2)
> (Ответ для Vitaly Chikunov на комментарий #1)
> > @antohami зачем нужна дира /lib/devicetree? Может её не паковать?
> 
> Для обратной совместимости со скриптами, которые ожидают каталог
> /lib/devicetree/ядро/, а не /boot/devicetree/ядро/. Я думаю, что ничего
> страшного от замены на относительный симлинк не случится.

Хотя в виду usr-merge это не кажется хорошей идеей. Относительный путь же изменится. В Сизифе можно попробовать убрать, посмотрим, будут ли проблемы.
Comment 4 Vitaly Chikunov 2023-10-22 06:08:14 MSK
Вопрос не о симлинке, а о удалении /lib/devicetree
Comment 5 Антон Мидюков 2023-10-22 07:24:25 MSK
(Ответ для Vitaly Chikunov на комментарий #4)
> Вопрос не о симлинке, а о удалении /lib/devicetree

$ rpm -qf /lib/devicetree
файл /lib/devicetree не принадлежит ни одному из пакетов

А её кто-то пакует? Пакуется симлинк /lib/devicetree/ядро
Раньше это был каталог. У других ядер это каталог до сих пор.
bootloader-utils 0.5.4-alt1 поддерживает как /lib/devicetree/ядро, так и /boot/devicetree/ядро.
В ядрах un-def и std-def в Сизифе можно не паковать симлинк /lib/devicetree/ядро. Каталог /lib/devicetree никогда и не паковался.
Comment 6 Vitaly Chikunov 2023-10-22 19:46:05 MSK
Ну я не про паковку "/lib/devicetree", а про "/lib/devicetree/ядро" -- тогда может лучше не делать (не паковать) этот симлинк вообще. "Всегда надо попробовать решить проблему удалением."

> В ядрах un-def и std-def в Сизифе можно не паковать симлинк /lib/devicetree/ядро

👍
Comment 7 Vitaly Chikunov 2023-10-22 20:59:54 MSK
%ifarch aarch64
pushd %buildroot/boot/devicetree/$KernelVer/
find . -mindepth 2 -type f | \
       while read f; do ln -srv "$f" "$(basename $f)"; done
popd
%endif

А зачем эти симлинки - может они тоже не нужны?
Comment 8 Антон Мидюков 2023-10-23 04:33:27 MSK
(Ответ для Vitaly Chikunov на комментарий #7)
> %ifarch aarch64
> pushd %buildroot/boot/devicetree/$KernelVer/
> find . -mindepth 2 -type f | \
>        while read f; do ln -srv "$f" "$(basename $f)"; done
> popd
> %endif
> 
> А зачем эти симлинки - может они тоже не нужны?

Они для старых u-boot, у которых в пути до dtb не указан vendor. Думаю, что в p11 нужно ещё будет, для тех, кто с p10 обновляется со старым u-boot. К сожалению, u-boot мы не обновляем. Т.е. лишь ближе к p12 можно будет точно убрать этот костылик.
Comment 9 Repository Robot 2023-10-26 00:01:01 MSK
kernel-image-un-def-1:6.5.9-alt1 -> sisyphus:

 Wed Oct 25 2023 Kernel Bot <kernelbot@altlinux> 1:6.5.9-alt1
 - v6.5.9 (2023-10-25).
 - Remove symlinking to /lib/devicetree (ALT#48055).
Comment 10 Антон Мидюков 2024-08-08 11:08:10 MSK
(Ответ для Антон Мидюков на комментарий #8)
> (Ответ для Vitaly Chikunov на комментарий #7)
> > %ifarch aarch64
> > pushd %buildroot/boot/devicetree/$KernelVer/
> > find . -mindepth 2 -type f | \
> >        while read f; do ln -srv "$f" "$(basename $f)"; done
> > popd
> > %endif
> > 
> > А зачем эти симлинки - может они тоже не нужны?
> 
> Они для старых u-boot, у которых в пути до dtb не указан vendor. Думаю, что
> в p11 нужно ещё будет, для тех, кто с p10 обновляется со старым u-boot. К
> сожалению, u-boot мы не обновляем. Т.е. лишь ближе к p12 можно будет точно
> убрать этот костылик.

Думаю, что уже можно и убрать, как в Сизифе, так и p11. Для p10 только оставить.
Comment 11 Vitaly Chikunov 2024-08-08 20:42:57 MSK
(In reply to Антон Мидюков from comment #10)
> Думаю, что уже можно и убрать, как в Сизифе, так и p11. Для p10 только
> оставить.

Что именно можно убрать? Код из цитирования или из коммита "kb/std-def/sisyphus} Remove symlinking to /lib/devicetree"?

Было бы неплохо чтоб это отсылалось в виде патча, в devel-kernel.
Comment 12 Антон Мидюков 2024-08-08 20:48:39 MSK
(Ответ для Vitaly Chikunov на комментарий #11)
> (In reply to Антон Мидюков from comment #10)
> > Думаю, что уже можно и убрать, как в Сизифе, так и p11. Для p10 только
> > оставить.
> 
> Что именно можно убрать? Код из цитирования или из коммита
> "kb/std-def/sisyphus} Remove symlinking to /lib/devicetree"?
> 
> Было бы неплохо чтоб это отсылалось в виде патча, в devel-kernel.

Код из цитирования для создания симлинков.
Comment 13 Vitaly Chikunov 2024-08-08 20:56:00 MSK
Хорошо.
Comment 14 Vitaly Chikunov 2024-08-08 21:09:51 MSK
Добавил в 6.10/sisyphus 6.9/sisyphus un-def/sisyphus std-def/sisyphus un-def/p11 std-def/p11