[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