Именование пакетов RPM

Я использую службу Copor от Fedora для создания пакета с Non Numeric Release в соответствии со спецификациями Packaging: Naming Guidelines .

Сейчас есть два успешно созданных пакета:

paper-icon-theme 1.0-1.20151202git954bb77

paper-icon-theme 1.0-1.20151202gited30409

Из этих двух первый – более поздний.

Однако, когда я делаю dnf update , устанавливается пакет paper-icon-theme-1.0-1.20151202gited30409, который является более старой версией. Я также пробовал очистить кеш-ресурс, но он дает тот же результат.

Что я здесь делаю неправильно? Это из-за того, как я называю мои пакеты?

Ссылка на мои сборки Copr

Короче говоря, да, это из-за ваших имен пакетов.

Более конкретно, проблема связана с строкой NVR, которая является именем, версией и выпуском. Алгоритм сортировки довольно сложный, но он ищет пакет с наивысшим значением версии-релиза и считается самым последним пакетом. Поскольку последняя часть строки выпуска пакета выше во втором пакете, чем первая («ed30409»> «954bb77»), он считает, что второй пакет является более поздним.

Алгоритм сравнения сначала проверяет Epoch (обычно скрытое значение, которое большинство пакетов не использует), затем Version, затем Release. В каждом из них каждый отдельный раздел букв или цифр сравнивается отдельно. Это означает, что схема, которую вы следите, работает очень хорошо – пока снимки происходят из отдельных дат .

Однако, если вы внимательно прочитаете « пакеты после релиза », обратите внимание, что каждый раз вам следует увеличивать «количество номеров релизов», поэтому ваши пакеты должны быть

paper-icon-theme-1.0- 2. .20151202git954bb77

бумага значок-тема-1.0-1.20151202gited30409

(акцент сделан на измененном «2»).

Это число продолжает расти, так как вы выполняете пост-1,0 моментальные снимки – снова сбрасывается на 1, когда сама версия увеличивается.