diff --git a/.gitignore b/.gitignore index fc109b6..6873b5f 100644 --- a/.gitignore +++ b/.gitignore @@ -294,3 +294,5 @@ /anaconda-35.19.tar.bz2 /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-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/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/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/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 aa0c455..531c7f7 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ Summary: Graphical system installer Name: anaconda -Version: 35.21 -Release: 1%{?dist} +Version: 35.22.2 +Release: 5%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -12,6 +12,21 @@ 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 + +# 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 + +# 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). @@ -212,7 +227,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 +239,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 +421,49 @@ 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) + +* 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) + +* 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) +- 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..bc592c6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (anaconda-35.21.tar.bz2) = 4100334c59c4ee36f120377c193272fa40c381049b767de487b8ded3e883146aaf0d09ddd0c5d437524de4cf457e2bd8ca97b35336c86aeb2927ea0263958bcb +SHA512 (anaconda-35.22.2.tar.bz2) = 19cf30e88ccc32e45da0dd238cacccd5ff9193f9b2eccc611bf3d4d1d9cf3a73a12a92027d4fcb8bfa113b9e6333bec3170793c3dd091215ed21624a53e2b367