diff --git a/SOURCES/sos-bz1857697-gluster-state_files_deletion.patch b/SOURCES/sos-bz1857697-gluster-state_files_deletion.patch new file mode 100644 index 0000000..be6ffc3 --- /dev/null +++ b/SOURCES/sos-bz1857697-gluster-state_files_deletion.patch @@ -0,0 +1,36 @@ +From 30211bc276fc33e8d3f137c0860be54bbb537064 Mon Sep 17 00:00:00 2001 +From: Jan Jansky +Date: Fri, 17 Jul 2020 09:51:58 +0200 +Subject: [PATCH] [gluster] remove generated state files + +Remove also generated state files in +/run/gluster. + +Related: #2154 +Resolves: #2155 + +Signed-off-by: Jan Jansky +Signed-off-by: Jake Hunsaker +--- + sos/plugins/gluster.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py +index 777f941..4a9ebe3 100644 +--- a/sos/plugins/gluster.py ++++ b/sos/plugins/gluster.py +@@ -44,7 +44,10 @@ class Gluster(Plugin, RedHatPlugin): + if not os.path.exists(self.statedump_dir): + return + try: +- for name in glob.glob(self.statedump_dir + '/*.dump.[0-9]*'): ++ remove_files = glob.glob(self.statedump_dir + '/*.dump.[0-9]*') ++ remove_files.extend(glob.glob(self.statedump_dir + ++ '/glusterd_state_[0-9]*_[0-9]*')) ++ for name in remove_files: + os.remove(name) + except OSError: + pass +-- +1.8.3.1 + diff --git a/SOURCES/sos-bz1859885-kubernetes_ignore_empty_lines.patch b/SOURCES/sos-bz1859885-kubernetes_ignore_empty_lines.patch new file mode 100644 index 0000000..9c15aeb --- /dev/null +++ b/SOURCES/sos-bz1859885-kubernetes_ignore_empty_lines.patch @@ -0,0 +1,38 @@ +From 5c6793e0e9e41ed754020bb7a589587ba647ccb6 Mon Sep 17 00:00:00 2001 +From: Jan Jansky +Date: Fri, 24 Jul 2020 09:21:11 +0200 +Subject: [PATCH] [kubernetes] ignore blank+empty lines in "kubectl get nodes" + output + +In a theoretical case when the command output contains empty or blank +line, we must skip them before finding the first word there. + +Related: #2162 +Resolves: #2164 + +Signed-off-by: Jan Jansky +Signed-off-by: Jake Hunsaker +--- + sos/plugins/kubernetes.py | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/sos/plugins/kubernetes.py b/sos/plugins/kubernetes.py +index 8fc0eba..b7baae2 100644 +--- a/sos/plugins/kubernetes.py ++++ b/sos/plugins/kubernetes.py +@@ -100,7 +100,11 @@ class Kubernetes(Plugin): + nodes = self.collect_cmd_output("%s get nodes" % self.kube_cmd) + if nodes['status'] == 0: + for line in nodes['output'].splitlines()[1:]: +- node = line.split()[0] ++ # find first word in the line and ignore empty+blank lines ++ words = line.split() ++ if not words: ++ continue ++ node = words[0] + self.add_cmd_output( + "%s describe node %s" % (self.kube_cmd, node), + subdir='nodes' +-- +1.8.3.1 + diff --git a/SOURCES/sos-bz1870379-networking_skip_eeprom_colection_for_bnx2x.patch b/SOURCES/sos-bz1870379-networking_skip_eeprom_colection_for_bnx2x.patch new file mode 100644 index 0000000..b6fd4fa --- /dev/null +++ b/SOURCES/sos-bz1870379-networking_skip_eeprom_colection_for_bnx2x.patch @@ -0,0 +1,50 @@ +From e489e4c361ca1153970d1f37db90081ad991f69b Mon Sep 17 00:00:00 2001 +From: Jan Jansky +Date: Thu, 20 Aug 2020 09:43:08 +0200 +Subject: [PATCH] [networking] remove 'ethtool -e' option for bnx2x NICs + +Running EEPROM dump (ethtool -e) can result in bnx2x driver NICs to +pause for few seconds and is not recommended in production environment. + +Related: #2200 +Resolves: #2208 + +Signed-off-by: Jan Jansky +Signed-off-by: Jake Hunsaker +--- + sos/plugins/networking.py | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py +index 56d5b44..b04bb98 100644 +--- a/sos/plugins/networking.py ++++ b/sos/plugins/networking.py +@@ -179,7 +179,6 @@ class Networking(Plugin): + "ethtool -a " + eth, + "ethtool -c " + eth, + "ethtool -g " + eth, +- "ethtool -e " + eth, + "ethtool -P " + eth, + "ethtool -l " + eth, + "ethtool --phy-statistics " + eth, +@@ -187,6 +186,17 @@ class Networking(Plugin): + "ethtool --show-eee " + eth + ]) + ++ # skip EEPROM collection for 'bnx2x' NICs as this command ++ # can pause the NIC and is not production safe. ++ bnx_output = { ++ "cmd": "ethtool -i %s" % eth, ++ "output": "bnx2x" ++ } ++ bnx_pred = SoSPredicate(self, ++ cmd_outputs=bnx_output, ++ required={'cmd_outputs': 'none'}) ++ self.add_cmd_output("ethtool -e %s" % eth, pred=bnx_pred) ++ + # Collect information about bridges (some data already collected via + # "ip .." commands) + self.add_cmd_output([ +-- +1.8.3.1 + diff --git a/SOURCES/sos-bz1871207-audit_collect_etc_audisp.patch b/SOURCES/sos-bz1871207-audit_collect_etc_audisp.patch new file mode 100644 index 0000000..6608184 --- /dev/null +++ b/SOURCES/sos-bz1871207-audit_collect_etc_audisp.patch @@ -0,0 +1,34 @@ +From d5ea9277698836ae34547cb995a0683a1f9f505e Mon Sep 17 00:00:00 2001 +From: Jan Jansky +Date: Mon, 7 Sep 2020 09:21:55 +0200 +Subject: [PATCH] [audit] collect /etc/audisp + +Collect audit event multiplexor config dir. + +Related: #2187 +Resolves: #2227 + +Signed-off-by: Jan Jansky +Signed-off-by: Jake Hunsaker +--- + sos/plugins/auditd.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/sos/plugins/auditd.py b/sos/plugins/auditd.py +index 8380a6d..bbcd28c 100644 +--- a/sos/plugins/auditd.py ++++ b/sos/plugins/auditd.py +@@ -21,7 +21,9 @@ class Auditd(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): + def setup(self): + self.add_copy_spec([ + "/etc/audit/auditd.conf", +- "/etc/audit/audit.rules" ++ "/etc/audit/audit.rules", ++ "/etc/audit/plugins.d/", ++ "/etc/audisp/", + ]) + self.add_cmd_output([ + "ausearch --input-logs -m avc,user_avc -ts today", +-- +1.8.3.1 + diff --git a/SOURCES/sos-bz1886432-policy_fix_failure_conditions_with_upload.patch b/SOURCES/sos-bz1886432-policy_fix_failure_conditions_with_upload.patch new file mode 100644 index 0000000..3555246 --- /dev/null +++ b/SOURCES/sos-bz1886432-policy_fix_failure_conditions_with_upload.patch @@ -0,0 +1,129 @@ +From 8288b5bb76d01c7fb88c51672bfb5d33e077d2d8 Mon Sep 17 00:00:00 2001 +From: Jan Jansky +Date: Thu, 8 Oct 2020 14:26:03 +0200 +Subject: [PATCH] [policy] Fix failure conditions with upload + +The logic for determining if an archive should be uploaded to the +Customer Portal was too strict, ease it to now properly only block on a +missing case number since username and passwords may now be provided via +env vars. + +Fixes an issue whereby we ignore a user-provided FTP directory. + +Adds a timeout and a timeout handler for FTP connections, rather than +letting the connection attempt continue indefinitely. + +Second, adds exception handling for an edge case where the connection to +the FTP server fails, but does not generate an exception from the ftplib +module. + +Additionally, correct the type-ing of the error numbers being checked so +that we actually match them. + +Caling "sos report --upload --case-id=123 --batch" should fallback +to uploading to FTP server as the upload user is unknown and can't +be prompted in batch mode. + +Related: #2276 +Related: #2245 +Resolves: #2265 + +Signed-off-by: Jan Jansky +Signed-off-by: Jake Hunsaker +--- + sos/policies/__init__.py | 19 +++++++++++++------ + sos/policies/redhat.py | 21 +++++++++++++++++---- + 2 files changed, 30 insertions(+), 10 deletions(-) + +diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py +index ed3f0cc..a22c277 100644 +--- a/sos/policies/__init__.py ++++ b/sos/policies/__init__.py +@@ -972,7 +972,8 @@ class LinuxPolicy(Policy): + """Should be overridden by policies to determine if a user needs to + be provided or not + """ +- if not self.upload_user and not self._upload_user: ++ if not self.get_upload_password() and (self.get_upload_user() != ++ self._upload_user): + msg = "Please provide upload user for %s: " % self.get_upload_url() + self.upload_user = input(_(msg)) + +@@ -1029,7 +1030,8 @@ class LinuxPolicy(Policy): + + """ + self.upload_archive = archive +- self.upload_url = self.get_upload_url() ++ if not self.upload_url: ++ self.upload_url = self.get_upload_url() + if not self.upload_url: + raise Exception("No upload destination provided by policy or by " + "--upload-url") +@@ -1187,18 +1189,23 @@ class LinuxPolicy(Policy): + password = self.get_upload_password() + + if not directory: +- directory = self._upload_directory ++ directory = self.upload_directory or self._upload_directory + + try: +- session = ftplib.FTP(url, user, password) ++ session = ftplib.FTP(url, user, password, timeout=15) ++ if not session: ++ raise Exception("connection failed, did you set a user and " ++ "password?") + session.cwd(directory) ++ except socket.timeout: ++ raise Exception("timeout hit while connecting to %s" % url) + except socket.gaierror: + raise Exception("unable to connect to %s" % url) + except ftplib.error_perm as err: + errno = str(err).split()[0] +- if errno == 503: ++ if errno == '503': + raise Exception("could not login as '%s'" % user) +- if errno == 550: ++ if errno == '550': + raise Exception("could not set upload directory to %s" + % directory) + +diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py +index 9fbe743..3412f44 100644 +--- a/sos/policies/redhat.py ++++ b/sos/policies/redhat.py +@@ -312,15 +312,28 @@ support representative. + "Enter your Red Hat Customer Portal username (empty to use " + "public dropbox): ") + ) ++ if not self.upload_user: ++ self.upload_url = RH_FTP_HOST ++ self.upload_user = self._upload_user ++ ++ def _upload_user_set(self): ++ user = self.get_upload_user() ++ return user and (user != 'anonymous') + + def get_upload_url(self): ++ if self.upload_url: ++ return self.upload_url + if self.commons['cmdlineopts'].upload_url: + return self.commons['cmdlineopts'].upload_url +- if (not self.case_id or not self.upload_user or not +- self.upload_password): +- # Cannot use the RHCP. Use anonymous dropbox ++ # anonymous FTP server should be used as fallback when either: ++ # - case id is not set, or ++ # - upload user isn't set AND batch mode prevents to prompt for it ++ if (not self.case_id) or \ ++ ((not self._upload_user_set()) and ++ self.commons['cmdlineopts'].batch): + self.upload_user = self._upload_user +- self.upload_directory = self._upload_directory ++ if self.upload_directory is None: ++ self.upload_directory = self._upload_directory + self.upload_password = None + return RH_FTP_HOST + else: +-- +1.8.3.1 + diff --git a/SOURCES/sos-bz1897903-postgresql_collect_rh-postgresql12.patch b/SOURCES/sos-bz1897903-postgresql_collect_rh-postgresql12.patch new file mode 100644 index 0000000..70c5e1f --- /dev/null +++ b/SOURCES/sos-bz1897903-postgresql_collect_rh-postgresql12.patch @@ -0,0 +1,97 @@ +From 612ccc67233f14447f0a20a19916780f3def673f Mon Sep 17 00:00:00 2001 +From: Pavel Moravec +Date: Wed, 18 Nov 2020 10:21:17 +0100 +Subject: [PATCH] [postgresql] reorganize postgres from SCL + +Backport of #2309 to legacy-3.9: +- enable RedHatPostgreSQL also by rh-postgresql12 SCL +- collect configs and logs regardless of running service +- collect "du -sh" for SCL directories as well + +Resolves: #2312 + +Signed-off-by: Pavel Moravec +Signed-off-by: Jake Hunsaker +--- + sos/plugins/postgresql.py | 54 +++++++++++++++++++++-------------------------- + 1 file changed, 24 insertions(+), 30 deletions(-) + +diff --git a/sos/plugins/postgresql.py b/sos/plugins/postgresql.py +index 2657992..ed36b3e 100644 +--- a/sos/plugins/postgresql.py ++++ b/sos/plugins/postgresql.py +@@ -82,47 +82,41 @@ class RedHatPostgreSQL(PostgreSQL, SCLPlugin): + packages = ( + 'postgresql', + 'rh-postgresql95-postgresql-server', +- 'rh-postgresql10-postgresql-server' ++ 'rh-postgresql10-postgresql-server', ++ 'rh-postgresql12-postgresql-server', + ) + + def setup(self): + super(RedHatPostgreSQL, self).setup() + + pghome = self.get_option("pghome") ++ dirs = [pghome] + +- scl = None + for pkg in self.packages[1:]: + # The scl name, package name, and service name all differ slightly + # but is at least consistent in doing so across versions, so we + # need to do some mangling here +- if self.is_service_running(pkg.replace('-server', '')): +- scl = pkg.split('-postgresql-')[0] +- +- # Copy PostgreSQL log files. +- for filename in find("*.log", pghome): +- self.add_copy_spec(filename) +- for filename in find("*.log", self.convert_copyspec_scl(scl, pghome)): +- self.add_copy_spec(filename) +- +- # Copy PostgreSQL config files. +- for filename in find("*.conf", pghome): +- self.add_copy_spec(filename) +- for filename in find("*.conf", self.convert_copyspec_scl(scl, pghome)): +- self.add_copy_spec(filename) +- +- self.add_copy_spec(os.path.join(pghome, "data", "PG_VERSION")) +- self.add_copy_spec(os.path.join(pghome, "data", "postmaster.opts")) +- +- self.add_copy_spec_scl(scl, os.path.join(pghome, "data", "PG_VERSION")) +- self.add_copy_spec_scl(scl, os.path.join( +- pghome, +- "data", +- "postmaster.opts" +- ) +- ) +- +- if scl and scl in self.scls_matched: +- self.do_pg_dump(scl=scl, filename="pgdump-scl-%s.tar" % scl) ++ scl = pkg.split('-postgresql-')[0] ++ _dir = self.convert_copyspec_scl(scl, pghome) ++ dirs.append(_dir) ++ if os.path.isdir(_dir): ++ self.add_cmd_output("du -sh %s" % _dir) ++ if (self.is_service_running(pkg.replace('-server', '')) and ++ scl in self.scls_matched): ++ self.do_pg_dump(scl=scl, filename="pgdump-scl-%s.tar" % scl) ++ ++ for _dir in dirs: ++ # Copy PostgreSQL log files. ++ for filename in find("*.log", _dir): ++ self.add_copy_spec(filename) ++ ++ # Copy PostgreSQL config files. ++ for filename in find("*.conf", _dir): ++ self.add_copy_spec(filename) ++ ++ # copy PG_VERSION and postmaster.opts ++ for f in ["PG_VERSION", "postmaster.opts"]: ++ self.add_copy_spec(os.path.join(_dir, "data", f)) + + + class DebianPostgreSQL(PostgreSQL, DebianPlugin, UbuntuPlugin): +-- +1.8.3.1 + diff --git a/SOURCES/sos-bz1917074-networking_ethtool-e_conditionally_only.patch b/SOURCES/sos-bz1917074-networking_ethtool-e_conditionally_only.patch new file mode 100644 index 0000000..32abf94 --- /dev/null +++ b/SOURCES/sos-bz1917074-networking_ethtool-e_conditionally_only.patch @@ -0,0 +1,61 @@ +From 00a25deaba41cd34a2143b5324d22a7c35098c1c Mon Sep 17 00:00:00 2001 +From: Jan Jansky +Date: Thu, 21 Jan 2021 09:48:29 +0100 +Subject: [PATCH] [networking] Collect 'ethtool -e ' conditionally only + +EEPROM dump collection might hang on specific types of devices, or +negatively impact the system otherwise. As a safe option, sos report +should collect the command when explicitly asked via a plugopt only. + +Related: #2376 +Resolved: #2380 + +Signed-off-by: Jan Jansky +Signed-off-by: Jake Hunsaker +--- + sos/plugins/networking.py | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py +index b04bb98..40f8b2f 100644 +--- a/sos/plugins/networking.py ++++ b/sos/plugins/networking.py +@@ -27,7 +27,8 @@ class Networking(Plugin): + ("namespaces", "Number of namespaces to collect, 0 for unlimited. " + + "Incompatible with the namespace_pattern plugin option", "slow", 0), + ("ethtool_namespaces", "Define if ethtool commands should be " + +- "collected for namespaces", "slow", True) ++ "collected for namespaces", "slow", True), ++ ("eepromdump", "collect 'ethtool -e' for all devices", "slow", False) + ] + + # switch to enable netstat "wide" (non-truncated) output mode +@@ -186,16 +187,15 @@ class Networking(Plugin): + "ethtool --show-eee " + eth + ]) + +- # skip EEPROM collection for 'bnx2x' NICs as this command +- # can pause the NIC and is not production safe. +- bnx_output = { +- "cmd": "ethtool -i %s" % eth, +- "output": "bnx2x" +- } +- bnx_pred = SoSPredicate(self, +- cmd_outputs=bnx_output, +- required={'cmd_outputs': 'none'}) +- self.add_cmd_output("ethtool -e %s" % eth, pred=bnx_pred) ++ # skip EEPROM collection by default, as it might hang or ++ # negatively impact the system on some device types ++ if self.get_option("eepromdump"): ++ cmd = "ethtool -e %s" % eth ++ self._log_warn("WARNING (about to collect '%s'): collecting " ++ "an eeprom dump is known to cause certain NIC " ++ "drivers (e.g. bnx2x/tg3) to interrupt device " ++ "operation" % cmd) ++ self.add_cmd_output(cmd) + + # Collect information about bridges (some data already collected via + # "ip .." commands) +-- +1.8.3.1 + diff --git a/SOURCES/sos-centos-branding.patch b/SOURCES/sos-centos-branding.patch deleted file mode 100644 index 3cf63a6..0000000 --- a/SOURCES/sos-centos-branding.patch +++ /dev/null @@ -1,135 +0,0 @@ -diff -uNrp sos-3.9.orig/sos/policies/redhat.py sos-3.9/sos/policies/redhat.py ---- sos-3.9.orig/sos/policies/redhat.py 2020-03-24 15:33:13.000000000 +0000 -+++ sos-3.9/sos/policies/redhat.py 2020-10-03 12:48:32.088747085 +0000 -@@ -31,9 +31,9 @@ except NameError: - - - class RedHatPolicy(LinuxPolicy): -- distro = "Red Hat" -- vendor = "Red Hat" -- vendor_url = "https://www.redhat.com/" -+ distro = "CentOS" -+ vendor = "CentOS" -+ vendor_url = "https://www.centos.org/" - _redhat_release = '/etc/redhat-release' - _tmp_dir = "/var/tmp" - _rpmq_cmd = 'rpm -qa --queryformat "%{NAME}|%{VERSION}|%{RELEASE}\\n"' -@@ -89,7 +89,7 @@ class RedHatPolicy(LinuxPolicy): - def check(cls): - """This method checks to see if we are running on Red Hat. It must be - overriden by concrete subclasses to return True when running on a -- Fedora, RHEL or other Red Hat distribution or False otherwise.""" -+ Fedora, CentOS, RHEL or other Red Hat distribution or False otherwise.""" - return False - - def check_usrmove(self, pkgs): -@@ -187,29 +187,29 @@ _opts_all_logs_verify = SoSOptions(all_l - _cb_profiles = ['boot', 'storage', 'system'] - _cb_plugopts = ['boot.all-images=on', 'rpm.rpmva=on', 'rpm.rpmdb=on'] - --RHEL_RELEASE_STR = "Red Hat Enterprise Linux" -+RHEL_RELEASE_STR = "CentOS Linux" - - RHV = "rhv" --RHV_DESC = "Red Hat Virtualization" -+RHV_DESC = "Virtualization" - - RHEL = "rhel" - RHEL_DESC = RHEL_RELEASE_STR - - RHOSP = "rhosp" --RHOSP_DESC = "Red Hat OpenStack Platform" -+RHOSP_DESC = "OpenStack Platform" - - RHOCP = "ocp" --RHOCP_DESC = "OpenShift Container Platform by Red Hat" -+RHOCP_DESC = "OpenShift Container Platform" - RHOSP_OPTS = SoSOptions(plugopts=[ - 'process.lsof=off', - 'networking.ethtool_namespaces=False', - 'networking.namespaces=200']) - - RH_CFME = "cfme" --RH_CFME_DESC = "Red Hat CloudForms" -+RH_CFME_DESC = "CloudForms" - - RH_SATELLITE = "satellite" --RH_SATELLITE_DESC = "Red Hat Satellite" -+RH_SATELLITE_DESC = "Satellite" - SAT_OPTS = SoSOptions(verify=True, plugopts=['apache.log=on']) - - CB = "cantboot" -@@ -257,8 +257,8 @@ RH_FTP_HOST = "ftp://dropbox.redhat.com" - - class RHELPolicy(RedHatPolicy): - distro = RHEL_RELEASE_STR -- vendor = "Red Hat" -- vendor_url = "https://access.redhat.com/support/" -+ vendor = "CentOS" -+ vendor_url = "https://wiki.centos.org/support" - msg = _("""\ - This command will collect diagnostic and configuration \ - information from this %(distro)s system and installed \ -@@ -280,7 +280,7 @@ support representative. - def check(cls): - """Test to see if the running host is a RHEL installation. - -- Checks for the presence of the "Red Hat Enterprise Linux" -+ Checks for the presence of the "CentOS Linux" - release string at the beginning of the NAME field in the - `/etc/os-release` file and returns ``True`` if it is - found, and ``False`` otherwise. -@@ -309,7 +309,7 @@ support representative. - return - if self.case_id: - self.upload_user = input(_( -- "Enter your Red Hat Customer Portal username (empty to use " -+ "Enter your Customer Portal username (empty to use " - "public dropbox): ") - ) - -@@ -334,7 +334,7 @@ support representative. - - def get_upload_url_string(self): - if self.get_upload_url().startswith(RH_API_HOST): -- return "Red Hat Customer Portal" -+ return "Customer Portal" - return self.upload_url or RH_FTP_HOST - - def get_upload_user(self): -@@ -389,7 +389,7 @@ class CentOsPolicy(RHELPolicy): - - ATOMIC = "atomic" - ATOMIC_RELEASE_STR = "Atomic" --ATOMIC_DESC = "Red Hat Enterprise Linux Atomic Host" -+ATOMIC_DESC = "Atomic Host" - - atomic_presets = { - ATOMIC: PresetDefaults(name=ATOMIC, desc=ATOMIC_DESC, note=NOTE_TIME, -@@ -398,7 +398,7 @@ atomic_presets = { - - - class RedHatAtomicPolicy(RHELPolicy): -- distro = "Red Hat Atomic Host" -+ distro = "Atomic Host" - msg = _("""\ - This command will collect diagnostic and configuration \ - information from this %(distro)s system. -@@ -435,7 +435,7 @@ support representative. - - - class RedHatCoreOSPolicy(RHELPolicy): -- distro = "Red Hat CoreOS" -+ distro = "CoreOS" - msg = _("""\ - This command will collect diagnostic and configuration \ - information from this %(distro)s system. -@@ -456,7 +456,7 @@ support representative. - host_release = os.environ[ENV_HOST_SYSROOT] + cls._redhat_release - try: - for line in open(host_release, 'r').read().splitlines(): -- coreos |= 'Red Hat CoreOS' in line -+ coreos |= 'CoreOS' in line - except IOError: - pass - return coreos diff --git a/SPECS/sos.spec b/SPECS/sos.spec index ffa2e08..7017c04 100644 --- a/SPECS/sos.spec +++ b/SPECS/sos.spec @@ -2,7 +2,7 @@ Summary: A set of tools to gather troubleshooting information from a system Name: sos Version: 3.9 -Release: 4%{?dist} +Release: 5%{?dist}.2 Group: Applications/System Source0: https://github.com/sosreport/sos/archive/%{version}.tar.gz License: GPLv2+ @@ -31,7 +31,13 @@ Patch8: sos-bz1853701-pci_gating_for_lspci.patch Patch9: sos-bz1853235-foreman_collect_stats_of_some_tables.patch Patch10: sos-bz1850925-logs_collect_also_not_persistent_logs.patch Patch11: sos-bz1856417-gluster-remove_only_dump_files.patch -Patch12: sos-centos-branding.patch +Patch12: sos-bz1857697-gluster-state_files_deletion.patch +Patch13: sos-bz1859885-kubernetes_ignore_empty_lines.patch +Patch14: sos-bz1870379-networking_skip_eeprom_colection_for_bnx2x.patch +Patch15: sos-bz1871207-audit_collect_etc_audisp.patch +Patch16: sos-bz1886432-policy_fix_failure_conditions_with_upload.patch +Patch17: sos-bz1897903-postgresql_collect_rh-postgresql12.patch +Patch18: sos-bz1917074-networking_ethtool-e_conditionally_only.patch %description Sos is a set of tools that gathers information about system @@ -54,6 +60,12 @@ support technicians and developers. %patch10 -p1 %patch11 -p1 %patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 %build make @@ -77,8 +89,26 @@ rm -rf ${RPM_BUILD_ROOT} %config(noreplace) %{_sysconfdir}/sos.conf %changelog -* Tue Sep 29 2020 CentOS Sources - 3.9-4.el7.centos -- Roll in CentOS Branding +* Thu Jan 21 2021 Jan Jansky = 3.9-5.2 +- [networking] 'ethtool -e ' conditionally only + Resolves: bz1917074 + +* Mon Nov 23 2020 Jan Jansky = 3.9-5.1 +- Adjusting .1 zstream version + +* Fri Nov 20 2020 Jan Jansky = 3.9-5 +- [gluster] remove generated state files + Resolves: bz1857697 +- [kubernetes] ignore blank+empty lines + Resolves: bz1859885 +- [networking] remove 'ethtool -e' option for bnx2x NICs + Resolves: bz1870379 +- [auditd] collect /etc/audisp + Resolves: bz1871207 +- [policy] Fix several failure conditions with upload + Resolves: bz1886432 +- [postgresql] reorganize postgres from SCL + Resolves: bz1897903 * Thu Jul 16 2020 Jan Jansky = 3.9-4 - [gluster] remove only dump files