Upgrading Fedora 42 to 43
Upgrading Fedora Sericea (Atomic Sway) from 42 to 43
I recently had the displeasure of upgrading my Fedora (Atomic Sway) 42 to 43, and my takeaway from this experience is that Atomic Fedora is not ready for the mainstream.
Why do I say that? Well, I used to be a huge advocate for Atomic Linux, ever since I started using it in 2022, my initial view was that the safety of atomic updates would be great for non-technical people. An opinion that now has drastically changed.
This post will do two things, document all the correct steps I should have taken to upgrade in retrospect, while complaining about it.
Prerequisites
Check for any layered packages that have been dropped from the new release, which is impossible without going through every package on the Fedora website. So the suggested method is just go ahead and try to rebase, and see if you get any errors.
In my case, mozilla-fira-mono-fonts and mozilla-fira-sans-fonts were dropped from Fedora 43 and had to be removed before rebasing.
sudo rpm-ostree uninstall mozilla-fira-mono-fonts mozilla-fira-sans-fonts
Step 1: Remove RPMFusion and codec packages
RPMFusion release packages are version-specific and must be removed before rebasing. The codec packages that depend on RPMFusion repos must also be removed first to avoid a dependency deadlock during the rebase.
sudo rpm-ostree uninstall \
gstreamer1-plugins-bad-freeworld \
gstreamer1-plugins-ugly \
libavcodec-freeworld
Step 2: Rebase to Fedora 43
sudo rpm-ostree rebase fedora:fedora/43/x86_64/sericea
Reboot into Fedora 43.
systemctl reboot
Step 3: Install RPMFusion release packages for F43
sudo rpm-ostree install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-43.noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-43.noarch.rpm
Reboot to activate the RPMFusion repos.
Step 4: Reinstall codec packages
sudo rpm-ostree install \
gstreamer1-plugins-bad-freeworld \
gstreamer1-plugins-ugly \
libavcodec-freeworld
Reboot to apply.
Step 4: Post-upgrade tasks
Python packages
User-installed Python packages (via pip) will break after the upgrade since Fedora 43 ships Python 3.14. Reinstall them with python -m ensurepip --user followed by python -m pip install --user tmuxp
pinentry
My setup to run ssh-add was completely broken.
rpm-ostree install openssh-askpass pinentry-tty
Notes
- The codec packages must be handled in a separate transaction from the RPMFusion release packages. Installing them together fails because the RPMFusion repos are not yet active when the release packages are being installed, causing a dependency resolution deadlock.
wireguard-toolsis now included in the F43 base image and no longer needs to be a layered package.