From 9abe4f7f8d05f5c123fcd5c6a5bbb20b51fee9a3 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 24 May 2019 12:40:02 -0700 Subject: [PATCH] 1713109: fix the initial-setup addon for anaconda >= 30 --- ...etup-and-execute-no-longer-get-instc.patch | 66 +++++++++++++++++++ subscription-manager.spec | 10 ++- 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 0001-Anaconda-addon-setup-and-execute-no-longer-get-instc.patch diff --git a/0001-Anaconda-addon-setup-and-execute-no-longer-get-instc.patch b/0001-Anaconda-addon-setup-and-execute-no-longer-get-instc.patch new file mode 100644 index 0000000..2d85e4b --- /dev/null +++ b/0001-Anaconda-addon-setup-and-execute-no-longer-get-instc.patch @@ -0,0 +1,66 @@ +From de4268203e9872d60dd5a99e0db7346568c2b36e Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Fri, 24 May 2019 12:01:31 -0700 +Subject: [PATCH] Anaconda addon: setup() and execute() no longer get instclass + +Since anaconda commit +https://github.com/rhinstaller/anaconda/commit/78fd1e82 , +anaconda addons should no longer expect an install class to be +passed to their setup() and execute() methods. Without this fix, +the addon breaks recent versions of anaconda. As the policy +for this tool seems to be that the most recent version is sent +to all Fedora releases (and RHEL releases?), I implemented this +in such a way that it will work with both old and new anaconda. + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1713109 + +Signed-off-by: Adam Williamson +--- + .../ks/rhsm_ks.py | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git a/src/initial-setup/com_redhat_subscription_manager/ks/rhsm_ks.py b/src/initial-setup/com_redhat_subscription_manager/ks/rhsm_ks.py +index 0d5724b0..f7cf8392 100644 +--- a/src/initial-setup/com_redhat_subscription_manager/ks/rhsm_ks.py ++++ b/src/initial-setup/com_redhat_subscription_manager/ks/rhsm_ks.py +@@ -147,21 +147,35 @@ class RHSMAddonData(AddonData): + def __str__(self): + return "%%addon %s %s\n%s%%end\n" % (self.name, self.header_args, self.content) + +- def setup(self, storage, ksdata, instclass, payload): ++ def setup(self, *args, **kwargs): + """Make the changes to the install system. + + This method is called before the installation + is started and directly from spokes. It must be possible + to call it multiple times without breaking the environment.""" ++ # we use the signature we do because anaconda before commit ++ # 78fd1e82 passes (storage, ksdata, instClass, payload) ++ # but anaconda after 78fd1e82 passes only ++ # (storage, ksdata, payload). If this method *did* ++ # anything we would have to figure out which args we'd got and ++ # handle them appropriately, but since it does nothing, we ++ # don't have to bother with that. + pass + +- def execute(self, storage, ksdata, instClass, users, payload): ++ def execute(self, *args, **kwargs): + + """Make the changes to the underlying system. + + This method is called only once in the post-install + setup phase. + """ ++ # we use the signature we do because anaconda before commit ++ # 78fd1e82 passes (storage, ksdata, instClass, users, payload) ++ # but anaconda after 78fd1e82 passes only ++ # (storage, ksdata, users, payload). If this method *did* ++ # anything we would have to figure out which args we'd got and ++ # handle them appropriately, but since it does nothing, we ++ # don't have to bother with that. + log.debug("Read RHSM ks info, but non gui ks is currently not implemented.") + + def handle_header(self, lineno, args): +-- +2.21.0 + diff --git a/subscription-manager.spec b/subscription-manager.spec index 2fb16e2..6e4463c 100644 --- a/subscription-manager.spec +++ b/subscription-manager.spec @@ -139,7 +139,7 @@ Name: subscription-manager Version: 1.25.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools and libraries for subscription and repository management Group: System Environment/Base License: GPLv2 @@ -159,6 +159,10 @@ Source1: %{name}-cockpit-%{version}.tar.gz %if 0%{?suse_version} Source2: subscription-manager-rpmlintrc %endif +# https://github.com/candlepin/subscription-manager/pull/2092 +# Fix the initial-setup addon for anaconda > 30 +# https://bugzilla.redhat.com/show_bug.cgi?id=1713109 +Patch0: 0001-Anaconda-addon-setup-and-execute-no-longer-get-instc.patch %if (0%{?suse_version} && 0%{?suse_version} < 1200) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -530,6 +534,7 @@ Subscription Manager Cockpit UI %prep %setup -q +%patch0 -p1 %build make -f Makefile VERSION=%{version}-%{release} CFLAGS="%{optflags}" \ @@ -1165,6 +1170,9 @@ gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri May 24 2019 Adam Williamson - 1.25.5-2 +- 1713109: fix the initial-setup addon for anaconda >= 30 + * Tue May 07 2019 Christopher Snyder 1.25.5-1 - 1700445: Do not disabled repos in redhat.repo; ENT-1261 (jhnidek@redhat.com)