Success. System is now fully on F43, no more duplicates, and dnf check is clean.
The key “knot” blocking transactions seems to have been due to a weird multi-arch, multi-release conflict of files, like this:
Transaction failed: Rpm transaction failed.
- file /usr/share/doc/flac-libs/AUTHORS from install of flac-libs-1.5.0-5.fc43.i686 conflicts with file from package flac-libs-1.4.3-6.fc42.x86_64
So, I removed all 239 i686 packages (first saving the list to file): sudo dnf remove *.i686
After this, sudo dnf upgrade --refresh --releasever=43 was able to complete successfully.
Then, sudo dnf distro-sync --refresh --releasever 43 --setopt protected_packages= got rid of the thousands of fc42 duplicate packages:
Transaction Summary:
Installing: 1 package
Upgrading: 2 packages
Replacing: 7 packages
Removing: 4324 packages
Downgrading: 1 package
Total size of inbound packages is 20 MiB. Need to download 20 MiB.
After this operation, 20 GiB will be freed (install 135 MiB, remove 20 GiB).
sudo dnf check reports no issues.
rpm -q $(< olddups) says all of the fc42 packages are not installed. There were 12 fc43 packages in that list for some reason, and those are installed.
SELinux is back in enforcing mode. Files were relabelled. Post-upgrade tasks are completed. Rebooting shows and boots from F43 kernel in grub menu.
Any other checks suggested? Otherwise, I think we’re done here.
Thanks for this. It looked promising but it errored out with "problem with installed package " type issues before starting. dnf5 doesn’t seem to have an equivalent command but at least dnf4 is still available.
Initially, without the [a-h]\*, the upgrade would not start, giving the familiar ‘libdnf5::AssertionError’.
Then I narrowed down with [a-h]\*, [a]\*, and those failed with the file conflict errors.
So I started trying to upgrade packages individually, and some succeeded, until I got stuck on a package with file conflict. Maybe there are other ways, but removing the i686 package was the only/first way I found to resolve the issue. Then the rest of the procedure got unblocked.