Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rpm conflicts with signal-desktop #259

Closed
sdague opened this issue Apr 14, 2020 · 15 comments · Fixed by #1491
Closed

rpm conflicts with signal-desktop #259

sdague opened this issue Apr 14, 2020 · 15 comments · Fixed by #1491

Comments

@sdague
Copy link

sdague commented Apr 14, 2020

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.

@stemid
Copy link

stemid commented Jun 2, 2020

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
Copy link

stemid commented Jun 2, 2020

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
Copy link

stemid commented Jun 2, 2020

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.

@mlude
Copy link

mlude commented Oct 27, 2020

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?

@stale
Copy link

stale bot commented Feb 13, 2021

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 stale bot added the wontfix label Feb 13, 2021
@davidjgraph davidjgraph added the notstale Stop the stale bot from processing label Feb 22, 2021
@stale stale bot removed the wontfix label Feb 22, 2021
Svallinn added a commit to FreeTubeApp/FreeTube that referenced this issue May 23, 2021
This commit addresses a certain issue with `rpmbuild` in which certain
packages will conflict with each other because they have identical
`.build-id` links in the package.

I can speculate from some comments I've seen that this might be do
to electron versions the packages rely on, but I can't know for sure.

Most relevant issues I've seen:
jordansissel/fpm#1503
jgraph/drawio-desktop#259
@davidjgraph davidjgraph removed the notstale Stop the stale bot from processing label Sep 30, 2021
@eirePunk
Copy link

eirePunk commented Aug 24, 2022

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.

@filariow
Copy link

filariow commented Oct 7, 2022

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

@GarbageYard
Copy link

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!

@bluedreamer
Copy link

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

@frenzymadness
Copy link

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

@fpoirotte
Copy link

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 fpoirotte@50629aa.

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

@eirePunk
Copy link

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
Copy link

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

@iysheng
Copy link

iysheng commented Jul 13, 2023

sudo rpm -i --force

This worked for me too.

mhdonnelly pushed a commit to mhdonnelly/drawio-desktop that referenced this issue Oct 13, 2023
mhdonnelly added a commit to mhdonnelly/drawio-desktop that referenced this issue Oct 13, 2023
mhdonnelly added a commit to mhdonnelly/drawio-desktop that referenced this issue Oct 13, 2023
@davidjgraph
Copy link
Contributor

Change in 22.0.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.