Compare commits

...

No commits in common. 'i10cs' and 'c9' have entirely different histories.
i10cs ... c9

@ -1 +1 @@
e13b6eda000f86d9323e7573735923958736ec4b SOURCES/boom-boot-1.6.5.tar.gz bfc523d25c4fad0570307e8003848391fcf2ae8c SOURCES/boom-1.5.1.tar.gz

2
.gitignore vendored

@ -1 +1 @@
SOURCES/boom-boot-1.6.5.tar.gz SOURCES/boom-1.5.1.tar.gz

@ -0,0 +1,210 @@
From 82ba6ea6411d728f7d3b203caa0710641f74188d Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Thu, 4 May 2023 15:11:59 +0100
Subject: [PATCH 1/3] Fix typos across tree
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit 2ee6810bfbd9e356f2bee3eac4e3b3b87ed21814)
---
README.md | 6 +++---
boom/bootloader.py | 12 ++++++------
boom/cache.py | 2 +-
boom/command.py | 2 +-
boom/report.py | 4 ++--
boom/stratis.py | 2 +-
tests/bootloader_tests.py | 2 +-
tests/command_tests.py | 2 +-
tests/loader/entries/README | 2 +-
9 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/README.md b/README.md
index a1747c2..c6b4ef4 100644
--- a/README.md
+++ b/README.md
@@ -325,7 +325,7 @@ BootEntry.
#### boom cache command
The `boom cache` command gives information about the paths and
-images stored in the boom boot iamge cache. The `boom cache list`
+images stored in the boom boot image cache. The `boom cache list`
command gives information on cache entries in a tabular report
format similar to other `list` commands.
@@ -484,7 +484,7 @@ Created profile with os_id d4439b7:
Options: "root=%{root_device} ro %{root_opts}"
```
-The `--uname-pattern` `OsProfile` property is an otional but recommended
+The `--uname-pattern` `OsProfile` property is an optional but recommended
pattern (regular expression) that should match the UTS release (`uname`)
strings reported by the operating system.
@@ -673,7 +673,7 @@ boot entries:
```
## Python API
-Boom also supports programatic use via a Python API. The API is flexible
+Boom also supports programmatic use via a Python API. The API is flexible
and allows greater customisation than is possible using the command line
tool.
diff --git a/boom/bootloader.py b/boom/bootloader.py
index fdd8c0c..89efd4a 100644
--- a/boom/bootloader.py
+++ b/boom/bootloader.py
@@ -407,7 +407,7 @@ class BootParams(object):
string. The string returned is in the form of a call to the
``BootParams`` constructor.
- :returns: a machine readable string represenatation of this
+ :returns: a machine readable string representation of this
``BootParams`` object.
"""
return self.__str(quote=True, prefix="BootParams(", suffix=")")
@@ -1198,7 +1198,7 @@ class BootEntry(object):
Return a copy of this ``BootEntry``'s values as a list.
- :returns: the current list of ``BotoEntry`` values.
+ :returns: the current list of ``BootEntry`` values.
:rtype: list
"""
values = list(self._entry_data.values())
@@ -1259,7 +1259,7 @@ class BootEntry(object):
self._unwritten = True
def __os_id_from_comment(self, comment):
- """Retrive OsProfile from BootEntry comment.
+ """Retrieve OsProfile from BootEntry comment.
Attempt to set this BootEntry's OsProfile using a comment
string stored in the entry file. The comment must be of the
@@ -1300,7 +1300,7 @@ class BootEntry(object):
Attempt to guess the correct ``OsProfile`` to use with
this ``BootEntry`` by probing each loaded ``OsProfile``
in turn until a profile recognises the entry. If no match
- is found the entrie's ``OsProfile`` is set to ``None``.
+ is found the entry's ``OsProfile`` is set to ``None``.
Probing is only used in the case that a loaded entry has
no embedded OsIdentifier string. All entries written by
@@ -1527,7 +1527,7 @@ class BootEntry(object):
A ``BootParams`` object may be supplied using the
``boot_params`` keyword argument. The object will be used to
- provide values for subsitution using the patterns defined by
+ provide values for substitution using the patterns defined by
the configured ``OsProfile``.
If ``entry_file`` is specified the ``BootEntry`` will be
@@ -1832,7 +1832,7 @@ class BootEntry(object):
return True
def expanded(self):
- """Return a string represenatation of this ``BootEntry``, with
+ """Return a string representation of this ``BootEntry``, with
any bootloader environment variables expanded to their
current values.
diff --git a/boom/cache.py b/boom/cache.py
index dfd8a32..6024f91 100644
--- a/boom/cache.py
+++ b/boom/cache.py
@@ -174,7 +174,7 @@ def _image_id_from_path(img_path):
def drop_cache():
"""Discard the in-memory cache state. Calling this function has
no effect on the persistent cache state but will free all
- in-memory represenatations and clear the cache index.
+ in-memory representations and clear the cache index.
"""
global _index, _paths, _images
_index = {}
diff --git a/boom/command.py b/boom/command.py
index 696313d..ecd8153 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -3233,7 +3233,7 @@ def main(args):
parser.add_argument("-u", "--uname-pattern", "--unamepattern",
help="A Boom OsProfile uname pattern",
metavar="PATTERN", type=str)
- parser.add_argument("-V", "--verbose", help="Enable verbose ouput",
+ parser.add_argument("-V", "--verbose", help="Enable verbose output",
action="count")
parser.add_argument("-v", "--version", metavar="VERSION", type=str,
help="The kernel version of a boom "
diff --git a/boom/report.py b/boom/report.py
index f7ff4a1..fdbd3ab 100644
--- a/boom/report.py
+++ b/boom/report.py
@@ -446,7 +446,7 @@ class BoomReport(object):
Display a list of valid fields for this ``BoomReport``.
:param fields: The list of fields to display
- :param display_field_types: A boolean controling whether
+ :param display_field_types: A boolean controlling whether
field types (str, SHA, num)
are included in help output
"""
@@ -837,7 +837,7 @@ class BoomReport(object):
each sort key defines its own sort order.
:param row_a: The first row to compare
- :param row_b: The seconf row to compare
+ :param row_b: The second row to compare
"""
for cnt in range(0, row_a._report._keys_count):
sfa = row_a._sort_fields[cnt]
diff --git a/boom/stratis.py b/boom/stratis.py
index 350bc18..ca79d7b 100644
--- a/boom/stratis.py
+++ b/boom/stratis.py
@@ -49,7 +49,7 @@ _STRATISD_SERVICE = "org.storage.stratis3"
_STRATISD_PATH = "/org/storage/stratis3"
#: The DBus name of the pool interface
_POOL_IFACE = "org.storage.stratis3.pool.r0"
-#: The DBus timeout for stratisd in miliseconds
+#: The DBus timeout for stratisd in milliseconds
_STRATISD_TIMEOUT = 120000
#: The DBus ObjectManager interface implemented by stratisd
diff --git a/tests/bootloader_tests.py b/tests/bootloader_tests.py
index 8238d10..e56f2f9 100644
--- a/tests/bootloader_tests.py
+++ b/tests/bootloader_tests.py
@@ -1081,7 +1081,7 @@ class BootLoaderTestsCheckRoot(unittest.TestCase):
Device types in the del_devs list are currently ignored.
Tests using this base class require root privileges in order
- to manipulate device nodes in the test sanbox. These tests
+ to manipulate device nodes in the test sandbox. These tests
are automatically skipped if the suite is run as a normal
user.
"""
diff --git a/tests/command_tests.py b/tests/command_tests.py
index 7af5ea2..5aa904f 100644
--- a/tests/command_tests.py
+++ b/tests/command_tests.py
@@ -2071,7 +2071,7 @@ class CommandTests(unittest.TestCase):
self.assertEqual(r, 0)
def test__edit_profile_cmd(self):
- """Test the _edit_profile_cmd() hander with default args.
+ """Test the _edit_profile_cmd() handler with default args.
"""
args = MockArgs()
args.profile = "d4439b7"
diff --git a/tests/loader/entries/README b/tests/loader/entries/README
index 20ee65b..4407ef2 100644
--- a/tests/loader/entries/README
+++ b/tests/loader/entries/README
@@ -1,6 +1,6 @@
Boot loader entry directory for the boom unit test suite.
-The entries in this directory may contan synthetic test data:
+The entries in this directory may contain synthetic test data:
non-existent kernel versions, and mock OsProfile data.
For examples of actual boom boot entries please refer to the
--
2.40.1

@ -0,0 +1,31 @@
From 841e7d3d0dc7ad194e0b82d8cd0930cef1a95301 Mon Sep 17 00:00:00 2001
From: Marian Csontos <mcsontos@redhat.com>
Date: Fri, 29 Nov 2019 10:23:44 +0100
Subject: [PATCH 1/5] man: Fix line starting with '
Lines starting with ' result in macro not defined warnings:
1117: warning: macro `boom' not defined
1118: warning: macro `+'' not defined
---
man/man8/boom.8 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/man/man8/boom.8 b/man/man8/boom.8
index 7b862e7..9eee048 100644
--- a/man/man8/boom.8
+++ b/man/man8/boom.8
@@ -1168,8 +1168,8 @@ describing the properties of the configured host profiles.
The list of fields to display is given with \fB--options\fP as a comma
separated list of field names. To obtain a list of available fields run
-'\fBboom host list -o help\fP'. If the list of fields begins with the
-'\fB+\fP' character the specified fields are appended to the default
+\&'\fBboom host list -o help\fP'. If the list of fields begins with the
+\&'\fB+\fP' character the specified fields are appended to the default
field list. Otherwise the given list of fields replaces the default set
of report fields.
--
2.34.3

@ -0,0 +1,214 @@
From f98bacd55fd4af5e1efee3fedd90c2c57d99cae7 Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Thu, 4 May 2023 16:37:26 +0100
Subject: [PATCH 2/3] Fix system vs. project import ordering
Resolves: #5
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit d8a7c9f2fbeecd4e291cda751c2dcbd4b1914d75)
---
boom/bootloader.py | 10 +++++-----
boom/cache.py | 6 +++---
boom/command.py | 16 ++++++++--------
boom/config.py | 4 ++--
boom/hostprofile.py | 6 +++---
boom/legacy.py | 6 +++---
boom/osprofile.py | 3 ++-
boom/report.py | 3 ++-
8 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/boom/bootloader.py b/boom/bootloader.py
index 89efd4a..cdee6d9 100644
--- a/boom/bootloader.py
+++ b/boom/bootloader.py
@@ -39,11 +39,6 @@ is also provided in the ``MAP_KEY`` member).
"""
from __future__ import print_function
-from boom import *
-from boom.osprofile import *
-from boom.hostprofile import find_host_profiles
-from boom.stratis import *
-
from os.path import basename, exists as path_exists, join as path_join
from subprocess import Popen, PIPE
from tempfile import mkstemp
@@ -51,6 +46,11 @@ from os import listdir, rename, fdopen, chmod, unlink, fdatasync, stat, dup
from stat import S_ISBLK
from hashlib import sha1
import logging
+
+from boom import *
+from boom.osprofile import *
+from boom.hostprofile import find_host_profiles
+from boom.stratis import *
import re
#: The path to the BLS boot entries directory relative to /boot
diff --git a/boom/cache.py b/boom/cache.py
index 6024f91..b68caac 100644
--- a/boom/cache.py
+++ b/boom/cache.py
@@ -17,9 +17,6 @@ images required to load boom-defined boot entries.
"""
from __future__ import print_function
-from boom import *
-from boom.bootloader import *
-
from hashlib import sha1
from os import chmod, chown, fdatasync, listdir, stat, unlink
from stat import S_ISREG, ST_MODE, ST_UID, ST_GID, ST_MTIME, filemode
@@ -32,6 +29,9 @@ from errno import ENOENT
import shutil
import logging
+from boom import *
+from boom.bootloader import *
+
# Module logging configuration
_log = logging.getLogger(__name__)
_log.set_debug_mask(BOOM_DEBUG_CACHE)
diff --git a/boom/command.py b/boom/command.py
index ecd8153..37172dc 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -26,6 +26,14 @@ reports using the ``boom.report`` module.
"""
from __future__ import print_function
+from os import environ, uname, getcwd
+from os.path import basename, exists as path_exists, isabs, join, sep
+from argparse import ArgumentParser
+from stat import filemode
+import platform
+import logging
+import re
+
from boom import *
from boom.osprofile import *
from boom.report import *
@@ -35,14 +43,6 @@ from boom.legacy import *
from boom.config import *
from boom.cache import *
-from os import environ, uname, getcwd
-from os.path import basename, exists as path_exists, isabs, join, sep
-from argparse import ArgumentParser
-from stat import filemode
-import platform
-import logging
-import re
-
#: The environment variable from which to take the location of the
#: ``/boot`` file system.
BOOM_BOOT_PATH_ENV = "BOOM_BOOT_PATH"
diff --git a/boom/config.py b/boom/config.py
index c58d3c3..9dae545 100644
--- a/boom/config.py
+++ b/boom/config.py
@@ -20,14 +20,14 @@ the values of configuration keys defined in the boom configuration file.
"""
from __future__ import print_function
-from boom import *
-
from os.path import dirname
from os import fdopen, rename, chmod, fdatasync
from tempfile import mkstemp
import logging
+from boom import *
+
try:
# Python2
from ConfigParser import SafeConfigParser as ConfigParser, ParsingError
diff --git a/boom/hostprofile.py b/boom/hostprofile.py
index d63622f..fea9753 100644
--- a/boom/hostprofile.py
+++ b/boom/hostprofile.py
@@ -31,14 +31,14 @@ property names) are identical to those used by the ``OsProfile`` class.
"""
from __future__ import print_function
-from boom import *
-from boom.osprofile import *
-
from hashlib import sha1
from os.path import join as path_join
import logging
import string
+from boom import *
+from boom.osprofile import *
+
# Module logging configuration
_log = logging.getLogger(__name__)
_log.set_debug_mask(BOOM_DEBUG_PROFILE)
diff --git a/boom/legacy.py b/boom/legacy.py
index 389ed90..715358c 100644
--- a/boom/legacy.py
+++ b/boom/legacy.py
@@ -20,9 +20,6 @@ all entries from the legacy configuration file.
"""
from __future__ import print_function
-from boom import *
-from boom.bootloader import *
-
from subprocess import Popen, PIPE
from os.path import dirname, exists, isabs, join as path_join
from os import chmod, dup, fdatasync, fdopen, rename, unlink
@@ -30,6 +27,9 @@ from tempfile import mkstemp
import logging
import re
+from boom import *
+from boom.bootloader import *
+
#: Format strings use to construct begin/end markers
BOOM_LEGACY_BEGIN_FMT = "#--- BOOM_%s_BEGIN ---"
BOOM_LEGACY_END_FMT = "#--- BOOM_%s_END ---"
diff --git a/boom/osprofile.py b/boom/osprofile.py
index f05671f..e20d2fb 100644
--- a/boom/osprofile.py
+++ b/boom/osprofile.py
@@ -34,7 +34,6 @@ are suitable for display use and are used by default by the
"""
from __future__ import print_function
-from boom import *
from hashlib import sha1
from tempfile import mkstemp
from os.path import basename, join as path_join, exists as path_exists
@@ -42,6 +41,8 @@ from os import fdopen, rename, chmod, unlink, fdatasync
import logging
import re
+from boom import *
+
#: Boom profiles directory name.
BOOM_PROFILES = "profiles"
diff --git a/boom/report.py b/boom/report.py
index fdbd3ab..d024013 100644
--- a/boom/report.py
+++ b/boom/report.py
@@ -29,10 +29,11 @@ mapper reports.
"""
from __future__ import print_function
-from boom import find_minimum_sha_prefix, BOOM_DEBUG_REPORT
import logging
import sys
+from boom import find_minimum_sha_prefix, BOOM_DEBUG_REPORT
+
_log = logging.getLogger(__name__)
_log.set_debug_mask(BOOM_DEBUG_REPORT)
--
2.40.1

@ -0,0 +1,28 @@
From f82215bded722e972a2b358ddd6a45bc36a4a3bb Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Thu, 4 May 2023 18:23:31 +0100
Subject: [PATCH 3/3] boom: fix unclosed file warning for /proc/cmdline
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit bd194eeb646198c28f3e79769175c0cf0843e523)
---
boom/command.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/boom/command.py b/boom/command.py
index 37172dc..07d229a 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -1923,7 +1923,8 @@ def os_options_from_cmdline():
options = ""
vg_lv_name = None
have_root = False
- cmdline = open("/proc/cmdline").read().strip()
+ with open("/proc/cmdline") as proc_cmdline:
+ cmdline = proc_cmdline.read().strip()
for word in cmdline.split():
if word.startswith("root="):
have_root = True
--
2.40.1

@ -2,21 +2,23 @@
%global sphinx_docs 1 %global sphinx_docs 1
Name: boom-boot Name: boom-boot
Version: 1.6.5 Version: 1.5.1
Release: 3%{?dist} Release: 1%{?dist}
Summary: %{summary} Summary: %{summary}
License: GPL-2.0-only License: GPLv2
URL: https://github.com/snapshotmanager/boom-boot URL: https://github.com/snapshotmanager/boom
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/snapshotmanager/boom/archive/%{version}/boom-%{version}.tar.gz
Patch1: 0001-man-Fix-line-starting-with.patch
Patch2: 0001-Fix-typos-across-tree.patch
Patch3: 0002-Fix-system-vs.-project-import-ordering.patch
Patch4: 0003-boom-fix-unclosed-file-warning-for-proc-cmdline.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: make BuildRequires: make
BuildRequires: python3-setuptools BuildRequires: python3-setuptools
BuildRequires: python3-devel BuildRequires: python3-devel
BuildRequires: python3-pip
BuildRequires: python3-wheel
%if 0%{?sphinx_docs} %if 0%{?sphinx_docs}
BuildRequires: python3-dbus BuildRequires: python3-dbus
BuildRequires: python3-sphinx BuildRequires: python3-sphinx
@ -25,12 +27,6 @@ BuildRequires: make
Requires: python3-boom = %{version}-%{release} Requires: python3-boom = %{version}-%{release}
Requires: %{name}-conf = %{version}-%{release} Requires: %{name}-conf = %{version}-%{release}
Requires: python3-dbus
%if 0%{?rhel} == 9
Requires: systemd >= 252-18
%else
Requires: systemd >= 254
%endif
Obsoletes: boom-boot-grub2 <= 1.3 Obsoletes: boom-boot-grub2 <= 1.3
# boom-grub2 was not an official name of subpackage in fedora, but was used upstream: # boom-grub2 was not an official name of subpackage in fedora, but was used upstream:
@ -80,28 +76,20 @@ include this support in both Red Hat Enterprise Linux 7 and Fedora).
This package provides configuration files for boom. This package provides configuration files for boom.
%prep %prep
%autosetup -p1 -n %{name}-%{version} %autosetup -p1 -n boom-%{version}
%build %build
%if 0%{?sphinx_docs} %if 0%{?sphinx_docs}
make %{?_smp_mflags} -C doc html make -C doc html
rm doc/_build/html/.buildinfo rm doc/_build/html/.buildinfo
mv doc/_build/html doc/html mv doc/_build/html doc/html
rm -r doc/_build rm -r doc/_build
%endif %endif
%if 0%{?centos} || 0%{?rhel}
%py3_build %py3_build
%else
%pyproject_wheel
%endif
%install %install
%if 0%{?centos} || 0%{?rhel}
%py3_install %py3_install
%else
%pyproject_install
%endif
# Make configuration directories # Make configuration directories
# mode 0700 - in line with /boot/grub2 directory: # mode 0700 - in line with /boot/grub2 directory:
@ -132,12 +120,7 @@ rm doc/conf.py
%files -n python3-boom %files -n python3-boom
%license COPYING %license COPYING
%doc README.md %doc README.md
%{python3_sitelib}/boom/* %{python3_sitelib}/*
%if 0%{?centos} || 0%{?rhel}
%{python3_sitelib}/boom*.egg-info/
%else
%{python3_sitelib}/boom*.dist-info/
%endif
%doc doc %doc doc
%doc examples %doc examples
%doc tests %doc tests
@ -154,60 +137,21 @@ rm doc/conf.py
%changelog %changelog
* Fri Dec 13 2024 Bryn M. Reeves <bmr@redhat.com> - 1.6.5-1
- Update to release 1.6.5
- Resolves: RHEL-59511
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1.6.3-3
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Fri Oct 25 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 1.6.3-2
- Rebuilt for MSVSphere 10
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.6.3-2
- Bump release for June 2024 mass rebuild
* Tue Jun 18 2024 Bryan Gurney <bgurney@redhat.com> - 1.6.3-1
- Update to release 1.6.3
- Resolves: RHEL-37489
* Tue May 21 2024 Bryan Gurney <bgurney@redhat.com> - 1.6.1-2
- Rebuild for new gating configuration
- Resolves: RHEL-37489
* Tue May 21 2024 Bryan Gurney <bgurney@redhat.com> - 1.6.1-1
- Update to release 1.6.1.
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Nov 21 2023 Marian Csontos <mcsontos@redhat.com> - 1.6.0-1
- Update to release 1.6.0.
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 1.5.1-2
- Rebuilt for Python 3.12
* Tue May 16 2023 Marian Csontos <mcsontos@redhat.com> - 1.5.1-1 * Tue May 16 2023 Marian Csontos <mcsontos@redhat.com> - 1.5.1-1
- Update to release 1.5.1. - Update to release 1.5.1.
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-3 * Wed Jul 13 2022 Marian Csontos <mcsontos@redhat.com> 1.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - Fix handling of read-only entries.
- Add OS names for recent versions.
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-2 * Tue May 24 2022 Marian Csontos <mcsontos@redhat.com> 1.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - Fix missing /boot/boom/profiles directory.
* Wed Jul 13 2022 Marian Csontos <mcsontos@redhat.com> 1.4-1 * Tue May 24 2022 Marian Csontos <mcsontos@redhat.com> 1.4-2
- Update to release 1.4. - Update gating.yaml.
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.3-5 * Mon May 23 2022 Marian Csontos <mcsontos@redhat.com> 1.4-1
- Rebuilt for Python 3.11 - Update to release 1.4.
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-4 * Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

Loading…
Cancel
Save