[Freewx-maint] Bug#738849: Please enable webview support for wx3.0

Olly Betts olly at survex.com
Mon May 26 00:49:44 UTC 2014


On Sun, May 25, 2014 at 09:17:51AM +0100, Gianfranco LocutusOfBorg Costamagna wrote:
> Hi dear Olly,
> 
> 
> > Il Sabato 24 Maggio 2014 15:31, Olly Betts <olly at survex.com> ha scritto:
> > > I've just discovered an annoying consequence of this change.
> > 
> > If you now install libwxgtk3.0-dev and ask for libraries to link with,
> > you get:
> > 
> > $ wx-config --libs
> > -L/usr/lib/x86_64-linux-gnu -pthread   -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_webview-3.0 
> > -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 
> > -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0 
> > 
> > Note that this includes "-lwx_gtk2u_webview-3.0", but that's not
> > installed, so linking fails.  The same thing happens if you ask for an
> > explicit list of libraries and include "std" in that list.
> > 
> > This is pretty serious as it's likely to cause packages to FTBFS.
> > 
> > Some options I can see for fixing this and their downsides:
> > 
> > * Make libwxgtk3.0-dev depend on libwxgtk-webview3.0-dev - this would
> >    pull in libwxgtk-webview3.0-0 and hence webkit for such builds; it
> >    may also sometimes end up with webkit getting unnecessarily included
> >    as a runtime dependency, for packages which don't link with
> >    -Wl,--as-needed.
> 
> This seems ugly, at least on debian (no changes on ubuntu, I wonder if
> debian will ever se them as default)

It's ugly even without the --as-needed issue as it bloats the BDs for
every package building with wx GUI libraries which doesn't use wxWebView
(which is likely to be most of them).

> > * Update all packages to explicitly request the wx component libraries
> >    they actually need - significant fiddly work, but perhaps the way
> >    forwards.
> 
> This seems to require a lot of uploads...

Probably - only packages which explicitly list the component libraries
they need (and don't ask for "std") will continue to work.

> > * Alter the meaning of "std" in wx-config - makes it behave 
> > differently
> >    on Debian to elsewhere.
> 
> This is something I didn't understand correctly, but I think I did
> something similar

So wx-config --libs will output the flags needed to link particular
component libraries.  You can optionally provide a list of them, which
can include "std".  If there's no list, the default list of just "std"
is assumed.

Without webview enabled (i.e. in 3.0.0-2), "std" expands to:

"xrc html qa adv core xml net base"

With webview enabled (i.e. in 3.0.0-3), "std" expands to:

"xrc webview html qa adv core xml net base"

Note that this doesn't include all component libraries (e.g. "media"
isn't included, you have to request that explicitly), so my idea was
just to move "webview" to the same status as "media".

The issue with this is that wx-config is then incompatible for
applications which use wxWebView, though applications can just use
"--libs std,webview" to work with both.

It seems unhelpful for libraries which aren't enabled if you build
wxWidgets from source with the default --enable and --with option to
be in "std".  So I think this might be a fix to suggest to upstream
(wxWebView is new, so making this change in 3.0.1 might be viewed as
reasonable).

> I'm attaching a little patch I did to make wx-webview behave a more
> little closer than wx-media...
> 
> However I'm stuck with a little problem:
> 
> how can I use wx-config to export wx-media libraries?

wx-config --libs std,media

(As noted above, "media" isn't in "std").

> I think we can make it return wx-webview only if the library is found
> on the system, with this patch I made webview optional, next step is
> to understand how wx-config really works (I fall asleep before
> understanding it completely).

That's an interesting idea.  It means that wx-config behaves
compatibly to a build without webview enabled if libwx-webview3.0-dev
isn't installed, which is less surprising.  

> I see wx-config already have some loops inside looking for libraries
> on the system, my approach will return the flags only if found on the
> system, and since this webview is marked as mandatory but seems
> optional I think we can push this patch also upstream.

wx-config is generated at configure time (from wx-config.in), and if you
don't enable webview, then wx-config won't have it in its list of
libraries to expand "std" to.

So such a patch wouldn't really make sense for upstream, as they have a
mechanism to handle this already for those building from source.

> Do you want to let this package reach testing? maybe reopening and
> reassignig the severity will prevent automatic rebuild failures...

I did that, though I notice that it's not currently blocking transition
as the "found" version is already in testing.  I'll open a new bug in
a moment.

Cheers,
    Olly



More information about the Freewx-maint mailing list