diff --git a/kmod/scoutfs-kmod.spec.in b/kmod/scoutfs-kmod.spec.in index 836159be..4160742c 100644 --- a/kmod/scoutfs-kmod.spec.in +++ b/kmod/scoutfs-kmod.spec.in @@ -3,6 +3,23 @@ %define kmod_git_hash @@GITHASH@@ %define kmod_git_describe @@GITDESCRIBE@@ %define pkg_date %(date +%%Y%%m%%d) +%define _os_version_id %(. /etc/os-release 2>/dev/null; echo "${VERSION_ID:-0.0}") +%define os_major %(echo %{_os_version_id} | cut -d. -f1) +%define os_minor %(echo %{_os_version_id} | grep -q '\\.' && echo %{_os_version_id} | cut -d. -f2 || echo "") +%global pointrel_pkgs redhat-release rocky-release almalinux-release oraclelinux-release cloudlinux-release virtuozzo-release +%global majoronly_pkgs centos-stream-release + +# --- Build the Boolean requires expression at spec-parse time --- +%global relreq %( + clauses="" + for p in %{pointrel_pkgs}; do + clauses="${clauses}${p} = %{os_major}.%{os_minor} or " + done + for p in %{majoronly_pkgs}; do + clauses="${clauses}${p} = %{os_major}" + done + echo "(${clauses%})" +) # take kernel version or default to uname -r %{!?kversion: %global kversion %(uname -r)} @@ -27,6 +44,7 @@ Release: %{_release}%{?dist} License: GPLv2 Group: System/Kernel URL: http://scoutfs.org/ +Requires: %{relreq} %if 0%{?el7} BuildRequires: %{kernel_module_package_buildreqs} @@ -53,22 +71,10 @@ Source: %{kmod_name}-kmod-%{kmod_version}.tar %global flavors_to_build x86_64 %endif -# el9 sanity: make sure we lock to the minor release we built for and block upgrades -%{lua: - if string.match(rpm.expand("%{dist}"), "%.el9") then - rpm.define("el9 1") - end -} - -%if 0%{?el9} -%define release_major_minor 9.%{lua: print(rpm.expand("%{dist}"):match("%.el9_(%d)"))} -Requires: system-release = %{release_major_minor} -%endif %description %{kmod_name} - kernel module - %prep %setup -q -n %{kmod_name}-kmod-%{kmod_version}