From c3997e3075d1a7cc3154c16291b965ca167273db Mon Sep 17 00:00:00 2001 From: Martin Kolman Date: Tue, 24 Aug 2021 17:25:26 +0200 Subject: [PATCH 1/7] New version 35.22.1-1 - Adjust configuration options for Fedora 35 (mkolman) - fsset: Ignore all swap activation errors in turn_on_swap (vtrefny) - Don't try to use line buffering in binary mode (vponcova) - Add release notes for NTP dialog change (vslavik) - Change the NTP server dialog design (vslavik) - Rename spoke to Root Account (vslavik) - Don't set default of gpt option at cmdline parsing (cheeselee) - Change the root password spoke GUI design (vslavik) - Add release notes for visible warnings from initrd (jkonecny) - Split NTP dialog to its own glade file (vslavik) --- .gitignore | 1 + anaconda.spec | 24 ++++++++++++++++++++++-- sources | 2 +- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index fc109b6..0f73443 100644 --- a/.gitignore +++ b/.gitignore @@ -294,3 +294,4 @@ /anaconda-35.19.tar.bz2 /anaconda-35.20.tar.bz2 /anaconda-35.21.tar.bz2 +/anaconda-35.22.1.tar.bz2 diff --git a/anaconda.spec b/anaconda.spec index aa0c455..e35c187 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,6 +1,6 @@ Summary: Graphical system installer Name: anaconda -Version: 35.21 +Version: 35.22.1 Release: 1%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -212,7 +212,7 @@ Requires: device-mapper-multipath %if ! 0%{?rhel} Requires: zram-generator-defaults %else -Requires: rust-zram-generator +Requires: zram-generator %endif # Display stuff moved from lorax templates Requires: xorg-x11-drivers @@ -224,6 +224,7 @@ Requires: gsettings-desktop-schemas Requires: nm-connection-editor Requires: librsvg2 Requires: gnome-kiosk +Requires: brltty %description install-img-deps The anaconda-install-img-deps metapackage lists all boot.iso installation image dependencies. @@ -405,6 +406,25 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog +* Tue Aug 24 2021 Martin Kolman - 35.22.1-1 +- Adjust configuration options for Fedora 35 (mkolman) +- fsset: Ignore all swap activation errors in turn_on_swap (vtrefny) +- Don't try to use line buffering in binary mode (vponcova) +- Add release notes for NTP dialog change (vslavik) +- Change the NTP server dialog design (vslavik) +- Rename spoke to Root Account (vslavik) +- Don't set default of gpt option at cmdline parsing (cheeselee) +- Change the root password spoke GUI design (vslavik) +- Add release notes for visible warnings from initrd (jkonecny) +- Split NTP dialog to its own glade file (vslavik) + +* Tue Aug 10 2021 Martin Kolman - 35.22-1 +- Fix dependency on zram-generator in RHEL (sgallagh) +- tests: Fix failing ClearPartTestCase with latest blivet (vtrefny) +- Add brltty to boot.iso with default configuration (vslavik) +- Fix admin user password condition handling in TUI (854182924) +- Fix typo in docstring (vslavik) + * Thu Jul 29 2021 Martin Kolman - 35.21-1 - Add release notes for packaging log in tmux (jkonecny) - Small fixes in the subscription structures (vponcova) diff --git a/sources b/sources index 41f63f8..b9a1d9b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (anaconda-35.21.tar.bz2) = 4100334c59c4ee36f120377c193272fa40c381049b767de487b8ded3e883146aaf0d09ddd0c5d437524de4cf457e2bd8ca97b35336c86aeb2927ea0263958bcb +SHA512 (anaconda-35.22.1.tar.bz2) = 520c217291933c120194a2ef52e3d45379331885e37fd9989c44cb57b1450c87967970f10d6d4a0079bb7a32851581943421a2f77487415e75f8fa02be6b2659 From d2764f5d6daebd64dd7c5e49299a5531c608720f Mon Sep 17 00:00:00 2001 From: Martin Kolman Date: Thu, 16 Sep 2021 15:24:43 +0200 Subject: [PATCH 2/7] New version 35.22.1-2 - The NTP server dialog without entries shouldn't crash (#2001591) (vponcova) --- ...ialog-without-entries-shouldn-t-cras.patch | 95 +++++++++++++++++++ anaconda.spec | 9 +- 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch diff --git a/0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch b/0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch new file mode 100644 index 0000000..2954768 --- /dev/null +++ b/0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch @@ -0,0 +1,95 @@ +From 266bdeeb95cd5bf16039207ab4a101f6471d4a1e Mon Sep 17 00:00:00 2001 +From: Vendula Poncova +Date: Tue, 7 Sep 2021 14:15:15 +0200 +Subject: [PATCH] The NTP server dialog without entries shouldn't crash + (#2001591) + +Don't crash if there are no NTP servers in the dialog. + +Resolves: rhbz#2001591 +--- + pyanaconda/ui/gui/spokes/lib/ntp_dialog.py | 41 ++++++++++++++-------- + 1 file changed, 26 insertions(+), 15 deletions(-) + +diff --git a/pyanaconda/ui/gui/spokes/lib/ntp_dialog.py b/pyanaconda/ui/gui/spokes/lib/ntp_dialog.py +index 078da9e693..c81858573a 100644 +--- a/pyanaconda/ui/gui/spokes/lib/ntp_dialog.py ++++ b/pyanaconda/ui/gui/spokes/lib/ntp_dialog.py +@@ -28,10 +28,6 @@ from pyanaconda.ui.gui import GUIObject + from pyanaconda.ui.gui.utils import override_cell_property + from pyanaconda.timezone import NTP_SERVICE + +-import gi +-gi.require_version("Gtk", "3.0") +-from gi.repository import Gtk +- + log = get_module_logger(__name__) + + # constants for server store indices +@@ -102,19 +98,36 @@ class NTPConfigDialog(GUIObject): + + return rc + ++ def _get_last_entry_itr(self): ++ """Get itr of the last entry.""" ++ index = len(self._serversStore) - 1 ++ ++ if index < 0: ++ return None ++ ++ return self._serversStore.get_iter_from_string(str(index)) ++ ++ def _is_last_entry_unedited(self): ++ """Is the last entry unedited?""" ++ itr = self._get_last_entry_itr() ++ ++ if not itr: ++ return False ++ ++ server = self._serversStore[itr][SERVER_OBJECT] ++ return server.hostname == SERVER_STARTING_STRING ++ + def _cleanup_unedited_entry(self): + """Clean up unedited entry. + + There can be only one, at the very end. + """ +- if self._servers[-1].hostname == SERVER_STARTING_STRING: +- pass +- num = len(self._serversStore) +- path = Gtk.TreePath(num - 1) +- itr = self._serversStore.get_iter(path) +- self._serversStore.remove(itr) +- del self._servers[-1] ++ if not self._is_last_entry_unedited(): ++ return + ++ itr = self._get_last_entry_itr() ++ self._serversStore.remove(itr) ++ del self._servers[-1] + + def _add_row(self, server): + """Add a new row for the given NTP server. +@@ -163,7 +176,7 @@ class NTPConfigDialog(GUIObject): + """ + # check if there is any unedited server + # exactly zero or one such server can exist, at last position only +- if not self._servers[-1].hostname == SERVER_STARTING_STRING: ++ if not self._is_last_entry_unedited(): + # no unedited leftover, so make a new server with a reasonable guess about the defaults + server = TimeSourceData() + server.type = TIME_SOURCE_SERVER +@@ -175,9 +188,7 @@ class NTPConfigDialog(GUIObject): + self._add_row(server) + + # select the correct row - it is always the last one +- num = len(self._serversStore) +- path = Gtk.TreePath(num - 1) +- itr = self._serversStore.get_iter(path) ++ itr = self._get_last_entry_itr() + selection = self._serversView.get_selection() + selection.select_iter(itr) + self._serversView.grab_focus() +-- +2.31.1 + diff --git a/anaconda.spec b/anaconda.spec index e35c187..b94fcbb 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ Summary: Graphical system installer Name: anaconda Version: 35.22.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -12,6 +12,10 @@ URL: http://fedoraproject.org/wiki/Anaconda # make dist Source0: %{name}-%{version}.tar.bz2 +# FE fix for NTP server dialog +# https://bugzilla.redhat.com/show_bug.cgi?id=2001591 +Patch1: 0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch + # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -406,6 +410,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog +* Thu Sep 16 2021 Martin Kolman - 35.22.1-2 +- The NTP server dialog without entries shouldn't crash (#2001591) (vponcova) + * Tue Aug 24 2021 Martin Kolman - 35.22.1-1 - Adjust configuration options for Fedora 35 (mkolman) - fsset: Ignore all swap activation errors in turn_on_swap (vtrefny) From a7b0e4c9b0391e2de3e22edf77dcc6a4feb1068b Mon Sep 17 00:00:00 2001 From: Martin Kolman Date: Thu, 30 Sep 2021 18:47:56 +0200 Subject: [PATCH 3/7] New version 35.22.2-1 In installer environment set static, not transient hostname (rvykydal) Payload should wait for all storage related threads to finish (mkolman) Set an upper bound to entered sizes (#1992585) (vponcova) Handle new time zones in GUI after earlier switch to zoneinfo (vslavik) Do not stretch NTP toggle in GUI (vslavik) The NTP server dialog without entries shouldn't crash (#2001591) (vponcova) Set hostname also from ip= static configuration without device (#1988521) (rvykydal) Fix Removed options inst.[product|variant] were subsections (jkonecny) Cleanup unneeded NFS repo with rd.live.ram parameter (mmatsuya) --- .gitignore | 1 + ...ialog-without-entries-shouldn-t-cras.patch | 95 ------------------- anaconda.spec | 19 ++-- sources | 2 +- 4 files changed, 14 insertions(+), 103 deletions(-) delete mode 100644 0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch diff --git a/.gitignore b/.gitignore index 0f73443..6873b5f 100644 --- a/.gitignore +++ b/.gitignore @@ -295,3 +295,4 @@ /anaconda-35.20.tar.bz2 /anaconda-35.21.tar.bz2 /anaconda-35.22.1.tar.bz2 +/anaconda-35.22.2.tar.bz2 diff --git a/0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch b/0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch deleted file mode 100644 index 2954768..0000000 --- a/0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 266bdeeb95cd5bf16039207ab4a101f6471d4a1e Mon Sep 17 00:00:00 2001 -From: Vendula Poncova -Date: Tue, 7 Sep 2021 14:15:15 +0200 -Subject: [PATCH] The NTP server dialog without entries shouldn't crash - (#2001591) - -Don't crash if there are no NTP servers in the dialog. - -Resolves: rhbz#2001591 ---- - pyanaconda/ui/gui/spokes/lib/ntp_dialog.py | 41 ++++++++++++++-------- - 1 file changed, 26 insertions(+), 15 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/lib/ntp_dialog.py b/pyanaconda/ui/gui/spokes/lib/ntp_dialog.py -index 078da9e693..c81858573a 100644 ---- a/pyanaconda/ui/gui/spokes/lib/ntp_dialog.py -+++ b/pyanaconda/ui/gui/spokes/lib/ntp_dialog.py -@@ -28,10 +28,6 @@ from pyanaconda.ui.gui import GUIObject - from pyanaconda.ui.gui.utils import override_cell_property - from pyanaconda.timezone import NTP_SERVICE - --import gi --gi.require_version("Gtk", "3.0") --from gi.repository import Gtk -- - log = get_module_logger(__name__) - - # constants for server store indices -@@ -102,19 +98,36 @@ class NTPConfigDialog(GUIObject): - - return rc - -+ def _get_last_entry_itr(self): -+ """Get itr of the last entry.""" -+ index = len(self._serversStore) - 1 -+ -+ if index < 0: -+ return None -+ -+ return self._serversStore.get_iter_from_string(str(index)) -+ -+ def _is_last_entry_unedited(self): -+ """Is the last entry unedited?""" -+ itr = self._get_last_entry_itr() -+ -+ if not itr: -+ return False -+ -+ server = self._serversStore[itr][SERVER_OBJECT] -+ return server.hostname == SERVER_STARTING_STRING -+ - def _cleanup_unedited_entry(self): - """Clean up unedited entry. - - There can be only one, at the very end. - """ -- if self._servers[-1].hostname == SERVER_STARTING_STRING: -- pass -- num = len(self._serversStore) -- path = Gtk.TreePath(num - 1) -- itr = self._serversStore.get_iter(path) -- self._serversStore.remove(itr) -- del self._servers[-1] -+ if not self._is_last_entry_unedited(): -+ return - -+ itr = self._get_last_entry_itr() -+ self._serversStore.remove(itr) -+ del self._servers[-1] - - def _add_row(self, server): - """Add a new row for the given NTP server. -@@ -163,7 +176,7 @@ class NTPConfigDialog(GUIObject): - """ - # check if there is any unedited server - # exactly zero or one such server can exist, at last position only -- if not self._servers[-1].hostname == SERVER_STARTING_STRING: -+ if not self._is_last_entry_unedited(): - # no unedited leftover, so make a new server with a reasonable guess about the defaults - server = TimeSourceData() - server.type = TIME_SOURCE_SERVER -@@ -175,9 +188,7 @@ class NTPConfigDialog(GUIObject): - self._add_row(server) - - # select the correct row - it is always the last one -- num = len(self._serversStore) -- path = Gtk.TreePath(num - 1) -- itr = self._serversStore.get_iter(path) -+ itr = self._get_last_entry_itr() - selection = self._serversView.get_selection() - selection.select_iter(itr) - self._serversView.grab_focus() --- -2.31.1 - diff --git a/anaconda.spec b/anaconda.spec index b94fcbb..5051063 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ Summary: Graphical system installer Name: anaconda -Version: 35.22.1 -Release: 2%{?dist} +Version: 35.22.2 +Release: 1%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -12,10 +12,6 @@ URL: http://fedoraproject.org/wiki/Anaconda # make dist Source0: %{name}-%{version}.tar.bz2 -# FE fix for NTP server dialog -# https://bugzilla.redhat.com/show_bug.cgi?id=2001591 -Patch1: 0001-The-NTP-server-dialog-without-entries-shouldn-t-cras.patch - # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -410,8 +406,17 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog -* Thu Sep 16 2021 Martin Kolman - 35.22.1-2 +* Thu Sep 30 2021 Martin Kolman - 35.22.2-1 +- In installer environment set static, not transient hostname (rvykydal) +- Payload should wait for all storage related threads to finish (mkolman) +- Set an upper bound to entered sizes (#1992585) (vponcova) +- Handle new time zones in GUI after earlier switch to zoneinfo (vslavik) +- Do not stretch NTP toggle in GUI (vslavik) - The NTP server dialog without entries shouldn't crash (#2001591) (vponcova) +- Set hostname also from ip= static configuration without device (#1988521) + (rvykydal) +- Fix Removed options inst.[product|variant] were subsections (jkonecny) +- Cleanup unneeded NFS repo with rd.live.ram parameter (mmatsuya) * Tue Aug 24 2021 Martin Kolman - 35.22.1-1 - Adjust configuration options for Fedora 35 (mkolman) diff --git a/sources b/sources index b9a1d9b..bc592c6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (anaconda-35.22.1.tar.bz2) = 520c217291933c120194a2ef52e3d45379331885e37fd9989c44cb57b1450c87967970f10d6d4a0079bb7a32851581943421a2f77487415e75f8fa02be6b2659 +SHA512 (anaconda-35.22.2.tar.bz2) = 19cf30e88ccc32e45da0dd238cacccd5ff9193f9b2eccc611bf3d4d1d9cf3a73a12a92027d4fcb8bfa113b9e6333bec3170793c3dd091215ed21624a53e2b367 From b4170415e2a584fd8fbae39f709fe5410958adef Mon Sep 17 00:00:00 2001 From: Martin Kolman Date: Fri, 8 Oct 2021 22:44:46 +0200 Subject: [PATCH 4/7] New version 35.22.2-2 Revert "Install kbd-legacy if keyboard layout is "fi" (#1955793) (vponcova) --- 0001-revert-kbd-legacy-install-for-fi.patch | 30 +++++++++++++++++++++ anaconda.spec | 9 ++++++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 0001-revert-kbd-legacy-install-for-fi.patch diff --git a/0001-revert-kbd-legacy-install-for-fi.patch b/0001-revert-kbd-legacy-install-for-fi.patch new file mode 100644 index 0000000..6629c6e --- /dev/null +++ b/0001-revert-kbd-legacy-install-for-fi.patch @@ -0,0 +1,30 @@ +From e07d14aef9fa315d5aea6967aa1517b534400731 Mon Sep 17 00:00:00 2001 +From: Vendula Poncova +Date: Mon, 20 Sep 2021 12:10:42 +0200 +Subject: [PATCH] Revert "Install kbd-legacy if keyboard layout is "fi" + (#1955793)" + +This reverts commit b9c33400831024394e351753d7e413643f6a4757. + +Resolves: rhbz#2003937 +--- + pyanaconda/modules/localization/localization.py | 6 ++---- + 1 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/pyanaconda/modules/localization/localization.py b/pyanaconda/modules/localization/localization.py +index 52015335f69..6a2c8be3ac0 100644 +--- a/pyanaconda/modules/localization/localization.py ++++ b/pyanaconda/modules/localization/localization.py +@@ -196,10 +196,8 @@ def collect_requirements(self): + """ + requirements = [] + +- # Install support for non-ascii keyboard layouts (#1919483) +- # and special case "fi" layout (#1955793) +- if self.vc_keymap and (self.vc_keymap == "fi" or +- not langtable.supports_ascii(self.vc_keymap)): ++ # Install support for non-ascii keyboard layouts (#1919483). ++ if self.vc_keymap and not langtable.supports_ascii(self.vc_keymap): + requirements.append(Requirement.for_package( + package_name="kbd-legacy", + reason="Required to support the '{}' keymap.".format(self.vc_keymap) diff --git a/anaconda.spec b/anaconda.spec index 5051063..d3abc5b 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ Summary: Graphical system installer Name: anaconda Version: 35.22.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -12,6 +12,10 @@ URL: http://fedoraproject.org/wiki/Anaconda # make dist Source0: %{name}-%{version}.tar.bz2 +# F35 final freeze exception - Use default Finnish xkb-converted layout +# https://bugzilla.redhat.com/show_bug.cgi?id=2001787 +Patch1: 0001-revert-kbd-legacy-install-for-fi.patch + # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -406,6 +410,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog +* Fri Oct 08 2021 Martin Kolman - 35.22.2-2 +- Revert "Install kbd-legacy if keyboard layout is "fi" (#1955793) (vponcova) + * Thu Sep 30 2021 Martin Kolman - 35.22.2-1 - In installer environment set static, not transient hostname (rvykydal) - Payload should wait for all storage related threads to finish (mkolman) From 7edc7e5dc64c7f4d1a58171e379482d4d362ddab Mon Sep 17 00:00:00 2001 From: Martin Kolman Date: Mon, 25 Oct 2021 19:59:36 +0200 Subject: [PATCH 5/7] New version 35.22.2-3 - Show correctly that no admin user is set up (#2015508) (vslavik) --- ...rrectly-that-no-admin-user-is-set-up.patch | 87 +++++++++++++++++++ anaconda.spec | 9 +- 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 0002-Show-correctly-that-no-admin-user-is-set-up.patch diff --git a/0002-Show-correctly-that-no-admin-user-is-set-up.patch b/0002-Show-correctly-that-no-admin-user-is-set-up.patch new file mode 100644 index 0000000..49ddfa4 --- /dev/null +++ b/0002-Show-correctly-that-no-admin-user-is-set-up.patch @@ -0,0 +1,87 @@ +From 1e1ee086c980fa8d53320b31e85ec10c81bd5f57 Mon Sep 17 00:00:00 2001 +From: Vladimir Slavik +Date: Mon, 25 Oct 2021 13:29:34 +0200 +Subject: [PATCH] Show correctly that no admin user is set up + +Previously, it was possible to satisfy the conditions just by setting root +password, even if root was locked. + +The recent redesign of root spoke made the error more prominent, but the +situation could be recreated even before. + +This changes both root and user spoke to signal the incomplete user. + +Resolves: rhbz#2015508 +--- + pyanaconda/ui/gui/spokes/root_password.py | 14 ++++++++++++-- + pyanaconda/ui/gui/spokes/user.py | 15 +++++++++++++-- + 2 files changed, 25 insertions(+), 4 deletions(-) + +diff --git a/pyanaconda/ui/gui/spokes/root_password.py b/pyanaconda/ui/gui/spokes/root_password.py +index 8271101316..fa50e30623 100644 +--- a/pyanaconda/ui/gui/spokes/root_password.py ++++ b/pyanaconda/ui/gui/spokes/root_password.py +@@ -186,7 +186,10 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) + + @property + def mandatory(self): +- """Only mandatory if no admin user has been requested.""" ++ """Only mandatory if no admin user has been requested. ++ ++ See also doc for the property completed(). ++ """ + return not self._users_module.CheckAdminUserExists() + + def apply(self): +@@ -216,7 +219,14 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) + + @property + def completed(self): +- return self._users_module.IsRootPasswordSet ++ """Is the spoke completed? ++ ++ For root and user, the mandatory+completed pair is a complicated hack. Having an usable ++ admin user is mandatory, but it is not clear if it should be an unlocked root, or a sudoer. ++ Thus, mandatory on both spokes checks admin user, and complete then checks again: Both the ++ spoke-specific completion condition, as well as existence of an admin. ++ """ ++ return self._users_module.IsRootPasswordSet and self._users_module.CheckAdminUserExists() + + @property + def sensitive(self): +diff --git a/pyanaconda/ui/gui/spokes/user.py b/pyanaconda/ui/gui/spokes/user.py +index dacc71cff3..b389d72758 100644 +--- a/pyanaconda/ui/gui/spokes/user.py ++++ b/pyanaconda/ui/gui/spokes/user.py +@@ -459,7 +459,10 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): + + @property + def mandatory(self): +- """Only mandatory if no admin user has been requested.""" ++ """Only mandatory if no admin user has been requested. ++ ++ See also doc for the property completed(). ++ """ + return not self._users_module.CheckAdminUserExists() + + def apply(self): +@@ -503,7 +506,15 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): + + @property + def completed(self): +- return bool(get_user_list(self._users_module)) ++ """Is the spoke completed? ++ ++ For root and user, the mandatory+completed pair is a complicated hack. Having an usable ++ admin user is mandatory, but it is not clear if it should be an unlocked root, or a sudoer. ++ Thus, mandatory on both spokes checks admin user, and complete then checks again: Both the ++ spoke-specific completion condition, as well as existence of an admin. ++ """ ++ return bool(get_user_list(self._users_module)) \ ++ and self._users_module.CheckAdminUserExists() + + def on_password_required_toggled(self, togglebutton=None, data=None): + """Called by Gtk callback when the "Use password" check +-- +2.31.1 + diff --git a/anaconda.spec b/anaconda.spec index d3abc5b..0acb16b 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ Summary: Graphical system installer Name: anaconda Version: 35.22.2 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -16,6 +16,10 @@ Source0: %{name}-%{version}.tar.bz2 # https://bugzilla.redhat.com/show_bug.cgi?id=2001787 Patch1: 0001-revert-kbd-legacy-install-for-fi.patch +# F35 final fix admin user handling +# https://bugzilla.redhat.com/show_bug.cgi?id=2015508 +Patch2: 0002-Show-correctly-that-no-admin-user-is-set-up.patch + # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -410,6 +414,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog +* Mon Oct 25 2021 Martin Kolman - 35.22.2-3 +- Show correctly that no admin user is set up (#2015508) (vslavik) + * Fri Oct 08 2021 Martin Kolman - 35.22.2-2 - Revert "Install kbd-legacy if keyboard layout is "fi" (#1955793) (vponcova) From 01ccc159e10b4eaa8b056ae3276826faf27e285f Mon Sep 17 00:00:00 2001 From: Martin Kolman Date: Tue, 8 Feb 2022 18:47:05 +0100 Subject: [PATCH 6/7] New version 35.22.2-4 - Do not crash on dangling symlink /etc/resolv.conf (#2019579) (rvykydal) --- ...ash-on-dangling-resolve-conf-symlink.patch | 22 +++++++++++++++++++ anaconda.spec | 8 ++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 0003-do-not-crash-on-dangling-resolve-conf-symlink.patch diff --git a/0003-do-not-crash-on-dangling-resolve-conf-symlink.patch b/0003-do-not-crash-on-dangling-resolve-conf-symlink.patch new file mode 100644 index 0000000..ac8a808 --- /dev/null +++ b/0003-do-not-crash-on-dangling-resolve-conf-symlink.patch @@ -0,0 +1,22 @@ +From 614aec9fb4bf1c21c5e9769deee4bafb94cd10b1 Mon Sep 17 00:00:00 2001 +From: Radek Vykydal +Date: Fri, 12 Nov 2021 15:09:13 +0100 +Subject: [PATCH] Do not crash on dangling symlink /etc/resolv.conf (#2019579) + +--- + pyanaconda/modules/network/installation.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pyanaconda/modules/network/installation.py b/pyanaconda/modules/network/installation.py +index fe850cb638..6de7ea05c8 100644 +--- a/pyanaconda/modules/network/installation.py ++++ b/pyanaconda/modules/network/installation.py +@@ -240,7 +240,7 @@ def _copy_file_to_root(self, root, config_file, overwrite=False, follow_symlinks + if not os.path.isfile(config_file): + return + fpath = os.path.normpath(root + config_file) +- if os.path.isfile(fpath) and not overwrite: ++ if (os.path.isfile(fpath) or os.path.islink(fpath)) and not overwrite: + return + if not os.path.isdir(os.path.dirname(fpath)): + util.mkdirChain(os.path.dirname(fpath)) diff --git a/anaconda.spec b/anaconda.spec index 0acb16b..94ecb12 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ Summary: Graphical system installer Name: anaconda Version: 35.22.2 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -20,6 +20,9 @@ Patch1: 0001-revert-kbd-legacy-install-for-fi.patch # https://bugzilla.redhat.com/show_bug.cgi?id=2015508 Patch2: 0002-Show-correctly-that-no-admin-user-is-set-up.patch +# F35 post-release fix for Fedora IoT respins +Patch3: 0003-do-not-crash-on-dangling-resolve-conf-symlink.patch + # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -414,6 +417,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog +* Tue Feb 08 2022 Martin Kolman - 35.22.2-4 +- Do not crash on dangling symlink /etc/resolv.conf (#2019579) (rvykydal) + * Mon Oct 25 2021 Martin Kolman - 35.22.2-3 - Show correctly that no admin user is set up (#2015508) (vslavik) From 1c2e44fbb135590ae3ca409bcc793a12bf1058a2 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 19 May 2022 12:35:31 -0700 Subject: [PATCH 7/7] Backport PR #4125 to fix icon theme problems on KDE --- ...-that-we-want-the-Adwaita-icon-theme.patch | 46 +++++++++++++++++++ anaconda.spec | 9 +++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 0001-Specify-that-we-want-the-Adwaita-icon-theme.patch diff --git a/0001-Specify-that-we-want-the-Adwaita-icon-theme.patch b/0001-Specify-that-we-want-the-Adwaita-icon-theme.patch new file mode 100644 index 0000000..0a6d776 --- /dev/null +++ b/0001-Specify-that-we-want-the-Adwaita-icon-theme.patch @@ -0,0 +1,46 @@ +From 427f98963643e7f823f650dab015c80d854aa2d1 Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Thu, 19 May 2022 09:50:17 -0700 +Subject: [PATCH] Specify that we want the Adwaita icon theme + +Back in 38556e7e in 2016 when anaconda switched from 'gnome' +icon theme, intending to use 'Adwaita' instead, we dropped the +line that specifically declares what theme anaconda wants to +use. Presumably we expected GTK would always pick Adwaita for +us. However, with GTK 3.24.34, this seems to not reliably happen +on KDE. On KDE images, the breeze icon theme is installed, and +it also provides many of the icons anaconda uses. When running +anaconda on a KDE live image with GTK 3.24.34, we're often seeing +the icons from the breeze theme used instead of the icons from +the Adwaita theme. This happened in 4 out of 4 tests on openQA +prod, 3 out of 4 tests on openQA stg, and 5 out of 5 tests I +ran in a VM myself. I then applied this change directly to the +file in the VM and re-tested another 5 times; all 5 times the +right icons were shown. + +I'm not sure why this is suddenly a problem with GTK 3.24.34 +when it never was before even though both icon themes have been +in KDE for years, but this seems correct anyway. We definitely +want anaconda to use the Adwaita icons, not ones from any other +theme. + +Signed-off-by: Adam Williamson +--- + pyanaconda/ui/gui/__init__.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pyanaconda/ui/gui/__init__.py b/pyanaconda/ui/gui/__init__.py +index d458b66f14..428f30e744 100644 +--- a/pyanaconda/ui/gui/__init__.py ++++ b/pyanaconda/ui/gui/__init__.py +@@ -754,6 +754,7 @@ class GraphicalUserInterface(UserInterface): + # Set some program-wide settings. + settings = Gtk.Settings.get_default() + settings.set_property("gtk-font-name", "Cantarell") ++ settings.set_property("gtk-icon-theme-name", "Adwaita") + + # Get the path to the application data + data_path = os.environ.get("ANACONDA_DATA", "/usr/share/anaconda") +-- +2.36.1 + diff --git a/anaconda.spec b/anaconda.spec index 94ecb12..531c7f7 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ Summary: Graphical system installer Name: anaconda Version: 35.22.2 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -23,6 +23,10 @@ Patch2: 0002-Show-correctly-that-no-admin-user-is-set-up.patch # F35 post-release fix for Fedora IoT respins Patch3: 0003-do-not-crash-on-dangling-resolve-conf-symlink.patch +# https://github.com/rhinstaller/anaconda/pull/4125 +# Specify the GTK icon theme to use to make sure we get the right ones +Patch4: 0001-Specify-that-we-want-the-Adwaita-icon-theme.patch + # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -417,6 +421,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog +* Thu May 19 2022 Adam Williamson - 35.22.2-5 +- Backport PR #4125 to fix icon theme problems on KDE + * Tue Feb 08 2022 Martin Kolman - 35.22.2-4 - Do not crash on dangling symlink /etc/resolv.conf (#2019579) (rvykydal)