Bug 18493 - Проблема со сравнением версий содержащих буквы
: Проблема со сравнением версий содержащих буквы
Status: ASSIGNED
: Sisyphus
(All bugs in Sisyphus/librpm)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2009-01-12 22:57 by
Modified: 2012-12-22 19:26 (History)


Attachments
fix for rpmvercmp (582 bytes, patch)
2009-01-12 22:57, Kirill A. Shutemov
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2009-01-12 22:57:19
Created an attachment (id=3212) [details]
fix for rpmvercmp

Словил забавный баг(фичу?) в rpmvercmp. Есть две версии "1.a" и "1a". 
rpmvercmp считает их равными! 

rpm сравнивает эти версии следующим образом (упрощено):

1. Отбрасывает из начала обоих строк символы не являющиеся буквами или
   цифрами (!isalnum) в начале строк. В данном случае в обоих строках 
   таких символов нет.
2. Выбирает из обоих строк максимальное количество количество цифр и
   сравнивает, как числа. 1 == 1, т.е. на данном этапе версии равны.
3. Далее сравнивает оставшиеся части версий: ".a" и "a".
4. Тут цикл начинается с начала. Опять отбрасываются все символы не
   являющиеся буквами и цифрами. Остаётся "a" и "a". Они, очевидно,
   являются равными.

Я считаю такое поведение ошибочным. Отбрасывать символы не являющиеся
буквами или цифрами следует только, если в обоих строках они есть.
Как вы считаете?
------- Comment #1 From 2009-02-14 02:26:34 -------
Вроде бы все считают, что надо этот патч приложить.
------- Comment #2 From 2009-02-14 04:07:35 -------
(В ответ на комментарий №1)
> Вроде бы все считают, что надо этот патч приложить.

Исправлять нужно, но ИМХО не этим патчем.
------- Comment #3 From 2009-02-14 08:43:37 -------
А что с этим патчем не так?
------- Comment #4 From 2009-02-17 09:07:12 -------
А какая версия должна быть больше, 1a или 1.a?
Нет ответа => лучше не патчить.
------- Comment #5 From 2009-02-17 09:31:17 -------
Очевидно, что 1a > 1.a.
------- Comment #6 From 2012-01-03 03:34:59 -------
tracked at https://bugs.launchpad.net/rpm/+bug/911038