[devel] [cyber] I: Sisyphus-20131108 x86_64 beehive_status: +28 -41 (291)

alexei на taf.ru alexei на taf.ru
Сб Ноя 9 08:44:15 MSK 2013



----- Исходное сообщение -----
> От: "Viacheslav Dubrovskyi" <dubrsl на gmail.com>
> Кому: devel на lists.altlinux.org
> Отправленные: Суббота, 9 Ноябрь 2013 г 6:15:38
> Тема: Re: [devel] [cyber] I: Sisyphus-20131108 x86_64 beehive_status: +28 -41 (291)
> 
> 08.11.2013 19:07, alexei на taf.ru пишет:
> > Приветствую!
> >
> > Подскажите, пожалуйста, что поменялось в поведении сборочницы, что ранее
> > собиравшийся пакет развалился вот с такой руганью?:
> >
> >> accel-ppp-1.7.3-alt5
> >> 	verify-elf: WARNING: ./usr/lib64/accel-ppp/libradius.so: undefined
> >> 	symbol:
> >> 	ppp_auth_restart
> >> 	verify-elf: ERROR: ./usr/sbin/accel-pppd: not found: libtriton.so
> У вас в пакете accel-pppd содержит RPATH=/usr/lib64/accel-ppp
> $ chrpath -l accel-pppd
> accel-pppd: RPATH=/usr/lib64/accel-ppp
> 
> В cmake-2.8.12.1-alt1 в макросе %cmake CMAKE_SKIP_RPATH заменил на
> CMAKE_SKIP_INSTALL_RPATH (для упрощения запуска тестов, которые обычно
> собираются с RPATH)
> В результате удаление RPATH происходит на этапе %install а не %build и
> DCMAKE_SKIP_RPATH=FALSE не достаточно, т.к. и так по умолчанию отключено.
> 
> Для решения проблемы есть 2 пути.
> 1. Приложить вот такой патч (немного подчистил и удалил не нужное):
> 
> diff --git a/alt-linux/accel-ppp.spec b/alt-linux/accel-ppp.spec
> index 493b2d2..7c8cdd1 100644
> --- a/alt-linux/accel-ppp.spec
> +++ b/alt-linux/accel-ppp.spec
> @@ -38,16 +38,14 @@ Features:
>  
>  %build
>  %cmake \
> -      -DCMAKE_SKIP_RPATH=FALSE \
> +      -DCMAKE_SKIP_INSTALL_RPATH:BOOL=FALSE \
>        -DBUILD_DRIVER=FALSE \
> -      -DCMAKE_INSTALL_PREFIX=%prefix \
>        -DRADIUS=TRUE \
>        -DNETSNMP=TRUE \
>        -DLOG_PGSQL=FALSE \
> -      -DBUILD_INSTALL_PREFIX=%buildroot \
> -      ..
> +      -DBUILD_INSTALL_PREFIX=%buildroot
>  
> -%make_build -C BUILD
> +%cmake_build

Спасибо, с -DCMAKE_SKIP_INSTALL_RPATH:BOOL=FALSE собралось.

> 2. Положить в /etc/ld.so.conf.d/  файл такого содержимого:
> %_libdir/%name
> 
> Причем в спеке вы уже делаете
> mkdir -p %buildroot%_sysconfdir/ld.so.conf.d
> но ничего не кладете туда.

Строка "mkdir -p %buildroot%_sysconfdir/ld.so.conf.d" артефакт,
когда пытался решить проблему с RPATH через добавление пути к библиотекам.

Но в /usr/lib[64]/accel-ppp располагаются не полноценные библиотеки а плагины,
загрузкой/выгрузкой их занимается сама программа.


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