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: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
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.