From 8b5544178cdd902a6c65fb8fd3a90253e6b210cd Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 30 Mar 2021 08:07:03 -0400 Subject: [PATCH] import subscription-manager-1.28.13-1.el8 --- .gitignore | 4 +- .subscription-manager.metadata | 4 +- SPECS/subscription-manager.spec | 255 +++++++++++++++++++++++++++----- 3 files changed, 223 insertions(+), 40 deletions(-) diff --git a/.gitignore b/.gitignore index e61f3e9..8a6507e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/subscription-manager-1.27.9.tar.gz -SOURCES/subscription-manager-cockpit-1.27.9.tar.gz +SOURCES/subscription-manager-1.28.13.tar.gz +SOURCES/subscription-manager-cockpit-1.28.13.tar.gz diff --git a/.subscription-manager.metadata b/.subscription-manager.metadata index c77003f..542d192 100644 --- a/.subscription-manager.metadata +++ b/.subscription-manager.metadata @@ -1,2 +1,2 @@ -517d261e8bc3f686ab0f634b4a80e3c65ca67b59 SOURCES/subscription-manager-1.27.9.tar.gz -79e6926ecdc52dd73b22995556a6f1e35e51364a SOURCES/subscription-manager-cockpit-1.27.9.tar.gz +234ee1b0f7dc29bbc7b7d4935c36a63137535263 SOURCES/subscription-manager-1.28.13.tar.gz +1218c2df4a4b083e1d7ece59cc7825372ab64849 SOURCES/subscription-manager-cockpit-1.28.13.tar.gz diff --git a/SPECS/subscription-manager.spec b/SPECS/subscription-manager.spec index 4e6c004..a816a17 100644 --- a/SPECS/subscription-manager.spec +++ b/SPECS/subscription-manager.spec @@ -51,13 +51,20 @@ %global use_subman_gui 1 %endif +# Install subscription-manager-migration only for rhel8 and lower +%if 0%{?rhel} && 0%{?rhel} <= 8 +%global use_subscription_manager_migration 1 +%else +%global use_subscription_manager_migration 0 +%endif + %if 0%{?suse_version} && 0%{?suse_version} < 1200 %global completion_dir %{_sysconfdir}/bash_completion.d %else %global completion_dir %{_datadir}/bash-completion/completions %endif -%if 0%{?suse_version} > 1110 +%if 0%{?suse_version} > 1110 || 0%{?rhel} >= 7 || 0%{?fedora} %global run_dir /run %else %global run_dir /var/run @@ -178,6 +185,12 @@ %global with_subman_gui WITH_SUBMAN_GUI=false %endif +%if %{use_subscription_manager_migration} +%global with_subman_migration WITH_SUBMAN_MIGRATION=true +%else +%global with_subman_migration WITH_SUBMAN_MIGRATION=false +%endif + %if %{use_cockpit} && !0%{use_subman_gui} %global with_cockpit WITH_COCKPIT=true %else @@ -213,7 +226,11 @@ %endif %if !%{use_container_plugin} -%global exclude_packages %{exclude_packages}*.plugin.container,} +%global exclude_packages %{exclude_packages}*.plugin.container, +%endif + +%if !%{use_subscription_manager_migration} +%global exclude_packages %{exclude_packages}subscription_manager.migrate, %endif # add new exclude_packages items before me @@ -226,7 +243,7 @@ %global use_rhsm_icons 0%{use_cockpit} || 0%{use_rhsm_gtk} Name: subscription-manager -Version: 1.27.9 +Version: 1.28.13 Release: 1%{?dist} Summary: Tools and libraries for subscription and repository management %if 0%{?suse_version} @@ -249,7 +266,7 @@ Source0: %{name}-%{version}.tar.gz %if %{use_cockpit} Source1: %{name}-cockpit-%{version}.tar.gz %endif -%if 0%{?suse_version} +%if (0%{?suse_version} && 0%{?suse_version} < 1500) Source2: subscription-manager-rpmlintrc %endif @@ -286,10 +303,10 @@ Requires: %{py_package_prefix}-python-dateutil BuildRequires: %{py_package_prefix}-dateutil Requires: %{py_package_prefix}-dateutil %endif -Requires: %{py_package_prefix}-syspurpose +Requires: %{py_package_prefix}-syspurpose = %{version}-%{release} # rhel 8 has different naming for setuptools going forward -%if (0%{?rhel} && 0%{?rhel} >= 8) +%if (0%{?rhel} && 0%{?rhel} == 8) Requires: platform-python-setuptools %else Requires: %{py_package_prefix}-setuptools @@ -301,6 +318,8 @@ Requires: python3-dbus Requires: %{?suse_version:dbus-1-python} %{!?suse_version:dbus-python} %endif +Requires: python3-requests + %if %{use_yum} Requires: %{?suse_version:yum} %{!?suse_version:yum >= 3.2.29-73} %endif @@ -436,18 +455,12 @@ Requires: font(cantarell) Requires: %{?suse_version:dejavu} %{!?suse_version:dejavu-sans-fonts} %endif -%if !0%{?suse_version} -Requires(post): scrollkeeper -Requires(postun): scrollkeeper -%else -%endif %description -n rhsm-gtk This package contains GUI and widgets used by subscription-manager-gui and RHSM initial_setup module for Anaconda. %endif - %if %{use_subman_gui} %package -n subscription-manager-gui Summary: A GUI interface to manage Red Hat product subscriptions @@ -466,6 +479,12 @@ Requires: rhsm-gtk = %{version}-%{release} Obsoletes: %{name}-gnome < 1.0.3-1 Provides: %{name}-gnome = %{version}-%{release} +%if !0%{?suse_version} +Requires(post): scrollkeeper +Requires(postun): scrollkeeper +%else +%endif + %description -n subscription-manager-gui This package contains a GTK+ graphical interface for configuring and registering a system with a Red Hat Entitlement platform and manage @@ -473,6 +492,7 @@ subscriptions. %endif +%if %{use_subscription_manager_migration} %package -n subscription-manager-migration Summary: Migration scripts for moving to certificate based subscriptions %if 0%{?suse_version} @@ -492,6 +512,7 @@ Requires: subscription-manager-migration-data %description -n subscription-manager-migration This package contains scripts that aid in moving to certificate based subscriptions +%endif %if %use_dnf @@ -724,7 +745,7 @@ subscription-manager-initial-setup-addon, and subscription-manager-cockpit-plugi make -f Makefile VERSION=%{version}-%{release} CFLAGS="%{optflags}" \ LDFLAGS="%{__global_ldflags}" OS_DIST="%{dist}" PYTHON="%{__python}" \ %{?gtk_version} %{?subpackages} %{?include_syspurpose:INCLUDE_SYSPURPOSE="1"} \ - %{exclude_packages} %{?with_subman_gui} + %{exclude_packages} %{?with_subman_gui} %{?with_subman_migration} %if %{with python2_rhsm} python2 ./setup.py build --quiet --gtk-version=%{?gtk3:3}%{?!gtk3:2} --rpm-version=%{version}-%{release} @@ -732,13 +753,16 @@ python2 ./setup.py build --quiet --gtk-version=%{?gtk3:3}%{?!gtk3:2} --rpm-versi %if (%{use_dnf} && (0%{?fedora} >= 29 || 0%{?rhel} >= 8)) pushd src/dnf-plugins/product-id -%cmake -DCMAKE_BUILD_TYPE="Release" . +%cmake -DCMAKE_BUILD_TYPE="Release" +%if (0%{?rhel} && 0%{?rhel} <= 8) %make_build +%else +%cmake_build +%endif popd %endif %install -rm -rf %{buildroot} make -f Makefile install VERSION=%{version}-%{release} \ PYTHON=%{__python} PREFIX=%{_prefix} \ DESTDIR=%{buildroot} PYTHON_SITELIB=%{python_sitearch} \ @@ -750,6 +774,7 @@ make -f Makefile install VERSION=%{version}-%{release} \ %{?install_zypper_plugins} \ %{?with_systemd} \ %{?with_subman_gui} \ + %{?with_subman_migration} \ %{?with_cockpit} \ %{?subpackages} \ %{?include_syspurpose:INCLUDE_SYSPURPOSE="1"} \ @@ -758,7 +783,11 @@ make -f Makefile install VERSION=%{version}-%{release} \ %if (%{use_dnf} && (0%{?fedora} >= 29 || 0%{?rhel} >= 8)) pushd src/dnf-plugins/product-id mkdir -p %{buildroot}%{_libdir}/libdnf/plugins +%if (0%{?rhel} && 0%{?rhel} <= 8) %make_install +%else +%cmake_install +%endif popd %endif @@ -787,13 +816,6 @@ desktop-file-validate %{buildroot}/usr/share/applications/subscription-manager-c %endif -# libexec directory does not exist on sles based distros -%if 0%{?suse_version} -%if %use_subman_gui - sed -i 's/libexec/lib/g' %{buildroot}/%{_sysconfdir}/cron.daily/rhsmd -%endif -%endif - %find_lang rhsm %if 0%{?include_syspurpose} %find_lang syspurpose @@ -868,6 +890,8 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %endif %dir %{python_sitearch}/rhsmlib/candlepin +%dir %{python_sitearch}/rhsmlib/cloud +%dir %{python_sitearch}/rhsmlib/cloud/providers %dir %{python_sitearch}/rhsmlib/compat %dir %{python_sitearch}/rhsmlib/dbus %dir %{python_sitearch}/rhsmlib/dbus/facts @@ -898,10 +922,6 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %attr(755,root,root) %{_libexecdir}/rhsmcertd-worker -%if %{use_subman_gui} - %attr(755,root,root) %{_libexecdir}/rhsmd -%endif - # our config dirs and files %attr(755,root,root) %dir %{_sysconfdir}/pki/consumer @@ -946,9 +966,6 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; # misc system config %config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/subscription-manager -%if %{use_subman_gui} - %attr(700,root,root) %{_sysconfdir}/cron.daily/rhsmd -%endif %attr(755,root,root) %dir %{_var}/log/rhsm %attr(755,root,root) %dir %{_var}/spool/rhsm/debug @@ -962,9 +979,12 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %{completion_dir}/subscription-manager %{completion_dir}/rct %{completion_dir}/rhsm-debug -%{completion_dir}/rhn-migrate-classic-to-rhsm %{completion_dir}/rhsmcertd +%if %{use_subscription_manager_migration} +%{completion_dir}/rhn-migrate-classic-to-rhsm +%endif + %if %use_subman_gui %{completion_dir}/rhsm-icon %endif @@ -1024,6 +1044,8 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %dir %{python_sitearch}/rhsmlib %{python_sitearch}/rhsmlib/*.py* %{python_sitearch}/rhsmlib/candlepin/*.py* +%{python_sitearch}/rhsmlib/cloud/*.py* +%{python_sitearch}/rhsmlib/cloud/providers/*.py* %{python_sitearch}/rhsmlib/compat/*.py* %{python_sitearch}/rhsmlib/facts/*.py* %{python_sitearch}/rhsmlib/services/*.py* @@ -1033,6 +1055,8 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %if %{with python3} %{python_sitearch}/rhsmlib/__pycache__ %{python_sitearch}/rhsmlib/candlepin/__pycache__ +%{python_sitearch}/rhsmlib/cloud/__pycache__ +%{python_sitearch}/rhsmlib/cloud/providers/__pycache__ %{python_sitearch}/rhsmlib/compat/__pycache__ %{python_sitearch}/rhsmlib/dbus/__pycache__ %{python_sitearch}/rhsmlib/dbus/facts/__pycache__ @@ -1169,7 +1193,7 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %endif - +%if 0%{?use_subscription_manager_migration} %files -n subscription-manager-migration %defattr(-,root,root,-) %dir %{python_sitearch}/subscription_manager/migrate @@ -1185,6 +1209,7 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %if 0%{?fedora} %doc README.Fedora %endif +%endif %files -n %{py_package_prefix}-syspurpose -f syspurpose.lang %defattr(-,root,root,-) @@ -1287,12 +1312,10 @@ find %{buildroot} -name \*.py* -exec touch -r %{SOURCE0} '{}' \; %dir %{_datadir}/cockpit/subscription-manager %{_datadir}/cockpit/subscription-manager/index.html %{_datadir}/cockpit/subscription-manager/index.min.js.gz -%{_datadir}/cockpit/subscription-manager/subscriptions.css %{_datadir}/cockpit/subscription-manager/index.css %{_datadir}/cockpit/subscription-manager/manifest.json %{_datadir}/cockpit/subscription-manager/po.*.js %{_datadir}/cockpit/subscription-manager/po.js -%{_datadir}/cockpit/subscription-manager/node_modules/* %{_datadir}/metainfo/org.candlepinproject.subscription_manager.metainfo.xml %if ! %use_subman_gui %{_datadir}/applications/subscription-manager-cockpit.desktop @@ -1342,6 +1365,9 @@ if [ "$1" = "2" ] ; then fi %endif +# Make all entitlement certificates and keys files readable by group and other +chmod go+r /etc/pki/entitlement/*.pem || true + if [ -x /bin/dbus-send ] ; then dbus-send --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig > /dev/null 2>&1 || : fi @@ -1427,11 +1453,162 @@ gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog -* Sun Jun 28 2020 Christopher Snyder 1.27.9-1 -- 1840364: Kill rhsmd during post-install on rhel8 +* Thu Feb 18 2021 Christopher Snyder 1.28.13-1 +- Translated using Weblate (Chinese (Simplified) (zh_CN)) (suanand@redhat.com) +- Translated using Weblate (Chinese (Traditional) (zh_TW)) (jsefler@redhat.com) +- Translated using Weblate (Chinese (Simplified) (zh_CN)) (jsefler@redhat.com) + +* Thu Feb 04 2021 Christopher Snyder 1.28.12-1 +- 1922210: Typo in help text [1.28] (#2428) (wpoteat@redhat.com) + +* Tue Feb 02 2021 Christopher Snyder 1.28.11-1 +- Translated using Weblate (Japanese) (suanand@redhat.com) +- Translated using Weblate (Chinese (Simplified) (zh_CN)) (suanand@redhat.com) +- 1922173: Repeat auto-register only, when first attempt fail (#2420) + (jhnidek@redhat.com) + +* Thu Jan 28 2021 William Poteat 1.28.10-1 +- Use python3-requests and not python-requests. (jhnidek@redhat.com) +- ENT-3289: automatic registration on public cloud (#2407) (jhnidek@redhat.com) +- ENT-3191: Collect metadata of cloud providers (#2381) (jhnidek@redhat.com) +- Detecting of cloud providers; ENT-3288 (#2367) (jhnidek@redhat.com) +- 1899677: Extract of strings for translations (#2399) (wpoteat@redhat.com) +- Syntax update to translation commands (#2395) (wpoteat@redhat.com) +- Update project to use Weblate for translations (#2388) (wpoteat@redhat.com) + +* Fri Dec 11 2020 Christopher Snyder 1.28.9-1 +- 1904541: Catch ProxyException when checking available orgs + (csnyder@redhat.com) + +* Thu Dec 10 2020 Christopher Snyder 1.28.8-1 +- 1904541: subscription-manager should not prompt for "Organization" when only + one organization (#2372) (wpoteat@redhat.com) +- 1801570: drop scrollkeeper/rarian as a dependency from rhsm-gtk + (csnyder@redhat.com) + +* Thu Dec 03 2020 Christopher Snyder 1.28.7-1 +- 1855437: Fixed rpm dependency of subscription-manager; ENT-3250 (#2365) + (jhnidek@redhat.com) +- 1894450: Fix issue with identity command; ENT-3235 (#2364) + (jhnidek@redhat.com) + +* Mon Nov 16 2020 Christopher Snyder 1.28.6-1 +- 1850624: Uncaught JSONDecodeError when content_access.json is empty and + registering to Satellite6 (wpoteat@redhat.com) +- 1831082: Better messages for attach --auto for SCA mode; ENT-3175 + (jhnidek@redhat.com) + +* Thu Oct 22 2020 Christopher Snyder 1.28.5-1 +- removing yarn (jmolet@redhat.com) +- Revert "1847910: DNF plugins are part of sub-man RPM, libdnf RPM; ENT-2536" + (csnyder@redhat.com) +- 1886745: Fix __init__ of CPProvider; ENT-3147 (jhnidek@redhat.com) +- 1833316: unset-addons argument is missing in the bash completion of + syspurpose (wpoteat@redhat.com) +- 1875595: Service-Level set issues (wpoteat@redhat.com) + +* Wed Oct 07 2020 Christopher Snyder 1.28.4-1 +- Revert the --no-insights feature (csnyder@redhat.com) +- adding Jenkinsfile and CI test scripts (jmolet@redhat.com) +- 1847910: DNF plugins are part of sub-man RPM, libdnf RPM; ENT-2536 + (jhnidek@redhat.com) +- 1826300: Ignore auto-attach, when SCA mode is used; ENT-2341 + (jhnidek@redhat.com) +- 1862431: option validation error from unexpected config entry; ENT-2712 + (wpoteat@redhat.com) +- 1844508: sub-man sends version in the User-Agent header; ENT-2486 + (wpoteat@redhat.com) +- 1855437: syspurpose CLI should require sub-man rpm; ENT-2602 + (jhnidek@redhat.com) +- 1870567: Fix issue with locale and D-Bus method GetStatus; ENT-2772 + (jhnidek@redhat.com) +- 1868734: Fix issue with syspurpose attrs. set in act. key; ENT-2851 + (jhnidek@redhat.com) + +* Wed Sep 02 2020 William Poteat 1.28.3-1 +- 1753236: D-Bus Register properly, when org not specified; ENT-2096 + (jhnidek@redhat.com) +- Additional updates for fedora (wpoteat@redhat.com) +- added default for repo_gpgcheck (p.seiler@linuxmail.org) +- support to disable repo_gpgcheck for zypper repositories + (p.seiler@linuxmail.org) + +* Fri Aug 21 2020 William Poteat 1.28.2-1 +- Sync spec with fedora spec (csnyder@redhat.com) +- 1841601: Set default encoding properly; ENT-2499 (jhnidek@redhat.com) +- 1615429: Part 2: Added unit tests not only for this case (jhnidek@redhat.com) +- 1868936: Do not print traceback, when profile upload failed; ENT-2754 + (jhnidek@redhat.com) +- 1839199: More rhsmd cleanup (wpoteat@redhat.com) +- 1615429: Fix sorting of plugin hooks (csnyder@redhat.com) +- Two fixes of issues related to suse (jhnidek@redhat.com) + +* Mon Aug 17 2020 Christopher Snyder 1.28.1-1 +- 1832990: Only register insights when server supports "insights_auto_register" + (csnyder@redhat.com) +- 1855893: Generate redhat.repo properly; ENT-2636 (jhnidek@redhat.com) +- 1862415: Print proper message, when consumer is deleted; ENT-2709 + (jhnidek@redhat.com) +- 1841600: D-Bus - update ent. cert., when act. key is used; ENT-2453 + (jhnidek@redhat.com) +- 1862419: Make repo-override working again; ENT-2710 (jhnidek@redhat.com) +- 1858231: Disable repository metadata gpg validation (suttner@atix.de) +- 1862425: Fix setting service-level; ENT-1862425 (jhnidek@redhat.com) +- 1832990: Add rhsm.no_insights config option, improve messaging + (csnyder@redhat.com) +- 1858296: Do not print unchanged profile; ENT-2639 (jhnidek@redhat.com) +- 1860434: Create rhsm.conf, when config command is used; ENT-2698 + (jhnidek@redhat.com) +- 1861255: Catch all exception and print traceback to rhsm.log + (jhnidek@redhat.com) +- 1780028: Remove man page entries for rhsmd (wpoteat@redhat.com) +- 1859532: Role --list handle wrong proxy conf (unregistered case) + (jhnidek@redhat.com) +- cockpit: Stop importing cockpit's base1/patternfly.css (kkoukiou@redhat.com) +- cockpit: Bump up webpack to 4 and adjust the config as needed + (kkoukiou@redhat.com) +- 1838423: Fix getting list of releases from CDN; ENT-2601 (jhnidek@redhat.com) +- 1859532: No traceback, when wrong proxy conf is used; ENT-2654 + (jhnidek@redhat.com) +- set permissions on rhsm.conf (jbastian@redhat.com) +- 1857100: Do not print empty string as valid value; ENT-2634 + (jhnidek@redhat.com) +- Fix zypper ascii issue (suttner@atix.de) +- 1847636: error when registering in intial-setup-graphical + (wpoteat@redhat.com) +- 1838967: Sync syspurpose cache on registration (wpoteat@redhat.com) +- cockpit: Fix AppStream launchable metainfo (martin@piware.de) +- Use list of valid syspurpose values provided by candlepin server; ENT-2371 + (jhnidek@redhat.com) +- Added unit test for this case. (jhnidek@redhat.com) +- 1845399: List available subscription ondate options failed + (wpoteat@redhat.com) +- Mark node_modules as part of rpm package. (jhnidek@redhat.com) +- cockpit: change button order to conform with patternfly guidelines + (anilsson@redhat.com) +- 1657269: Do not use /var/run, but use /run; ENT-1086 (jhnidek@redhat.com) +- WIP: remove useless closing bracket. (jhnidek@redhat.com) +- 1840364: Kill rhsmd during post-install on rhel8; ENT-2449 (jhnidek@redhat.com) - 1848636, 1849074: Update insights machine-id path (csnyder@redhat.com) -- 1700441: Create directories, when missing (jhnidek@redhat.com) +- Address review feedback (khowell@redhat.com) +- Add insights-client messaging on registration (khowell@redhat.com) +- 1741364: Make existing ent. cert/keys readable by others; ENT-1593 + (jhnidek@redhat.com) +- 1838423: Correct method call signature for release (wpoteat@redhat.com) +- 1840859: Custom repo parameters are not deletable (wpoteat@redhat.com) +- Add --no-insights option; ENT-2471 (khowell@redhat.com) +- 1700441: Create directories, when missing; ENT-2461 (jhnidek@redhat.com) +- 1770864: Do not create sub-man-migration rpm for Fedora; ENT-1961 + (jhnidek@redhat.com) +- Ignore missing repo if manage_repo is false (suttner@atix.de) + +* Sat Aug 01 2020 Fedora Release Engineering - 1.27.1-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 1.27.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Thu Jun 11 2020 Christopher Snyder 1.28.0-1 - 1804454: collect uuid on aarch64 system (wpoteat@redhat.com) @@ -1452,6 +1629,9 @@ gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || : (jhnidek@redhat.com) - 1838012: prevent redundant remote syspurpose sync (pmoravec@redhat.com) +* Tue May 26 2020 Miro Hrončok - 1.27.1-3 +- Rebuilt for Python 3.9 + * Wed May 20 2020 Christopher Snyder 1.27.4-1 - Fix unit test of getting release information (jhnidek@redhat.com) - Send Service-level during registration only once (csnyder@redhat.com) @@ -1479,6 +1659,9 @@ gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || : - 1818932: 1820267: Using 'Simple Content Access' for access mode (wpoteat@redhat.com) +* Tue Apr 21 2020 Björn Esser - 1.27.1-2 +- Rebuild (json-c) + * Wed Apr 15 2020 William Poteat 1.27.2-1 - Update releasers for 8.3 (wpoteat@redhat.com) - 1821747: Automatically create /etc/rhsm/syspurpose (jhnidek@redhat.com)