sysboost/sysboost.spec
2023-06-27 21:34:17 +08:00

97 lines
2.2 KiB
RPMSpec

#needsrootforbuild
%global __cargo_skip_build 0
%global __cargo_common_opts %{?__cargo_common_opts} --all
Name: sysboost
Version: 1.0.0
Release: 0
Summary: Numa Aware Scheduling
License: Mulan PSL v2
URL: https://gitee.com/openeuler/sysboost
Source0: %{name}.tar.xz
BuildRequires: meson >= 0.49.2, clang >= 12.0.1
BuildRequires: make >= 4.0, bison >= 2.7, binutils >= 2.30-17, gcc >= 10.3.1
BuildRequires: ncurses-devel
BuildRequires: rust rust-packaging cargo
BuildRequires: kernel-devel
%define kern_devel_ver %(ver=`rpm -qa|grep kernel-devel`;echo ${ver#*kernel-devel-})
%description
sysboost can merge ELF files to improve performance.
%prep
export RPM_BUILD_DIR=%_topdir/BUILD
export RPM_BUILD_SOURCE=%_topdir/SOURCES
tar -Jxf $RPM_BUILD_SOURCE/%{name}.tar.xz
%cargo_prep
%cargo_generate_buildrequires
%build
# build binfmt.ko
%ifarch aarch64
namer=%{kern_devel_ver}
pushd $RPM_BUILD_DIR/%{name}/src/binfmt_rto
%ifarch aarch64
make %{?_smp_mflags} ARCH=arm64 KDIR=/lib/modules/${namer}/build
%else
make %{?_smp_mflags} ARCH=x86_64 KDIR=/lib/modules/${namer}/build
%endif
popd
# build sysboostd and sysboost
pushd $RPM_BUILD_DIR/%{name}
%cargo_build -a
%meson
%meson_build
popd
%install
# prep install path
mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/system
mkdir -p $RPM_BUILD_ROOT/lib/modules/sysboost
mkdir -p $RPM_BUILD_ROOT/etc/sysboost.d/
mkdir -p $RPM_BUILD_ROOT/var/lib/sysboost/
# install binfmt.ko
pushd$RPM_BUILD_DIR/%{name}
install -m 440 ./src/binfmt_rto/binfmt_rto.ko $RPM_BUILD_ROOT/lib/modules/sysboost/
popd
pushd $RPM_BUILD_DIR/%{name}
install -D -p -m 640 %{name}.service $RPM_BUILD_ROOT/usr/lib/systemd/system/%{name}.service
install -D -p -m 750 ./target/release/sysboostd $RPM_BUILD_ROOT%{_bindir}/
%meson_install
popd
%check
%files
%defattr(-,root,root,-)
%dir /etc/sysboost.d/
%dir /var/lib/sysboost/
%{_bindir}/*
/usr/lib/systemd/system/%{name}.service
%attr(0440,root,root) /lib/modules/sysboost/*
%doc
%post
%systemd_post %{name}.service
%preun
%systemd_preun %{name}.service
%postun
%systemd_postun_with_restart %{name}.service
%changelog
* Tue Jun 13 2023 liutie <liutie4@huawei.com> - 1.0.0-0
- Type:enhancement
- ID:NA
- SUG:NA
- DESC: init sysboost