[devel] [git update] packages/perl: heads/master
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Ноя 15 00:26:16 MSK 2007
On Wed, Nov 14, 2007 at 11:46:14PM +0300, Alexey Tourbin wrote:
> В принципе у меня была идея сделать что-то типа libperl.req,
> который если обнаруживает, что зависимость на PERL_X.Y.Z больше текущей
> версии самого perl X.Y.Z, то ставит зависимость на текущий
> 'perl-base >= X.Y.Z-%release'.
Вот такая зарисовка у меня есть.
Она делает как раз сравнение версий: если версия самого перла 5.8.8
а зависимость на libperl.5.8(PERL_5.8.9) значит используется
"опережающий интерфейс" и ставится зависимость >= 5.8.8-%release.
Только это, во-первых, не очень системное решение. В принципе
можно как-то обобщить, чтобы можно было накрыть целый класс проблем
(сборки snapshot'ов с незакрытым интерфейсом). Во-вторых, привязываться
именно к релизу всё-таки не очень хочется. Но больше привязываться не к
чему.
В общем не знаю делать так или нет.
$ objdump -p /usr/bin/perl |grep PERL_
0x02235169 0x00 06 PERL_5.8.9
$ ./libperl.req /usr/bin/perl
perl-base >= 5.8.8-alt15
$
----------- следующая часть -----------
#!/bin/sh
perl_dep=$(rpm -qf /usr/bin/perl --qf '%{NAME} >= %{VERSION}-%{RELEASE}')
perl_version_num=$(rpm -qf /usr/bin/perl --qf '%{VERSION}' |
awk -F. '{print$1*1000*1000+$2*1000+$3}')
. /usr/lib/rpm/functions
perl_version_refs()
{
objdump -p "$f" |awk '
BEGIN { START = 0 }
/^Version References:/ { START = 1 }
/^ *required from / { START = 2 }
/^ *required from libperl/ { START = 3 }
(START==3 && $1~/^0x/ && $NF~/^PERL_/) {
sub(/^PERL_/, "", $NF)
split($NF, ary, ".")
print ary[1]*1000*1000+ary[2]*1000+ary[3]
}'
}
LibPerlReq()
{
local f="$1"; shift
local ver="$(perl_version_refs "$f" |sort -rn |head -1)"
if [ -n "$ver" ] && [ "$ver" -gt "$perl_version_num" ]; then
echo "$perl_dep"
fi
}
ArgvFileAction LibPerlReq "$@"
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20071115/e6e9d01d/attachment-0002.bin>
Подробная информация о списке рассылки Devel