[devel] Re: perl ABI detection at find-requires stage

=?iso-8859-1?q?at_=CE=C1_turbinal=2Eorg?= =?iso-8859-1?q?at_=CE=C1_turbinal=2Eorg?=
Вс Окт 20 04:06:58 MSD 2002


On Sun, Oct 20, 2002 at 12:45:47AM +0400, at на turbinal.org wrote:
> Каким образом зависимость на ABI/soname может попасть в пакет
> автоматически при сборке?
> 
> Можно ли отхачить что-нибудь на стадии find-requires так, чтобы при
> обнаружении перлового бинарного кода автоматически выставлялась
> зависимость на перловый soname из среды сборки?

Я посмотрел, и мне кажется, что сделать это вполне возможно.  Для этого
проще всего ввести ещё одну стадию поиска зависимостей (и назвать её
как-нибудь perlbin/noperlbin).

Критерии:

1) если в $RPM_BUILD_ROOT/usr/lib/perl* в принципе найдены какие-нибудь
перловые модули (*.pm, "Perl5 module source text"), то
2) если в $RPM_BUILD_ROOT/usr/lib/perl*/auto/* найдены какие-нибудь
.so-библиотеки, то
3) возможный дополнительный критерий: названия *.pm и *.so должны
соответствовать друг другу
4) передать список таких .so-файлов в скрипт perlbin.req, который
напечатает что-нибудь хорошее о свойствах перла в окружении сборки

Последнего, однако, не стоит делать, если
1) в $RPM_BUILD_ROOT/usr/lib или $RPM_BUILD_ROOT/usr/lib/perl*/CORE
найдены библиотеки libperl*.so*; и, кроме того
2) найден перловый модуль $RPM_BUILD_ROOT/usr/lib/perl*/Config.pm; тогда
нужно
3) передать этот перловый модуль в скрипт perlbin.prov, который
напечатает что-нибудь хорошее о свойствах собираемого перла

Я не знаю, насколько это хорошо и стоит ли это делать вообще. Но это
поможет автоматический контролировть бинарную совместимость перловых
пакетов. Простейший возможный скрипт perlbin.req, который даже не
потребует скрипта perlbin.prov, прилагается.
----------- следующая часть -----------
#!/usr/bin/perl
#
# Show perl version/build-specific binary token
#

use Config;
print "$Config{libperl}\n";



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