I did the same (even updated after the official release date) and still got two binaries from vpnc lying around. I found this vpnc update in updates-testing, which – after updating to it – correctly moved the vpnc binaries to /usr/bin. After that, /usr/sbin only contains symlinks, i.e, find /usr/sbin/ -type f returns nothing.
Still, /usr/sbin is not a symlink to /usr/bin. This is the case even after dnf reinstall filesystem. Is this expected? When will /usr/sbin be turned into a symlink for /usr/bin then?
I also have /usr/sbin/iconvconvert and /usr/sbin/ldconfig that are regular files. Invoking them with the “–version” option I can confirm these are from glibc 2.40, i.e. from Fedora 41. I think these were not properly removed during the upgrade to Fedora 42. I’ve filed a bug, hoping it’s not a duplicate ![]()
I just did an F42->F43 upgrade and it still doesn’t go through.
-rwxr-xr-x. 1 root root 16008 Jul 18 2024 getcap
-rwxr-xr-x. 1 root root 16000 Jul 18 2024 getpcaps
-rwxr-xr-x. 1 root root 32728 Jul 24 03:00 iconvconfig
-rwxr-xr-x. 1 root root 1023376 Jul 24 03:00 ldconfig
-rwxr-xr-x. 1 root root 16160 Jul 17 2024 sasldblistusers2
-rwxr-xr-x. 1 root root 16144 Jul 17 2024 saslpasswd2
-rwxr-xr-x. 1 root root 15992 Jul 18 2024 setcap
this laptop has gone through upgrades since at least F40.
On my main computer, which has seen even more upgrades, the list is much longer:
-rwxr-xr-x. 1 root root 26816 Feb 1 2019 avmcapictrl
-rwxr-xr-x. 1 root root 43760 Feb 1 2019 capiinit
-rwxr-xr-x. 1 root root 51736 Jul 18 2024 capsh
-rwxr-xr-x. 1 root root 15992 Jul 17 2024 cracklib-check
-rwxr-xr-x. 1 root root 15992 Jul 17 2024 cracklib-packer
-rwxr-xr-x. 1 root root 15976 Jul 17 2024 cracklib-unpacker
-rwxr-xr-x. 1 root root 1276792 Jul 25 2019 dibbler-client
-rwxr-xr-x. 1 root root 24216 Jun 24 03:00 faillock
-rwxr-xr-x. 1 root root 24152 Jan 16 2025 fxload
-rwxr-xr-x. 1 root root 16008 Jul 18 2024 getcap
-rwxr-xr-x. 1 root root 16000 Jul 18 2024 getpcaps
-rwxr-xr-x. 1 root root 22128 Feb 1 2019 hisaxctrl
-rwxr-xr-x. 1 root root 22144 Feb 1 2019 icnctrl
-rwxr-xr-x. 1 root root 32728 Jun 21 03:00 iconvconfig
-rwxr-xr-x. 1 root root 30696 Feb 1 2019 imon
-rwxr-xr-x. 1 root root 22192 Feb 1 2019 imontty
-rwxr-xr-x. 1 root root 226056 Feb 1 2019 ipppd
-rwxr-xr-x. 1 root root 26304 Feb 1 2019 ipppstats
-rwxr-xr-x. 1 root root 22136 Feb 1 2019 iprofd
-rwxr-xr-x. 1 root root 89784 Feb 1 2019 isdnctrl
-rwxr-xr-x. 1 root root 388840 Feb 1 2019 isdnlog
-rwxr-xr-x. 1 root root 1023376 Jun 21 03:00 ldconfig
-rwx--s--x. 1 root lock 20256 Jul 18 2024 lockdev
-rwxr-xr-x. 1 root root 22088 Feb 1 2019 loopctrl
-rwxr-xr-x. 1 root root 20168 Jun 24 03:00 mkhomedir_helper
-rwxr-xr-x. 1 root root 32184 Jul 8 2019 mk_passwd
-rwxr-xr-x. 1 root root 47648 Feb 1 2019 mkzonedb
-rwxr-xr-x. 1 root root 20064 Jul 20 2023 nfacct
-rwxr-xr-x. 1 root root 21458 Feb 7 2025 nvmetcli
-rwxr-xr-x. 1 root root 45744 Jan 19 2023 pam_console_apply
-rwsr-xr-x. 1 root root 16000 Jun 24 03:00 pam_timestamp_check
-rwxr-xr-x. 1 root root 24272 Jun 24 03:00 pwhistory_helper
-rwxr-xr-x. 1 root root 30672 Feb 1 2019 rcapid
-rwxr-xr-x. 1 root root 16160 Jul 17 2024 sasldblistusers2
-rwxr-xr-x. 1 root root 16144 Jul 17 2024 saslpasswd2
-rwxr-xr-x. 1 root root 15992 Jul 18 2024 setcap
-rwxr-xr-x. 1 root root 36712 Jul 20 2024 tmpwatch
-rwxr-xr-x. 1 root root 15760 Jul 20 2024 tunctl
-rwxr-xr-x. 1 root root 11728 Jan 19 2025 umount.udisks
-rwsr-xr-x. 1 root root 32568 Jun 24 03:00 unix_chkpwd
-rwx------. 1 root root 36736 Jun 24 03:00 unix_update
-rwxr-xr-x. 1 root root 47600 Feb 1 2019 vboxd
-rwxr-xr-x. 1 root root 1059 Feb 1 2019 vboxmail
-rwxr-xr-x. 1 root root 179208 Aug 1 2020 xinetd
tmpwatch in particualr, puts the bin in usr/sbin, and symlinks to it in usr/bin.
I went through and manually converted to symlinks in both, and reinstalled the filesystem package, which resolved it for me.
tunctl is from tunctl-1.5-32.fc41, which dnf search still shows as available.
nvmetcli is from nvmetcli-0.8-1.fc42.noarch, still available.
tmpwatch is from 2.11-27.fc41, which the f42 upgrade strangely didn’t upgrade. dnf search still shows the fc41 version as available, along fc42 package.
lockdev is from lockdev-1.0.4-0.51.20111007git.fc42.x86_64. a dep of some common packages.
xinetd is from xinetd-2:2.3.15-34.fc33. No longer available.
nfacct is from nfacct-1.0.1-20.fc39. No longer available.
some others may be from careless make install in the past.
All those files have been moved to /usr/bin in their packages. There is an rpm bug which caused it to leave behind binaries. A hacky solution to handle this in glibc was merged (Making sure you're not a bot!), but then it was reverted (error: Package 'glibc' has (currently) unsupported <lua> script in '%posttrans' · Issue #660 · fedora-silverblue/issue-tracker · GitHub).
tunctl failed in the mass rebuild for F42, but it was then built successfully for F43. I don’t think dnf search should list the F41 version. If it does, maybe it’s because the F41 version was held back on your system because of dependencies. In general, it seems that you have a bunch of old packages, and an upgrade in the past was only partial. I guess you could remove the duplicate packages by hand and then the rest of the upgrade should go through.
Making sure you're not a bot! for xinetd and nfacct.
FYI, remctl is another obsolete package which is causing problems:
# ls -l /usr/sbin/remctld
-rwxr-xr-x. 1 root root 82576 Jul 20 2023 /usr/sbin/remctld
# rpm -qf /usr/sbin/remctld
remctl-3.18-8.fc39.x86_64
Added to the PR linked above.
fxload is fixed:
F43: Making sure you're not a bot!
F42: Making sure you're not a bot!
tunctlfailed in the mass rebuild for F42, but it was then built successfully for F43. I don’t thinkdnf searchshould list the F41 version. If it does, maybe it’s because the F41 version was held back on your system because of dependencies
Right. The F43 laptop shows the fc43 package (which installs in /usr/bin). But on the F42 box, the fc41 package is the last available in the package repos, carried over from F42. So that’s the version dnf shows and installs on F42.
FYI:
I found a couple systems where the ebtables-legacy package seems to have been preventing the merge.
# ls -al /usr/sbin | grep -v '/bin/'
total 311
dr-xr-xr-x. 2 root root 288 Feb 27 10:47 .
drwxr-xr-x. 14 root root 15 Dec 17 15:06 ..
lrwxrwxrwx 1 root root 26 Dec 17 15:08 ebtables -> /etc/alternatives/ebtables
lrwxrwxrwx 1 root root 34 Dec 17 15:08 ebtables-restore -> /etc/alternatives/ebtables-restore
lrwxrwxrwx 1 root root 31 Dec 17 15:08 ebtables-save -> /etc/alternatives/ebtables-save
Just removing the package and then reinstalling the filesystem package was a viable workaround in my case.
Background
HI, i (finally) notice the “/usr/sbin cannot be merged yet” message in a F43->F44 upgrade recently. It was caused by my own packaged software in COPR, so i updated it. and delete /capsh getcap getpcaps setcap sasldblistusers2 saslpasswd2 lockdev iconvconfig ldconfig in /usr/sbin, then dnf reinstall filesystem finally works.
And that i just want to make sure all files in /usr/bin is under correct status with comm -13 <(rpm -qla | sort) <(find /usr/bin -type f | sort) , i assume the result is empty , however it still has output /usr/bin/fsck.hfsplus /usr/bin/mkfs.hfsplus.
dnf repoquery -l hfsplus-tools shows it owns the files /bin/fsck.hfsplus and /bin/mkfs.hfsplus , then i check the spec file of hfsplus tools, found that it has a line %define _exec_prefix / . so previously it made %{_sbindir} become /sbin , now it will make %{_sbindir} become /bin.
Problem
So here’s the question , should this packaged to be adjusted or fixed?
If so, i found more packages having similar problem in Fedora 44 (/sbin /usr/bin /usr/sbin) with
dnf repoquery -l | grep -E "^/sbin/" and dnf repoquery -l | grep -E "^/sbin/" |xargs -i dnf repoquery -f {} 2>/dev/null | xargs -i dnf repoquery -i {} 2>/dev/null | grep Source |awk '{print $3}' |sort -u
/sbin/libifp-hotplug
/sbin/mingetty
/sbin/mkbootdisk
/sbin/umount.udisks
-
libifp-1.0.0.2-59.fc44.src.rpm
Problem: in%installsection: install -Dpm 0755 %{SOURCE1} %{buildroot}/sbin/libifp-hotplug and%filessection /sbin/libifp-hotplug (not using macro) -
mingetty-1.08-41.fc44.src.rpm
Problem: in%installsection: install -m 0755 mingetty $RPM_BUILD_ROOT/sbin/ and%filessection /sbin/mingetty (not using macro) -
mkbootdisk-1.5.5-39.fc44.src.rpm
Problem: in Makefile: cp -p mkbootdisk $(BUILDROOT)/sbin/mkbootdisk and in%filessection %attr(755,root,root) /sbin/mkbootdisk (not using macro) -
udisks-1.0.5-31.fc44.src.rpm
Problem: in Makefile and configure.ac $(MKDIR_P) “$(DESTDIR)$(slashsbindir)” and if test “$prefix” = “/usr” -o “$prefix” = “/usr/local” ; then slashsbindir=/sbin , and in%filesection /sbin/umount.udisks (not using macro)
dnf repoquery -l | grep -E "^/usr/bin/" and dnf repoquery -l | grep -E "^/usr/bin/" |xargs -i dnf repoquery -f {} 2>/dev/null | xargs -i dnf repoquery -i {} 2>/dev/null | grep Source |awk '{print $3}' |sort -u
/usr/sbin/artech2ncid
/usr/sbin/cideasy2ncid
/usr/sbin/cjdroute
/usr/sbin/credentials-fetcherd
/usr/sbin/credentials_fetcher_utf16_private.exe
/usr/sbin/credentials_fetcher_utf16_private.runtimeconfig.json
/usr/sbin/ebtables
/usr/sbin/ebtables-restore
/usr/sbin/ebtables-save
/usr/sbin/firewalk
/usr/sbin/idle3ctl
/usr/sbin/ncidd
/usr/sbin/nvmetcli
/usr/sbin/plotnetcfg
/usr/sbin/rpc.rstatd
/usr/sbin/rpc.rusersd
/usr/sbin/rpld
/usr/sbin/sigul_bridge
/usr/sbin/sigul_server
/usr/sbin/sigul_server_add_admin
/usr/sbin/sigul_server_create_db
/usr/sbin/sip2ncid
/usr/sbin/ykval-checksum-clients
/usr/sbin/ykval-checksum-deactivated
/usr/sbin/ykval-export
/usr/sbin/ykval-export-clients
/usr/sbin/ykval-gen-clients
/usr/sbin/ykval-import
/usr/sbin/ykval-import-clients
/usr/sbin/ykval-nagios-queuelength
/usr/sbin/ykval-queue
/usr/sbin/ykval-synchronize
-
cjdns-21.1-16.fc41.src.rpm
orphaned -
credentials-fetcher-1.3.8-7.fc44.src.rpm
Problem: in%installsection install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}/usr/sbin/ and in%files-f %{go_vendor_license_filelist} /usr/sbin/credentials-fetcherd -
ebtables-2.0.11-22.fc44.src.rpm
This is OK , there’s a %ghost %attr(0755,root,root) %{_prefix}/sbin/ebtables -
firewalk-5.0-35.fc41.src.rpm
fixed in f45 (because it failed to build when f44/f43/f42 mass build) -
idle3-tools-0.9.1-24.fc41.src.rpm
fixed in fc45 (because it failed to build when f44/f43/f42 mass build) -
ncid-1.18-5.fc44.src.rpm
Problem: server/Makefile → install -m 755 $(PROG) $(SBIN) and%files%{_prefix}/sbin/ncidd -
nvmetcli-0.8-7.fc44.src.rpm
Problem: %define _sbindir %{_exec_prefix}/sbin -
plotnetcfg-0.4.1-25.fc42.src.rpm
Problem: install plotnetcfg $(DESTDIR)/usr/sbin/ and%file%{_sbindir}/plotnetcfg
Also build failed in recent releases: Making sure you're not a bot! -
rpld-1.8-0.44.beta1.fc41.src.rpm
orphaned -
rusers-0.17-106.fc41.src.rpm
fixed in f45 (because it failed to build when f44/f43/f42 mass build) -
sigul-1.2-4.fc41.src.rpm
orphaned -
yubikey-val-2.39-16.fc41.src.rpm
orphaned
and
dnf repoquery -l | grep -E "^/bin/" and dnf repoquery -l | grep -E "^/bin/" |xargs -i dnf repoquery -f {} 2>/dev/null | xargs -i dnf repoquery -i {} 2>/dev/null | grep Source |awk '{print $3}' |sort -u
/bin/fsck.hfs
/bin/fsck.hfsplus
/bin/mkfs.hfsplus
/bin/setserial
-
hfsplus-tools-540.1.linux3-36.fc44.src.rpm
Problem: %define _exec_prefix / -
setserial-2.17-64.fc44.src.rpm
Problem: %define _bindir /bin
Yeah, it should be fixed. All that obsolete cruft can be dropped and things can be simplified. (No packages seem to Require /sbin/fsck.hfsplus or /sbin/mkfs.hfsplus, which would be the main chance for issues.)
Same here.
I didn’t look at the others, but it all seems like long-long-unneeded cruft.
EDIT: Clarification: by “long-long-unneded cruft” I meant the overriding of the installation paths %_bindir and %_sbindir, not the tools or other package content.
Ok ,thanks for your clarification .
Acutally dnf repoquery --whatrequires hfsplus-tools has dependents
anaconda-install-env-deps-0:44.30-2.fc44.x86_64
libguestfs-hfsplus-1:1.59.3-1.fc44.x86_64
libguestfs-hfsplus-1:1.59.8-1.fc44.x86_64
lorax-0:44.6-1.fc44.x86_64
python-imgcreate-sysdeps-1:31.0-20.fc44.x86_64
and in my machine it is
anaconda-install-env-deps-0:44.30-2.fc44.x86_64
with dnf repoquery --whatrequires hfsplus-tools --installed
however it is not something important and long-long-unneeded as you said.
No, that’s what I meant. We need to check for packages depending on the exact path, having e.g. Requires: /sbin/fsck.hsfplus. It seems that there are no such packages.
$ dnf repoquery --whatrequires /usr/sbin/fsck.hfsplus
$ dnf repoquery --whatrequires /sbin/fsck.hfsplus
$ dnf repoquery --whatrequires /usr/sbin/mkfs.hfsplus
$ dnf repoquery --whatrequires /sbin/mkfs.hfsplus
If there are no such dependencies, then we can drop the overrides of the paths in the spec file. Like this: