102 lines
2.4 KiB
RPMSpec
102 lines
2.4 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 xf $RPM_BUILD_SOURCE/%{name}.tar.xz
|
|
|
|
%cargo_prep
|
|
%cargo_generate_buildrequires
|
|
|
|
%build
|
|
# build binfmt.ko
|
|
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/
|
|
mkdir -p $RPM_BUILD_ROOT/usr/bin
|
|
|
|
# install binfmt.ko
|
|
pushd $RPM_BUILD_DIR/%{name}
|
|
install -m 400 ./src/binfmt_rto/binfmt_rto.ko $RPM_BUILD_ROOT/lib/modules/sysboost/
|
|
popd
|
|
|
|
pushd $RPM_BUILD_DIR/%{name}
|
|
install -D -p -m 400 %{name}.service $RPM_BUILD_ROOT/usr/lib/systemd/system/%{name}.service
|
|
install -D -p -m 500 ./target/release/sysboostd $RPM_BUILD_ROOT%{_bindir}/
|
|
%meson_install
|
|
popd
|
|
|
|
%check
|
|
|
|
%files
|
|
%defattr(400,root,root,-)
|
|
%dir %attr(700, root, root) /etc/sysboost.d/
|
|
%dir %attr(700, root, root) /var/lib/sysboost/
|
|
%dir %attr(700, root, root) /lib/modules/sysboost/
|
|
%{_bindir}/*
|
|
%{_libdir}/*
|
|
%attr(500, root, root) /usr/bin/sysboost
|
|
%attr(500, root, root) /usr/bin/sysboostd
|
|
%attr(600, root, root) /etc/sysboost.d
|
|
/usr/lib/systemd/system/%{name}.service
|
|
%attr(0400,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
|