In fedora 42, /usr/sbin becomes a symbolic link to /usr/bin and an upgrade from an older release is supposed to do the merge as long as all the files in /usr/sbin are symlinks.
I had several binaries in /usr/sbin that blocked the merge, but most of the packages providing them have been fixed or are being worked on.
Now I have two regular files that seem problematic: ldconfig and iconvconfig, both from glibc.
One interesting thing:
$ rpm -ql glibc
does not contain /usr/sbin/ldconfig anymore, but with
$ rpm -qf /usr/sbin/ldconfig
I get "glibc-2.41-5.fc42.x86_64". I tried
$ /usr/sbin/ldconfig --version
and surprisingly it is from glibc 2.40, i.e. f41! It seems this old binary wasn't properly removed during the upgrade for some reason. I suspect
https://src.fedoraproject.org/rpms/glibc/blob/f42/f/glibc.spec#_363
might be one reason, which was added in f38 (https://src.fedoraproject.org/rpms/glibc/c/936bce9f4a226fc37c7865e89544f79105b435d3?branch=rawhide) as a bugfix (see https://bugzilla.redhat.com/show_bug.cgi?id=2188550).
Now iconvconfig; with
$ rpm -qf /usr/sbin/iconvconfig
I get "file /usr/sbin/iconvconfig is not owned by any package". Just like ldconfig,
$ /usr/sbin/iconvconfig --version
shows that it is also from glibc 2.40, from the old f41 installation. I have checked that /usr/bin/ldconfig and /usr/bin/iconvconfig are indeed from glibc 2.41.
I believe the old files should have been automatically removed during the release upgrade process or any glibc update (I think there was at least one after the f42 release) that followed, otherwise it would certainly block the /usr/sbin and /usr/bin merge.
Reproducible: Always
Steps to Reproduce:
1. Upgrade from Fedora 41 to Fedora 42
2. Update the glibc package if available
Actual Results:
/usr/sbin/iconvconfig and /usr/sbin/ldconfig from glibc 2.40 (Fedora 41) are not removed.
Expected Results:
/usr/sbin/iconvconfig and /usr/sbin/ldconfig from glibc 2.40 are automatically removed during the upgrade or update process.
This could not be implemented because of the impact on rpm-ostree. I think we need manual or tool-supported cleanup for this. The change attempt to Fedorar 42 has been reverted.
I had this issue as well. The manual fix is to delete the offending files and reinstall glibc:
rm /usr/sbin/ldconfig
rm /usr/sbin/iconvconfig
dnf reinstall glibc
The reinstall step will recreate the files as the correct symlinks.