Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 671002 - net-libs/webkit-gtk without GL support leading to undefined references to WebCore::LayerRepresentation::* while linking apps with it
Summary: net-libs/webkit-gtk without GL support leading to undefined references to Web...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
: 669028 672828 673500 (view as bug list)
Depends on:
Blocks:
 
Reported: 2018-11-12 13:56 UTC by Gabriele Svelto
Modified: 2018-12-21 10:05 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gnucash build log (build.log.gz,49.65 KB, application/gzip)
2018-11-15 21:10 UTC, Gabriele Svelto
Details
liferea build log (liferea-build.log.gz,10.47 KB, application/gzip)
2018-11-19 09:26 UTC, Gabriele Svelto
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gabriele Svelto 2018-11-12 13:56:51 UTC
When version app-office/gnucash-3.3 was marked stable it failed to build on my machine because of missing symbols in webkit-gtk. After poking around a little I realized that the missing functions had been disabled in webkit-gtk because I was building it without the `opengl` flag (which is on by default). After turning the flag back on I could install gnucash w/o further issues.

Reproducible: Always

Steps to Reproduce:
1. Install webkit-gtk with the opengl USE flag disabled: env USE="-opengl" emerge =net-libs/webkit-gtk-2.22.2
2. Try installing app-office/gnucash-3.3 with default USE flags: emerge =app-office/gnucash-3.3
Actual Results:  
Compilation fails at link time because of missing symbols in webkit-gtk

Expected Results:  
emerge prompts the user to add the opengl USE flag to the webkit-gtk package in order to build gnucash
Comment 1 Mart Raudsepp gentoo-dev 2018-11-15 14:29:41 UTC
Please share actual logs of the build failure.
Before rushing to add a webkit-gtk[opengl] dep, please remember that webkit-gtk[gles2] exists as well.
Comment 2 Gabriele Svelto 2018-11-15 21:10:58 UTC
Created attachment 555288 [details]
gnucash build log

Sure, here's the build log. And this is the output of `equery uses webkit-gtk`:

 * Found these USE flags for net-libs/webkit-gtk-2.22.2:
 U I
 + + X             : Add support for X11
 - - coverage      : Enable code coverage support
 - - doc           : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
 + - egl           : Enable EGL support
 - - geolocation   : Enable geolocation support through app-misc/geoclue
 - - gles2         : Enable GLESv2 support
 - - gnome-keyring : Enable support for storing passwords via gnome-keyring
 - - gstreamer     : Add support for media-libs/gstreamer (Streaming media)
 - - introspection : Add support for GObject based introspection
 + + jit           : Enable just-in-time compilation for improved performance. May prevent use of some PaX memory protection features in Gentoo Hardened.
 + + libnotify     : Enable desktop notification support
 - - nsplugin      : Enable full nsplugin support (GTK2 plugins)
 - - opengl        : Add support for OpenGL (3D graphics)
 - - spell         : Add dictionary support
 - - test          : Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
 - - wayland       : Enable dev-libs/wayland backend
 - - webgl         : Build support for the WebGL HTML API using virtual/opengl
Comment 3 Gabriele Svelto 2018-11-16 08:59:05 UTC
Out of curiosity I rebuilt webkit-gtk with USE="-opengl gles2" and then gnucash and it builds fine. So it fails only if both the "opengl" and "gles" flag are disabled in webkit-gtk.
Comment 4 Mart Raudsepp gentoo-dev 2018-11-18 12:30:01 UTC
It doesn't feel related to gnucash at all. Do you get failures of other webkit-gtk consumers when both these GL flags are disabled on the installed webkit-gtk?
Comment 5 Gabriele Svelto 2018-11-19 09:23:52 UTC
(In reply to Mart Raudsepp from comment #4)
> It doesn't feel related to gnucash at all. Do you get failures of other
> webkit-gtk consumers when both these GL flags are disabled on the installed
> webkit-gtk?

I tried installing liferea and it failed with the same error as gnucash. I'll attach the log.
Comment 6 Gabriele Svelto 2018-11-19 09:26:19 UTC
Created attachment 555708 [details]
liferea build log
Comment 7 Mart Raudsepp gentoo-dev 2018-11-26 20:02:16 UTC
*** Bug 669028 has been marked as a duplicate of this bug. ***
Comment 8 Mart Raudsepp gentoo-dev 2018-11-27 08:00:34 UTC
I'm afraid I will need to add a REQUIRED_USE requirement to enable either opengl or gles2 until this is looked at upstream.

Please note that non-GL builds are there from upstream ONLY for things like embedded use cases on a proprietary graphics stack that runs without mesa (for EGL) and such. It is a very very bad idea to disable GL for webkit-gtk on a desktop install, and that's why we also default enable opengl in the ebuild. You don't lose just WebGL, but various performance optimizations and improvements in webkit itself too; like in this example async scrolling (once it's made to get disabled without GL for linking to not fail like this).
Comment 9 Larry the Git Cow gentoo-dev 2018-11-27 09:57:59 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5fdb99434f2f0b64ca23dd516458c78421143872

commit 5fdb99434f2f0b64ca23dd516458c78421143872
Author:     Mart Raudsepp <leio@gentoo.org>
AuthorDate: 2018-11-27 08:31:23 +0000
Commit:     Mart Raudsepp <leio@gentoo.org>
CommitDate: 2018-11-27 09:57:19 +0000

    net-libs/webkit-gtk: sec bump to 2.22.4; require GL
    
    * Security bump to 2.22.4 for WSA-2018-0008
    * Builds without GL (opengl or gles2) are currently broken, thus
      REQUIRED_USE it.
    * Stop requiring gstreamer for introspection - seems to work fine
      without by now.
    * GstreamerGL requires EGL, so REQUIRED_USE it by requiring EGL if
      USE="gstreamer opengl" (USE="gstreamer gles2" is already covered
      by gles2 itself also requiring egl).
    * Raise gstreamer deps to ensure working MSE, as hopefully we can
      handle the stabilization of newer gst-plugins-opus for this
      security stabilization round.
    * Add references to upstream bugs above REQUIRED_USE - we should
      monitor them on bumps to relax the requirements when/if the
      upstream bugs are fixed.
    
    Closes: https://bugs.gentoo.org/671002
    Signed-off-by: Mart Raudsepp <leio@gentoo.org>
    Package-Manager: Portage-2.3.52, Repoman-2.3.11

 net-libs/webkit-gtk/Manifest                 |   1 +
 net-libs/webkit-gtk/webkit-gtk-2.22.4.ebuild | 279 +++++++++++++++++++++++++++
 2 files changed, 280 insertions(+)
Comment 10 Mart Raudsepp gentoo-dev 2018-12-09 23:27:03 UTC
*** Bug 672828 has been marked as a duplicate of this bug. ***
Comment 11 Mart Raudsepp gentoo-dev 2018-12-21 10:05:06 UTC
*** Bug 673500 has been marked as a duplicate of this bug. ***