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

[Bug]: libgdk-pixbuf library is not dynamically linked #34060

Closed
3 tasks done
rzhao271 opened this issue May 3, 2022 · 1 comment · Fixed by #34077
Closed
3 tasks done

[Bug]: libgdk-pixbuf library is not dynamically linked #34060

rzhao271 opened this issue May 3, 2022 · 1 comment · Fixed by #34077

Comments

@rzhao271
Copy link
Contributor

rzhao271 commented May 3, 2022

Preflight Checklist

Electron Version

17.x.y

What operating system are you using?

Ubuntu

Operating System Version

Xubuntu 20.04, Ubuntu 16.04

What arch are you using?

x64

Last Known Working Electron version

No response

Expected Behavior

While porting over Chromium's script to generate dependencies for Debian packages in VS Code (microsoft/vscode#13089), I noticed that libgdk-pixbuf is statically linked rather than dynamically linked. An issue is that the exact name of the library changed over time, so sometimes it is libgdk-pixbuf-2.0-0, and other times it is libgdk-pixbuf2.0-0. Therefore, Electron should look up the library at runtime.

Actual Behavior

Using the Electron sysroot when searching for Debian dependencies, it seems libgdk-pixbuf-2.0-0 is statically linked: https://github.com/microsoft/vscode/pull/147335/files#diff-b84879f8920b8ee14b70af14c40c90a255472a38795104384f64db32f1c7505dR56

I verified in a separate CI run that the dependency is indeed contributed by Electron, and not by other shared libraries that VS Code uses.

Testcase Gist URL

No response

Additional Information

Since libgdk is responsible for rendering menus and file dialogs, I think we should log a message and crash the program if the dependency cannot be found during runtime.

CC @deepak1556

@deepak1556
Copy link
Member

To add some context, chromium removed the static dependency on the libgdk-pixbuf package as part of https://chromium-review.googlesource.com/c/chromium/src/+/2645039. During the //ui/gtk refactor in upstream, in one of the chromium rolls I had copied over a utility function that was removed be693fa and today's static dependency on the library comes from this GdkPixbufFromSkBitmap utility. We can make the library dynamic similar to upstream.

Since libgdk is responsible for rendering menus and file dialogs, I think we should log a message and crash the program if the dependency cannot be found during runtime.

GTK library depends on libgdk-pixbuf and Electron depends on GTK, so there will not be a case where the dependency is not found.

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

Successfully merging a pull request may close this issue.

2 participants