drawio-desktop icon indicating copy to clipboard operation
drawio-desktop copied to clipboard

rpm conflicts with signal-desktop

Open sdague opened this issue 4 years ago • 9 comments

When attempting to install the latest rpm on fedora31, I ran into the following issue:

sudo rpm -ihv draw.io-x86_64-12.9.9.rpm 
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
	package draw.io-12.9.9-288.x86_64 is already installed
	file /usr/lib/.build-id/5b/fbd3977f004574cd6668333fd1dc52e6b31010 from install of draw.io-12.9.9-288.x86_64 conflicts with file from package signal-desktop-1.32.1-2.fc31.x86_64
	file /usr/lib/.build-id/68/31304e78fc4f4cd1bd8216d99e32dabe4973c3 from install of draw.io-12.9.9-288.x86_64 conflicts with file from package signal-desktop-1.32.1-2.fc31.x86_64
	file /usr/lib/.build-id/72/d86eb8b1163969d3fc6f34b62b5160a33ad726 from install of draw.io-12.9.9-288.x86_64 conflicts with file from package signal-desktop-1.32.1-2.fc31.x86_64
	file /usr/lib/.build-id/75/2db195051aa513f5916d17ecc6e5d755124e14 from install of draw.io-12.9.9-288.x86_64 conflicts with file from package signal-desktop-1.32.1-2.fc31.x86_64
	file /usr/lib/.build-id/9f/604335c41e24151c5dbca16a33b81dc56c4c54 from install of draw.io-12.9.9-288.x86_64 conflicts with file from package signal-desktop-1.32.1-2.fc31.x86_64
	file /usr/lib/.build-id/cc/813d23c84126298d221a8a7c70184d3fca320d from install of draw.io-12.9.9-288.x86_64 conflicts with file from package signal-desktop-1.32.1-2.fc31.x86_64
	file /usr/lib/.build-id/cf/cca356ccaabf8d1e182054675cf63a92ad57a9 from install of draw.io-12.9.9-288.x86_64 conflicts with file from package signal-desktop-1.32.1-2.fc31.x86_64
	file /usr/lib/.build-id/f1/49c1b37a035c9c336c70bb56777811230332c9 from install of draw.io-12.9.9-288.x86_64 conflicts with file from package signal-desktop-1.32.1-2.fc31.x86_64

I'm curious what thos .build-id files are, and why they cross conflict. And if there is a way to change the rpm build process to address it. I don't currently see where the rpm is built in the tree, but am happy to look into tweaking that if I can be pointed at it.

sdague avatar Apr 14 '20 12:04 sdague

First of all I believe #212 is a duplicate of this issue.

I know nothing of electron builder but I have seen this issue before in the sphere of Fedora rpmbuild.

In those cases one workaround was to add _build_id_links none to the spec file. Are we able to add things to the spec file that electron builder generates?

This would completely disable the generation of build ID links, avoiding all conflicts. It's not a long term solution imho.

Something fishy is up with the way Electron builder builds a binary because as long as the binary build is unique it should not conflict with any other build.

There is more info about it in this bugzilla thread.

The issue there seems to have been someone copying a common library, which caused the build IDs to conflict between two packages that used the same copied library file.

stemid avatar Jun 02 '20 12:06 stemid

Also I just found this github thread that might cast some light on the situation, if fpm is at all involved.

This page says you can specify fpm options to electron builder.

stemid avatar Jun 02 '20 12:06 stemid

FYI I've made a poor attempt at doing a PR but I am unfamiliar with Travis build system.

I made a small change to the electron build setup to add the necessary fpm argument but my build fails with some sort of token missing. I assume this is set in environment variables or something internal to your Travis build account? For example, apple ID is definitely something I don't have.

stemid avatar Jun 02 '20 13:06 stemid

I see conflicts with /usr/lib/.build-id/ links from other software too.

Could you please stop adding those /usr/lib/.build-id/ links to the rpm package?

mlude avatar Oct 27 '20 22:10 mlude

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. See the FAQ for more information.

stale[bot] avatar Feb 13 '21 20:02 stale[bot]

There seems to be a conflict with Bitwarden-2022.8.1-x86_64.rpm as well.

sudo dnf -y install Bitwarden-2022.8.1-x86_64.rpm Error: Transaction test error: file /usr/lib/.build-id/a2/562c52725bb7caa27cd0de814ec368b8c45e7f from install of bitwarden-2022.8.1-1.x86_64 conflicts with file from package draw.io-20.2.3-1.x86_64.

eirePunk avatar Aug 24 '22 21:08 eirePunk

There seems to be conflicts also with Slack

Error: Transaction test error:
  file /usr/lib/.build-id/08/c585ec9ac3d4c22f3d3ac97e70593362a9e153 from install of draw.io-20.3.0-1.x86_64 conflicts with file from package slack-4.28.182-0.1.el8.x86_64
  file /usr/lib/.build-id/2a/33b622beae8c92a691c0056e2336ec75840301 from install of draw.io-20.3.0-1.x86_64 conflicts with file from package slack-4.28.182-0.1.el8.x86_64
  file /usr/lib/.build-id/78/f065664c37258cf50f4e5d000e5f61db296cb7 from install of draw.io-20.3.0-1.x86_64 conflicts with file from package slack-4.28.182-0.1.el8.x86_64
  file /usr/lib/.build-id/be/7e0a8182dc5bdd72ab8f92cc743fb0cf4ff95f from install of draw.io-20.3.0-1.x86_64 conflicts with file from package slack-4.28.182-0.1.el8.x86_64
  file /usr/lib/.build-id/d0/559f3ac02653b61634319629949d7435a277c3 from install of draw.io-20.3.0-1.x86_64 conflicts with file from package slack-4.28.182-0.1.el8.x86_64
  file /usr/lib/.build-id/da/7bfd439eb2866765067ecab210ebcb6184bb50 from install of draw.io-20.3.0-1.x86_64 conflicts with file from package slack-4.28.182-0.1.el8.x86_64
  file /usr/lib/.build-id/df/567116938fec968c889916ff7ebb098eab0a8a from install of draw.io-20.3.0-1.x86_64 conflicts with file from package slack-4.28.182-0.1.el8.x86_64
  file /usr/lib/.build-id/f3/6438bf5c51277b2b6c79bdee5bf0ed84aa8962 from install of draw.io-20.3.0-1.x86_64 conflicts with file from package slack-4.28.182-0.1.el8.x86_64

as a workaround sudo rpm -i ./drawio-x86_64-20.3.0.rpm --excludepath /usr/lib/.build-id/ worked for me

filariow avatar Oct 07 '22 13:10 filariow

I too got the same error message that @filariow saw.

On checking one of those, I could see this:

$ ls -l /usr/lib/.build-id/08/c585ec9ac3d4c22f3d3ac97e70593362a9e153
lrwxrwxrwx. 1 root root 35 Sep 21 23:00 /usr/lib/.build-id/08/c585ec9ac3d4c22f3d3ac97e70593362a9e153 -> ../../../../usr/lib/slack/libEGL.so

Thanks for the workaround @filariow!

GarbageYard avatar Nov 17 '22 13:11 GarbageYard

Also getting the same issue with slack

Error: Transaction test error:
  file /usr/lib/.build-id/0d/9fad3f21b1e381cc66b5efcae8f3910ae0edc1 from install of draw.io-20.7.4-1.x86_64 conflicts with file from package slack-4.29.149-0.1.el8.x86_64
  file /usr/lib/.build-id/76/9d0269491ca2313fcd15d63059bac67bd8b1b3 from install of draw.io-20.7.4-1.x86_64 conflicts with file from package slack-4.29.149-0.1.el8.x86_64
  file /usr/lib/.build-id/c2/dcac7cb6a727685d10d4161a0d14988f12a0fa from install of draw.io-20.7.4-1.x86_64 conflicts with file from package slack-4.29.149-0.1.el8.x86_64
  file /usr/lib/.build-id/cb/dc9db5fec0e6129bddcb0c282be98be4c6966e from install of draw.io-20.7.4-1.x86_64 conflicts with file from package slack-4.29.149-0.1.el8.x86_64

bluedreamer avatar Jan 01 '23 14:01 bluedreamer

Same error here with draw.io-20.8.16-1.x86_64 and bitwarden-2023.2.0-1.x86_64.

frenzymadness avatar Feb 28 '23 11:02 frenzymadness

Hi,

Other conflicting packages include TeamsForLinux.

As noted by others before, this can easily be fixed by adding the appropriate fpm options to the electron-builder configuration file (electron-builder-linux-mac.json in this case). The change is very localized (impacts only the RPM package). See for example https://github.com/fpoirotte/drawio-desktop/commit/50629aa88b15c931cf64e9b2c386a1a490e22ff5.

It's honestly quite frustruating to see this issue is still open after 2 years given jgraph's "Open-source, not open-contribution" policy and the fact that a fix is readily available. Given the increasing number of Electron-based apps, this issue is causing system administrators more and more headaches as the number of conflicting apps increases (sure, the conflicting files can be excluded during package installation, but this is no more than a hack and not a proper solution).

I hope someone at jgraph will take the time to review the proposed changes and include a fix in the next release.

Regards

fpoirotte avatar Mar 15 '23 11:03 fpoirotte

sudo rpm -i ./drawio-x86_64-20.3.0.rpm --excludepath /usr/lib/.build-id/ is a workaround. Should we be running this for anything that conflcits with draw.io? :(

eirePunk avatar Apr 10 '23 07:04 eirePunk

The "sudo rpm -i --excludepath=/usr/lib/.build-id/ drawio-x86_64-21.1.2.rpm" did not work for me. I was still getting barks about the debug path.

"sudo rpm -i --force drawio-x86_64-21.1.2.rpm" worked for me.

This thread has a better description: https://unix.stackexchange.com/questions/688839/if-i-do-not-care-about-debug-support-in-red-hat-packages-what-are-the-drawbacks

eirePunk avatar Apr 10 '23 21:04 eirePunk

sudo rpm -i --force

This worked for me too.

iysheng avatar Jul 13 '23 03:07 iysheng

Change in 22.0.3

davidjgraph avatar Oct 18 '23 16:10 davidjgraph