Created attachment 3212 [details] fix for rpmvercmp Словил забавный баг(фичу?) в rpmvercmp. Есть две версии "1.a" и "1a". rpmvercmp считает их равными! rpm сравнивает эти версии следующим образом (упрощено): 1. Отбрасывает из начала обоих строк символы не являющиеся буквами или цифрами (!isalnum) в начале строк. В данном случае в обоих строках таких символов нет. 2. Выбирает из обоих строк максимальное количество количество цифр и сравнивает, как числа. 1 == 1, т.е. на данном этапе версии равны. 3. Далее сравнивает оставшиеся части версий: ".a" и "a". 4. Тут цикл начинается с начала. Опять отбрасываются все символы не являющиеся буквами и цифрами. Остаётся "a" и "a". Они, очевидно, являются равными. Я считаю такое поведение ошибочным. Отбрасывать символы не являющиеся буквами или цифрами следует только, если в обоих строках они есть. Как вы считаете?
Вроде бы все считают, что надо этот патч приложить.
(В ответ на комментарий №1) > Вроде бы все считают, что надо этот патч приложить. Исправлять нужно, но ИМХО не этим патчем.
А что с этим патчем не так?
А какая версия должна быть больше, 1a или 1.a? Нет ответа => лучше не патчить.
Очевидно, что 1a > 1.a.
tracked at https://bugs.launchpad.net/rpm/+bug/911038