diff --git a/sos-cleaner-Use-hostname-f-in-HostnamePrepper.patch b/sos-cleaner-Use-hostname-f-in-HostnamePrepper.patch new file mode 100644 index 0000000..4dad30f --- /dev/null +++ b/sos-cleaner-Use-hostname-f-in-HostnamePrepper.patch @@ -0,0 +1,37 @@ +From 1d449044caf2224da5e55d0de51459137feb0807 Mon Sep 17 00:00:00 2001 +From: Pavel Moravec +Date: Sun, 25 May 2025 11:46:34 +0200 +Subject: [PATCH] [cleaner] Use "hostname -f" in HostnamePrepper + +HostnamePrepper should always be fed by FQDN to ensure domain names are +recognized properly. + +This is important esp. when: +- /etc/hosts is empty +- "hostname" contains shortname only +- "hostname -f" contains FQDN + +Resolves: #4022 +Closes: #4026 + +Signed-off-by: Pavel Moravec +--- + sos/cleaner/preppers/hostname.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sos/cleaner/preppers/hostname.py b/sos/cleaner/preppers/hostname.py +index 0812597e..b20f5679 100644 +--- a/sos/cleaner/preppers/hostname.py ++++ b/sos/cleaner/preppers/hostname.py +@@ -29,7 +29,7 @@ class HostnamePrepper(SoSPrepper): + items = [] + _file = 'hostname' + if archive.is_sos: +- _file = 'sos_commands/host/hostname' ++ _file = 'sos_commands/host/hostname_-f' + elif archive.is_insights: + _file = 'data/insights_commands/hostname_-f' + +-- +2.49.0 + diff --git a/sos-dnf-Scrub-passwords-in-repository-URIs.patch b/sos-dnf-Scrub-passwords-in-repository-URIs.patch new file mode 100644 index 0000000..6551572 --- /dev/null +++ b/sos-dnf-Scrub-passwords-in-repository-URIs.patch @@ -0,0 +1,30 @@ +From c41fca3daed8b515c4022ab02232acab8b1ec4c4 Mon Sep 17 00:00:00 2001 +From: Pavel Moravec +Date: Tue, 20 May 2025 13:18:26 +0200 +Subject: [PATCH] [dnf] Scrub passwords in repository URIs + +Closes: #4018 + +Signed-off-by: Pavel Moravec +--- + sos/report/plugins/dnf.py | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/sos/report/plugins/dnf.py b/sos/report/plugins/dnf.py +index 4a1e52b9..69224955 100644 +--- a/sos/report/plugins/dnf.py ++++ b/sos/report/plugins/dnf.py +@@ -150,4 +150,10 @@ class DNFPlugin(Plugin, RedHatPlugin): + # + self.do_file_sub("/etc/dnf/dnf.conf", regexp, repl) + ++ # Scrub credentials in http URIs ++ self.do_paths_http_sub([ ++ '/etc/yum.repos.d/*', ++ '/var/log/dnf.*', ++ ]) ++ + # vim: set et ts=4 sw=4 : +-- +2.49.0 + diff --git a/sos-policy-Re-add-logic-to-request-case-id-if-not-presen.patch b/sos-policy-Re-add-logic-to-request-case-id-if-not-presen.patch new file mode 100644 index 0000000..228e89f --- /dev/null +++ b/sos-policy-Re-add-logic-to-request-case-id-if-not-presen.patch @@ -0,0 +1,111 @@ +From 369e65acafa70a6d7a9751802395bddaaeafd141 Mon Sep 17 00:00:00 2001 +From: Jose Castillo +Date: Wed, 21 May 2025 10:10:41 +0100 +Subject: [PATCH] [policy] Re-add logic to request case-id if not present + +This commit re-adds the logic to ask for case-id if +the user hasn't specified it in the command line +explicitly. + +Related: RHEL-92071 + +Signed-off-by: Jose Castillo +--- + sos/policies/distros/__init__.py | 18 ++++++++++++++++-- + sos/upload/__init__.py | 3 +++ + sos/upload/targets/redhat.py | 22 ++-------------------- + 3 files changed, 21 insertions(+), 22 deletions(-) + +diff --git a/sos/policies/distros/__init__.py b/sos/policies/distros/__init__.py +index 06327a6b..7004fdbd 100644 +--- a/sos/policies/distros/__init__.py ++++ b/sos/policies/distros/__init__.py +@@ -13,6 +13,7 @@ + import os + import re + ++from sos import _sos as _ + from sos.policies import Policy + from sos.policies.init_systems import InitSystem + from sos.policies.init_systems.systemd import SystemdInit +@@ -300,8 +301,21 @@ class LinuxPolicy(Policy): + if cmdline_opts.low_priority: + self._configure_low_priority() + +- if cmdline_opts.case_id: +- self.case_id = cmdline_opts.case_id ++ # set or query for case id ++ self.case_id = self.prompt_for_case_id(cmdline_opts) ++ ++ def prompt_for_case_id(self, cmdline_opts): ++ if not cmdline_opts.batch and not \ ++ cmdline_opts.quiet: ++ if not cmdline_opts.case_id: ++ cmdline_opts.case_id = input( ++ _("Optionally, please enter the case id that you are " ++ "generating this report for: ") ++ ) ++ self.case_id = cmdline_opts.case_id if \ ++ cmdline_opts.case_id else "" ++ ++ return self.case_id + + def _configure_low_priority(self): + """Used to constrain sos to a 'low priority' execution, potentially +diff --git a/sos/upload/__init__.py b/sos/upload/__init__.py +index 97872f69..7be33f65 100644 +--- a/sos/upload/__init__.py ++++ b/sos/upload/__init__.py +@@ -282,6 +282,9 @@ this utility. + if self.from_cmdline: + self.intro() + self.archive = self.opts.upload_file ++ self.caseid = self.policy.prompt_for_case_id( ++ cmdline_opts=self.opts ++ ) + cmdline_target = self.opts.upload_target + if cmdline_target and cmdline_target != 'local': + self.upload_target = self.upload_targets[cmdline_target] +diff --git a/sos/upload/targets/redhat.py b/sos/upload/targets/redhat.py +index b3e8e3c5..d5262af0 100644 +--- a/sos/upload/targets/redhat.py ++++ b/sos/upload/targets/redhat.py +@@ -52,25 +52,6 @@ class RHELUploadTarget(UploadTarget): + + self.upload_directory = self.commons['cmdlineopts'].upload_directory + +- def prompt_for_case_id(self): +- caseid = self.commons['cmdlineopts'].case_id if \ +- self.commons['cmdlineopts'].case_id else "" +- +- # set or query for case id +- if not self.commons['cmdlineopts'].batch and not \ +- self.commons['cmdlineopts'].quiet: +- if caseid: +- self.commons['cmdlineopts'].case_id = caseid +- else: +- self.commons['cmdlineopts'].case_id = input( +- _("Optionally, please enter the case id that you are " +- "generating this report for: ") +- ) +- if self.commons['cmdlineopts'].case_id: +- self.case_id = self.commons['cmdlineopts'].case_id +- +- return self.case_id +- + def prompt_for_upload_user(self): + if self.commons['cmdlineopts'].upload_user: + self.ui_log.info( +@@ -101,7 +82,8 @@ class RHELUploadTarget(UploadTarget): + if self.commons['cmdlineopts'].upload_protocol == 'sftp': + return self.RH_SFTP_HOST + if not self.commons['cmdlineopts'].case_id and not\ +- self.prompt_for_case_id(): ++ self.commons['policy'].prompt_for_case_id( ++ self.commons['cmdlineopts']): + return self.RH_SFTP_HOST + + except Exception as e: +-- +2.49.0 + diff --git a/sos.spec b/sos.spec index 7549b83..5a770e2 100644 --- a/sos.spec +++ b/sos.spec @@ -5,7 +5,7 @@ Summary: A set of tools to gather troubleshooting information from a system Name: sos Version: 4.9.1 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/System Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz Source1: sos-audit-%{auditversion}.tgz @@ -23,6 +23,9 @@ Recommends: python3-pyyaml Conflicts: vdsm < 4.40 Obsoletes: sos-collector <= 1.9 Patch1: sosreport-binary.patch +Patch2: sos-cleaner-Use-hostname-f-in-HostnamePrepper.patch +Patch3: sos-dnf-Scrub-passwords-in-repository-URIs.patch +Patch4: sos-policy-Re-add-logic-to-request-case-id-if-not-presen.patch %description Sos is a set of tools that gathers information about system @@ -34,6 +37,9 @@ support technicians and developers. %setup -qn %{name}-%{version} %setup -T -D -a1 -q %patch -P 1 -p1 +%patch -P 2 -p1 +%patch -P 3 -p1 +%patch -P 4 -p1 %build %py3_build @@ -107,6 +113,13 @@ of the system. Currently storage and filesystem commands are audited. %changelog +* Fri May 30 2025 Jan Jansky = 4.9.1-2 +- Update to 4.9.1-2 in RHEL 9 + Resolves: RHEL-86668 + Resolves: RHEL-86644 + Resolves: RHEL-86647 + Resolves: RHEL-86646 + * Tue Apr 15 2025 Jan Jansky = 4.9.1-1 - Update to 4.9.1 in RHEL 9 Resolves: RHEL-86668