import tuna-0.14-3.el8

This commit is contained in:
CentOS Sources 2019-05-07 08:34:41 -04:00 committed by Andrew Lukoshko
commit 01213183c4
6 changed files with 503 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/tuna-0.14.tar.xz

1
.tuna.metadata Normal file
View File

@ -0,0 +1 @@
0957ee39985f0414dfeabd85daf6c7357c009891 SOURCES/tuna-0.14.tar.xz

View File

@ -0,0 +1,243 @@
From 0c70baee8d3af97a130bc745adda85e530bd30b0 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 4 Dec 2018 01:36:19 +0100
Subject: [PATCH 2/2] tuna: Use exception args attribute for python3
In python3 exceptions are not interable, so use the args attribute
Signed-off-by: John Kacur <jkacur@redhat.com>
---
tuna-cmd.py | 4 ++--
tuna/gui/util.py | 4 ++--
tuna/tuna.py | 46 +++++++++++++++++++++++-----------------------
3 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/tuna-cmd.py b/tuna-cmd.py
index 8068695ae6df..e4182231d80f 100755
--- a/tuna-cmd.py
+++ b/tuna-cmd.py
@@ -182,7 +182,7 @@ def ps_show_thread(pid, affect_children, ps,
try:
affinity = format_affinity(schedutils.get_affinity(pid))
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
return
raise e
@@ -264,7 +264,7 @@ def ps_show(ps, affect_children, thread_list, cpu_list,
try:
affinity = schedutils.get_affinity(pid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
if cpu_list and not set(cpu_list).intersection(set(affinity)):
diff --git a/tuna/gui/util.py b/tuna/gui/util.py
index 73eceae23ab7..9e30ed92bd4c 100755
--- a/tuna/gui/util.py
+++ b/tuna/gui/util.py
@@ -86,7 +86,7 @@ def thread_set_attributes(pid_info, new_policy, new_prio, new_affinity, nr_cpus)
try:
curr_affinity = schedutils.get_affinity(pid)
except (SystemError, OSError) as e: # (3, 'No such process') old python-schedutils incorrectly raised SystemError
- if e[0] == 3:
+ if e.args[0] == 3:
return False
raise e
@@ -109,7 +109,7 @@ def thread_set_attributes(pid_info, new_policy, new_prio, new_affinity, nr_cpus)
try:
curr_affinity = schedutils.get_affinity(pid)
except (SystemError, OSError) as e: # (3, 'No such process') old python-schedutils incorrectly raised SystemError
- if e[0] == 3:
+ if e.args[0] == 3:
return False
raise e
diff --git a/tuna/tuna.py b/tuna/tuna.py
index 9f9267863871..4b1a77bcfa9f 100755
--- a/tuna/tuna.py
+++ b/tuna/tuna.py
@@ -193,7 +193,7 @@ def move_threads_to_cpu(cpus, pid_list, set_affinity_warning = None,
try:
curr_affinity = schedutils.get_affinity(pid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
curr_affinity = None
raise e
@@ -202,7 +202,7 @@ def move_threads_to_cpu(cpus, pid_list, set_affinity_warning = None,
schedutils.set_affinity(pid, new_affinity)
curr_affinity = schedutils.get_affinity(pid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
curr_affinity == None
raise e
@@ -231,7 +231,7 @@ def move_threads_to_cpu(cpus, pid_list, set_affinity_warning = None,
try:
curr_affinity = schedutils.get_affinity(tid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
if set(curr_affinity) != set(new_affinity):
@@ -239,7 +239,7 @@ def move_threads_to_cpu(cpus, pid_list, set_affinity_warning = None,
schedutils.set_affinity(tid, new_affinity)
curr_affinity = schedutils.get_affinity(tid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
if set(curr_affinity) == set(new_affinity):
@@ -251,10 +251,10 @@ def move_threads_to_cpu(cpus, pid_list, set_affinity_warning = None,
(_("could not change %(pid)d affinity to %(new_affinity)s") % \
{'pid':pid, 'new_affinity':new_affinity}))
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
# process died
continue
- elif e[0] == errno.EINVAL: # unmovable thread)
+ elif e.args[0] == errno.EINVAL: # unmovable thread)
print("thread %(pid)d cannot be moved as requested" %{'pid':pid}, file=stderr)
continue
raise e
@@ -301,7 +301,7 @@ def move_irqs_to_cpu(cpus, irq_list, spread = False):
try:
schedutils.set_affinity(pid, new_affinity)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
unprocessed.append(i)
changed -= 1
continue
@@ -336,9 +336,9 @@ def isolate_cpus(cpus, nr_cpus):
try:
affinity = schedutils.get_affinity(pid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
- elif e[0] == errno.EINVAL:
+ elif e.args[0] == errno.EINVAL:
print("Function:", fname, ",", e.strerror, file=sys.stderr)
sys.exit(2)
raise e
@@ -348,9 +348,9 @@ def isolate_cpus(cpus, nr_cpus):
try:
schedutils.set_affinity(pid, affinity)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
- elif e[0] == errno.EINVAL:
+ elif e.args[0] == errno.EINVAL:
print("Function:", fname, ",", e.strerror, file=sys.stderr)
sys.exit(2)
raise e
@@ -364,9 +364,9 @@ def isolate_cpus(cpus, nr_cpus):
try:
affinity = schedutils.get_affinity(tid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
- elif e[0] == errno.EINVAL:
+ elif e.args[0] == errno.EINVAL:
print("Function:", fname, ",", e.strerror, file=sys.stderr)
sys.exit(2)
raise e
@@ -376,9 +376,9 @@ def isolate_cpus(cpus, nr_cpus):
try:
schedutils.set_affinity(tid, affinity)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
- elif e[0] == errno.EINVAL:
+ elif e.args[0] == errno.EINVAL:
print("Function:", fname, ",", e.strerror, file=sys.stderr)
sys.exit(2)
raise e
@@ -416,7 +416,7 @@ def include_cpus(cpus, nr_cpus):
try:
affinity = schedutils.get_affinity(pid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
if set(affinity).intersection(set(cpus)) != set(cpus):
@@ -425,7 +425,7 @@ def include_cpus(cpus, nr_cpus):
try:
schedutils.set_affinity(pid, affinity)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
@@ -438,7 +438,7 @@ def include_cpus(cpus, nr_cpus):
try:
affinity = schedutils.get_affinity(tid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
if set(affinity).intersection(set(cpus)) != set(cpus):
@@ -447,7 +447,7 @@ def include_cpus(cpus, nr_cpus):
try:
schedutils.set_affinity(tid, affinity)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
@@ -515,7 +515,7 @@ def thread_filtered(tid, cpus_filtered, show_kthreads, show_uthreads):
try:
affinity = schedutils.get_affinity(tid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
return False
raise e
@@ -554,7 +554,7 @@ def threads_set_priority(tids, parm, affect_children = False):
try:
thread_set_priority(tid, policy, rtprio)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
if affect_children:
@@ -563,7 +563,7 @@ def threads_set_priority(tids, parm, affect_children = False):
try:
thread_set_priority(child, policy, rtprio)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
@@ -594,7 +594,7 @@ def get_kthread_sched_tunings(proc = None):
policy = schedutils.get_scheduler(pid)
affinity = schedutils.get_affinity(pid)
except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
- if e[0] == errno.ESRCH:
+ if e.args[0] == errno.ESRCH:
continue
raise e
percpu = iskthread(pid) and \
--
2.19.2

View File

@ -0,0 +1,28 @@
From 38021aa69c811478ddf6e091353b704adb80985a Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 1 Feb 2019 13:57:52 +0100
Subject: [PATCH] tuna: fix undefined global name stderr
Fix undefined global name stderr. Should be sys.stderr
Signed-off-by: John Kacur <jkacur@redhat.com>
---
tuna/tuna.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tuna/tuna.py b/tuna/tuna.py
index 4b1a77bcfa9f..d1d9bad661c7 100755
--- a/tuna/tuna.py
+++ b/tuna/tuna.py
@@ -255,7 +255,7 @@ def move_threads_to_cpu(cpus, pid_list, set_affinity_warning = None,
# process died
continue
elif e.args[0] == errno.EINVAL: # unmovable thread)
- print("thread %(pid)d cannot be moved as requested" %{'pid':pid}, file=stderr)
+ print("thread %(pid)d cannot be moved as requested" %{'pid':pid}, file=sys.stderr)
continue
raise e
return changed
--
2.20.1

View File

@ -0,0 +1,41 @@
From feb9d98bb0ed49ed5b9c2977700e9144b5707aa0 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 4 Dec 2018 00:29:28 +0100
Subject: [PATCH 1/2] tuna: sysfs.py: Add method to compare class cpu
In python3 you have to supply a method to compare class instances
Without this you get this kind of error
$ python3 sysfs.py
Traceback (most recent call last):
File "sysfs.py", line 97, in <module>
cpus = cpus()
File "sysfs.py", line 57, in __init__
self.reload()
File "sysfs.py", line 92, in reload
self.sockets[socket].sort()
TypeError: '<' not supported between instances of 'cpu' and 'cpu'
Signed-off-by: John Kacur <jkacur@redhat.com>
---
tuna/sysfs.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tuna/sysfs.py b/tuna/sysfs.py
index acc81d667753..8b8a988659ce 100755
--- a/tuna/sysfs.py
+++ b/tuna/sysfs.py
@@ -9,6 +9,9 @@ class cpu:
self.dir = "%s/%s" % (basedir, name)
self.reload()
+ def __lt__(self, other):
+ self.name < other.name
+
def readfile(self, name):
try:
f = open("%s/%s" % (self.dir, name))
--
2.19.2

189
SPECS/tuna.spec Normal file
View File

@ -0,0 +1,189 @@
Name: tuna
Version: 0.14
Release: 3%{?dist}
License: GPLv2
Summary: Application tuning GUI & command line utility
Group: Applications/System
Source: https://git.kernel.org/pub/scm/utils/tuna/tuna.git/%{name}/%{name}-%{version}.tar.xz
URL: https://git.kernel.org/pub/scm/utils/tuna/tuna.git
# If upstream does not provide tarballs, to generate
# git clone git://git.kernel.org/pub/scm/utils/tuna/tuna.git
# cd tuna
# git archive --format=tar --prefix=tuna-%%{version}/ v%%{version} | xz -c > tuna-%%{version}.tar.xz
BuildArch: noarch
BuildRequires: python3-devel, gettext
Requires: python3-ethtool
Requires: python3-linux-procfs >= 0.6
Requires: python3-schedutils >= 0.6
# This really should be a Suggests...
# Requires: python-inet_diag
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
# PATCHES
Patch1: tuna-sysfs.py-Add-method-to-compare-class-cpu.patch
Patch2: tuna-Use-exception-args-attribute-for-python3.patch
Patch3: tuna-fix-undefined-global-name-stderr.patch
%description
Provides interface for changing scheduler and IRQ tunables, at whole CPU and at
per thread/IRQ level. Allows isolating CPUs for use by a specific application
and moving threads and interrupts to a CPU by just dragging and dropping them.
Operations can be done on CPU sockets, understanding CPU topology.
Can be used as a command line utility without requiring the GUI libraries to be
installed.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
%{__python3} setup.py build
%install
rm -rf %{buildroot}
%{__python3} setup.py install --skip-build --root %{buildroot}
mkdir -p %{buildroot}/%{_sysconfdir}/tuna/
mkdir -p %{buildroot}/{%{_bindir},%{_datadir}/tuna/help/kthreads,%{_mandir}/man8}
mkdir -p %{buildroot}/%{_datadir}/polkit-1/actions/
install -p -m644 tuna/tuna_gui.glade %{buildroot}/%{_datadir}/tuna/
install -p -m755 tuna-cmd.py %{buildroot}/%{_bindir}/tuna
install -p -m644 help/kthreads/* %{buildroot}/%{_datadir}/tuna/help/kthreads/
install -p -m644 docs/tuna.8 %{buildroot}/%{_mandir}/man8/
install -p -m644 etc/tuna/example.conf %{buildroot}/%{_sysconfdir}/tuna/
install -p -m644 etc/tuna.conf %{buildroot}/%{_sysconfdir}/
install -p -m644 org.tuna.policy %{buildroot}/%{_datadir}/polkit-1/actions/
# Manually fix the shebang
pathfix.py -pni "%{__python3}" %{buildroot}%{_bindir}/tuna
# l10n-ed message catalogues
for lng in `cat po/LINGUAS`; do
po=po/"$lng.po"
mkdir -p %{buildroot}/%{_datadir}/locale/${lng}/LC_MESSAGES
msgfmt $po -o %{buildroot}/%{_datadir}/locale/${lng}/LC_MESSAGES/%{name}.mo
done
%find_lang %name
%clean
rm -rf %{buildroot}
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc ChangeLog
%{python3_sitelib}/*.egg-info
%{_bindir}/tuna
%{_datadir}/tuna/
%{python3_sitelib}/tuna/
%{_mandir}/man8/tuna.8*
%{_sysconfdir}/tuna.conf
%{_sysconfdir}/tuna/*
%{_datadir}/polkit-1/actions/org.tuna.policy
%changelog
* Fri Feb 01 2019 John Kacur <jkacur@redhat.com> - 0.14-3
- fix undefined global name stderr
Resolves: rhbz#1671440
* Tue Dec 04 2018 John Kacur <jkacur@redhat.com> - 0.14-2
- Add method to compare class cpu for sorting
- Use args attributes for exceptions for python3
Resolves: rhbz#1651465
* Fri Aug 10 2018 John Kacur <jkacur@redhat.com> - 0.14-1
- Sync with upstream and fix URL reference in spec
Resolves: rhbz#1596855
* Wed Aug 08 2018 John Kacur <jkacur@redhat.com> - 0.13.3-5
- Remove some functions that are now available in python-linux-procfs
Resolves: rhbz#1522865
* Tue Jul 03 2018 Tomas Orsava <torsava@redhat.com> - 0.13.3-4
- Switch hardcoded python3 shebangs into the %%{__python3} macro
* Thu May 31 2018 John Kacur <jkacur@redhat.com> - 0.13.3-3
- Remove deprecated oscilloscope
Resolves: rhbz#1584302
* Fri May 25 2018 John Kacur <jkacur@redhat.com> - 0.13.3-2
- Correct the dependencies to require python3 package versions
Resolves: rhbz#1581192
* Wed May 16 2018 John Kacur <jkacur@redhat.com> - 0.13.3-1
- Changes for python3
Resolves: rhbz#1518679
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.13.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Nov 29 2017 Lubomir Rintel <lkundrak@v3.sk> - 0.13.1-4
- Add a missing dependency for oscilloscope
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.13.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.13.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Dec 21 2016 Jiri Kastner <jkastner@redhat.com> - 0.13.1-1
- new version
* Mon Sep 26 2016 Dominik Mierzejewski <rpm@greysector.net> - 0.12-5
- rebuilt for matplotlib-2.0.0
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-4
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.12-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Oct 10 2014 Jiri Kastner <jkastner@redhat.com> - 0.12-1
- new upstream release
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.11.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Jul 29 2013 Jiri Kastner <jkastner@redhat.com> - 0.11.1-1
- New upstream release
* Tue Jun 11 2013 Jiri Kastner <jkastner@redhat.com> - 0.11-2
- changed dependencies from python-numeric to numpy
- merged spec changes from upstream
* Thu Jun 6 2013 Jiri Kastner <jkastner@redhat.com> - 0.11-1
- New upstream release
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Sun Aug 01 2010 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 0.9.1-2
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
* Thu Sep 03 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9.1-1
- New upstream release
* Wed Aug 26 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9-3
- Rewrite the oscilloscope package summary
- Remove the shebang in tuna/oscilloscope.py
* Mon Aug 17 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9-2
- Use install -p
- Add BuildRequires for gettext
* Fri Jul 10 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9-1
- Fedora package reviewing changes: introduce ChangeLog file