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.