tuned/tuned.spec
Thomas Renninger 6dbe352ffc Accepting request 961869 from home:trenn:branches:Base:System
- Add new openshift platform profiles
- Instead of adding all profiles to main package and exclude subpackage
  profiles, explicitly mention all added profiles in %files section
- Sort (alphabetically) profiles and packages
- Update to version 2.18.0.8+git.6f907c9:
  * beakerlib: fix systemd rate limiting for variables-support-in-profiles
  * scheduler: fix construction of the process name regex
  * Added more conflicting implementations to the systemd unit file.
  * raise the netfilter hash table size in openshift/atomic-{host,guest} to match the max netfilter conntrack entries, reducing such hash table load.
  * Fixing save call and comments in tuned gui
  * Adding option "txqueuelen" to net_plugin
  * bootloader: on s390(x) remove TuneD variables from the BLS
  * daemon: don't do full rollback on systemd failure
  * profiles: use cstate.id_no_zero instead of the cstate.id
  * Expanding cpu plugin force_latency option syntax
  * Adding support for nvme subsystem block devices and adding tests so it won't throw errors on hdparms commands.
  * Fix improper parsing of include directive
  * application: log TuneD and kernel version
  * readme: mention conflicting cpupower and power-profiles-daemon
  * dbus: fix traceback on python-2.7
  * cpu_partitioning: fixed no_balance_cores on newer kernels
  * spec: do not require subscription-manager on CentOS
  * Add conditional profile loading
  * openshift profile: workaround high CPU utilization of [scheduler] plug-in.
  * scheduler: new option cgroup_ps_blacklist
  * breaking up various modules and implementing neccessary new syntax used downstream to keep docs repos synced

OBS-URL: https://build.opensuse.org/request/show/961869
OBS-URL: https://build.opensuse.org/package/show/Base:System/tuned?expand=0&rev=81
2022-03-15 12:23:52 +00:00

352 lines
11 KiB
RPMSpec

#
# spec file for package tuned
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define profile_dir %{_prefix}/lib/%{name}
Name: tuned
Version: 2.18.0.8+git.6f907c9
Release: 0
Summary: A dynamic adaptive system tuning daemon
License: GPL-2.0-or-later
Group: System/Base
URL: https://github.com/redhat-performance/tuned
Source0: tuned-%{version}.tar.xz
Source1: tuned.rpmlintrc
# PATCH-FIX-OPENSUSE fix-allow-receive_sender-default.patch <allow receive_sender="com.redhat.com"/> allow receive_* is normally
# not needed as that is the default --<p.drouand@gmail.com>
Patch0: fix-allow-receive_sender-default.patch
BuildRequires: bash-completion
BuildRequires: desktop-file-utils
BuildRequires: pkgconfig
BuildRequires: python3-base
BuildRequires: pkgconfig(systemd)
# need perf_bias now
Requires: cpupower >= 4.19
Requires: ethtool
Requires: gawk
Requires: hdparm
Requires: polkit
Requires: python3-configobj
Requires: python3-dbus-python
Requires: python3-decorator
Requires: python3-gobject
Requires: python3-linux-procfs
Requires: python3-pyudev
Requires: util-linux
Requires: virt-what
BuildArch: noarch
%{?systemd_requires}
%description
The tuned package contains a daemon that tunes system settings dynamically.
It does so by monitoring the usage of several system components periodically.
Based on that information components will then be put into lower or higher
power saving modes to adapt to the current usage. Currently only ethernet
network and ATA harddisk devices are implemented.
%package utils
Summary: Disk and net statistic monitoring systemtap scripts
Group: System/Base
Requires: %{name} = %{version}
Requires: powertop
%description utils
This package contains utilities that can help you to fine tune your
system and manage tuned profiles.
%package utils-systemtap
Summary: Disk and net statistic monitoring systemtap scripts
Group: System/Base
Requires: %{name} = %{version}
Requires: systemtap
%description utils-systemtap
This package contains several systemtap scripts to allow detailed
manual monitoring of the system. Instead of the typical IO/sec it collects
minimal, maximal and average time between operations to be able to
identify applications that behave power inefficient (many small operations
instead of fewer large ones).
%package gtk
Summary: Disk and net statistic monitoring systemtap scripts - GTK GUI
Group: System/Base
Requires: %{name} = %{version}
Requires: powertop
%description gtk
GTK GUI that can control tuned and provide simple profile editor.
%package profiles-atomic
Summary: Additional tuned profiles targeted to Atomic
Group: System/Base
Requires: %{name} = %{version}
%description profiles-atomic
Additional profile(s) for the tuned daemon, targeted to Atomic host and guest.
%package profiles-nfv
Summary: Additional tuned profiles targeted to Network Function Virtualization (NFV)
Group: System/Base
Requires: %{name} = %{version}
%description profiles-nfv
Additional profile(s) for the tuned daemon, targeted to Network Function Virtualization (NFV).
%package profiles-openshift
Summary: Additional tuned profile(s) optimized for the OpenShift platform
Requires: %{name} = %{version}
%description profiles-openshift
Additional 3 profiles for the Openshift platform:
A parent profile containing tuning shared by OpenShift control plane and worker nodes.
One profile optimized for OpenShift control plane.
And a third profile optimized for general workloads on OpenShift worker nodes.
%package profiles-oracle
Summary: Additional tuned profiles targeted to Oracle loads
Group: System/Base
Requires: %{name} = %{version}
%description profiles-oracle
Additional profile(s) for the tuned daemon, targeted to Oracle loads.
%package profiles-postgresql
Summary: Additional tuned profile(s) targeted to PostgreSQL server loads
Requires: %{name} = %{version}
%description profiles-postgresql
Additional tuned profile(s) targeted to PostgreSQL server loads.
%package profiles-realtime
Summary: Additional tuned profiles targeted to realtime
Group: System/Base
Requires: %{name} = %{version}
%description profiles-realtime
Additional profile(s) for the tuned daemon, targeted to realtime.
# Do not ship SAP profiles for SLE and Leap, there are other packages
# providing these profiles
%if !0%{?sle_version}
%package profiles-sap
Summary: Additional tuned profile(s) targeted to SAP NetWeaver loads
Group: System/Base
Requires: %{name} = %{version}
%description profiles-sap
Additional profile(s) for the tuned daemon, targeted to SAP NetWeaver loads.
%package profiles-sap-hana
Summary: Additional tuned profile(s) targeted to SAP HANA loads
Group: System/Base
Requires: %{name} = %{version}
%description profiles-sap-hana
Additional profile(s) for the tuned daemon, targeted to SAP HANA loads.
%endif
%package profiles-spectrumscale
Summary: Additional tuned profile(s) optimized for IBM Spectrum Scale
Requires: %{name} = %{version}
%description profiles-spectrumscale
Additional tuned profile(s) optimized for IBM Spectrum Scale.
%prep
%autosetup -p1
%build
# The tuned daemon is written in pure Python. Nothing requires to be built.
# Just a hack to avoid installation in a wrong directory
sed -i 's|usr/libexec/tuned|%{profile_dir}|' Makefile
%install
%make_install TUNED_PROFILESDIR=%{profile_dir}
%py3_compile %{buildroot}/%{python3_sitelib}
rm -rf %{buildroot}/%{_datadir}/doc
# Remove unwanted stuff instead of excluding them in files list
rm -rf %{buildroot}%{profile_dir}/{default,desktop-powersave,laptop-ac-powersave,server-powersave,laptop-battery-powersave,enterprise-storage,spindown-disk}
rm %{buildroot}%{_mandir}/man7/tuned-profiles-compat.7
ln -sf service %{buildroot}%{_sbindir}/rctuned
%post
%service_add_post %{name}.service
%if 0%{?suse_version} <= 1320
systemd-tmpfiles --create %{_tmpfilesdir}/%{name}.conf >/dev/null 2>&1 || :
%else
%tmpfiles_create %{_tmpfilesdir}/%{name}.conf
%endif
# convert active_profile from full path to name (if needed)
sed -i 's|.*/\([^/]\+\)/[^\.]\+\.conf|\1|' %{_sysconfdir}/tuned/active_profile
%if 0%{?suse_version} < 1500
%desktop_database_post
%endif
%pre
%service_add_pre %{name}.service
%preun
%service_del_preun %{name}.service
%postun
%service_del_postun %{name}.service
%if 0%{?suse_version} < 1500
%desktop_database_postun
%endif
%files
%dir %_sysconfdir/dbus-1
%dir %_sysconfdir/dbus-1/system.d
%dir %{_sysconfdir}/modprobe.d
%license COPYING
%doc AUTHORS README
%{_datadir}/bash-completion/completions/tuned-adm
%{_datadir}/polkit-1/actions/com.redhat.tuned.policy
%{python3_sitelib}/tuned
%{_sbindir}/tuned
%{_sbindir}/tuned-adm
%{_sbindir}/rctuned
%dir %{profile_dir}
%dir %{profile_dir}/recommend.d
%exclude %{python3_sitelib}/tuned/gtk
# General files
%{profile_dir}/pmqos-static.py
%{profile_dir}/functions
%{profile_dir}/recommend.d/50-tuned.conf
%{profile_dir}/defirqaffinity.py
# Profiles included in main package - alphabetically sorted
%{profile_dir}/accelerator-performance
%{profile_dir}/balanced
%{profile_dir}/balanced
%{profile_dir}/cpu-partitioning
%{profile_dir}/desktop
%{profile_dir}/hpc-compute
%{profile_dir}/intel-sst
%{profile_dir}/latency-performance
%{profile_dir}/mssql
%{profile_dir}/network-latency
%{profile_dir}/network-throughput
%{profile_dir}/optimize-serial-console
%{profile_dir}/powersave
%{profile_dir}/throughput-performance
%{profile_dir}/virtual-guest
%{profile_dir}/virtual-host
# active_profile might be empty when built via build service, but typically
# not on a real install -> better do not mark it %%ghost
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/tuned/active_profile
%config(noreplace) %{_sysconfdir}/modprobe.d/tuned.conf
%config(noreplace) %{_sysconfdir}/tuned/cpu-partitioning-variables.conf
%config(noreplace) %{_sysconfdir}/tuned/tuned-main.conf
%config(noreplace) %{_sysconfdir}/tuned/profile_mode
%config(noreplace) %{_sysconfdir}/tuned/post_loaded_profile
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/tuned/bootcmdline
%config %{_sysconfdir}/dbus-1/system.d/com.redhat.tuned.conf
%{_sysconfdir}/grub.d
%{_tmpfilesdir}/tuned.conf
%{_unitdir}/tuned.service
%attr(750, root, root) %dir %{_localstatedir}/log/tuned
%dir %{_sysconfdir}/tuned
%{_mandir}/man5/tuned*
%{_mandir}/man7/tuned-profiles-cpu-partitioning.7%{?ext_man}
%{_mandir}/man7/tuned-profiles.7%{?ext_man}
%{_mandir}/man7/tuned-profiles-mssql.7%{?ext_man}
%{_mandir}/man8/tuned*
%dir %{_datadir}/tuned
%ghost %dir /run/tuned
%{_prefix}/lib/kernel/install.d/92-tuned.install
%files gtk
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/*/
%dir %{_datadir}/icons/hicolor/*/apps
%{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/applications/tuned-gui.desktop
%{_sbindir}/tuned-gui
%{python3_sitelib}/tuned/gtk
%{_datadir}/tuned/ui
%if !0%{?sle_version}
%files profiles-sap
%{profile_dir}/sap-netweaver
%{_mandir}/man7/tuned-profiles-sap.7%{?ext_man}
%files profiles-sap-hana
%{profile_dir}/sap-hana
%{_mandir}/man7/tuned-profiles-sap-hana.7%{?ext_man}
%endif
%files profiles-atomic
%{profile_dir}/atomic-host
%{profile_dir}/atomic-guest
%{_mandir}/man7/tuned-profiles-atomic.7%{?ext_man}
%files profiles-realtime
%config(noreplace) %{_sysconfdir}/tuned/realtime-variables.conf
%{profile_dir}/realtime
%{_mandir}/man7/tuned-profiles-realtime.7%{?ext_man}
%files profiles-oracle
%{profile_dir}/oracle
%{_mandir}/man7/tuned-profiles-oracle.7%{?ext_man}
%files profiles-nfv
%config(noreplace) %{_sysconfdir}/tuned/realtime-virtual-guest-variables.conf
%config(noreplace) %{_sysconfdir}/tuned/realtime-virtual-host-variables.conf
%{profile_dir}/realtime-virtual-guest
%{profile_dir}/realtime-virtual-host
%{_mandir}/man7/tuned-profiles-nfv-*.7%{?ext_man}
%files profiles-postgresql
%defattr(-,root,root,-)
%{_prefix}/lib/tuned/postgresql
%{_mandir}/man7/tuned-profiles-postgresql.7*
%files profiles-spectrumscale
%defattr(-,root,root,-)
%{_prefix}/lib/tuned/spectrumscale-ece
%{_mandir}/man7/tuned-profiles-spectrumscale-ece.7*
%files profiles-openshift
%defattr(-,root,root,-)
%{profile_dir}/openshift-control-plane
%{profile_dir}/openshift-node
%{profile_dir}/openshift
%{_mandir}/man7/tuned-profiles-openshift.7%{?ext_man}
%files utils
%license COPYING
%{_bindir}/powertop2tuned
%files utils-systemtap
%license COPYING
%doc doc/README.utils doc/README.scomes
%{_sbindir}/varnetload
%{_sbindir}/netdevstat
%{_sbindir}/diskdevstat
%{_sbindir}/scomes
%{_mandir}/man8/varnetload.*
%{_mandir}/man8/netdevstat.*
%{_mandir}/man8/diskdevstat.*
%{_mandir}/man8/scomes.*
%changelog