Bug 2368116 - Unification of /usr/sbin and /usr/bin blocked by ldconfig and iconvconfig
Summary: Unification of /usr/sbin and /usr/bin blocked by ldconfig and iconvconfig
Keywords:
Status: CLOSED CANTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: glibc
Version: 42
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Carlos O'Donell
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-05-22 22:40 UTC by Kyeong Ro Lee
Modified: 2025-08-15 19:11 UTC (History)
16 users (show)

Fixed In Version: glibc-2.41-6.fc42
Clone Of:
Environment:
Last Closed: 2025-07-11 13:10:10 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Kyeong Ro Lee 2025-05-22 22:40:08 UTC
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.

Comment 1 Carlos O'Donell 2025-05-30 13:34:13 UTC
Thank you for the report!

We've been reviewing two MRs for this issue:
https://src.fedoraproject.org/rpms/glibc/pull-request/145
https://src.fedoraproject.org/rpms/glibc/pull-request/144

We have just merged PR 144 and started a Fedora 42 build to solve this issue.

Fedora Rawhide should follow on after that.

Comment 2 Florian Weimer 2025-07-11 13:10:10 UTC
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.

Comment 3 Raman Gupta 2025-07-29 17:42:57 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.