From de7d0c24a6a11023b29be51dd27abd474fe7ca1b Mon Sep 17 00:00:00 2001 From: Tie Liu Date: Tue, 27 Jun 2023 21:34:17 +0800 Subject: [PATCH] init the spec file --- sysboost.spec | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sysboost.spec diff --git a/sysboost.spec b/sysboost.spec new file mode 100644 index 0000000..be48aec --- /dev/null +++ b/sysboost.spec @@ -0,0 +1,96 @@ +#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 - 1.0.0-0 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC: init sysboost