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

More specific dependencies #89

Closed
malept opened this issue Dec 8, 2018 · 5 comments
Closed

More specific dependencies #89

malept opened this issue Dec 8, 2018 · 5 comments

Comments

@malept
Copy link
Member

malept commented Dec 8, 2018

I noticed today that the dependency list is really short, compared to the amount of logic needed for electron-installer-debian. Not knowing much about the RedHat side of Linux, is this normal? Should it look more like electron-installer-debian?

CC: @fcastilloec

@fcastilloec
Copy link
Collaborator

fcastilloec commented Dec 9, 2018

I haven't been following any dependency changes on the electron side. Usually, everything listed in their build script as "runtime dependencies" is needed for both Debian and Redhat. The only extra package that I know for sure should be included in Redhat and not Debian is libXScrnSaver, without it nothing will run, but that was on electron versions 1.x.x, I'm not sure if that has changed.

If the electron dependencies haven't changed from what we have on the -debian installer, then we should just use the same code for both with special cases (libXScrnSaver). Just need to make sure that the packages' names are correct because Redhat uses slightly different names.

I can track down the package names, but we should check if what we have in -debian needs updating first

@fcastilloec
Copy link
Collaborator

@malept is this the new list of dependencies for electron? https://github.com/electron/electron/blob/master/build/install-build-deps.sh#L189

Last time we checked dependencies for -debian module, I think electron was at v2. Has anything changed in v3 or v4 that we should consider?

@malept
Copy link
Member Author

malept commented Dec 9, 2018

@malept is this the new list of dependencies for electron? https://github.com/electron/electron/blob/master/build/install-build-deps.sh#L189

That's the dependencies for building Electron itself. It's kind of helpful, but there's a bunch to weed out, due to build-only dependencies.

Last time we checked dependencies for -debian module, I think electron was at v2. Has anything changed in v3 or v4 that we should consider?

When I did the audit for v2, this is what I did:

readelf -a electron | grep NEEDED

And then I used neovim to diff the output between major versions.

Differences between v2 (2.0.10) and v3 (3.0.10)

GConf is no longer a requirement 🎉

Differences between v3 (3.0.10) and v4 (4.0.0-beta.5)

  • libnode is statically linked.
  • libfontconfig is no longer a dependency. (This is a transitive dependency anyway.)
  • libuuid has been added. Not sure which feature needs that.

I can create a PR for electron-installer-debian. Can you research what the rpm equivalent packages are?

@fcastilloec
Copy link
Collaborator

fcastilloec commented Dec 10, 2018

I'm going to list the fedora equivalent packages here until we create a PR that handles dependencies in the same way -debian does. Here's a list of all packages used for all versions of electron from -debian

Property name Debian RedHat
notify libnotify4 libnotify
nss libnss3 nss
xss libxss1 libXScrnSaver
xtst libxtst6 libXtst
xdgUtils xdg-utils xdg-utils
gtk3 libgtk-3-0 gtk3
gtk2 libgtk2.0-0 gtk2
gconf libgconf2-4 GConf2
uuid libuuid1 libuuid
gvfs gvfs-bin gvfs-client
kdeCliTools kde-cli-tools kde-cli-tools
kdeRuntime kde-runtime kde-runtime
trashCli trash-cli trash-cli
glib2 libglib2.0-bin glib2

It's funny that originally, the only package that I knew was required in RedHat/Fedora, was libXScrnSaver and it turns out that it was the package that we forgot to add in -debian

@malept
Copy link
Member Author

malept commented Dec 17, 2018

It occurred to me that we need to fix options.requires so that it doesn't override the Electron dependencies, much like what happens in -debian.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants