Bug 1820370

Summary: Conflicting files in /usr/lib/.build-id preventing package installs
Product: Red Hat Enterprise Linux 8 Reporter: Bill Gray <bgray>
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED NOTABUG QA Contact: swm-qe
Severity: high Docs Contact:
Priority: unspecified    
Version: 8.1CC: bgray, pmatilai
Target Milestone: rc   
Target Release: 8.0   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-03 10:54:21 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 Bill Gray 2020-04-02 21:53:14 UTC
Why does this happen and how can it be fixed?

file /usr/lib/.build-id/02/f209a47a21452e7e4131c9e0b78af2f17e2d1e from install of rstudio-1.2.5033-1.x86_64 conflicts with file from package nsight-compute-2019.4.0-2019.4.0.12-1.x86_64

Note also seen on Fedora:  https://community.rstudio.com/t/fedora-29-install-rstudio-desktop-failed/46996/4

Comment 1 Panu Matilainen 2020-04-03 10:54:21 UTC
The packages a file with an identical build-id in two different locations. This is generally supposed to be a can't happen situation and a likely cause is packaging a binary file copied from some other package, but could in theory also be an identical file compiled in identical conditions to a different name.

As both packages here are something of a proprietary nature, I suspect its binaries copied from someplace else to avoid dependency problems, but such copying can also be subject to licensing issues (way out of scope here).

These need to be reported to the packagers of said software to sort out one way or the other. One possibility is moving the build-id links to debuginfo packages with eg this in the spec:

%global _build_id_links alldebug

To workaround, install with rpm using "--excludepath=/usr/lib/.build-id/" is probably the cleanest workaround (--force will also do the trick, just with a bigger hammer)

Comment 2 Bill Gray 2020-04-03 15:27:13 UTC
So if they are identical, do we need to report a conflict and prevent the install?

Comment 3 Panu Matilainen 2020-04-06 07:56:57 UTC
The symlinks are not identical, and hence they conflict. These are not treated in any special way by rpm.