[devel] I: lib.req: upgraded "library not found" warnings to errors

Dmitry V. Levin ldv на altlinux.org
Ср Фев 9 03:11:09 MSK 2022


On Tue, Feb 08, 2022 at 11:50:39PM +0300, Vitaly Lipatov wrote:
> Dmitry V. Levin писал(а) 7.2.22 2:01:
> > On Mon, Feb 07, 2022 at 01:44:06AM +0300, Alexey V. Vissarionov wrote:
> >> On 2022-02-06 16:41:12 +0300, Dmitry V. Levin wrote:
> >> 
> >>  > lib.req: upgraded "library not found" warnings to errors:
> >>  > these warnings are real packaging errors, they also cause
> >>  > further ldd errors down the line.
> >>  > Это изменение затрагивает нижеперечисленные пакеты
> >> 
> >> Дим, а вот тут нужна ручка для отключения: например, лично я
> >> предпочитаю использовать "охвисный" пакет (любителям файлов в
> >> проприетарных форматах особый превед) без Java со всеми ее
> >> ужасающими зависимостями.
> > 
> > Это всё давно есть.
> > 
> > Тут речь идёт о том, что если некий elf уже слинкован с некоторой
> > библиотекой, эта библиотека должна быть доступна для lib.req,
> > иначе lib.req оказывается в сложной ситуации.
> > 
> > А так можно фильтровать и то, что попадает к lib.req, и то,
> > что получается на выходе.
> 
> Вы не могли бы подсказать хороший способ для этого?
> Вот к примеру
> https://git.altlinux.org/tasks/295053/gears/10/git?p=git;a=blob;f=test_lib_requires2.spec;h=93cbd138404bdff484450d986f7b42f0a6721d4f;hb=57d1826fc867f8617bb0de9e0cb3af1c872a3161
> 
> у меня есть приватная библиотека ntdll.so, которая расположена в 
> %_libdir/%name
> Там же находится линкующаяся с ntdll.so библиотека sane.so.

По идее, достаточно сделать %add_findprov_lib_path %_libdir/%name,
плюс что-то у линкующихся, например, rpath или ld.so.conf,
должно навести линкер на мысль поискать библиотеку в %_libdir/%name/.

> Я смог найти только такой вариант:
> 1. Положил ntdll.so также и в %_libdir
> 2. Убрал генерируемые зависимости на неё:
> %filter_from_requires /^ntdll.so()(64bit).*/d
> 3. Не стал упаковывать %_libdir/ntdll.so в пакет, потому что она там не 
> нужна.

Это по сути способ отключить проверку зависимостей на ntdll.so.

> https://git.altlinux.org/tasks/295053/build/10/x86_64/log
> 
> А как было бы лучше? При условии, что мне нужны auto requires для 
> ntdll.so, но не нужны auto provides для неё.

Почему вы хотите избежать auto provides вида
%_libdir/%name/ntdll.so()(64bit) ?


-- 
ldv


Подробная информация о списке рассылки Devel