Bug 93258

Summary: [Qt][WK2] Fix the --minimal build
Product: WebKit Reporter: Csaba Osztrogonác <ossy>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: abecsi, hausmann, ossy
Priority: P2 Keywords: Qt, QtTriaged
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 96494, 96495    
Bug Blocks:    

Description Csaba Osztrogonác 2012-08-06 04:40:00 PDT
Now the --minimal build is broken with Qt 5 with the following errors:
/home/oszi/WebKit/Source/WebKit2/PluginProcess/PluginProcess.cpp: In member function 'void WebKit::PluginProcess::initialize(int, WebCore::RunLoop*)':
/home/oszi/WebKit/Source/WebKit2/PluginProcess/PluginProcess.cpp:95: error: 'NetscapePlugin' has not been declared
...
/home/oszi/WebKit/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp:88: error: 'releaseNPObject' was not declared in this scope
/home/oszi/WebKit/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp:91: error: 'releaseNPObject' was not declared in this scope
...
/home/oszi/WebKit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp:59: error: ‘QLibrary’ was not declared in this scope

Do we want to support --minial build for Qt 5 WK2? 
Or should we do --minimal --no-webkit2 build on the minimal bot? (It works fine.)
Comment 1 Andras Becsi 2012-08-06 04:58:23 PDT
(In reply to comment #0)
> Now the --minimal build is broken with Qt 5 with the following errors:
> /home/oszi/WebKit/Source/WebKit2/PluginProcess/PluginProcess.cpp: In member function 'void WebKit::PluginProcess::initialize(int, WebCore::RunLoop*)':
> /home/oszi/WebKit/Source/WebKit2/PluginProcess/PluginProcess.cpp:95: error: 'NetscapePlugin' has not been declared
> ...
> /home/oszi/WebKit/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp:88: error: 'releaseNPObject' was not declared in this scope
> /home/oszi/WebKit/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp:91: error: 'releaseNPObject' was not declared in this scope
> ...
> /home/oszi/WebKit/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp:59: error: ‘QLibrary’ was not declared in this scope

These look like a guard is missing somewhere. Is the revision which broke the build known?

> 
> Do we want to support --minial build for Qt 5 WK2? 
> Or should we do --minimal --no-webkit2 build on the minimal bot? (It works fine.)

I personally think the minimal build is still valuable for testing at least one set of feature guards and as far as I remember the maintenance cost is not that high since the breakages were considerable rare.
Comment 2 Simon Hausmann 2012-08-07 02:19:57 PDT
I personally don't see much value in a minimal build, I never use it myself. So from my perspective it adds cost (maintenance) without any concrete value.

If you guys would like to maintain such a combination, then that's fine with me.
Comment 3 Csaba Osztrogonác 2012-08-07 03:30:39 PDT
(In reply to comment #2)
> I personally don't see much value in a minimal build, I never use it myself. So from my perspective it adds cost (maintenance) without any concrete value.
> 
> If you guys would like to maintain such a combination, then that's fine with me.

Of course nobody use --minimal build, because it is too lightweight to be
useful in a real world application. But it is useful to prevent breaking
ENABLE(...)/USE(...) guards.

If somebody try to use a function outside ENABLE(FOO) guard which is defined inside ENABLE(FOO) guard, it will cause link fail on the --minimal bot.

The maintanance cost of it is minimal. Usually it's more than 
enough to ping the author and he/she will fix the breakage.

The question is now if we want to fix Qt-WK2 build with 
disabled ENABLE_NETSCAPE_PLUGIN_API or not. If no, we
can simple use minimal bot with --minimal --no-webkit2.
Comment 4 Simon Hausmann 2012-08-07 04:42:36 PDT
(In reply to comment #3)
> The question is now if we want to fix Qt-WK2 build with 
> disabled ENABLE_NETSCAPE_PLUGIN_API or not. If no, we
> can simple use minimal bot with --minimal --no-webkit2.

I think supporting a build configuration for platforms that do not have NPAPI support makes sense. Any non-X11 linux based mobile platform for example falls into that category right now.