diff --git a/.gitignore b/.gitignore index f90acfb..09fed5c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/subscription-manager-1.29.21.tar.gz -SOURCES/subscription-manager-cockpit-1.29.21.tar.gz +SOURCES/subscription-manager-1.29.26.tar.gz +SOURCES/subscription-manager-cockpit-1.29.26.tar.gz diff --git a/.subscription-manager.metadata b/.subscription-manager.metadata index 778f16c..2102e52 100644 --- a/.subscription-manager.metadata +++ b/.subscription-manager.metadata @@ -1,2 +1,2 @@ -5ba038954bceccf827416787e99682fc1d816b21 SOURCES/subscription-manager-1.29.21.tar.gz -6be99a6ea1a96569971f52dee04b3ff86c9f9902 SOURCES/subscription-manager-cockpit-1.29.21.tar.gz +fd44b63fa66bec89c28aa89b7da306306bed34ad SOURCES/subscription-manager-1.29.26.tar.gz +061bebcc62501c55bcd13d5f1b9f8603b390a8b7 SOURCES/subscription-manager-cockpit-1.29.26.tar.gz diff --git a/SPECS/subscription-manager.spec b/SPECS/subscription-manager.spec index 514e880..e985ba2 100644 --- a/SPECS/subscription-manager.spec +++ b/SPECS/subscription-manager.spec @@ -32,7 +32,11 @@ %global python_sitearch %python3_sitearch %global python_sitelib %python3_sitelib %global __python %__python3 +%if 0%{?suse_version} +%global py_package_prefix python3 +%else %global py_package_prefix python%{python3_pkgversion} +%endif %global rhsm_package_name %{py_package_prefix}-subscription-manager-rhsm %global _hardened_build 1 @@ -63,8 +67,6 @@ %global install_dnf_plugins INSTALL_DNF_PLUGINS=false %endif -%global with_systemd WITH_SYSTEMD=true - %if %{use_cockpit} %global with_cockpit WITH_COCKPIT=true %else @@ -107,7 +109,7 @@ %global use_rhsm_icons 0%{use_cockpit} Name: subscription-manager -Version: 1.29.21 +Version: 1.29.26 Release: 1%{?dist} Summary: Tools and libraries for subscription and repository management %if 0%{?suse_version} @@ -131,6 +133,11 @@ Source0: %{name}-%{version}.tar.gz Source1: %{name}-cockpit-%{version}.tar.gz %endif +# Especially for the OpenSuse Build Service we need to have another lint config +%if 0%{?suse_version} +Source2: subscription-manager-rpmlintrc +%endif + # The following macro examples are preceeded by '%' to stop macro expansion # in the comments. (See https://bugzilla.redhat.com/show_bug.cgi?id=1224660 for # why this is necessary) @@ -147,18 +154,26 @@ Requires: %{py_package_prefix}-ethtool Requires: %{py_package_prefix}-iniparse Requires: %{py_package_prefix}-decorator Requires: virt-what -%if 0%{?suse_version} -Requires: logrotate -Requires: cron -%endif Requires: %{rhsm_package_name} = %{version} -Requires: %{py_package_prefix}-six + %if 0%{?suse_version} -BuildRequires: %{py_package_prefix}-python-dateutil -Requires: %{py_package_prefix}-python-dateutil +Requires: %{py_package_prefix}-python-dateutil +Requires: %{py_package_prefix}-dbus-python +Requires: logrotate +Requires: cron +Requires: %{py_package_prefix}-gobject2 +Requires: libzypp +Requires: %{py_package_prefix}-zypp-plugin %else -BuildRequires: %{py_package_prefix}-dateutil Requires: %{py_package_prefix}-dateutil +Requires: %{py_package_prefix}-dbus +Requires: usermode +Requires: python3-gobject-base +# There's no dmi to read on these arches, so don't pull in this dep. +# Additionally, dmidecode isn't packaged at all on SUSE +%ifnarch aarch64 ppc ppc64 ppc64le s390 s390x +Requires: %{py_package_prefix}-dmidecode %{?dmidecode_version} +%endif %endif # rhel 8 has different naming for setuptools going forward @@ -168,8 +183,6 @@ Requires: platform-python-setuptools Requires: %{py_package_prefix}-setuptools %endif -Requires: python3-dbus - %if %{use_dnf} %if %{create_libdnf_rpm} Requires: dnf >= 1.0.0 @@ -180,18 +193,6 @@ Requires: dnf-plugin-subscription-manager = %{version} %endif %endif -%if 0%{?suse_version} -Requires: python-gobject2, libzypp, zypp-plugin-python, python-zypp -%else -Requires: usermode -Requires: python3-gobject-base -# There's no dmi to read on these arches, so don't pull in this dep. -# Additionally, dmidecode isn't packaged at all on SUSE -%ifnarch aarch64 ppc ppc64 ppc64le s390 s390x -Requires: %{py_package_prefix}-dmidecode %{?dmidecode_version} -%endif -%endif - %if %use_inotify Requires: %{py_package_prefix}-inotify %endif @@ -202,14 +203,13 @@ Requires(postun): systemd Requires: python3-cloud-what = %{version}-%{release} -BuildRequires: %{?suse_version:python-devel >= 2.6} %{!?suse_version:%{py_package_prefix}-devel} +BuildRequires: %{py_package_prefix}-devel BuildRequires: openssl-devel BuildRequires: gcc BuildRequires: %{py_package_prefix}-setuptools BuildRequires: gettext BuildRequires: intltool BuildRequires: libnotify-devel -BuildRequires: %{py_package_prefix}-six %if %{use_cockpit} BuildRequires: desktop-file-utils @@ -217,18 +217,15 @@ BuildRequires: desktop-file-utils %if 0%{?suse_version} BuildRequires: distribution-release +BuildRequires: libzypp +BuildRequires: systemd-rpm-macros +BuildRequires: python3-rpm-macros +BuildRequires: %{py_package_prefix}-python-dateutil %else BuildRequires: system-release +BuildRequires: %{py_package_prefix}-dateutil %endif -%if 0%{?suse_version} -BuildRequires: libzypp -%endif - -# We need the systemd RPM macros -%if 0%{?suse_version} -BuildRequires: systemd-rpm-macros -%endif BuildRequires: systemd Obsoletes: subscription-manager-initial-setup-addon <= %{version}-%{release} @@ -261,11 +258,7 @@ platform. %if %{use_container_plugin} %package -n subscription-manager-plugin-container Summary: A plugin for handling container content -%if 0%{?suse_version} -Group: Productivity/Networking/System -%else Group: System Environment/Base -%endif Requires: %{name} = %{version}-%{release} %description -n subscription-manager-plugin-container @@ -279,12 +272,7 @@ from the server. Populates /etc/docker/certs.d appropriately. %if %{create_libdnf_rpm} %package -n libdnf-plugin-subscription-manager Summary: Subscription Manager plugin for libdnf -%if 0%{?suse_version} -Group: Productivity/Networking/System -%else Group: System Environment/Base -%endif - BuildRequires: cmake BuildRequires: gcc BuildRequires: json-c-devel @@ -305,11 +293,7 @@ e.g. microdnf. # RPM containing DNF plugin %package -n dnf-plugin-subscription-manager Summary: Subscription Manager plugins for DNF -%if 0%{?suse_version} -Group: Productivity/Networking/System -%else Group: System Environment/Base -%endif %if (0%{?fedora} || 0%{?rhel}) BuildRequires: cmake @@ -349,11 +333,7 @@ package or when debugging this package. %if %has_ostree %package -n subscription-manager-plugin-ostree Summary: A plugin for handling OSTree content. -%if 0%{?suse_version} -Group: Productivity/Networking/System -%else Group: System Environment/Base -%endif Requires: %{py_package_prefix}-gobject-base # plugin needs a slightly newer version of python-iniparse for 'tidy' @@ -381,7 +361,6 @@ Requires: %{py_package_prefix}-python-dateutil Requires: %{py_package_prefix}-dateutil %endif Requires: %{py_package_prefix}-iniparse -Requires: %{py_package_prefix}-six Requires: subscription-manager-rhsm-certificates = %{version}-%{release} # Required by Fedora packaging guidelines %{?python_provide:%python_provide %{py_package_prefix}-rhsm} @@ -498,7 +477,6 @@ make -f Makefile install VERSION=%{version}-%{release} \ %{?install_ostree} %{?install_container} \ %{?install_dnf_plugins} \ %{?install_zypper_plugins} \ - %{?with_systemd} \ %{?with_cockpit} \ %{?subpackages} \ %{?exclude_packages} @@ -549,7 +527,9 @@ install -m 644 %{_builddir}/%{buildsubdir}/etc-conf/redhat-uep.pem %{buildroot}/ # fix timestamps on our byte compiled files so they match across arches find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; +%if !0%{?suse_version} %py_byte_compile %{__python3} %{buildroot}%{rhsm_plugins_dir}/ +%endif # symlink services to /usr/sbin/ when building for SUSE distributions %if 0%{?suse_version} @@ -563,25 +543,30 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %files -f rhsm.lang %defattr(-,root,root,-) -# Make some unusual directories for suse part of subscription-manager +# Make some unusual directories and files for suse part of subscription-manager %if 0%{?suse_version} + %dir %{_sysconfdir}/pki %dir %{_prefix}/share/polkit-1 %dir %{_prefix}/share/polkit-1/actions %dir %{_sysconfdir}/dbus-1 %dir %{_sysconfdir}/dbus-1/system.d +%attr(755,root,root) %dir %{_sysconfdir}/rhsm/zypper.repos.d +%attr(644,root,root) %config(noreplace) %{_sysconfdir}/rhsm/zypper.conf +# zypper plugin +%{_prefix}/lib/zypp/plugins/services/rhsm +# links to /usr/sbin/service +%{_sbindir}/rcrhsm +%{_sbindir}/rcrhsm-facts +%{_sbindir}/rcrhsmcertd -# Suse specific -%if %{use_dnf} - %dir %{_sysconfdir}/dnf - %dir %{_sysconfdir}/dnf/plugins - %dir %{_prefix}/lib/dnf-plugins/ -%endif +%else -# Suse specific -%if %{use_dnf} - %dir %{_sysconfdir}/yum.repos.d -%endif +# symlink to console-helper +%{_bindir}/subscription-manager +# PAM config +%{_sysconfdir}/pam.d/subscription-manager +%{_sysconfdir}/security/console.apps/subscription-manager %endif @@ -602,11 +587,6 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %attr(755,root,root) %{_sbindir}/subscription-manager -# symlink to console-helper -%if !0%{?suse_version} -%{_bindir}/subscription-manager -%endif - %attr(755,root,root) %{_bindir}/rhsmcertd %attr(755,root,root) %{_libexecdir}/rhsmcertd-worker @@ -620,22 +600,8 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %attr(755,root,root) %dir %{_sysconfdir}/rhsm/syspurpose %attr(644,root,root) %{_sysconfdir}/rhsm/syspurpose/valid_fields.json -%if 0%{?suse_version} -%attr(755,root,root) %dir %{_sysconfdir}/rhsm/zypper.repos.d -%endif - %attr(644,root,root) %config(noreplace) %{_sysconfdir}/rhsm/rhsm.conf -%if 0%{?suse_version} - %attr(644,root,root) %config(noreplace) %{_sysconfdir}/rhsm/zypper.conf -%endif - -# PAM config -%if !0%{?suse_version} -%{_sysconfdir}/pam.d/subscription-manager -%{_sysconfdir}/security/console.apps/subscription-manager -%endif - %if %{use_dnf} %ghost %{_sysconfdir}/yum.repos.d/redhat.repo %endif @@ -692,11 +658,6 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %{python_sitelib}/dnf-plugins/* %endif -# zypper plugins -%if 0%{?suse_version} -%{_prefix}/lib/zypp/plugins/services/rhsm -%endif - # rhsmlib %dir %{python_sitearch}/rhsmlib %{python_sitearch}/rhsmlib/*.py* @@ -727,14 +688,6 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %config(noreplace) %{_sysconfdir}/dbus-1/system.d/com.redhat.*.conf %attr(644,root,root) %{_unitdir}/*.service %attr(644,root,root) %{_tmpfilesdir}/%{name}.conf -%if 0%{?suse_version} - %{_sbindir}/rcrhsm - %{_sbindir}/rcrhsm-facts -%endif - -%if 0%{?suse_version} - %{_sbindir}/rcrhsmcertd -%endif # Incude rt CLI tool %dir %{python_sitearch}/rct @@ -759,12 +712,6 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %if %{use_container_plugin} %files -n subscription-manager-plugin-container %defattr(-,root,root,-) -%if 0%{?suse_version} -%dir %{_sysconfdir}/docker -%dir %{_sysconfdir}/docker/certs.d -%dir %{_sysconfdir}/rhsm/ca -%dir %{python_sitearch}/subscription_manager/plugin -%endif %{_sysconfdir}/rhsm/pluginconf.d/container_content.ContainerContentPlugin.conf %{rhsm_plugins_dir}/container_content.py* %{rhsm_plugins_dir}/__pycache__/*container* @@ -881,12 +828,10 @@ if [ -x /bin/dbus-send ] ; then fi -%if !0%{?suse_version} %if %{use_container_plugin} %post -n subscription-manager-plugin-container %{__python} %{rhsm_plugins_dir}/container_content.py || : %endif -%endif %preun if [ $1 -eq 0 ] ; then @@ -916,9 +861,178 @@ fi # Remove old *.egg-info empty directories not removed be previous versions of RPMs # due to this BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1927245 rmdir %{python_sitearch}/subscription_manager-*-*.egg-info --ignore-fail-on-non-empty - +# Remove old cache files +# The -f flag ensures that exit code 0 will be returned even if the file does not exist. +rm -f /var/lib/rhsm/cache/rhsm_icon.json %changelog +* Tue Feb 15 2022 Christopher Snyder 1.29.26-1 +- Translated using Weblate (Korean) (simmon@nplob.com) +- Translated using Weblate (German) (atalanttore@googlemail.com) +- Revert "1935446: Use updated cert with SHA-256 algorithm" + (csnyder@redhat.com) + +* Fri Feb 11 2022 Christopher Snyder 1.29.25-1 +- 2046516: register: do not check environments w/ activation keys + (ptoscano@redhat.com) +- No-op refactor of RegisterCommand._process_environments() + (ptoscano@redhat.com) +- 1935446: Use updated cert with SHA-256 algorithm (jhnidek@redhat.com) +- build: pin pytest to < 7 (ptoscano@redhat.com) +- Update translation files (noreply@weblate.org) + +* Thu Feb 10 2022 Christopher Snyder 1.29.24-1 +- 2023430: Cockpit: another improvement of curtain view (jhnidek@redhat.com) +- environments: fix list for account in env-less org (ptoscano@redhat.com) +- Reverting disabling AutoAttach() and PoolAttach() in SCA mode + (jhnidek@redhat.com) +- 2023430: cockpit: improve handling of main curtain view (ptoscano@redhat.com) +- Squelch DeprecationWarning's when importing pyinotify (ptoscano@redhat.com) +- Drop tox.ini, no more needed now (ptoscano@redhat.com) +- flake8: improve, and integrate bits from tox.ini (ptoscano@redhat.com) +- flake8: misc fixes in tito/tests (ptoscano@redhat.com) +- 2035662: facts: tweak message for dmidecode warnings (ptoscano@redhat.com) +- facts: improve/tweak logging of warnings (ptoscano@redhat.com) +- jenkins: use custom settings for the RH internal npmjs repo + (ptoscano@redhat.com) +- jenkins: switch away from readFile() (ptoscano@redhat.com) +- jenkins: simplify script filenames & labels (ptoscano@redhat.com) +- jenkins: remove old scripts (ptoscano@redhat.com) +- ENT-4671: Improve debug logging to stdout (mhorky@redhat.com) +- Drop non-systemd support (ptoscano@redhat.com) +- ENT-4650: Remove python-six from build system (mhorky@redhat.com) +- ENT-4093: Fix flake8 warning W605 (mhorky@redhat.com) +- ENT-4618: Switch away from six.get_method_* (mhorky@redhat.com) +- ENT-4414: Remove RhsmIconCache (mhorky@redhat.com) +- New extraction for translatable strings (ptoscano@redhat.com) +- ENT-4589: Switch away from six.reraise (mhorky@redhat.com) +- 2041968: Update man and help for environments options (wpoteat@redhat.com) + +* Mon Jan 17 2022 Christopher Snyder 1.29.23-1 +- Ignore debian architecture ALL (schmidt@atix.de) +- 2028894: Don't allow service-level --serverurl on registered system + (mhorky@redhat.com) +- 2037771: Cockpit registration dialog: enable insights by default + (jhnidek@redhat.com) +- 2039322: fix string representation of DMI facts (ptoscano@redhat.com) +- Drop usage of six.python_2_unicode_compatible (ptoscano@redhat.com) +- ENT-4588: Switch away from six iterators (mhorky@redhat.com) +- ENT-4590: Switch away from six.callable (mhorky@redhat.com) +- ENT-4587: Switch away from six types (mhorky@redhat.com) +- Adding permissive coverage publishing (jmolet@redhat.com) +- Ensure that prompted environment entry follows state of multiples + (wpoteat@redhat.com) +- 2026316: Do not delete cache of content_access during refresh + (jhnidek@redhat.com) +- More SUSE compliance (jhnidek@redhat.com) +- Updates for non-multi-environment scenario (wpoteat@redhat.com) +- Fix some minor issues related to syspurpose (jhnidek@redhat.com) +- syspurpose: handle users w/o organizations (ptoscano@redhat.com) +- service-level: drop useless check (ptoscano@redhat.com) +- 2026286: consider user-specified --org in any case (ptoscano@redhat.com) +- Drop the Vagrant bits (ptoscano@redhat.com) +- 1995032: Use multiple environments (wpoteat@redhat.com) +- cache: fix typo in debug message (ptoscano@redhat.com) +- Switch away from Thread.getName() (ptoscano@redhat.com) +- Fix indentation of ProductStatus. (jhnidek@redhat.com) +- 2028969: Do not try to load compliance status from cache (jhnidek@redhat.com) +- Switch comma-separated join to space-separated join (schmidt@atix.de) +- 2029927: Fix bash autocompletion (mhorky@redhat.com) +- utils: use shutil.get_terminal_size() (ptoscano@redhat.com) +- Remove PyXML leftovers (ptoscano@redhat.com) +- 2026320: fix format of HTTP-date headers (ptoscano@redhat.com) +- connection: move HTTP-date formatting to own helper (ptoscano@redhat.com) +- Ensure datetime.timezone.utc objects for parsed UTC dates + (ptoscano@redhat.com) +- rhsm: drop custom which() implementation (ptoscano@redhat.com) +- facts: switch to shutil.which() (ptoscano@redhat.com) +- test: unconditionally use hashlib (ptoscano@redhat.com) +- 1999048: Fixed partially subscribed product in Cockpit plugin + (jhnidek@redhat.com) +- test: rename tests to default pytest filename pattern (ptoscano@redhat.com) +- Fixed last bits related to updated D-Bus Register method. + (jhnidek@redhat.com) +- Cockpit plugin: display syspurpose card without attributes + (jhnidek@redhat.com) +- 2023257: Disallowed attaching using D-Bus in SCA mode (jhnidek@redhat.com) +- 2023257: Disallowed attaching pool in SCA mode: (jhnidek@redhat.com) +- Refactoring of temporary disablement of dir watchers. (jhnidek@redhat.com) +- Ignore enable_content option in RegisterWithActivationKeys() + (jhnidek@redhat.com) +- Use benefits of enable_content in cockpit plugin. (jhnidek@redhat.com) +- Added enable_content option to Register() D-Bus method (jhnidek@redhat.com) +- Added refresh() method to entitlement service (jhnidek@redhat.com) +- Fixed issue with status cache (jhnidek@redhat.com) +- Add information about content access mode to consumer (jhnidek@redhat.com) +- 2024929: build: fix build on 'build' target (ptoscano@redhat.com) +- 2023391: libdnf: respect environment CFLAGS (ptoscano@redhat.com) +- Drop unused ssl_verify_depth config option (ptoscano@redhat.com) +- tests: drop test_po_files.py (ptoscano@redhat.com) +- Update translation files (noreply@weblate.org) +- New extraction for translatable strings (ptoscano@redhat.com) + +* Mon Jan 17 2022 Christopher Snyder +- Ignore debian architecture ALL (schmidt@atix.de) +- 2028894: Don't allow service-level --serverurl on registered system + (mhorky@redhat.com) +- 2037771: Cockpit registration dialog: enable insights by default + (jhnidek@redhat.com) +- 2039322: fix string representation of DMI facts (ptoscano@redhat.com) +- Drop usage of six.python_2_unicode_compatible (ptoscano@redhat.com) +- ENT-4588: Switch away from six iterators (mhorky@redhat.com) +- ENT-4590: Switch away from six.callable (mhorky@redhat.com) +- ENT-4587: Switch away from six types (mhorky@redhat.com) +- Adding permissive coverage publishing (jmolet@redhat.com) +- Ensure that prompted environment entry follows state of multiples + (wpoteat@redhat.com) +- 2026316: Do not delete cache of content_access during refresh + (jhnidek@redhat.com) +- More SUSE compliance (jhnidek@redhat.com) +- Updates for non-multi-environment scenario (wpoteat@redhat.com) +- Fix some minor issues related to syspurpose (jhnidek@redhat.com) +- syspurpose: handle users w/o organizations (ptoscano@redhat.com) +- service-level: drop useless check (ptoscano@redhat.com) +- 2026286: consider user-specified --org in any case (ptoscano@redhat.com) +- 1995032: Use multiple environments (wpoteat@redhat.com) +- cache: fix typo in debug message (ptoscano@redhat.com) +- Switch away from Thread.getName() (ptoscano@redhat.com) +- Fix indentation of ProductStatus. (jhnidek@redhat.com) +- 2028969: Do not try to load compliance status from cache (jhnidek@redhat.com) +- Switch comma-separated join to space-separated join (schmidt@atix.de) +- 2029927: Fix bash autocompletion (mhorky@redhat.com) +- utils: use shutil.get_terminal_size() (ptoscano@redhat.com) +- Remove PyXML leftovers (ptoscano@redhat.com) +- 2026320: fix format of HTTP-date headers (ptoscano@redhat.com) +- connection: move HTTP-date formatting to own helper (ptoscano@redhat.com) +- Ensure datetime.timezone.utc objects for parsed UTC dates + (ptoscano@redhat.com) +- rhsm: drop custom which() implementation (ptoscano@redhat.com) +- facts: switch to shutil.which() (ptoscano@redhat.com) +- test: unconditionally use hashlib (ptoscano@redhat.com) +- 1999048: Fixed partially subscribed product in Cockpit plugin + (jhnidek@redhat.com) +- test: rename tests to default pytest filename pattern (ptoscano@redhat.com) +- Fixed last bits related to updated D-Bus Register method. + (jhnidek@redhat.com) +- Cockpit plugin: display syspurpose card without attributes + (jhnidek@redhat.com) +- 2023257: Disallowed attaching using D-Bus in SCA mode (jhnidek@redhat.com) +- 2023257: Disallowed attaching pool in SCA mode: (jhnidek@redhat.com) +- Refactoring of temporary disablement of dir watchers. (jhnidek@redhat.com) +- Ignore enable_content option in RegisterWithActivationKeys() + (jhnidek@redhat.com) +- Use benefits of enable_content in cockpit plugin. (jhnidek@redhat.com) +- Added enable_content option to Register() D-Bus method (jhnidek@redhat.com) +- Added refresh() method to entitlement service (jhnidek@redhat.com) +- Fixed issue with status cache (jhnidek@redhat.com) +- Add information about content access mode to consumer (jhnidek@redhat.com) +- 2024929: build: fix build on 'build' target (ptoscano@redhat.com) +- 2023391: libdnf: respect environment CFLAGS (ptoscano@redhat.com) +- Drop unused ssl_verify_depth config option (ptoscano@redhat.com) +- tests: drop test_po_files.py (ptoscano@redhat.com) +- Update translation files (noreply@weblate.org) +- New extraction for translatable strings (ptoscano@redhat.com) + * Thu Nov 11 2021 Christopher Snyder 1.29.21-1 - 2020248: handle server-side consumer deletion in syspurpose commands (ptoscano@redhat.com)