Bug 1563892

Summary: Lots of "junk" leftover by install of fc27
Product: [Fedora] Fedora Reporter: John Dodson <jwadodson>
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 27CC: extras-orphan, ignatenko, jmracek, mjw, packaging-team-maint, pmatilai, pmoravco, vmukhame
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-20 01:45:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description John Dodson 2018-04-05 01:15:49 UTC
Description of problem:
Lots of symlinks/broken symlinks are leftover by an upgrade to FC27 in /usr/lib/.build-id
I'm not sure where the root of this "problem" really lies.


Version-Release number of selected component (if applicable):
Upgrade to FC27


How reproducible:


Steps to Reproduce:
1.Upgrade to FC27
2.ls -l /usr/lib/.build-id/*|less
3.

Actual results:
Lots of entries.

Expected results:
The .build-id directory is removed after it's necessity is fulfilled.

Additional info:

Comment 1 John Dodson 2018-04-05 22:52:19 UTC
It seems there is also stuff in,

/usr/lib/debug/.build-id

Comment 2 Jaroslav Mracek 2018-04-09 11:10:10 UTC
I think that the issue is due to packaging, but not sure. Probably RPM team knows better the issue.

Comment 3 Panu Matilainen 2018-04-09 11:17:06 UTC
In Fedora >= 27, build-ids are part of the main package, on purpose. See https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo for rationale.

Comment 4 John Dodson 2018-04-10 03:16:35 UTC
Brilliant!
An entire directory tree full of broken symlinks that are owned by individual packages - really?

I don't think this is a bright idea - I think it is the result of a misguided mind/youth.

The rationale needs a lot of work to actually be justified.

Please fix it so the symlinks are only created IF really required or used.

Leaving broken symlinks lying around should be an offence punishable by the creators email address being made into a broken symlink.

Comment 5 Mark Wielaard 2018-04-10 09:08:19 UTC
(In reply to John Dodson from comment #4)
> Brilliant!
> An entire directory tree full of broken symlinks that are owned by
> individual packages - really?

Broken symlinks would indeed be a bug.
I think your original bug report wasn't entirely clear that you were talking about broken dangling symlinks.

This is actually a bug that should have been fixed by the new system. In older setups the symlinks might have been part of a different subpackage, and so if they were updated/removed might get out of sync. The new system the symlinks are placed in the actual package of the files that own them and so never should be broken (except for the 'compat' symlinks in the -debuginfo package, sadly for backwards compatibility).

> Leaving broken symlinks lying around should be an offence punishable by the
> creators email address being made into a broken symlink.

:)

So, could you show some of the broken symlinks under /usr/lib/.build-id/*?
If there are any that point to a non-existing file then that would indeed be broken and we should figure out which package placed them there and why they weren't removed when the package got removed.

(The ones under /usr/lib/debug/.build-id could still be broken sadly because of the compat symlinks, sorry).

Comment 6 John Dodson 2018-04-11 14:20:56 UTC
Sadly I removed /usr/lib/.build-id & /usr/lib/debug/.build-id as they annoyed
me intensely.
But as fortune would have it some have returned after updates I assume...

Meanwhile though - do me a favour - break backwards compatibility in favour of sanity of not having broken symlinks, or have the package that owns them, maintain them in an appropriate way, eg. if symlink broken remove it, if missing create it as long as the target exists, otherwise there is a bug that should break something & not leave dangling symlinks.

FC27...
/etc/alternatives/libjavaplugin.so.x86_64: broken symbolic link to /usr/lib64/IcedTeaPlugin.so
file /etc/alternatives/libjavaplugin.so.x86_64 is not owned by any package

/usr/lib/.build-id/6b/daf66135a37b8f9bbfb311da7eed1f4cb9b88f: broken symbolic link to ../../../../usr/sbin/dnssec-importkey-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/41/ad4c579e2c236cfd93c881fbd0740dfcf73ac4: broken symbolic link to ../../../../usr/sbin/dnssec-revoke-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/68/7f0a4733c39fb7b5a84aa68be5a65d5221c351: broken symbolic link to ../../../../usr/sbin/dnssec-dsfromkey-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/a8/a2ea325780cae23ced9b3227e8b5098c31a5c5: broken symbolic link to ../../../../usr/sbin/dnssec-keyfromlabel-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/51/94bda72d6c58a9f05c6b5dda6df64ab32d67c0: broken symbolic link to ../../../../usr/sbin/dnssec-settime-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ba/53bbf457ccd90d6fc1c32cb6c674b49d2b491e: broken symbolic link to ../../../../usr/sbin/dnssec-verify-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ff/16355f08a2977f4ca7d6e3887288e60ae0255e: broken symbolic link to ../../../../usr/sbin/dnssec-keygen-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ff/18934fa0fc4ebdd14e478ee04750da9dd34eb9: broken symbolic link to ../../../../usr/sbin/dnssec-signzone-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

on one machine & this on another...

/etc/extlinux.conf: broken symbolic link to ../boot/extlinux/extlinux.conf
syslinux-extlinux-6.04-0.7.fc27.x86_64

/etc/systemd/system/syslog.service: broken symbolic link to /usr/lib/systemd/system/rsyslog.service
file /etc/systemd/system/syslog.service is not owned by any package

/usr/lib/.build-id/51/94bda72d6c58a9f05c6b5dda6df64ab32d67c0: broken symbolic link to ../../../../usr/sbin/dnssec-settime-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/68/7f0a4733c39fb7b5a84aa68be5a65d5221c351: broken symbolic link to ../../../../usr/sbin/dnssec-dsfromkey-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/a8/a2ea325780cae23ced9b3227e8b5098c31a5c5: broken symbolic link to ../../../../usr/sbin/dnssec-keyfromlabel-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ba/53bbf457ccd90d6fc1c32cb6c674b49d2b491e: broken symbolic link to ../../../../usr/sbin/dnssec-verify-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ff/16355f08a2977f4ca7d6e3887288e60ae0255e: broken symbolic link to ../../../../usr/sbin/dnssec-keygen-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ff/18934fa0fc4ebdd14e478ee04750da9dd34eb9: broken symbolic link to ../../../../usr/sbin/dnssec-signzone-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/6b/daf66135a37b8f9bbfb311da7eed1f4cb9b88f: broken symbolic link to ../../../../usr/sbin/dnssec-importkey-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/41/ad4c579e2c236cfd93c881fbd0740dfcf73ac4: broken symbolic link to ../../../../usr/sbin/dnssec-revoke-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

and another, all running FC27...

/etc/alternatives/libjavaplugin.so.x86_64: broken symbolic link to /usr/lib64/IcedTeaPlugin.so
file /etc/alternatives/libjavaplugin.so.x86_64 is not owned by any package

/usr/lib/.build-id/51/94bda72d6c58a9f05c6b5dda6df64ab32d67c0: broken symbolic link to ../../../../usr/sbin/dnssec-settime-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/68/7f0a4733c39fb7b5a84aa68be5a65d5221c351: broken symbolic link to ../../../../usr/sbin/dnssec-dsfromkey-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ba/53bbf457ccd90d6fc1c32cb6c674b49d2b491e: broken symbolic link to ../../../../usr/sbin/dnssec-verify-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/6b/daf66135a37b8f9bbfb311da7eed1f4cb9b88f: broken symbolic link to ../../../../usr/sbin/dnssec-importkey-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ff/18934fa0fc4ebdd14e478ee04750da9dd34eb9: broken symbolic link to ../../../../usr/sbin/dnssec-signzone-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/ff/16355f08a2977f4ca7d6e3887288e60ae0255e: broken symbolic link to ../../../../usr/sbin/dnssec-keygen-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/a8/a2ea325780cae23ced9b3227e8b5098c31a5c5: broken symbolic link to ../../../../usr/sbin/dnssec-keyfromlabel-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

/usr/lib/.build-id/41/ad4c579e2c236cfd93c881fbd0740dfcf73ac4: broken symbolic link to ../../../../usr/sbin/dnssec-revoke-pkcs11
bind-utils-9.11.3-4.fc27.x86_64

Comment 7 John Dodson 2018-04-15 20:20:58 UTC
The above were /usr/lib/.build-id/* is it fixed?

Comment 8 John Dodson 2018-04-18 12:50:25 UTC
Ah - so a recent update on fc27 seems to be removing /usr/lib/.build-id/
files.

Thanks!

Now are we going to be maintaining the /usr/lib/debug/.build-id/ broken symlinks in a reasonable way too?

Comment 9 John Dodson 2018-04-18 12:51:07 UTC
Was this a bug or an oversight?

Whats the diff?

Comment 10 John Dodson 2018-04-19 23:57:57 UTC
After last night I have these...

/usr/lib/.build-id/49/698ed5d29a893c7bfa5add4d67ef7a2f9e5c01: broken symbolic link to ../../../../usr/lib64/libgfdb.so.0.0.1
glusterfs-libs-3.12.8-1.fc27.x86_64

/usr/lib/.build-id/a2/cb13e3bcd47c207782d1491ccb66cebae5a007: broken symbolic link to ../../../../usr/lib64/glusterfs/3.12.8/rpc-transport/rdma.so
glusterfs-3.12.8-1.fc27.x86_64

Comment 11 John Dodson 2018-04-20 00:01:25 UTC
And...

/usr/lib/.build-id/ba/cfd7a62c0943c5ad794d1d39b655bfa90f9fa1: broken symbolic link to ../../../../usr/lib64/tumbler-1/plugins/tumbler-gst-thumbnailer.so
tumbler-0.2.1-1.fc27.x86_64

/usr/lib/.build-id/d2/dbb694c4b8517beb79bb9d78d2383998845fb1: broken symbolic link to ../../../../usr/lib64/tumbler-1/plugins/tumbler-raw-thumbnailer.so
tumbler-0.2.1-1.fc27.x86_64

/usr/lib/.build-id/06/e3c3e24e1be0a80967a12e2b021d72312d3bf1: broken symbolic link to ../../../../usr/lib64/libavdevice.so.57.6.100
ffmpeg-libs-3.3.7-1.fc27.x86_64

Comment 12 Mark Wielaard 2018-04-20 01:45:10 UTC
I couldn't find the ffmpeg-libs spec file, but the other examples are files that get %excluded, but still get a build-id symlink. Which is indeed a known issue, bug #878863.

*** This bug has been marked as a duplicate of bug 878863 ***