Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jan 2020 01:10:23 +0100
From:      Christoph Moench-Tegeder <cmt@burggraben.net>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   Re: svn commit: r516629 - head/net/liferea
Message-ID:  <20200128001023.GA62291@elch.exwg.net>
In-Reply-To: <20191104103901.GA2476@elch.exwg.net>
References:  <201911041019.xA4AJYqc047310@repo.freebsd.org> <20191104103901.GA2476@elch.exwg.net>

next in thread | previous in thread | raw e-mail | index | archive | help
## Christoph Moench-Tegeder (cmt@burggraben.net):

> > Log:
> >   Mark BROKEN
> 
> Only if www/webkit2-gtk3 has been built with WAYLAND enabled (which,
> unfortunately, is the default).

OK, I can narrow this down (finally - behold the depth of my backlog):
The problem is not WAYLAND per se, but the "WPE" parts which came with
that (WPE: "for embedded and low-consumption computer devices", WTF, etc.).

The way it does not work is: during initialization, webkit tries to
initialize a display in PlatformDisplay.cpp
(PlatformDisplay::createPlatformDisplay()) - first trying GTK via
gtk_init_check() and gdk_display_manager_get_default_display(), but
that fails, as there is no $DISPLAY in poudriere. Next step is WPE, which
happily returns a display handle even without $DISPLAY. If we hadn't WPE
support, this step would've been omitted (ifdef'ed out), and next options
would be Wayland, X11 (both of which won't work, no $DISPLAY), Wayland dummy
and X11 dummy - depending on driver availabillity.
Later on, webkit runs across AcceleratedBackingStore::checkRequirements()
(I can guess what it does from the name and code, but comments are
real thin in here, I can tell you) - and that piece of code just has
no support for WPE displays - if it's not WAYLAND or X11, it falls
through to a RELEASE_ASSERT_NOT_REACHED(), abort(), boom, coredump.

Preventing the creation of WPE displays in createPlatformDisplay()
with an "#ifdef 0" fixes the issue - we get our dummy display, no
fallthrough in checkRequirements() and liferea can run it's
introspection.
If I wasn't aware that the late hour was far too late for me to do
productive things, I'd just rip out that WPE stuff from webkit under
the guise of "just fix it and unbreak things" - removing code to fix
stuff is always a good reason, IMO.

So, opinions against doing just that? I've no idea if it would even make
sense to try to support WPE on FreeBSD or if it's just something we
inherited "because it's there" as someone upstream had declared
underpowered mobile devices to be the future.

Regards,
Christoph

-- 
Spare Space



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200128001023.GA62291>