1
0
forked from rpms/sos

Auto sync2gitlab import of sos-4.4-2.el8.src.rpm

This commit is contained in:
CentOS Sources 2022-09-25 08:09:44 +00:00
parent d056594c1a
commit 7dd86d1132
3 changed files with 216 additions and 2 deletions

View File

@ -0,0 +1,73 @@
From 0b81b7ef780171af4431db656809f10d1683bc4c Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 20 Sep 2022 22:11:48 +0200
Subject: [PATCH 1/2] [dnf] Collect legacy yum config and dnf global vars
Some systems might rely on legacy yum config with default symlinks to
dnf config - sos should collect the symlinks.
Additionally, collect dnf global vars.
Related: #3031
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
sos/report/plugins/dnf.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/sos/report/plugins/dnf.py b/sos/report/plugins/dnf.py
index 59b8de6c..82078faf 100644
--- a/sos/report/plugins/dnf.py
+++ b/sos/report/plugins/dnf.py
@@ -55,7 +55,12 @@ class DNFPlugin(Plugin, RedHatPlugin):
'/etc/dnf/modules.d/.*.module': 'dnf_modules'
})
- self.add_copy_spec("/etc/dnf/")
+ self.add_copy_spec([
+ "/etc/dnf/",
+ "/etc/yum.conf",
+ "/etc/yum/pluginconf.d/",
+ "/etc/yum/vars/",
+ ])
self.add_copy_spec("/etc/yum.repos.d/",
tags=['yum_repos_d', 'dnf_repos_d', 'dnf_repo'])
--
2.37.3
From ff17d6486f349dcdc115e898cc50c3845578aef3 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 20 Sep 2022 22:20:51 +0200
Subject: [PATCH 2/2] [dnf] Obfuscate all passwords from all vars
- obfuscate also "password=.." variable values
- apply the obfuscation also to global vars dir
Resolves: #3031
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
sos/report/plugins/dnf.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sos/report/plugins/dnf.py b/sos/report/plugins/dnf.py
index 82078faf..6efc9cac 100644
--- a/sos/report/plugins/dnf.py
+++ b/sos/report/plugins/dnf.py
@@ -125,8 +125,9 @@ class DNFPlugin(Plugin, RedHatPlugin):
self.get_modules_info(modules['output'])
def postproc(self):
- regexp = r"(proxy_password(\s)*=(\s)*)(\S+)\n"
+ regexp = r"(password(\s)*=(\s)*)(\S+)\n"
repl = r"\1********\n"
- self.do_path_regex_sub("/etc/yum.repos.d/*", regexp, repl)
+ for f in ["/etc/yum.repos.d/*", "/etc/dnf/vars/*"]:
+ self.do_path_regex_sub(f, regexp, repl)
# vim: set et ts=4 sw=4 :
--
2.37.3

View File

@ -0,0 +1,131 @@
From 4245de0b978a4d28bb8c833c2f2f5a15a260bd22 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Mon, 12 Sep 2022 15:30:16 +0200
Subject: [PATCH] [utilities] Relax from hard dependency of python3-magic
For compatibility reasons on some distros, sos should not have a hard
dependency on 'magic' python library. It should attempt to use it for
detection of binary file content, but should fall back to previous "read
the very first byte" method otherwise.
Resolves: #3025
Relates: #3021
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
requirements.txt | 1 -
setup.py | 2 +-
sos.spec | 2 +-
sos/utilities.py | 50 +++++++++++++++++++++++++++++++++++-------------
4 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/requirements.txt b/requirements.txt
index c6ba1162..39f42161 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,5 +2,4 @@ pycodestyle>=2.4.0
coverage>=4.0.3
Sphinx>=1.3.5
pexpect>=4.0.0
-python_magic>=0.4.20
pyyaml
diff --git a/setup.py b/setup.py
index 2a70802d..f2f9ecbe 100644
--- a/setup.py
+++ b/setup.py
@@ -107,7 +107,7 @@ setup(
],
cmdclass=cmdclass,
command_options=command_options,
- requires=['pexpect', 'python_magic', 'pyyaml']
+ requires=['pexpect', 'pyyaml']
)
diff --git a/sos.spec b/sos.spec
index 748b9fd5..08499816 100644
--- a/sos.spec
+++ b/sos.spec
@@ -16,7 +16,7 @@ Requires: python3-rpm
Requires: tar
Requires: xz
Requires: python3-pexpect
-Requires: python3-magic
+Recommends: python3-magic
Recommends: python3-pyyaml
Obsoletes: sos-collector <= 1.9
diff --git a/sos/utilities.py b/sos/utilities.py
index 2046c8fd..21c815d9 100644
--- a/sos/utilities.py
+++ b/sos/utilities.py
@@ -19,11 +19,26 @@ import tempfile
import threading
import time
import io
-import magic
-
from contextlib import closing
from collections import deque
+# try loading magic>=0.4.20 which implements detect_from_filename method
+magic_mod = False
+try:
+ import magic
+ magic.detect_from_filename(__file__)
+ magic_mod = True
+except (ImportError, AttributeError):
+ log = logging.getLogger('sos')
+ from textwrap import fill
+ msg = ("""\
+WARNING: Failed to load 'magic' module version >= 0.4.20 which sos aims to \
+use for detecting binary files. A less effective method will be used. It is \
+recommended to install proper python3-magic package with the module.
+""")
+ log.warn('\n' + fill(msg, 72, replace_whitespace=False) + '\n')
+
+
TIMEOUT_DEFAULT = 300
@@ -75,17 +90,26 @@ def file_is_binary(fname):
:returns: True if binary, else False
:rtype: ``bool``
"""
- try:
- _ftup = magic.detect_from_filename(fname)
- _mimes = ['text/', 'inode/']
- return (
- _ftup.encoding == 'binary' and not
- any(_ftup.mime_type.startswith(_mt) for _mt in _mimes)
- )
- except Exception:
- # if for some reason this check fails, don't blindly remove all files
- # but instead rely on other checks done by the component
- return False
+ if magic_mod:
+ try:
+ _ftup = magic.detect_from_filename(fname)
+ _mimes = ['text/', 'inode/']
+ return (
+ _ftup.encoding == 'binary' and not
+ any(_ftup.mime_type.startswith(_mt) for _mt in _mimes)
+ )
+ except Exception:
+ pass
+ # if for some reason the above check fails or magic>=0.4.20 is not present,
+ # fail over to checking the very first byte of the file content
+ with open(fname, 'tr') as tfile:
+ try:
+ # when opened as above (tr), reading binary content will raise
+ # an exception
+ tfile.read(1)
+ return False
+ except UnicodeDecodeError:
+ return True
def find(file_pattern, top_dir, max_depth=None, path_pattern=None):
--
2.37.3

View File

@ -5,7 +5,7 @@
Summary: A set of tools to gather troubleshooting information from a system Summary: A set of tools to gather troubleshooting information from a system
Name: sos Name: sos
Version: 4.4 Version: 4.4
Release: 1%{?dist} Release: 2%{?dist}
Group: Applications/System Group: Applications/System
Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz
Source1: sos-audit-%{auditversion}.tgz Source1: sos-audit-%{auditversion}.tgz
@ -16,11 +16,13 @@ BuildRequires: python3-devel
BuildRequires: gettext BuildRequires: gettext
Requires: bzip2 Requires: bzip2
Requires: xz Requires: xz
Requires: python3-magic
Requires: python3-requests Requires: python3-requests
Recommends: python3-magic
Recommends: python3-pexpect Recommends: python3-pexpect
Conflicts: vdsm < 4.40 Conflicts: vdsm < 4.40
Obsoletes: sos-collector Obsoletes: sos-collector
Patch1: sos-bz2129038-relax-magic-dep.patch
Patch2: sos-bz2100154-yum-legacy-links.patch
%description %description
@ -32,6 +34,8 @@ support technicians and developers.
%prep %prep
%setup -qn %{name}-%{version} %setup -qn %{name}-%{version}
%setup -T -D -a1 -q %setup -T -D -a1 -q
%patch1 -p1
%patch2 -p1
%build %build
@ -100,6 +104,12 @@ of the system. Currently storage and filesystem commands are audited.
%ghost /etc/audit/rules.d/40-sos-storage.rules %ghost /etc/audit/rules.d/40-sos-storage.rules
%changelog %changelog
* Thu Sep 22 2022 Pavel Moravec <pmoravec@redhat.com> = 4.4-2
- [utilities] Relax from hard dependency of python3-magic
Resolves: bz2129038
- [dnf] Collect legacy yum config symlinks, properly obfuscate pwds
Resolves: bz2100154
* Fri Sep 09 2022 Pavel Moravec <pmoravec@redhat.com> = 4.4-1 * Fri Sep 09 2022 Pavel Moravec <pmoravec@redhat.com> = 4.4-1
- Rebase on upstream 4.4 - Rebase on upstream 4.4
Resolves: bz2082614 Resolves: bz2082614