%global domain github.com %global org kata-containers %global repo ksm-throttler %global download %{domain}/%{org}/%{repo} %global importname %{download} # Find debug informations from a go build (will be better in F31) %global gobuild go build -ldflags=-linkmode=external Name: kata-%{repo} Version: 1.8.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 # F31: Add BuildRequires: go-rpm-macros BuildRequires: %{?suse_version:go1.12} %{!?suse_version:golang} 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} %gobuild -o bin/%{repo} %{importname} %gobuild -o bin/kicker %{importname}/trigger/kicker %gobuild -o bin/vc %{importname}/trigger/virtcontainers %install # install binaries install -dp %{buildroot}%{_libexecdir}/%{repo}/trigger/virtcontainers install -p -m 755 bin/%{repo} %{buildroot}%{_libexecdir}/%{repo} install -p -m 755 bin/kicker %{buildroot}%{_libexecdir}/%{repo}/trigger/kicker install -p -m 755 bin/vc %{buildroot}%{_libexecdir}/%{repo}/trigger/virtcontainers # 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 * Tue Jul 30 2019 Christophe de Dinechin - 1.8.0-1 - Update to 1.8.0 release * Fri Jul 12 2019 Christophe de Dinechin - 1.7.3-1 - Update to 1.7.3 release, cleanup spec file * Wed Nov 21 2018 Lokesh Mandvekar - 1.3.1-3.git6e903fb - 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)