[devel] RFC: perl deps versioning
Mikhail Zabaluev
=?iso-8859-1?q?mhz_=CE=C1_altlinux=2Eorg?=
Чт Дек 2 02:49:23 MSK 2004
В Срд, 01/12/2004 в 22:33 +0300, Alexey Tourbin пишет:
> Напомню суть проблемы: для проверки версии требуемого модуля в перле
> используются числа с десятичной точкой (напр. `use Data::Dumper 2.121',
> в данном случае это текущая версия Data::Dumper). При этом точность
> требуемой версии (число знаков после точки) может не совпадать
> с точностью версии, указанной в самом этом модуле (напр. новая версия
> Data::Dumper может иметь версию 2.20 (хм... колбасная версия:))).
>
> RPM использует другой алгоритм сравнения версий: разбивает версию как
> строку на цифровые и буквенные сегменты, после чего цифровые сегменты
> сравниваются как целые числа, а буквенные -- как строки.
>
> В результате без корректировки точности версий возможны следующие
> казусы:
>
> 1) перебор в смысле Requires, в результате которого получается unmet
> dependency:
> Requires: perl(Data/Dumper) >= 0:2.121
> Provides: perl(Data/Dumper) = 0:2.20
>
> 2) перебор в смысле Provides, в результате которого необходимая
> зависимость фактически теряется:
> Requires: perl(Data/Dumper) >= 0:2.12
> Provides: perl(Data/Dumper) = 0:2.100
По-моему, правильнее будет унифицировать все числа до трех знаков после
точки, дополняя нулями. Решим проблему почти для всех случаев без потери
точности.
Подробная информация о списке рассылки Devel