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

GTK 3 example: issue with GTK 2 symbols in libcef.so (v54+). Also possible issue with GTK 2 symbols embedded by setup.py. #261

Closed
cztomczak opened this issue Oct 19, 2016 · 3 comments
Milestone

Comments

@cztomczak
Copy link
Owner

cztomczak commented Oct 19, 2016

Current v54 release has GTK 2 symbols embedded in libcef.so and it results in GTK error when running GTK 3 example:

Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

Reported on the CEF Forum #14596 and later created CEF Issue #2014.

Additionally there might be an another issue in setup.py which links to such libraries:

'gobject-2.0',
'glib-2.0',
'gtk-x11-2.0',

Looks like 'gtk-x11-2.0' is GTK 2.0 and you cannot use GTK 2 and GTK 3 in the same process. This didn't cause issues in v53 release in the GTK 3 example, however this might be an issue if you freeze app, I don't know, maybe. Further testing is required.

@cztomczak
Copy link
Owner Author

cztomczak commented Oct 19, 2016

Added GTK 2 example in commit eb842cd. Now we have a GTK example that runs with v54.

@cztomczak cztomczak changed the title GTK 3 example: issues with mixed GTK 2 and GTK 3 symbols in libcef.so (v54) GTK 3 example: issue with GTK 2 symbols in libcef.so (v54) Oct 19, 2016
cztomczak added a commit that referenced this issue Oct 28, 2016
others.

This is CEF Python 55.1 beta release with Chrome 55 from beta channel.

Add support for Python 3.6 (#121).

Update to Cython 0.25.1 (#110).

Build cefpython .so modules using clean Python installations as in pyenv
to avoid invalid symbols being embedded in the .so module (#266).

Update CEF include/.
Update patches/.

Update compile.py. Run unit tests first and don't run gtk3 example
temporarily until #261 is fixed. Check if Cython version installed
is the same as specified in tools/requirements.txt.

Update examples - print filename when logging messages.
@cztomczak cztomczak changed the title GTK 3 example: issue with GTK 2 symbols in libcef.so (v54) GTK 3 example: issue with GTK 2 symbols in libcef.so (v54+) Oct 28, 2016
@cztomczak cztomczak changed the title GTK 3 example: issue with GTK 2 symbols in libcef.so (v54+) GTK 3 example: issue with GTK 2 symbols in libcef.so (v54+). Also possible issue with GTK 2 symbols embedded by setup.py. Nov 2, 2016
@cztomczak
Copy link
Owner Author

cztomczak commented Jan 5, 2017

CEF can be build with GTK 3 support by adding the use_gtk3=true arg to GN_DEFINES. See the GN defines in automate.py:

env["GN_DEFINES"] = "use_sysroot=true use_allocator=none symbol_level=1"

@cztomczak
Copy link
Owner Author

GTK 3 example works fine in latest cefpython v57.0 release. Looks like the issue was resolved in upstream Chromium.

Upstream Chromium has switched to GTK 3 by default now. So this change may cause issues again in new CEF releases. CEF will decide wether to remove GTK 3 dependency in CEF or whether to convert its cefclient to GTK 3. See this comment by Marshall: https://bitbucket.org/chromiumembedded/cef/issues/2014/remove-gtk-and-gdk-dependencies-introduced#comment-36136312

On a side note: I am not sure how GTK internally works, but in cefpython I am linking against gtk-x11-2.0 (see tools/cython_setup.py), however this is not causing any issues in GTK 3 apps (I do not link against gdk though).

@cztomczak cztomczak modified the milestones: v57, v54 Apr 22, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant