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-tools is now included in the F43 base image and no longer needs to be a layered package.