From 2b5c929181e309560aa8ea5e2d80112007cfddf6 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Wed, 2 Sep 2015 18:43:13 +0000 Subject: [PATCH] scst.spec.in: Sort kernel rpm by build time Additionally, fix the logic for determining %{krpmver} if %{kdir} points to another kernel version than the latest kernel version. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6496 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst.spec.in | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/scst.spec.in b/scst.spec.in index f44744229..f2ae36fe7 100644 --- a/scst.spec.in +++ b/scst.spec.in @@ -12,8 +12,8 @@ %{!?kdir: %define kversion %{expand:%%( if rpm --quiet -q kernel-headers; then - rpm -q --qf '%%%%{version}-%%%%{release}.%%%%{arch}\\n' \\ - kernel-headers | tail -n1; + rpm -q --qf '%%%%{BUILDTIME} %%%%{version}-%%%%{release}.%%%%{arch}\\n' \\ + kernel-headers | sort | tail -n1 | { read a b; echo $b; }; else uname -r; fi @@ -21,27 +21,29 @@ %{echo:kversion=%{kversion} } # kernel_rpm: Name of the kernel RPM if the kernel is available as an RPM. -%if %{expand:%%(rpm --quiet -q kernel-headers || - rpm --quiet -qf /lib/modules/%{kversion}/kernel/arch 2>/dev/null; +# krpmver: Version of the kernel RPM. Not necessarily identical to %{kversion}. +%if %{expand:%%(rpm --quiet -qf /lib/modules/%{kversion}/kernel/arch 2>/dev/null; echo $((1-$?)))} %define kernel_rpm %{expand:%%( - if rpm --quiet -q kernel-headers; then - echo kernel; - else - rpm -q --qf '%%%%{name}\\n' \\ - "$(rpm -qf /lib/modules/%%{kversion}/kernel/arch | tail -n1)"; - fi + rpm -q --qf '%%%%{name}\\n' -f \\ + /lib/modules/%%{kversion}/kernel/arch | uniq + )} +%define krpmver %{expand:%%( + rpm -q --qf '%%%%{version}-%%%%{release}\\n' -f \\ + /lib/modules/%%{kversion}/kernel/arch | uniq + )} +%else +%if %{expand:%%(rpm --quiet -q kernel-headers; echo $((1-$?)))} +%define kernel_rpm kernel +%define krpmver %{expand:%%( + rpm -q --qf '%%%%{BUILDTIME} %%%%{version}-%%%%{release}\\n' \\ + kernel-headers | sort | tail -n1 | { read a b; echo $b; } )} %endif -# krpmver: Version of the kernel RPM. Not necessarily identical to %{kversion}. -%{?kernel_rpm:%define krpmver %{expand:%%( - if rpm --quiet -q %%{kernel_rpm}; then - rpm -q --qf '%%%%{version}-%%%%{release}\\n' "%%{kernel_rpm}"; - else - rpm -q --qf '%%%%{version}-%%%%{release}\\n' kernel-headers; - fi | - tail -n1 - )} +%endif +%{?kernel_rpm: +%{echo:kernel_rpm=%{kernel_rpm} +} %{echo:krpmver=%{krpmver} }} # kernel_devel_rpm: Name of the kernel development RPM.