From d58b49887d5e88bbd9471222763fc602eccbb2d1 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Tue, 11 Jul 2023 17:08:17 +0300 Subject: [PATCH 1/2] import sos-4.5.4-1.el9 --- .gitignore | 2 +- .sos.metadata | 2 +- SPECS/sos.spec | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f5854d3..ffb4d34 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/sos-4.5.3.tar.gz +SOURCES/sos-4.5.4.tar.gz SOURCES/sos-audit-0.3.tgz diff --git a/.sos.metadata b/.sos.metadata index fad1c5d..61e625d 100644 --- a/.sos.metadata +++ b/.sos.metadata @@ -1,2 +1,2 @@ -eec8ce79aa42dd6561bce9638c8e803e9f81e476 SOURCES/sos-4.5.3.tar.gz +e2c0fe1ab4ab24b7d91d3fb2c590a00bf4f3cf98 SOURCES/sos-4.5.4.tar.gz 9d478b9f0085da9178af103078bbf2fd77b0175a SOURCES/sos-audit-0.3.tgz diff --git a/SPECS/sos.spec b/SPECS/sos.spec index ee1c20b..4d0b988 100644 --- a/SPECS/sos.spec +++ b/SPECS/sos.spec @@ -4,7 +4,7 @@ Summary: A set of tools to gather troubleshooting information from a system Name: sos -Version: 4.5.3 +Version: 4.5.4 Release: 1%{?dist} Group: Applications/System Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz @@ -16,6 +16,7 @@ BuildRequires: python3-devel BuildRequires: gettext BuildRequires: python3-setuptools Requires: python3-requests +Requires: python3-setuptools Recommends: python3-magic Recommends: python3-pexpect Recommends: python3-pyyaml @@ -105,6 +106,10 @@ of the system. Currently storage and filesystem commands are audited. %changelog +* Tue May 31 2023 Pavel Moravec = 4.5.4-1 +- [specfile] add runtime requirement to python3-setuptools + Resolves: bz2207776 + * Thu May 04 2023 Jan Jansky = 4.5.3-1 - [unpackaged] Print unpackaged symlinks instead of targets Resolves: bz2169684 From 311e279d5350fd6cd8d21e867996369a56b70d36 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Thu, 27 Jul 2023 16:56:06 +0300 Subject: [PATCH 2/2] import sos-4.5.5-2.el9 --- .gitignore | 2 +- .sos.metadata | 2 +- .../sos-bz2207562-clean-obfuscate-mac.patch | 57 ++++++++++++ ...-bz2218279-clean-respect-permissions.patch | 93 +++++++++++++++++++ SPECS/sos.spec | 18 +++- 5 files changed, 166 insertions(+), 6 deletions(-) create mode 100644 SOURCES/sos-bz2207562-clean-obfuscate-mac.patch create mode 100644 SOURCES/sos-bz2218279-clean-respect-permissions.patch diff --git a/.gitignore b/.gitignore index ffb4d34..070b750 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/sos-4.5.4.tar.gz +SOURCES/sos-4.5.5.tar.gz SOURCES/sos-audit-0.3.tgz diff --git a/.sos.metadata b/.sos.metadata index 61e625d..9b6751a 100644 --- a/.sos.metadata +++ b/.sos.metadata @@ -1,2 +1,2 @@ -e2c0fe1ab4ab24b7d91d3fb2c590a00bf4f3cf98 SOURCES/sos-4.5.4.tar.gz +cc86572817d14115c3dc5a942c79e89fa17514c4 SOURCES/sos-4.5.5.tar.gz 9d478b9f0085da9178af103078bbf2fd77b0175a SOURCES/sos-audit-0.3.tgz diff --git a/SOURCES/sos-bz2207562-clean-obfuscate-mac.patch b/SOURCES/sos-bz2207562-clean-obfuscate-mac.patch new file mode 100644 index 0000000..51a866d --- /dev/null +++ b/SOURCES/sos-bz2207562-clean-obfuscate-mac.patch @@ -0,0 +1,57 @@ +From 59c2660584734af92eca2eae31af3fbf5557f853 Mon Sep 17 00:00:00 2001 +From: Jan Jansky +Date: Mon, 10 Jul 2023 13:10:22 +0200 +Subject: [PATCH] [clean] Properly obfuscate MAC addresses + +Some of mac addresses was not properly obfuscated because +some collected data contains mac addresses in format +01: and parser was not ready for that. + +Also added mapper which will obfuscate mac address in case +it is in format with _ instead of : as for example + +00_50_56_87_5d_01 + +instead of + +00:50:56:87:5d:01 + +Format with _ is used for example by vmware plugin. + +Resolves: #3302 + +Signed-off-by: Jan Jansky +--- + sos/cleaner/mappings/mac_map.py | 2 +- + sos/cleaner/parsers/mac_parser.py | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/sos/cleaner/mappings/mac_map.py b/sos/cleaner/mappings/mac_map.py +index 334a6681..4ccba25a 100644 +--- a/sos/cleaner/mappings/mac_map.py ++++ b/sos/cleaner/mappings/mac_map.py +@@ -75,5 +75,5 @@ class SoSMacMap(SoSMap): + if re.match('(([0-9a-fA-F]{4}:){3}([0-9a-fA-F]){4})', item): + return self.mac6_quad_template % hextets + # match 48-bit IPv4 MAC addresses +- if re.match('([0-9a-fA-F]:?){12}', item): ++ if re.match('([0-9a-fA-F][:_]?){12}', item): + return self.mac_template % hextets +diff --git a/sos/cleaner/parsers/mac_parser.py b/sos/cleaner/parsers/mac_parser.py +index 88b0ac2e..4e790018 100644 +--- a/sos/cleaner/parsers/mac_parser.py ++++ b/sos/cleaner/parsers/mac_parser.py +@@ -25,8 +25,8 @@ IPV6_REG_4HEX = ( + ) + # aa:bb:cc:dd:ee:ff avoiding ipv6 substring matches + IPV4_REG = ( +- r'((? +Date: Wed, 28 Jun 2023 11:49:56 +0200 +Subject: [PATCH 1/2] [clean] Respect permissions of sanitised files + +When copying files we applied a substitution in, we must replace just +original file content (shutil.copyfile) and not also its stat data +(shutil.copy). + +Resolves: #3292 + +Signed-off-by: Pavel Moravec +--- + sos/cleaner/__init__.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sos/cleaner/__init__.py b/sos/cleaner/__init__.py +index feeedf66..fbcaa9c3 100644 +--- a/sos/cleaner/__init__.py ++++ b/sos/cleaner/__init__.py +@@ -778,7 +778,7 @@ third party. + % (short_name, err), caller=arc_name) + tfile.seek(0) + if subs: +- shutil.copy(tfile.name, filename) ++ shutil.copyfile(tfile.name, filename) + tfile.close() + + _ob_short_name = self.obfuscate_string(short_name.split('/')[-1]) +-- +2.31.1 + + +From fc1489a621108d3613d3337489a64950e52d77c3 Mon Sep 17 00:00:00 2001 +From: Pavel Moravec +Date: Thu, 29 Jun 2023 22:57:46 +0200 +Subject: [PATCH 2/2] [tests] add test for #3292 + +Add a test that cleaner keeps permissions of a sanitised file + +Relevant to: #3292 + +Signed-off-by: Pavel Moravec +--- + .../basic_function_tests/report_with_mask.py | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/tests/cleaner_tests/basic_function_tests/report_with_mask.py b/tests/cleaner_tests/basic_function_tests/report_with_mask.py +index 7c4d3905..baee836a 100644 +--- a/tests/cleaner_tests/basic_function_tests/report_with_mask.py ++++ b/tests/cleaner_tests/basic_function_tests/report_with_mask.py +@@ -9,6 +9,7 @@ + from sos_tests import StageOneReportTest, StageTwoReportTest + + import re ++from os import stat + + + class ReportWithMask(StageOneReportTest): +@@ -18,6 +19,17 @@ class ReportWithMask(StageOneReportTest): + """ + + sos_cmd = '--mask -o host,networking' ++ hosts_obfuscated = None ++ ++ def pre_sos_setup(self): ++ # obfuscate a random word from /etc/hosts and ensure the updated ++ # sanitised file has same permissions (a+r) ++ try: ++ self.hosts_obfuscated = open('/etc/hosts').read().strip('#\n').split()[-1] ++ except (FileNotFoundError, IndexError) as e: ++ self.warning(f"Unable to process /etc/hosts: {e}") ++ if self.hosts_obfuscated: ++ self.sos_cmd += f' --keywords={self.hosts_obfuscated}' + + def test_mask_was_run(self): + self.assertOutputContains('Beginning obfuscation') +@@ -53,6 +65,12 @@ class ReportWithMask(StageOneReportTest): + mac = line.strip().split()[1] + assert mac.startswith('53:4f:53'), "Found unobfuscated mac addr %s" % mac + ++ def test_perms_unchanged_on_modified_file(self): ++ if self.hosts_obfuscated: ++ imode_orig = stat('/etc/hosts').st_mode ++ imode_obfuscated = stat(self.get_name_in_archive('etc/hosts')).st_mode ++ self.assertEqual(imode_orig, imode_obfuscated) ++ + + class ReportWithCleanedKeywords(StageOneReportTest): + """Testing for obfuscated keywords provided by the user +-- +2.31.1 + diff --git a/SPECS/sos.spec b/SPECS/sos.spec index 4d0b988..cc5ebbd 100644 --- a/SPECS/sos.spec +++ b/SPECS/sos.spec @@ -4,8 +4,8 @@ Summary: A set of tools to gather troubleshooting information from a system Name: sos -Version: 4.5.4 -Release: 1%{?dist} +Version: 4.5.5 +Release: 2%{?dist} Group: Applications/System Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz Source1: sos-audit-%{auditversion}.tgz @@ -22,7 +22,8 @@ Recommends: python3-pexpect Recommends: python3-pyyaml Conflicts: vdsm < 4.40 Obsoletes: sos-collector <= 1.9 - +Patch1: sos-bz2218279-clean-respect-permissions.patch +Patch2: sos-bz2207562-clean-obfuscate-mac.patch %description Sos is a set of tools that gathers information about system @@ -33,7 +34,8 @@ support technicians and developers. %prep %setup -qn %{name}-%{version} %setup -T -D -a1 -q - +%patch1 -p1 +%patch2 -p1 %build %py3_build @@ -106,6 +108,14 @@ of the system. Currently storage and filesystem commands are audited. %changelog +* Fri Jul 14 2023 Jan Jansky - 4.5.5-2 +- Adding patch for cleaning mac addresses + Resolves: bz2217943 + +* Mon Jul 03 2023 Jan Jansky = 4.5.5-1 +- Rebase on upstream 4.5.5 + Resolves: bz2217943 + * Tue May 31 2023 Pavel Moravec = 4.5.4-1 - [specfile] add runtime requirement to python3-setuptools Resolves: bz2207776