Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2dd39933dd | ||
|
|
7be6471c1a | ||
| a86f542cfd | |||
| d6f98c0e3f | |||
| baa3d1b3ab | |||
| bec308ba16 | |||
| ee271c3b5d | |||
| c37e46b1d4 |
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
SOURCES/sos-4.7.2.tar.gz
|
SOURCES/sos-4.11.0.tar.gz
|
||||||
SOURCES/sos-audit-0.3.tgz
|
SOURCES/sos-audit-0.3-1.tgz
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
e01a25f05322cf56b75e07b5102dd61dbd4f0869 SOURCES/sos-4.7.2.tar.gz
|
b95a041f0826234fcdc7ee452d31609972d5d556 SOURCES/sos-4.11.0.tar.gz
|
||||||
9d478b9f0085da9178af103078bbf2fd77b0175a SOURCES/sos-audit-0.3.tgz
|
00752b68ec5e1141192a9dab7d44377b8d637bf7 SOURCES/sos-audit-0.3-1.tgz
|
||||||
|
|||||||
@ -0,0 +1,116 @@
|
|||||||
|
--- a/sos/report/plugins/coredump.py
|
||||||
|
+++ b/sos/report/plugins/coredump.py
|
||||||
|
@@ -72,8 +72,8 @@
|
||||||
|
cdump = line.split()
|
||||||
|
pid = cdump[4]
|
||||||
|
exe = cdump[-2]
|
||||||
|
- if regex := self.get_option("executable"):
|
||||||
|
- if not re.search(regex, exe, re.I):
|
||||||
|
+ if self.get_option("executable"):
|
||||||
|
+ if not re.search(self.get_option("executable"), exe, re.I):
|
||||||
|
continue
|
||||||
|
cinfo = self.collect_cmd_output(f"coredumpctl info {pid}")
|
||||||
|
if cinfo['status'] != 0:
|
||||||
|
--- a/sos/collector/sosnode.py
|
||||||
|
+++ b/sos/collector/sosnode.py
|
||||||
|
@@ -372,7 +372,8 @@
|
||||||
|
for line in result.splitlines():
|
||||||
|
if not is_list:
|
||||||
|
try:
|
||||||
|
- if ls := line.split():
|
||||||
|
+ ls = line.split()
|
||||||
|
+ if ls:
|
||||||
|
res.append(ls[0])
|
||||||
|
except Exception as err:
|
||||||
|
self.log_debug(f"Error parsing sos help: {err}")
|
||||||
|
--- a/sos/report/plugins/mongodb.py
|
||||||
|
+++ b/sos/report/plugins/mongodb.py
|
||||||
|
@@ -87,9 +87,11 @@
|
||||||
|
)
|
||||||
|
|
||||||
|
def setup(self):
|
||||||
|
- if get_juju_info := self.path_exists('/var/lib/juju/db'):
|
||||||
|
+ if self.path_exists('/var/lib/juju/db'):
|
||||||
|
+ get_juju_info = self.path_exists('/var/lib/juju/db')
|
||||||
|
self.db_folder = "/var/lib/juju/db"
|
||||||
|
- elif get_juju_info := self.path_exists('/var/snap/juju-db/curent/db'):
|
||||||
|
+ elif self.path_exists('/var/snap/juju-db/curent/db'):
|
||||||
|
+ get_juju_info = self.path_exists('/var/snap/juju-db/curent/db')
|
||||||
|
self.db_folder = "/var/snap/juju-db/current/db"
|
||||||
|
|
||||||
|
super().setup()
|
||||||
|
--- a/sos/report/plugins/loki.py 2025-11-24 11:20:56.237814760 +0100
|
||||||
|
+++ b/sos/report/plugins/loki.py 2025-11-24 11:28:37.466603011 +0100
|
||||||
|
@@ -143,7 +143,8 @@
|
||||||
|
if self.get_option("collect-logs"):
|
||||||
|
endpoint = self.get_option("endpoint") or "http://localhost:3100"
|
||||||
|
self.labels = []
|
||||||
|
- if labels_option := self.get_option("labels"):
|
||||||
|
+ labels_option = self.get_option("labels")
|
||||||
|
+ if labels_option:
|
||||||
|
if isinstance(labels_option, str) and labels_option:
|
||||||
|
self.labels.extend(labels_option.split(":"))
|
||||||
|
|
||||||
|
--- a/sos/cleaner/archives/__init__.py 2025-09-22 19:44:51.272619200 +0200
|
||||||
|
+++ b/sos/cleaner/archives/__init__.py 2025-09-22 23:28:15.116001268 +0200
|
||||||
|
@@ -118,6 +118,8 @@ class SoSObfuscationArchive():
|
||||||
|
self.parsers = parsers # TODO: include this in __init__?
|
||||||
|
|
||||||
|
def load_parser_entries(self):
|
||||||
|
+ self.soslog = logging.getLogger('sos')
|
||||||
|
+ self.ui_log = logging.getLogger('sos_ui')
|
||||||
|
for parser in self.parsers:
|
||||||
|
parser.load_map_entries()
|
||||||
|
|
||||||
|
@@ -150,6 +152,7 @@ class SoSObfuscationArchive():
|
||||||
|
return line, count
|
||||||
|
|
||||||
|
def obfuscate_arc_files(self, flist):
|
||||||
|
+ self.load_parser_entries()
|
||||||
|
for filename in flist:
|
||||||
|
self.log_debug(f" pid={os.getpid()}: obfuscating {filename}")
|
||||||
|
try:
|
||||||
|
--- a/sos/cleaner/__init__.py 2025-09-22 19:44:51.272619200 +0200
|
||||||
|
+++ b/sos/cleaner/__init__.py 2025-09-22 23:32:17.606745778 +0200
|
||||||
|
@@ -720,10 +720,11 @@ third party.
|
||||||
|
# based on files' sizes.
|
||||||
|
|
||||||
|
files_obfuscated_count = total_sub_count = removed_file_count = 0
|
||||||
|
+ # two nullification required before processes cloning
|
||||||
|
+ archive.soslog = None
|
||||||
|
+ archive.ui_log = None
|
||||||
|
archive_list = [archive for i in range(self.opts.jobs)]
|
||||||
|
- with ProcessPoolExecutor(
|
||||||
|
- max_workers=self.opts.jobs,
|
||||||
|
- initializer=archive.load_parser_entries) as executor:
|
||||||
|
+ with ProcessPoolExecutor(max_workers=self.opts.jobs) as executor:
|
||||||
|
futures = executor.map(obfuscate_arc_files, archive_list,
|
||||||
|
[file_list[i::self.opts.jobs] for i in
|
||||||
|
range(self.opts.jobs)])
|
||||||
|
|
||||||
|
--- a/sos/collector/sosnode.py 2026-04-02 10:15:34.743009569 +0200
|
||||||
|
+++ b/sos/collector/sosnode.py 2026-04-02 10:17:42.557250748 +0200
|
||||||
|
@@ -163,7 +163,8 @@
|
||||||
|
if not self._sudo_binary:
|
||||||
|
_bin = self.opts.sudo_binary.split('/')[-1]
|
||||||
|
# verify the provided binary is at least in our PATH
|
||||||
|
- if ret := self.run_command(f"command -v {_bin}"):
|
||||||
|
+ ret = self.run_command(f"command -v {_bin}")
|
||||||
|
+ if ret:
|
||||||
|
if not ret['status'] == 0:
|
||||||
|
err = f"Privilege escalation command not in PATH: {_bin}"
|
||||||
|
self.log_error(err)
|
||||||
|
|
||||||
|
--- a/sos/report/plugins/logs.py 2026-04-02 10:19:59.641196712 +0200
|
||||||
|
+++ b/sos/report/plugins/logs.py 2026-04-02 10:20:28.313299348 +0200
|
||||||
|
@@ -38,7 +38,8 @@
|
||||||
|
# this WILL break on anything other than basic echos
|
||||||
|
# as shown in the rsyslog documentation
|
||||||
|
if _ent.startswith('echo '):
|
||||||
|
- if envc := os.getenv(_ent.split()[1].strip(' $`')):
|
||||||
|
+ envc = os.getenv(_ent.split()[1].strip(' $`'))
|
||||||
|
+ if envc:
|
||||||
|
confs += glob.glob(envc)
|
||||||
|
else:
|
||||||
|
confs += glob.glob(_ent)
|
||||||
|
|
||||||
27
SOURCES/0002-sosreport-binary.patch
Normal file
27
SOURCES/0002-sosreport-binary.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
--- /dev/null 2025-10-28 14:11:21.494784405 +0100
|
||||||
|
+++ sos-4.10.1/bin/sosreport 2025-12-04 08:46:53.277857061 +0100
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+#!/bin/bash
|
||||||
|
+echo "sosreport binary is deprecated, use 'sos report' instead"
|
||||||
|
+exec sos report "$@"
|
||||||
|
+
|
||||||
|
+# vim:ts=4 et sw=4
|
||||||
|
--- /dev/null 2025-10-28 14:11:21.494784405 +0100
|
||||||
|
+++ sos-4.10.1/bin/sos-collector 2025-12-04 08:48:04.661880220 +0100
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+#!/bin/bash
|
||||||
|
+echo "sos-collector binary is deprecated, use 'sos collector' instead"
|
||||||
|
+exec sos collector "$@"
|
||||||
|
+
|
||||||
|
+# vim:ts=4 et sw=4
|
||||||
|
--- sos-4.10.1/setup.py 2025-04-15 15:17:21.938635468 +0200
|
||||||
|
+++ sos-4.10.1/setup.py 2025-04-15 15:17:41.328198501 +0200
|
||||||
|
@@ -34,7 +34,7 @@
|
||||||
|
maintainer_email='jacob.r.hunsaker@gmail.com',
|
||||||
|
url='https://github.com/sosreport/sos',
|
||||||
|
license="GPLv2+",
|
||||||
|
- scripts=['bin/sos'],
|
||||||
|
+ scripts=['bin/sos', 'bin/sosreport', 'bin/sos-collector'],
|
||||||
|
data_files=data_files,
|
||||||
|
packages=find_packages(include=['sos', 'sos.*'])
|
||||||
|
)
|
||||||
49
SOURCES/0003-revert-PR4092.patch
Normal file
49
SOURCES/0003-revert-PR4092.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
--- a/sos/upload/targets/__init__.py 2025-09-16 19:57:27.294642506 +0200
|
||||||
|
+++ b/sos/upload/targets/__init__.py 2025-09-16 19:59:44.498573843 +0200
|
||||||
|
@@ -465,7 +465,7 @@
|
||||||
|
self.upload_password or
|
||||||
|
self._upload_password)
|
||||||
|
|
||||||
|
- def upload_sftp(self, user=None, password=None, user_dir=None):
|
||||||
|
+ def upload_sftp(self, user=None, password=None):
|
||||||
|
"""Attempts to upload the archive to an SFTP location.
|
||||||
|
|
||||||
|
Due to the lack of well maintained, secure, and generally widespread
|
||||||
|
@@ -540,13 +540,10 @@
|
||||||
|
raise Exception("Unable to connect via SFTP to "
|
||||||
|
f"{self.get_upload_url_string()}")
|
||||||
|
|
||||||
|
- # certain implementations require file to be put in the user dir
|
||||||
|
- put_cmd = (
|
||||||
|
- f"put {self.upload_archive_name} "
|
||||||
|
- f"{f'{user_dir}/' if user_dir else ''}"
|
||||||
|
- f"{self._get_sftp_upload_name()}"
|
||||||
|
- )
|
||||||
|
+ put_cmd = (f'put {self.upload_archive_name} '
|
||||||
|
+ f'{self._get_sftp_upload_name()}')
|
||||||
|
ret.sendline(put_cmd)
|
||||||
|
+
|
||||||
|
put_expects = [
|
||||||
|
'100%',
|
||||||
|
pexpect.TIMEOUT,
|
||||||
|
--- a/sos/upload/targets/redhat.py 2025-09-16 19:57:36.804628207 +0200
|
||||||
|
+++ b/sos/upload/targets/redhat.py 2025-09-16 20:00:52.578728154 +0200
|
||||||
|
@@ -145,7 +145,7 @@
|
||||||
|
return fname
|
||||||
|
|
||||||
|
# pylint: disable=too-many-branches
|
||||||
|
- def upload_sftp(self, user=None, password=None, user_dir=None):
|
||||||
|
+ def upload_sftp(self, user=None, password=None):
|
||||||
|
"""Override the base upload_sftp to allow for setting an on-demand
|
||||||
|
generated anonymous login for the RH SFTP server if a username and
|
||||||
|
password are not given
|
||||||
|
@@ -217,8 +217,7 @@
|
||||||
|
f"{anon.status_code}): {anon.json()}"
|
||||||
|
)
|
||||||
|
if _user and _token:
|
||||||
|
- return super().upload_sftp(user=_user, password=_token,
|
||||||
|
- user_dir=_user)
|
||||||
|
+ return super().upload_sftp(user=_user, password=_token)
|
||||||
|
raise Exception("Could not retrieve valid or anonymous credentials")
|
||||||
|
|
||||||
|
def check_file_too_big(self, archive):
|
||||||
@ -1,77 +0,0 @@
|
|||||||
From 11879fbb1adc33d8abc0cb70dc63e7e88c39fc3f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jose Castillo <jcastillo@redhat.com>
|
|
||||||
Date: Wed, 21 Feb 2024 12:24:37 +0000
|
|
||||||
Subject: [PATCH] [redhat|policy] Check for archive size before upload
|
|
||||||
|
|
||||||
The Red Hat Customer Portal has a max limit for
|
|
||||||
single http requests of 1Gb. From sos side, we never checked this
|
|
||||||
and so customers had to wait for the whole upload to be attempted
|
|
||||||
before receiving an error from the portal.
|
|
||||||
This patch attempts to stop the upload before it starts, informing
|
|
||||||
customers of such limit, and switching to secure FTP where there's
|
|
||||||
no limit.
|
|
||||||
|
|
||||||
Related: RHEL-22732
|
|
||||||
|
|
||||||
Signed-off-by: Jose Castillo <jcastillo@redhat.com>
|
|
||||||
---
|
|
||||||
sos/policies/distros/redhat.py | 29 +++++++++++++++++++++++------
|
|
||||||
1 file changed, 23 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/sos/policies/distros/redhat.py b/sos/policies/distros/redhat.py
|
|
||||||
index edea151e2..2fb0df3fa 100644
|
|
||||||
--- a/sos/policies/distros/redhat.py
|
|
||||||
+++ b/sos/policies/distros/redhat.py
|
|
||||||
@@ -22,7 +22,7 @@
|
|
||||||
from sos.policies.package_managers.rpm import RpmPackageManager
|
|
||||||
from sos.policies.package_managers.flatpak import FlatpakPackageManager
|
|
||||||
from sos.policies.package_managers import MultiPackageManager
|
|
||||||
-from sos.utilities import bold
|
|
||||||
+from sos.utilities import bold, convert_bytes
|
|
||||||
from sos import _sos as _
|
|
||||||
|
|
||||||
try:
|
|
||||||
@@ -232,6 +232,8 @@ class RHELPolicy(RedHatPolicy):
|
|
||||||
_upload_url = RH_SFTP_HOST
|
|
||||||
_upload_method = 'post'
|
|
||||||
_device_token = None
|
|
||||||
+ # Max size for an http single request is 1Gb
|
|
||||||
+ _max_size_request = 1073741824
|
|
||||||
|
|
||||||
def __init__(self, sysroot=None, init=None, probe_runtime=True,
|
|
||||||
remote_exec=None):
|
|
||||||
@@ -429,15 +429,30 @@ support representative.
|
|
||||||
return super().upload_sftp(user=_user, password=_token)
|
|
||||||
raise Exception("Could not retrieve valid or anonymous credentials")
|
|
||||||
|
|
||||||
+ def check_file_too_big(self, archive):
|
|
||||||
+ size = os.path.getsize(archive)
|
|
||||||
+ # Lets check if the size is bigger than the limit.
|
|
||||||
+ # There's really no need to transform the size to Gb,
|
|
||||||
+ # so we don't need to call any size converter implemented
|
|
||||||
+ # in tools.py
|
|
||||||
+ if (size >= self._max_size_request):
|
|
||||||
+ self.ui_log.warning(
|
|
||||||
+ _("Size of archive is bigger than Red Hat Customer Portal "
|
|
||||||
+ "limit for uploads of "
|
|
||||||
+ f"{convert_bytes(self._max_size_request)} "
|
|
||||||
+ " via sos http upload. \n")
|
|
||||||
+ )
|
|
||||||
+ return RH_SFTP_HOST
|
|
||||||
+ else:
|
|
||||||
+ return RH_API_HOST
|
|
||||||
+
|
|
||||||
def upload_archive(self, archive):
|
|
||||||
"""Override the base upload_archive to provide for automatic failover
|
|
||||||
from RHCP failures to the public RH dropbox
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
- if self.upload_url and self.upload_url.startswith(RH_API_HOST) and\
|
|
||||||
- (not self.get_upload_user() or
|
|
||||||
- not self.get_upload_password()):
|
|
||||||
- self.upload_url = RH_SFTP_HOST
|
|
||||||
+ if self.get_upload_url().startswith(RH_API_HOST):
|
|
||||||
+ self.upload_url = self.check_file_too_big(archive)
|
|
||||||
uploaded = super().upload_archive(archive)
|
|
||||||
except Exception as e:
|
|
||||||
uploaded = False
|
|
||||||
@ -1,11 +1,11 @@
|
|||||||
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
|
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
|
||||||
|
|
||||||
%global auditversion 0.3
|
%global auditversion 0.3-1
|
||||||
|
|
||||||
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.7.2
|
Version: 4.11.0
|
||||||
Release: 2%{?dist}
|
Release: 1%{?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
|
||||||
@ -22,7 +22,9 @@ Recommends: python3-pexpect
|
|||||||
Recommends: python3-pyyaml
|
Recommends: python3-pyyaml
|
||||||
Conflicts: vdsm < 4.40
|
Conflicts: vdsm < 4.40
|
||||||
Obsoletes: sos-collector
|
Obsoletes: sos-collector
|
||||||
Patch0: sos-RHEL-22732-reverted.patch
|
Patch1: 0001-python3-walrus-operator-and-rhel8-changes-only.patch
|
||||||
|
Patch2: 0002-sosreport-binary.patch
|
||||||
|
Patch3: 0003-revert-PR4092.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Sos is a set of tools that gathers information about system
|
Sos is a set of tools that gathers information about system
|
||||||
@ -33,8 +35,9 @@ support technicians and developers.
|
|||||||
%prep
|
%prep
|
||||||
%setup -qn %{name}-%{version}
|
%setup -qn %{name}-%{version}
|
||||||
%setup -T -D -a1 -q
|
%setup -T -D -a1 -q
|
||||||
%patch0 -p1 -R
|
%patch -P 1 -p1
|
||||||
|
%patch -P 2 -p1
|
||||||
|
%patch -P 3 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%py3_build
|
%py3_build
|
||||||
@ -58,18 +61,17 @@ mkdir -p %{buildroot}%{_sysconfdir}/sos/{cleaner,presets.d,extras.d,groups.d}
|
|||||||
# internationalization is currently broken. Uncomment this line once fixed.
|
# internationalization is currently broken. Uncomment this line once fixed.
|
||||||
# %%files -f %%{name}.lang
|
# %%files -f %%{name}.lang
|
||||||
%files
|
%files
|
||||||
%{_sbindir}/sosreport
|
|
||||||
%{_sbindir}/sos
|
%{_sbindir}/sos
|
||||||
|
%{_sbindir}/sosreport
|
||||||
%{_sbindir}/sos-collector
|
%{_sbindir}/sos-collector
|
||||||
%dir /etc/sos/presets.d
|
%dir /etc/sos/presets.d
|
||||||
%dir /etc/sos/extras.d
|
%dir /etc/sos/extras.d
|
||||||
%dir /etc/sos/groups.d
|
%dir /etc/sos/groups.d
|
||||||
/etc/tmpfiles.d/%{name}.conf
|
/etc/tmpfiles.d/%{name}.conf
|
||||||
%{python3_sitelib}/*
|
%{python3_sitelib}/*
|
||||||
%{_mandir}/man1/sosreport.1.gz
|
|
||||||
%{_mandir}/man1/sos-clean.1.gz
|
%{_mandir}/man1/sos-clean.1.gz
|
||||||
|
%{_mandir}/man1/sos-upload.1.gz
|
||||||
%{_mandir}/man1/sos-collect.1.gz
|
%{_mandir}/man1/sos-collect.1.gz
|
||||||
%{_mandir}/man1/sos-collector.1.gz
|
|
||||||
%{_mandir}/man1/sos-help.1.gz
|
%{_mandir}/man1/sos-help.1.gz
|
||||||
%{_mandir}/man1/sos-mask.1.gz
|
%{_mandir}/man1/sos-mask.1.gz
|
||||||
%{_mandir}/man1/sos-report.1.gz
|
%{_mandir}/man1/sos-report.1.gz
|
||||||
@ -82,7 +84,7 @@ mkdir -p %{buildroot}%{_sysconfdir}/sos/{cleaner,presets.d,extras.d,groups.d}
|
|||||||
|
|
||||||
%package audit
|
%package audit
|
||||||
Summary: Audit use of some commands for support purposes
|
Summary: Audit use of some commands for support purposes
|
||||||
License: GPLv2+
|
License: GPL-2.0-or-later
|
||||||
Group: Application/System
|
Group: Application/System
|
||||||
|
|
||||||
%description audit
|
%description audit
|
||||||
@ -105,8 +107,73 @@ of the system. Currently storage and filesystem commands are audited.
|
|||||||
%{_mandir}/man8/sos-audit.sh.8.gz
|
%{_mandir}/man8/sos-audit.sh.8.gz
|
||||||
%ghost /etc/audit/rules.d/40-sos-filesystem.rules
|
%ghost /etc/audit/rules.d/40-sos-filesystem.rules
|
||||||
%ghost /etc/audit/rules.d/40-sos-storage.rules
|
%ghost /etc/audit/rules.d/40-sos-storage.rules
|
||||||
|
%license LICENSE
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Apr 02 2026 Jan Jansky <jjansky@redhat.com> = 4.11.0-1
|
||||||
|
- Update to 4.11.0-1
|
||||||
|
Resolves: RHEL-157813
|
||||||
|
|
||||||
|
* Thu Feb 26 2026 Jan Jansky <jjansky@redhat.com> = 4.10.2-2
|
||||||
|
- Update to 4.10.2-2
|
||||||
|
Resolves: RHEL-142630
|
||||||
|
|
||||||
|
* Thu Jan 22 2026 Jan Jansky <jjansky@redhat.com> = 4.10.2-1
|
||||||
|
- Update to 4.10.2-1
|
||||||
|
Resolves: RHEL-142630
|
||||||
|
|
||||||
|
* Fri Dec 05 2025 Jan Jansky <jjansky@redhat.com> = 4.10.1-2
|
||||||
|
- Fixing sosreport and sos-collector binary
|
||||||
|
Resolves: RHEL-121468
|
||||||
|
|
||||||
|
* Tue Nov 25 2025 Jan Jansky <jjansky@redhat.com> = 4.10.1-1
|
||||||
|
- Update to 4.10.1-1
|
||||||
|
Resolves: RHEL-121468
|
||||||
|
|
||||||
|
* Tue Sep 23 2025 Jan Jansky <jjansky@redhat.com> = 4.10.0-4
|
||||||
|
- Update to 4.10.0-4
|
||||||
|
Resolves: RHEL-112413
|
||||||
|
|
||||||
|
* Wed Sep 17 2025 Jan Jansky <jjansky@redhat.com> = 4.10.0-2
|
||||||
|
- Update to 4.10.0-2
|
||||||
|
Resolves: RHEL-112413
|
||||||
|
|
||||||
|
* Thu Aug 21 2025 Jan Jansky <jjansky@redhat.com> = 4.10.0-1
|
||||||
|
- Update to 4.10.0
|
||||||
|
Resolves: RHEL-110499
|
||||||
|
|
||||||
|
* Fri Jul 04 2025 Jan Jansky <jjansky@redhat.com> = 4.9.2-1
|
||||||
|
- Update to 4.9.2 in RHEL 8
|
||||||
|
Resolves: RHEL-101716
|
||||||
|
|
||||||
|
* Fri May 30 2025 Jan Jansky <jjansky@redhat.com> = 4.9.1-2
|
||||||
|
- Update to 4.9.1-2 in RHEL 8
|
||||||
|
Resolves: RHEL-86645
|
||||||
|
|
||||||
|
* Tue Apr 15 2025 Jan Jansky <jjansky@redhat.com> = 4.9.1-1
|
||||||
|
- Update to 4.9.1 in RHEL 8
|
||||||
|
Resolves: RHEL-86645
|
||||||
|
|
||||||
|
* Tue Jan 07 2025 Jan Jansky <jjansky@redhat.com> = 4.8.2-1
|
||||||
|
- Update to 4.8.2 in RHEL 8
|
||||||
|
Resolves: RHEL-72941
|
||||||
|
|
||||||
|
* Wed Oct 23 2024 Jan Jansky <jjansky@redhat.com> = 4.8.1-1
|
||||||
|
- Update to 4.8.1 in RHEL 8
|
||||||
|
Resolves: RHEL-64160
|
||||||
|
|
||||||
|
* Fri Sep 27 2024 Jan Jansky <jjansky@redhat.com> = 4.8.0-3
|
||||||
|
- Added credentials obfuscation from multiple files
|
||||||
|
Resolves: RHEL-58097
|
||||||
|
|
||||||
|
* Sat Sep 14 2024 Pierguido Lambri <plambri@redhat.com> = 4.8.0-2
|
||||||
|
- Resolves: RHEL-22732
|
||||||
|
Fix wrong formatting
|
||||||
|
|
||||||
|
* Mon Sep 09 2024 Pierguido Lambri <plambri@redhat.com> = 4.8.0-1
|
||||||
|
- New upstream release
|
||||||
|
Resolves: RHEL-58097
|
||||||
|
|
||||||
* Wed Aug 21 2024 Pavel Moravec <pmoravec@redhat.com> = 4.7.2-2
|
* Wed Aug 21 2024 Pavel Moravec <pmoravec@redhat.com> = 4.7.2-2
|
||||||
- reverting RHEL-22732 patch due to regressions
|
- reverting RHEL-22732 patch due to regressions
|
||||||
Resolves: RHEL-49779
|
Resolves: RHEL-49779
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user