diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..677b0c2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/tuna-0.14.tar.xz
diff --git a/.tuna.metadata b/.tuna.metadata
new file mode 100644
index 0000000..83d1a26
--- /dev/null
+++ b/.tuna.metadata
@@ -0,0 +1 @@
+0957ee39985f0414dfeabd85daf6c7357c009891 SOURCES/tuna-0.14.tar.xz
diff --git a/SOURCES/tuna-Use-exception-args-attribute-for-python3.patch b/SOURCES/tuna-Use-exception-args-attribute-for-python3.patch
new file mode 100644
index 0000000..f8898bd
--- /dev/null
+++ b/SOURCES/tuna-Use-exception-args-attribute-for-python3.patch
@@ -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
+
diff --git a/SOURCES/tuna-fix-undefined-global-name-stderr.patch b/SOURCES/tuna-fix-undefined-global-name-stderr.patch
new file mode 100644
index 0000000..d200a00
--- /dev/null
+++ b/SOURCES/tuna-fix-undefined-global-name-stderr.patch
@@ -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
+
diff --git a/SOURCES/tuna-sysfs.py-Add-method-to-compare-class-cpu.patch b/SOURCES/tuna-sysfs.py-Add-method-to-compare-class-cpu.patch
new file mode 100644
index 0000000..d6030c0
--- /dev/null
+++ b/SOURCES/tuna-sysfs.py-Add-method-to-compare-class-cpu.patch
@@ -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
+
diff --git a/SPECS/tuna.spec b/SPECS/tuna.spec
new file mode 100644
index 0000000..e425496
--- /dev/null
+++ b/SPECS/tuna.spec
@@ -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