Here are the relevant entries from /var/log/zypp/history:
# 2021-06-01 16:44:27 filesystem-15.5-40.2.x86_64.rpm installed ok # Additional rpm output: # Make a copy of `/bin'. # Merge the copy with `/usr/bin'. # Clean up duplicates in `/usr/bin'. # Make a copy of `/sbin'. # Merge the copy with `/usr/sbin'. # Clean up duplicates in `/usr/sbin'. # Make a copy of `/lib'. # Merge the copy with `/usr/lib'. # Clean up duplicates in `/usr/lib'. # Make a copy of `/lib64'. # Merge the copy with `/usr/lib64'. # Clean up duplicates in `/usr/lib64'. # Switch to new `/usr/bin'. # Switch to new `/usr/sbin'. # Switch to new `/usr/lib'. # Switch to new `/usr/lib64'. # Create `/bin' symlink. # Create `/sbin' symlink. # Create `/lib' symlink. # Create `/lib64' symlink. # Clean up backup files. # /usr/bin.usrmerge ... # //bin.usrmerge ... # /usr/sbin.usrmerge ... # //sbin.usrmerge ... # /usr/lib.usrmerge ... # //lib.usrmerge ... # /usr/lib64.usrmerge ... # //lib64.usrmerge ... # Run ldconfig. # 2021-06-01 16:44:27|install|filesystem|15.5-40.2|x86_64||download.opensuse.org-oss_2|e5341f4bdd83fc26d5c3277e4ab2801715e60cb8f59640abada994b6d0f79bfb|
2021-06-01 16:56:11|install|e2fsprogs-devel|1.46.2-3.3|x86_64||download.opensuse.org-oss_2|64af5aa2d3510bb11b53f66cbd846272efe3e0b940e8d666e4c4203fdb3ce78f| # 2021-06-01 16:56:13 kernel-default-devel-5.12.4-2.1.x86_64.rpm installed ok # Additional rpm output: # Changing symlink /usr/src/linux-obj/x86_64/default from ../../linux-5.12.4-1-obj/x86_64/default to ../../linux-5.12.4-2-obj/x86_64/default # 2021-06-01 16:56:13|install|kernel-default-devel|5.12.4-2.1|x86_64||download.opensuse.org-oss_2|14078112e692c1a39b5430527a684bdda4ba2e043f0a281d5f513618d4008baf|
From that we can see that the filesystem package was installed first (@ 16:44:27), followed by the UsrMerge migration, and then the kernel-default-devel package was installed (@ 16:56).
So the new kernel (5.12.4-2) was installed AFTER The UsrMerge migration had already occurred and therefore the link wasn't correct when it was created.
It did update the symlink for linux-obj from the old kernel (5.12.4-1) to the new kernel, but the symlink that I reported as broken in the new kernel directory was:
and it was broken because it was missing the extra directory level and was fixed when I modified the symlink to add the extra ../
So it would appear that the kernel-default-devel package created the wrong symlink for
despite the new kernel being installed after the UsrMerge migration had already occurred.
For the older kernel which was installed before UsrMerge I would have expected UsrMerge to fix in link that it broke in
Note that the "source" symlink in both
also had the same issue in that they both needed the extra directory level added.
Overall, I think that the UsrMerge migration went well but it looks like it missed some existing links and it looks like the kernel-default-devel package needs updating for the symlinks I mentioned which were wrong despite being installed after UsrMerge.
Another possibility I could think of is that the kernel package did not know that UsrMerge was done because they occurred in the same zypper dup?
Your original reply thought they had been installed out of order but we now know that they were installed in the correct order so the programmer in me was trying to come up with another way that the kernel package might create the wrong symlinks.
You said to open a bug report if they were installed in the wrong order but since they were installed in the correct order should I still submit the bug report?
Regarding this being the tip of the iceberg, is there are reason that those symlinks are created as relative instead of absolute?
Also, I have been looking for other bad symlinks but so far no other significant issues have been found so overall I think the process went well.