#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 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 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}/* %{_libdir}/* /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