Instead of basing the decision on the contents of a list that does not get populated for kickstart installs, reset kickstarted flag in the signal handlers for the environment and addon listboxes. Besides fixing the problem of kickstart %packages always being treated as interactive, this will catch potential changes to --optional or --nodefaults triggered by GUI interactions.
Thanks to clumens for both finding the underlying problem and coming up with the idea to fix it.
From: David Shea dshea@redhat.com
Instead of basing the decision on the contents of a list that does not get populated for kickstart installs, reset kickstarted flag in the signal handlers for the environment and addon listboxes. Besides fixing the problem of kickstart %packages always being treated as interactive, this will catch potential changes to --optional or --nodefaults triggered by GUI interactions.
Thanks to clumens for both finding the underlying problem and coming up with the idea to fix it. --- pyanaconda/ui/gui/spokes/software.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py index 3ef6a4e..d8b3402 100644 --- a/pyanaconda/ui/gui/spokes/software.py +++ b/pyanaconda/ui/gui/spokes/software.py @@ -132,15 +132,6 @@ def _payload_error(self): def _apply(self): env = self._get_selected_environment()
- # Check if a kickstart install still looks like a kickstart install - # If an environment is selected and either the environment or the - # addon list does not match the ksdata, the packages were - # selected interactively. - if env and self._kickstarted: - if env != self.data.packages.environment or \ - set(self.selectedGroups) != set(self.data.packages.groupList): - self._kickstarted = False - # Not a kickstart with packages, setup the environment and groups if env and not self._kickstarted: addons = self._get_selected_addons() @@ -462,6 +453,9 @@ def on_environment_activated(self, listbox, row): if not self._selectFlag: return
+ # GUI selections means that packages are no longer coming from kickstart + self._kickstarted = False + box = row.get_children()[0] button = box.get_children()[0]
@@ -485,6 +479,9 @@ def on_addon_activated(self, listbox, row): if isinstance(box, Gtk.Separator): return
+ # GUI selections means that packages are no longer coming from kickstart + self._kickstarted = False + button = box.get_children()[0] addons = self._allAddons() group = addons[row.get_index()]
Instead of basing the decision on the contents of a list that does not get populated for kickstart installs, reset kickstarted flag in the signal handlers for the environment and addon listboxes. Besides fixing the problem of kickstart %packages always being treated as interactive, this will catch potential changes to --optional or --nodefaults triggered by GUI interactions.
Thanks to clumens for both finding the underlying problem and coming up with the idea to fix it.
ACK. This fixes both groups-and-envs-2.sh and packages-and-groups-1.sh for me.
- Chris
Looks good to me.
Added label: ACK.
Closed.
Pushed.
anaconda-patches@lists.fedorahosted.org