LINUX.ORG.RU

Как проверить версию RPM в спеке?

 , ,


0

1

Доброго дня,

В связи с тем, что теги «Recommends» и «Suggests» появились только в RPM 4.11.2 а мне сейчас нужно разделаться с RPM 4.8 (возможен апгрейд)

Нужно сделать что-то такое:

%if %{rpm_version} >= 4.11.2
Suggests: package-a >= 2.11
Recommends: package-b >= 4.2
%else
Requires: package-a >= 2.11
Requires: package-b >= 4.2
%endif

Беда в том, что пока не могу придумать, как (правильно) проверить версию rpm внутри спеки.

Я предоставлял как-то spec'и для определенных дистров (suse, centos), в которых rpm различались. Вот это не подойдёт в качестве решения?

UVV ★★★★★
()
Ответ на: комментарий от UVV

Ну %dist по идее должен гаранрировать версию RPM. Однако связь непрямая. Пока сделал так:

%define version_gt() (                                                      \
    HIGHEST_VER=$({                                                         \
        rpm --query --queryformat '\%{VERSION}-\%{RELEASE}\\n' --quiet %1   \
        echo "%2"                                                           \
    } | sort --version-sort | tail -n 1)                                    \
    [ "x$HIGHEST_VER" = "x%2" ] && echo false || echo true                  \
)

%if %(%version_gt rpm 4.11.1) == true
Suggests: package-a >= 2.11
Recommends: package-b >= 4.2
%else
Requires: package-a >= 2.11
Requires: package-b >= 4.2
%endif
Вроди работает...

KennyMinigun ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.