%global domain github.com %global org kata-containers %global repo ksm-throttler %global download %{domain}/%{org}/%{repo} %global importname %{download} Name: kata-%{repo} Version: 1.9.0 Release: 1%{?dist} Url: https://%{download} Source0: https://%{download}/archive/%{version}/%{name}-%{version}.tar.gz Summary: Kata KSM throttling daemon Group: Development/Tools License: ASL 2.0 BuildRequires: go-rpm-macros BuildRequires: systemd Provides: bundled(golang(github.com/davecgh/go-spew)) = v1.1.0 Provides: bundled(golang(github.com/fsnotify/fsnotify)) = 4da3e2cfbabc9f751898f250b49f2439785783a1 Provides: bundled(golang(github.com/golang/protobuf)) = 1e59b77b52bf8e4b449a57e6f79f21226d571845 Provides: bundled(golang(github.com/pmezard/go-difflib)) = v1.0.0 Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.0.3 Provides: bundled(golang(github.com/stretchr/testify)) = 2aa2c176b9dab406a6970f6a55f513e8a8c8b18f Provides: bundled(golang(golang.org/x/crypto)) = 9f005a07e0d31d45e6656d241bb5c0f2efd4bc94 Provides: bundled(golang(golang.org/x/net)) = a337091b0525af65de94df2eb7e98bd9962dcbe2 Provides: bundled(golang(golang.org/x/sys)) = bf42f188b9bc6f2cf5b8ee5a912ef1aedd0eba4c Provides: bundled(golang(golang.org/x/text)) = 88f656faf3f37f690df1a32515b479415e1a6769 Provides: bundled(golang(google.golang.org/genproto)) = 11c7f9e547da6db876260ce49ea7536985904c9b Provides: bundled(golang(google.golang.org/grpc)) = v1.7.3 %description This project implements a Kernel Same-page Merging throttling daemon. The Kata Containers runtime creates a virtual machine (VM) to isolate a set of container workloads. The VM requires a guest kernel and a guest operating system ("guest OS") to boot and create containers inside the guest environment. This package contains the tools to create guest OS images. The goal of the ksm throttler daemon is to regulate KSM by dynamically modifying the KSM sysfs entries, in order to minimize memory duplication as fast as possible while keeping the KSM daemon load low. %prep %autosetup -n %{repo}-%{version} for file in kata-%{repo}.service.in kata-vc-throttler.service.in do sed -i "s|@libexecdir@|%{_libexecdir}|g" $file sed -i "s|@PACKAGE_NAME@|%{repo}|g" $file sed -i "s|@TARGET@|%{repo}|g" $file sed -i "s|@PACKAGE_URL@|%{import_path}|g" $file sed -i "s|@SERVICE_FILE@|%{repo}.service|g" $file done %build # Adjust for go build requirements # Future: Use %gopkginstall # export GOROOT="$(pwd)/go" export GOPATH="$(pwd)/go" mkdir go mv vendor go/src mkdir -p go/src/%{domain}/%{org} ln -s $(pwd)/../%{repo}-%{version} go/src/%{importname} cd go/src/%{importname} LDFLAGS="linkmode=external" %gobuild pushd trigger/kicker %gobuild popd pushd trigger/virtcontainers %gobuild popd %install # install binaries install -dp %{buildroot}%{_libexecdir}/%{repo}/trigger/virtcontainers install -p -m 755 %{repo} %{buildroot}%{_libexecdir}/%{repo} install -p -m 755 trigger/kicker/kicker %{buildroot}%{_libexecdir}/%{repo}/trigger/kicker install -p -m 755 trigger/virtcontainers/virtcontainers %{buildroot}%{_libexecdir}/%{repo}/trigger/virtcontainers/vc # install unitfiles install -dp %{buildroot}%{_unitdir} install -p -m 644 kata-%{repo}.service.in %{buildroot}%{_unitdir}/kata-%{repo}.service install -p -m 644 kata-vc-throttler.service.in %{buildroot}%{_unitdir}/kata-vc-throttler.service %check %post %systemd_post kata-vc-throttler %preun %systemd_preun kata-vc-throttler %postun %systemd_postun_with_restart kata-vc-throttler %files %license LICENSE %doc CODE_OF_CONDUCT.md CONTRIBUTING.md OWNERS README.md %dir %{_libexecdir}/%{repo} %{_libexecdir}/%{repo}/%{repo} %dir %{_libexecdir}/%{repo}/trigger %dir %{_libexecdir}/%{repo}/trigger/virtcontainers %{_libexecdir}/%{repo}/trigger/kicker %{_libexecdir}/%{repo}/trigger/virtcontainers/vc %{_unitdir}/kata-%{repo}.service %{_unitdir}/kata-vc-throttler.service %changelog * Thu Nov 14 2019 Christophe de Dinechin - 1.9.0-1 - Update to release 1.9.0 * Fri Sep 20 2019 Christophe de Dinechin - 1.8.2-1 - Update to 1.8.2 release * Thu Jul 25 2019 Fedora Release Engineering - 1.4.1-3.git83ecff0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Fri Feb 01 2019 Fedora Release Engineering - 1.4.1-2.git83ecff0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Thu Jan 03 2019 Lokesh Mandvekar - 1.4.1-1.git83ecff0 - bump to 1.4.1 * Wed Nov 21 2018 Lokesh Mandvekar - 1.3.1-4.git6e903fb - build for all supported arches * Wed Nov 21 2018 Lokesh Mandvekar - 1.3.1-3.git6e903fb - Resolves: #1590417 - first official build - make not needed as BR * Mon Nov 12 2018 Lokesh Mandvekar - 1.3.1-2.git6e903fb - bundled Provides * Sat Nov 10 2018 Lokesh Mandvekar - 1.3.1-1.git6e903fb - bump to v1.3.1 - built commit 6e903fb * Thu Jun 14 2018 Lokesh Mandvekar - 1.0.0-2.gitaa4d33d - include scriptlets * Thu Jun 14 2018 Lokesh Mandvekar - 1.0.0-1.gitaa4d33d - first build (ready for Fedora review)