1
0
forked from rpms/sos

add latest patched including fix for missing help plugin (bz#2058142)

This commit is contained in:
Sandro Bonazzola 2022-02-28 15:43:28 +01:00
parent 89bfc706af
commit e21855760a
11 changed files with 585 additions and 1 deletions

View File

@ -0,0 +1,34 @@
From 7ebb2ce0bcd13c1b3aada648aceb20b5aff636d9 Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Tue, 15 Feb 2022 14:18:02 -0500
Subject: [PATCH 01/10] [host] Skip entire /etc/sos/cleaner directory
While `default_mapping` is typically the only file expected under
`/etc/sos/cleaner/` it is possible for other mapping files (such as
backups) to appear there.
Make the `add_forbidden_path()` spec here target the entire cleaner
directory to avoid ever capturing these map files.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
sos/report/plugins/host.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/report/plugins/host.py b/sos/report/plugins/host.py
index 5e21da7b..95a3b9cd 100644
--- a/sos/report/plugins/host.py
+++ b/sos/report/plugins/host.py
@@ -20,7 +20,7 @@ class Host(Plugin, IndependentPlugin):
def setup(self):
- self.add_forbidden_path('/etc/sos/cleaner/default_mapping')
+ self.add_forbidden_path('/etc/sos/cleaner')
self.add_cmd_output('hostname', root_symlink='hostname')
self.add_cmd_output('uptime', root_symlink='uptime')
--
2.27.0

View File

@ -0,0 +1,35 @@
From b5389aa195675f473acdd22f20017a8854ff82d0 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Wed, 16 Feb 2022 08:43:32 +0100
Subject: [PATCH 02/10] [man] Mention sos-help in main sos manpage
Related to #2860
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
man/en/sos.1 | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/man/en/sos.1 b/man/en/sos.1
index ce4918f9..c335b7e1 100644
--- a/man/en/sos.1
+++ b/man/en/sos.1
@@ -67,6 +67,14 @@ May be invoked via either \fBsos clean\fR, \fBsos cleaner\fR, \fBsos mask\fR,
or via the \fB--clean\fR, \fB--cleaner\fR or \fB --mask\fR options
for \fBreport\fR and \fBcollect\fR.
+.TP
+.B help
+This subcommand is used to retrieve more detailed information on the various SoS
+commands and components than is directly available in either other manpages or
+--help output.
+
+See \fB sos help --help\fR and \fB man sos-help\fR for more information.
+
.SH GLOBAL OPTIONS
sos components provide their own set of options, however the following are available
to be set across all components.
--
2.27.0

View File

@ -0,0 +1,40 @@
From ac4eb48fa35c13b99ada41540831412480babf8d Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Wed, 16 Feb 2022 08:44:16 +0100
Subject: [PATCH 03/10] [setup] Add sos-help to build process
Resolves: #2860
Closes: #2861
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
setup.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/setup.py b/setup.py
index 25e87a71..8db8641f 100644
--- a/setup.py
+++ b/setup.py
@@ -90,7 +90,7 @@ setup(
('share/man/man1', ['man/en/sosreport.1', 'man/en/sos-report.1',
'man/en/sos.1', 'man/en/sos-collect.1',
'man/en/sos-collector.1', 'man/en/sos-clean.1',
- 'man/en/sos-mask.1']),
+ 'man/en/sos-mask.1', 'man/en/sos-help.1']),
('share/man/man5', ['man/en/sos.conf.5']),
('share/licenses/sos', ['LICENSE']),
('share/doc/sos', ['AUTHORS', 'README.md']),
@@ -102,7 +102,8 @@ setup(
'sos.policies.package_managers', 'sos.policies.init_systems',
'sos.report', 'sos.report.plugins', 'sos.collector',
'sos.collector.clusters', 'sos.collector.transports', 'sos.cleaner',
- 'sos.cleaner.mappings', 'sos.cleaner.parsers', 'sos.cleaner.archives'
+ 'sos.cleaner.mappings', 'sos.cleaner.parsers', 'sos.cleaner.archives',
+ 'sos.help'
],
cmdclass=cmdclass,
command_options=command_options,
--
2.27.0

View File

@ -0,0 +1,78 @@
From d0f9d507b0ec63c9e8f3e5d7b6507d9d0f97c038 Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Tue, 15 Feb 2022 16:24:47 -0500
Subject: [PATCH 04/10] [runtimes] Allow container IDs to be used with
`container_exists()`
As container runtimes can interchange container names and container IDs,
sos should also allow the use of container IDs when checking for the
presence of a given container.
In particular, this change unblocks the use of `Plugin.exec_cmd()` when
used in conjunction with `Plugin.get_container_by_name()` to pick a
container based on a provided regex that the container name may match.
Related: #2856
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
sos/policies/runtimes/__init__.py | 17 +++++++++++++++++
sos/report/plugins/__init__.py | 6 +++---
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/sos/policies/runtimes/__init__.py b/sos/policies/runtimes/__init__.py
index 5ac67354..d2837349 100644
--- a/sos/policies/runtimes/__init__.py
+++ b/sos/policies/runtimes/__init__.py
@@ -147,6 +147,23 @@ class ContainerRuntime():
vols.append(ent[-1])
return vols
+ def container_exists(self, container):
+ """Check if a given container ID or name exists on the system from the
+ perspective of the container runtime.
+
+ Note that this will only check _running_ containers
+
+ :param container: The name or ID of the container
+ :type container: ``str``
+
+ :returns: True if the container exists, else False
+ :rtype: ``bool``
+ """
+ for _contup in self.containers:
+ if container in _contup:
+ return True
+ return False
+
def fmt_container_cmd(self, container, cmd, quotecmd):
"""Format a command to run inside a container using the runtime
diff --git a/sos/report/plugins/__init__.py b/sos/report/plugins/__init__.py
index 2988be08..cc5cb65b 100644
--- a/sos/report/plugins/__init__.py
+++ b/sos/report/plugins/__init__.py
@@ -2593,7 +2593,7 @@ class Plugin():
"""If a container runtime is present, check to see if a container with
a given name is currently running
- :param name: The name of the container to check presence of
+ :param name: The name or ID of the container to check presence of
:type name: ``str``
:returns: ``True`` if `name` exists, else ``False``
@@ -2601,8 +2601,8 @@ class Plugin():
"""
_runtime = self._get_container_runtime()
if _runtime is not None:
- con = _runtime.get_container_by_name(name)
- return con is not None
+ return (_runtime.container_exists(name) or
+ _runtime.get_container_by_name(name) is not None)
return False
def get_all_containers_by_regex(self, regex, get_all=False):
--
2.27.0

View File

@ -0,0 +1,77 @@
From de9b020a72d1ceda39587db4c6d5acf72cd90da2 Mon Sep 17 00:00:00 2001
From: Fernando Royo <froyo@redhat.com>
Date: Tue, 15 Feb 2022 10:00:38 +0100
Subject: [PATCH 05/10] [ovn_central] Rename container responsable of Red Hat
ovn_central plugin
ovn_central plugin is running by container with
name 'ovn-dbs-bundle*', a typo has been identified and
this cause plugin ovn_central not enabled by default as it
does not recognize any container responsible of this.
This patch fix this container name match, searching schema db
keeping backward compatibility with openvswitch.
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
sos/report/plugins/ovn_central.py | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/sos/report/plugins/ovn_central.py b/sos/report/plugins/ovn_central.py
index 2f0438df..2f34bff0 100644
--- a/sos/report/plugins/ovn_central.py
+++ b/sos/report/plugins/ovn_central.py
@@ -24,7 +24,7 @@ class OVNCentral(Plugin):
short_desc = 'OVN Northd'
plugin_name = "ovn_central"
profiles = ('network', 'virt')
- containers = ('ovs-db-bundle.*',)
+ containers = ('ovn-dbs-bundle.*',)
def get_tables_from_schema(self, filename, skip=[]):
if self._container_name:
@@ -66,7 +66,7 @@ class OVNCentral(Plugin):
cmds.append('%s list %s' % (ovn_cmd, table))
def setup(self):
- self._container_name = self.get_container_by_name('ovs-dbs-bundle.*')
+ self._container_name = self.get_container_by_name(self.containers[0])
ovs_rundir = os.environ.get('OVS_RUNDIR')
for pidfile in ['ovnnb_db.pid', 'ovnsb_db.pid', 'ovn-northd.pid']:
@@ -110,12 +110,11 @@ class OVNCentral(Plugin):
'ovn-sbctl get-connection',
]
- schema_dir = '/usr/share/openvswitch'
-
- nb_tables = self.get_tables_from_schema(self.path_join(
- schema_dir, 'ovn-nb.ovsschema'))
-
- self.add_database_output(nb_tables, nbctl_cmds, 'ovn-nbctl')
+ # backward compatibility
+ for path in ['/usr/share/openvswitch', '/usr/share/ovn']:
+ nb_tables = self.get_tables_from_schema(self.path_join(
+ path, 'ovn-nb.ovsschema'))
+ self.add_database_output(nb_tables, nbctl_cmds, 'ovn-nbctl')
cmds = ovsdb_cmds
cmds += nbctl_cmds
@@ -125,9 +124,11 @@ class OVNCentral(Plugin):
format(self.ovn_sbdb_sock_path),
"output": "Leader: self"}
if self.test_predicate(self, pred=SoSPredicate(self, cmd_outputs=co)):
- sb_tables = self.get_tables_from_schema(self.path_join(
- schema_dir, 'ovn-sb.ovsschema'), ['Logical_Flow'])
- self.add_database_output(sb_tables, sbctl_cmds, 'ovn-sbctl')
+ # backward compatibility
+ for path in ['/usr/share/openvswitch', '/usr/share/ovn']:
+ sb_tables = self.get_tables_from_schema(self.path_join(
+ path, 'ovn-sb.ovsschema'), ['Logical_Flow'])
+ self.add_database_output(sb_tables, sbctl_cmds, 'ovn-sbctl')
cmds += sbctl_cmds
# If OVN is containerized, we need to run the above commands inside
--
2.27.0

View File

@ -0,0 +1,45 @@
From 751530acad7cb41a461b16bb7bbedf2753847ca4 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Thu, 17 Feb 2022 11:51:20 +0100
Subject: [PATCH 06/10] [pulpcore] Stop collecting commands relevant to old
taskig system
The reserved resource approach was used by pulp-3 for a sporadic time
in early pulp-3 development only. It is abandoned and should not be
productised anywhere. So it is safe to remove the commands (together
with rq broker status that was in charge of reserved resources).
Resolves: #2865
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
sos/report/plugins/pulpcore.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/sos/report/plugins/pulpcore.py b/sos/report/plugins/pulpcore.py
index 7a5d461c..426d4819 100644
--- a/sos/report/plugins/pulpcore.py
+++ b/sos/report/plugins/pulpcore.py
@@ -91,9 +91,6 @@ class PulpCore(Plugin, IndependentPlugin):
# skip collecting certificate keys
self.add_forbidden_path("/etc/pki/pulp/**/*.key", recursive=True)
- self.add_cmd_output("rq info -u redis://localhost:6379/8",
- env={"LC_ALL": "en_US.UTF-8"},
- suggest_filename="rq_info")
self.add_cmd_output("curl -ks https://localhost/pulp/api/v3/status/",
suggest_filename="pulp_status")
dynaconf_env = {"LC_ALL": "en_US.UTF-8",
@@ -105,8 +102,6 @@ class PulpCore(Plugin, IndependentPlugin):
task_days = self.get_option('task-days')
for table in ['core_task', 'core_taskgroup',
- 'core_reservedresourcerecord',
- 'core_taskreservedresourcerecord',
'core_groupprogressreport', 'core_progressreport']:
_query = "select * from %s where pulp_last_updated > NOW() - " \
"interval '%s days' order by pulp_last_updated" % \
--
2.27.0

View File

@ -0,0 +1,40 @@
From 7069e99d1c5c443f96a98a7ed6db67fa14683e67 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Thu, 17 Feb 2022 09:14:15 +0100
Subject: [PATCH 07/10] [report] Honor plugins' hardcoded plugin_timeout
Currently, plugin's plugin_timeout hardcoded default is superseded by
whatever --plugin-timeout value, even when this option is not used and
we eval it to TIMEOUT_DEFAULT.
In this case of not setting --plugin-timeout either -k plugin.timeout,
honour plugin's plugin_timeout instead.
Resolves: #2863
Closes: #2864
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
sos/report/plugins/__init__.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sos/report/plugins/__init__.py b/sos/report/plugins/__init__.py
index cc5cb65b..336b4d22 100644
--- a/sos/report/plugins/__init__.py
+++ b/sos/report/plugins/__init__.py
@@ -636,7 +636,10 @@ class Plugin():
if opt_timeout is None:
_timeout = own_timeout
elif opt_timeout is not None and own_timeout == -1:
- _timeout = int(opt_timeout)
+ if opt_timeout == TIMEOUT_DEFAULT:
+ _timeout = default_timeout
+ else:
+ _timeout = int(opt_timeout)
elif opt_timeout is not None and own_timeout > -1:
_timeout = own_timeout
else:
--
2.27.0

View File

@ -0,0 +1,47 @@
From b6c51c5fea8115e658a0a696e2f482739441b637 Mon Sep 17 00:00:00 2001
From: Antoine Tenart <atenart@kernel.org>
Date: Wed, 16 Feb 2022 17:16:48 +0100
Subject: [PATCH 08/10] [networking] consistently list the routing policy rules
The commands used to list the routing policy rules were inconsistent:
- The IPv6 routing policy rules were not retrieved in namespaces.
- The command used were inconsistent in the file (it's only cosmetic,
but making it consistent helps maintenance).
Fix this.
Signed-off-by: Antoine Tenart <atenart@kernel.org>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
sos/report/plugins/networking.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/sos/report/plugins/networking.py b/sos/report/plugins/networking.py
index 8b7f8ee9..69a7e88f 100644
--- a/sos/report/plugins/networking.py
+++ b/sos/report/plugins/networking.py
@@ -97,8 +97,8 @@ class Networking(Plugin):
"ip -6 route show table all",
"ip -d route show cache",
"ip -d -6 route show cache",
- "ip -4 rule",
- "ip -6 rule",
+ "ip -4 rule list",
+ "ip -6 rule list",
"ip -s -d link",
"ip -d address",
"ifenslave -a",
@@ -209,7 +209,8 @@ class Networking(Plugin):
ns_cmd_prefix + "ip -d address show",
ns_cmd_prefix + "ip route show table all",
ns_cmd_prefix + "ip -s -s neigh show",
- ns_cmd_prefix + "ip rule list",
+ ns_cmd_prefix + "ip -4 rule list",
+ ns_cmd_prefix + "ip -6 rule list",
ns_cmd_prefix + "netstat %s -neopa" % self.ns_wide,
ns_cmd_prefix + "netstat -s",
ns_cmd_prefix + "netstat %s -agn" % self.ns_wide,
--
2.27.0

View File

@ -0,0 +1,52 @@
From 2c1d0ff547a0ae3500f7b6d8479f801fd455be00 Mon Sep 17 00:00:00 2001
From: Antoine Tenart <atenart@kernel.org>
Date: Wed, 16 Feb 2022 17:42:12 +0100
Subject: [PATCH 09/10] [networking] list VRFs
Add command listing VRFs and their associated tables; including in
network namespaces. This information could be retrieved from reading the
`ip -d address show` output, but it is hard to see quickly. As the `ip
vrf show` output is quite small, let's include it.
If the system has two VRFs, the output will look like:
Name Table
-----------------------
vrf0 42
vrf1 43
And if no VRF is defined the output will look like:
Name Table
-----------------------
No VRF has been configured
Signed-off-by: Antoine Tenart <atenart@kernel.org>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
sos/report/plugins/networking.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sos/report/plugins/networking.py b/sos/report/plugins/networking.py
index 69a7e88f..2ab5d840 100644
--- a/sos/report/plugins/networking.py
+++ b/sos/report/plugins/networking.py
@@ -99,6 +99,7 @@ class Networking(Plugin):
"ip -d -6 route show cache",
"ip -4 rule list",
"ip -6 rule list",
+ "ip vrf show",
"ip -s -d link",
"ip -d address",
"ifenslave -a",
@@ -211,6 +212,7 @@ class Networking(Plugin):
ns_cmd_prefix + "ip -s -s neigh show",
ns_cmd_prefix + "ip -4 rule list",
ns_cmd_prefix + "ip -6 rule list",
+ ns_cmd_prefix + "ip vrf show",
ns_cmd_prefix + "netstat %s -neopa" % self.ns_wide,
ns_cmd_prefix + "netstat -s",
ns_cmd_prefix + "netstat %s -agn" % self.ns_wide,
--
2.27.0

View File

@ -0,0 +1,120 @@
From 2ae16e0245e1b01b8547e507abb69c11871a8467 Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Mon, 21 Feb 2022 14:37:09 -0500
Subject: [PATCH 10/10] [sosnode] Handle downstream versioning for runtime
option check
First, adds parsing and formatting for an sos installation's release
version according to the loaded package manager for that node.
Adds a fallback version check for 4.2-13 for RHEL downstreams that
backport the `container-runtime` option into sos-4.2.
Carry this in upstream to account for use cases where a workstation used
to run `collect` from may be from a different stream than those used by
cluster nodes.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
sos/collector/sosnode.py | 60 ++++++++++++++++++++++++++++++++++------
1 file changed, 51 insertions(+), 9 deletions(-)
diff --git a/sos/collector/sosnode.py b/sos/collector/sosnode.py
index 7bbe0cd1..d9b998b0 100644
--- a/sos/collector/sosnode.py
+++ b/sos/collector/sosnode.py
@@ -275,21 +275,34 @@ class SosNode():
def _load_sos_info(self):
"""Queries the node for information about the installed version of sos
"""
+ ver = None
+ rel = None
if self.host.container_version_command is None:
pkg = self.host.package_manager.pkg_version(self.host.sos_pkg_name)
if pkg is not None:
ver = '.'.join(pkg['version'])
- self.sos_info['version'] = ver
+ if pkg['release']:
+ rel = pkg['release']
+
else:
# use the containerized policy's command
pkgs = self.run_command(self.host.container_version_command,
use_container=True, need_root=True)
if pkgs['status'] == 0:
- ver = pkgs['output'].strip().split('-')[1]
- if ver:
- self.sos_info['version'] = ver
- else:
- self.sos_info['version'] = None
+ _, ver, rel = pkgs['output'].strip().split('-')
+
+ if ver:
+ if len(ver.split('.')) == 2:
+ # safeguard against maintenance releases throwing off the
+ # comparison by LooseVersion
+ ver += '.0'
+ try:
+ ver += '-%s' % rel.split('.')[0]
+ except Exception as err:
+ self.log_debug("Unable to fully parse sos release: %s" % err)
+
+ self.sos_info['version'] = ver
+
if self.sos_info['version']:
self.log_info('sos version is %s' % self.sos_info['version'])
else:
@@ -381,9 +394,37 @@ class SosNode():
"""Checks to see if the sos installation on the node is AT LEAST the
given ver. This means that if the installed version is greater than
ver, this will still return True
+
+ :param ver: Version number we are trying to verify is installed
+ :type ver: ``str``
+
+ :returns: True if installed version is at least ``ver``, else False
+ :rtype: ``bool``
"""
- return self.sos_info['version'] is not None and \
- LooseVersion(self.sos_info['version']) >= ver
+ def _format_version(ver):
+ # format the version we're checking to a standard form of X.Y.Z-R
+ try:
+ _fver = ver.split('-')[0]
+ _rel = ''
+ if '-' in ver:
+ _rel = '-' + ver.split('-')[-1].split('.')[0]
+ if len(_fver.split('.')) == 2:
+ _fver += '.0'
+
+ return _fver + _rel
+ except Exception as err:
+ self.log_debug("Unable to format '%s': %s" % (ver, err))
+ return ver
+
+ _ver = _format_version(ver)
+
+ try:
+ _node_ver = LooseVersion(self.sos_info['version'])
+ _test_ver = LooseVersion(_ver)
+ return _node_ver >= _test_ver
+ except Exception as err:
+ self.log_error("Error checking sos version: %s" % err)
+ return False
def is_installed(self, pkg):
"""Checks if a given package is installed on the node"""
@@ -587,7 +628,8 @@ class SosNode():
sos_opts.append('--cmd-timeout=%s'
% quote(str(self.opts.cmd_timeout)))
- if self.check_sos_version('4.3'):
+ # handle downstream versions that backported this option
+ if self.check_sos_version('4.3') or self.check_sos_version('4.2-13'):
if self.opts.container_runtime != 'auto':
sos_opts.append(
"--container-runtime=%s" % self.opts.container_runtime
--
2.27.0

View File

@ -3,7 +3,7 @@
Summary: A set of tools to gather troubleshooting information from a system
Name: sos
Version: 4.3
Release: 1%{?dist}
Release: 2%{?dist}
Source0: https://github.com/sosreport/sos/archive/%{version}.tar.gz
License: GPLv2+
BuildArch: noarch
@ -19,6 +19,18 @@ Recommends: python3-pexpect
Recommends: python3-requests
Obsoletes: sos-collector <= 1.9
Patch1: 0001-host-Skip-entire-etc-sos-cleaner-directory.patch
Patch2: 0002-man-Mention-sos-help-in-main-sos-manpage.patch
Patch3: 0003-setup-Add-sos-help-to-build-process.patch
Patch4: 0004-runtimes-Allow-container-IDs-to-be-used-with-contain.patch
Patch5: 0005-ovn_central-Rename-container-responsable-of-Red-Hat-.patch
Patch6: 0006-pulpcore-Stop-collecting-commands-relevant-to-old-ta.patch
Patch7: 0007-report-Honor-plugins-hardcoded-plugin_timeout.patch
Patch8: 0008-networking-consistently-list-the-routing-policy-rule.patch
Patch9: 0009-networking-list-VRFs.patch
Patch10: 0010-sosnode-Handle-downstream-versioning-for-runtime-opt.patch
%description
Sos is a set of tools that gathers information about system
hardware and configuration. The information can then be used for
@ -27,6 +39,7 @@ support technicians and developers.
%prep
%setup -qn %{name}-%{version}
%autopatch -p1
%build
%py3_build
@ -61,6 +74,9 @@ rm -rf %{buildroot}/usr/config/
%config(noreplace) %{_sysconfdir}/sos/cleaner
%changelog
* Mon Feb 28 2022 Sandro Bonazzola <sbonazzo@redhat.com> - 4.3-2
- add latest patched including fix for missing help plugin (bz#2058142)
* Tue Feb 15 2022 Sandro Bonazzola <sbonazzo@redhat.com> - 4.3-1
- Update to 4.3 (#2054895)