Files
msr-safe/msr-safe.spec
Michal Suchanek ab63bd8fcd Accepting request 1106234 from home:michals
- Fix build on Linux 6.4
- New patch: Fixup-for-commit-1aaba11da9aa-driver-core-class-remo.patch
- New patch: Fix-the-layout-changes-after-linux-6.patch
- Delete patches: 0000-msr_allowlist-diff.patch 0001-msr_batch-diff.patch
  0002-msr_entry-diff.patch 0003-msr_version-diff.patch

- Add system account msr for msr-safe tool

OBS-URL: https://build.opensuse.org/request/show/1106234
OBS-URL: https://build.opensuse.org/package/show/hardware/msr-safe?expand=0&rev=10
2023-08-28 07:46:40 +00:00

130 lines
4.0 KiB
RPMSpec

#
# spec file for package msr-safe
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: msr-safe
Version: 1.7.0
Release: 0
Summary: Kernel module and utility to control MSR access
License: GPL-3.0-or-later
Group: System/Fhs
URL: https://github.com/LLNL/msr-safe
Source0: https://github.com/LLNL/msr-safe/archive/v%{version}.tar.gz
Source1: msr-safe.service
Source2: msr-safe.sysconfig
Source3: 10-msr-safe.rules
Source4: msr-safe.sh
Source5: system-user-msr.conf
Patch1: Fix-the-layout-changes-after-linux-6.patch
Patch2: Fixup-for-commit-1aaba11da9aa-driver-core-class-remo.patch
BuildRequires: %{kernel_module_package_buildreqs}
BuildRequires: kernel-default-devel
BuildRequires: systemd-rpm-macros
BuildRequires: sysuser-tools
Requires(post): fillup
Requires(post): udev
Requires(postun):udev
# Only supported on intel architectures
ExclusiveArch: %{ix86} x86_64
%kernel_module_package
%description
Userspace utility for the kernel module of the same name
for controlling detailed access to Model Specific Registers
of CPUs.
%package KMP
Summary: Kernel module for fine-grained access to MSRs
Group: System/Kernel
%description KMP
A kernel module which provides new /dev nodes for accessing Model
Speicific Registers in CPUs, and which offers an allowlist to control
which exact MSRs may be read.
%package -n system-user-msr
Summary: System user msr & group msr
Group: System/Fhs
%sysusers_requires
%description -n system-user-msr
This package provides the system account and group "msr".
%prep
%autosetup -n %{name}-%{version}
%build
for flavor in %{flavors_to_build}; do
rm -rf obj/$flavor
mkdir -p obj/$flavor
cp -r msr* Makefile obj/$flavor
%make_build -C %{kernel_source $flavor} M=$PWD/obj/$flavor
done
%make_build CPPFLAGS="-DVERSION=\\\"%{version}-%{release}\\\"" msrsave/msrsave
%sysusers_generate_pre %{SOURCE5} msr
%install
mkdir -p %{buildroot}%{_sysusersdir}
mkdir -p %{buildroot}%{_sysconfdir}/msr
make install DESTDIR=%{buildroot} prefix=%{_prefix} sbindir=%{_sbindir} mandir=%{_mandir}
install -d %{buildroot}/%{_datadir}/msr-safe/allowlists
install -m 0644 allowlists/* %{buildroot}%{_datadir}/msr-safe/allowlists/
install -Dm 0644 %{SOURCE1} %{buildroot}%{_unitdir}/msr-safe.service
install -Dm 0644 %{SOURCE2} %{buildroot}%{_fillupdir}/sysconfig.msr-safe
install -Dm 0644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/10-msr-safe.rules
install -Dm 0755 %{SOURCE4} %{buildroot}%{_sbindir}/msr-safe
install -m 644 %{SOURCE5} %{buildroot}%{_sysusersdir}/system-user-msr.conf
export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=extra/%{name}
for flavor in %{flavors_to_build} ; do
make -C %{kernel_source $flavor} modules_install \
M=$PWD/obj/$flavor
done
%pre
%service_add_pre msr-safe.service
%pre -n system-user-msr -f msr.pre
%post
%fillup_only -n msr-safe
%udev_rules_update
%service_add_post msr-safe.service
%preun
%service_del_preun msr-safe.service
%postun
%udev_rules_update
%service_del_postun msr-safe.service
%files -n system-user-msr
%{_sysusersdir}/system-user-msr.conf
%{_fillupdir}/sysconfig.msr-safe
%dir %{_datadir}/msr-safe
%dir %{_datadir}/msr-safe/allowlists
%{_datadir}/msr-safe/allowlists/*
%{_unitdir}/msr-safe.service
%{_udevrulesdir}/10-msr-safe.rules
%{_sbindir}/msrsave
%{_sbindir}/msr-safe
%{_mandir}/man1/msrsave.1%{?ext_man}
%changelog