mirror of
https://github.com/versity/scoutfs.git
synced 2026-01-03 10:55:20 +00:00
111 lines
2.9 KiB
RPMSpec
111 lines
2.9 KiB
RPMSpec
%define kmod_name scoutfs
|
|
%define kmod_version @@VERSION@@
|
|
%define kmod_git_hash @@GITHASH@@
|
|
%define kmod_git_describe @@GITDESCRIBE@@
|
|
%define pkg_date %(date +%%Y%%m%%d)
|
|
|
|
# take kernel version or default to uname -r
|
|
%{!?kversion: %global kversion %(uname -r)}
|
|
%global kernel_version %{kversion}
|
|
|
|
%if 0%{?el7}
|
|
%global kernel_source() /usr/src/kernels/%{kernel_version}.$(arch)
|
|
%else
|
|
%global kernel_source() /usr/src/kernels/%{kernel_version}
|
|
%endif
|
|
|
|
%{!?_release: %global _release 0.%{pkg_date}git%{kmod_git_hash}}
|
|
|
|
%if 0%{?el7}
|
|
Name: %{kmod_name}
|
|
%else
|
|
Name: kmod-%{kmod_name}
|
|
%endif
|
|
Summary: %{kmod_name} kernel module
|
|
Version: %{kmod_version}
|
|
Release: %{_release}%{?dist}
|
|
License: GPLv2
|
|
Group: System/Kernel
|
|
URL: http://scoutfs.org/
|
|
|
|
%if 0%{?el7}
|
|
BuildRequires: %{kernel_module_package_buildreqs}
|
|
%else
|
|
BuildRequires: elfutils-libelf-devel
|
|
%endif
|
|
BuildRequires: kernel-devel-uname-r = %{kernel_version}
|
|
BuildRequires: git
|
|
BuildRequires: module-init-tools
|
|
|
|
ExclusiveArch: x86_64
|
|
|
|
Source: %{kmod_name}-kmod-%{kmod_version}.tar
|
|
|
|
%if 0%{?el7}
|
|
# Build only for standard kernel variant(s); for debug packages, append "debug"
|
|
# after "default" (separated by space)
|
|
%kernel_module_package default
|
|
%endif
|
|
|
|
%global install_mod_dir extra/%{kmod_name}
|
|
|
|
%if ! 0%{?el7}
|
|
%global flavors_to_build x86_64
|
|
%endif
|
|
|
|
%description
|
|
%{kmod_name} - kernel module
|
|
|
|
|
|
%prep
|
|
%setup -q -n %{kmod_name}-kmod-%{kmod_version}
|
|
|
|
set -- *
|
|
mkdir source
|
|
mv "$@" source/
|
|
mkdir obj
|
|
|
|
|
|
%build
|
|
echo "Building for kernel: %{kernel_version} flavors: '%{flavors_to_build}'"
|
|
for flavor in %flavors_to_build; do
|
|
rm -rf obj/$flavor
|
|
cp -r source obj/$flavor
|
|
make RPM_GITHASH=%{kmod_git_hash} SCOUTFS_GIT_DESCRIBE=%{kmod_git_describe} SK_KSRC=%{kernel_source $flavor} -C obj/$flavor module
|
|
done
|
|
|
|
%install
|
|
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
|
|
export INSTALL_MOD_DIR=%{install_mod_dir}
|
|
mkdir -p %{install_mod_dir}
|
|
for flavor in %{flavors_to_build}; do
|
|
export KSRC=%{kernel_source $flavor}
|
|
export KVERSION=%{kversion}
|
|
install -d $INSTALL_MOD_PATH/lib/modules/$KVERSION/%{install_mod_dir}
|
|
cp $PWD/obj/$flavor/src/scoutfs.ko $INSTALL_MOD_PATH/lib/modules/$KVERSION/%{install_mod_dir}/
|
|
done
|
|
|
|
# mark modules executable so that strip-to-file can strip them
|
|
find %{buildroot} -type f -name \*.ko -exec %{__chmod} u+x \{\} \;
|
|
|
|
%if ! 0%{?el7}
|
|
%files
|
|
/lib/modules
|
|
|
|
%post
|
|
echo /lib/modules/%{kversion}/%{install_mod_dir}/scoutfs.ko | weak-modules --add-modules --no-initramfs
|
|
depmod -a
|
|
%endif
|
|
|
|
%clean
|
|
rm -rf %{buildroot}
|
|
|
|
%preun
|
|
# stash our modules for postun cleanup
|
|
SCOUTFS_RPM_NAME=$(rpm -q %{name} | grep "%{version}-%{release}")
|
|
rpm -ql $SCOUTFS_RPM_NAME | grep '\.ko$' > /var/run/%{name}-modules-%{version}-%{release} || true
|
|
|
|
%postun
|
|
cat /var/run/%{name}-modules-%{version}-%{release} | weak-modules --remove-modules --no-initramfs
|
|
rm /var/run/%{name}-modules-%{version}-%{release} || true
|