[Bug 243677] www/webkit2-gtk3: disable WPE renderer, unbreak liferea build

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Jan 28 18:53:15 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=243677

            Bug ID: 243677
           Summary: www/webkit2-gtk3: disable WPE renderer, unbreak
                    liferea build
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Keywords: easy, patch, patch-ready
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: gnome at FreeBSD.org
          Reporter: cmt at freebsd.org

Created attachment 211139
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=211139&action=edit
disable WPE renderer, unbreaks liferea

since updating webkit2-gtk3 to 2.26.x (ports r516196) build of net/liferea
fails during dumping of the introspection data (see BROKEN message in ports
r516629).

Testing shows that this problem only exists if webkit has option WAYLAND
enabled (unfortunately, that's the default).
Further digging revealed that that ABORT is raised in
Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.cpp
AcceleratedBackingStore::checkRequirements() when the "display" is neither a
"WAYLAND" or "X11" display. In fact, since (I think)
https://bugs.webkit.org/show_bug.cgi?id=184406 creates "WPE" displays as the
fallback (if WPE support has been enabled) when no regular X11 display (via GDK
or similar) is available. That's exactly the situation with liferea: during
build in poudriere, there's no $DISPLAY and no way to initialize a "real"
display. That "WPE" fallback display later turns up in
AcceleratedBackingStore::checkRequirements() where it is not handled and causes
a fallthrough to the Abort. If WPE support hadn't been disabled, webkit would
create a X11 "dummy" display as before - and that would cause no problems, if
we got there.

Experimentation (filling in a few gaps in the code starting in
AcceleratedBackingStore::checkRequirements()) is a trip down the rabbit hole
(there're multiple missing pieces, I think), and the best I got was segfaults
from some destructor.

As an alternative, I found cmake switch "USE_WPE_RENDERER" (default on) - when
turned of, we get rid of the problematic code paths through WPE and liferea can
build again just fine and it's BROKEN flag could be reset. (I'm not sure what
use case WPE has in webkit-gtk on FreeBSD - surely we can use the GDK/GTK
paths, as that's literally in the package name?)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-gnome mailing list