[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