You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
3.8 KiB
157 lines
3.8 KiB
# Generated by rust2rpm 18
|
|
%bcond_without check
|
|
%global __cargo_skip_build 0
|
|
|
|
%global crate rd-agent
|
|
|
|
%if 0%{?el8}
|
|
# el8 doesn't have these macros
|
|
%global __crates_url https://crates.io/api/v1/crates/
|
|
%global crates_source %{__crates_url}%{crate}/%{version}/download#/%{crate}-%{version}.crate
|
|
%global version_no_tilde %{version}
|
|
%endif
|
|
|
|
%global selinuxtype targeted
|
|
%bcond_without selinux
|
|
|
|
Name: rust-%{crate}
|
|
Version: 2.1.2
|
|
Release: %autorelease
|
|
Summary: Management agent for resctl-demo
|
|
|
|
# Upstream license specification: Apache-2.0
|
|
License: ASL 2.0 and MIT
|
|
URL: https://crates.io/crates/rd-agent
|
|
Source: %{crates_source}
|
|
# Used as a data file by rd-agent for the compile sideload
|
|
Source1: https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.11.tar.xz
|
|
# Vendored dependencies for EPEL, update with ./update-vendor-tarball.sh
|
|
Source2: %{crate}-%{version}-vendor.tar.gz
|
|
# SELinux policy
|
|
Source10: %{crate}.fc
|
|
Source11: %{crate}.if
|
|
Source12: %{crate}.te
|
|
|
|
ExclusiveArch: %{rust_arches}
|
|
|
|
%if 0%{?el8}
|
|
BuildRequires: rust-toolset
|
|
%else
|
|
BuildRequires: rust-packaging
|
|
%endif
|
|
|
|
%if 0%{?with_selinux}
|
|
BuildRequires: selinux-policy-devel
|
|
%endif
|
|
|
|
%global _description %{expand:
|
|
Management agent for resctl-demo.}
|
|
|
|
%description %{_description}
|
|
|
|
%package -n %{crate}
|
|
Summary: %{summary}
|
|
|
|
%if 0%{?with_selinux}
|
|
Requires: (%{crate}-selinux if selinux-policy-%{selinuxtype})
|
|
%endif
|
|
Recommends: rd-hashd = %{version}
|
|
Recommends: %{crate}-data = %{version}-%{release}
|
|
Recommends: bcc
|
|
Recommends: fio
|
|
Recommends: oomd
|
|
Recommends: stress
|
|
Recommends: tar
|
|
Recommends: wget
|
|
Recommends: xz
|
|
|
|
%description -n %{crate} %{_description}
|
|
|
|
%files -n %{crate}
|
|
%license LICENSE
|
|
%doc README.md
|
|
%{_bindir}/rd-agent
|
|
%attr(2775, root, wheel) %dir %{_sharedstatedir}/resctl-demo
|
|
|
|
%package -n %{crate}-data
|
|
Summary: Data files for %{crate}
|
|
BuildArch: noarch
|
|
|
|
%description -n %{crate}-data
|
|
This package contains data files for %{crate}.
|
|
|
|
%files -n %{crate}-data
|
|
%{_datadir}/resctl-demo
|
|
|
|
%if 0%{?with_selinux}
|
|
%package -n %{crate}-selinux
|
|
Summary: SELinux policy for %{crate}
|
|
BuildArch: noarch
|
|
Requires: selinux-policy-%{selinuxtype}
|
|
Requires(post): selinux-policy-%{selinuxtype}
|
|
%{?selinux_requires}
|
|
|
|
%description -n %{crate}-selinux
|
|
This package contains the SELinux policy for %{crate}.
|
|
|
|
%pre -n %{crate}-selinux
|
|
%selinux_relabel_pre -s %{selinuxtype}
|
|
|
|
%post -n %{crate}-selinux
|
|
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{crate}.pp.bz2
|
|
%selinux_relabel_post -s %{selinuxtype}
|
|
|
|
%postun -n %{crate}-selinux
|
|
if [ $1 -eq 0 ]; then
|
|
%selinux_modules_uninstall -s %{selinuxtype} %{crate}
|
|
%selinux_relabel_post -s %{selinuxtype}
|
|
fi
|
|
|
|
%files -n %{crate}-selinux
|
|
%{_datadir}/selinux/packages/%{selinuxtype}/%{crate}.pp.*
|
|
%ghost %verify(not md5 size mtime) %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{crate}
|
|
%endif
|
|
|
|
%prep
|
|
%autosetup -n %{crate}-%{version_no_tilde} -p1
|
|
|
|
%if 0%{?with_selinux}
|
|
mkdir selinux
|
|
cp -p %{SOURCE10} %{SOURCE11} %{SOURCE12} selinux
|
|
%endif
|
|
|
|
%if 0%{?el8}
|
|
%cargo_prep -V 2
|
|
%else
|
|
%cargo_prep
|
|
|
|
%generate_buildrequires
|
|
%cargo_generate_buildrequires
|
|
%endif
|
|
|
|
%build
|
|
%cargo_build
|
|
|
|
%if 0%{?with_selinux}
|
|
make -C selinux -f %{_datadir}/selinux/devel/Makefile %{crate}.pp
|
|
bzip2 -9 selinux/%{crate}.pp
|
|
%endif
|
|
|
|
%install
|
|
%cargo_install
|
|
install -Dpm0644 %SOURCE1 %{buildroot}%{_datadir}/resctl-demo/linux.tar.xz
|
|
mkdir -p %{buildroot}%{_sharedstatedir}/resctl-demo
|
|
|
|
%if 0%{?with_selinux}
|
|
install -Dm0644 selinux/%{crate}.pp.bz2 \
|
|
%{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{crate}.pp.bz2
|
|
%endif
|
|
|
|
%if %{with check}
|
|
%check
|
|
%cargo_test
|
|
%endif
|
|
|
|
%changelog
|
|
%autochangelog
|