Bug 87126

Summary: [Gtk][Meta] Reduce the number of configuration options
Product: WebKit Reporter: Zan Dobersek <zan>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Severity: Normal CC: gustavo, mrobinson, pnormand, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 87509, 87664, 96621, 99271, 99272, 104793, 105327, 105564    
Bug Blocks:    

Description Zan Dobersek 2012-05-22 06:22:30 PDT
There are currently 74(!) configuration options available when running ./configure script. That's quite a lot. Though, on a closer inspection, it turns out some of these actually don't apply anymore and even more are provided for features that are currently completely unsupported by the Gtk port, meaning enabling the configuration option is more likely to cause a compilation failure than introduce a properly supported feature.

I've compiled a spreadsheet of all the configuration options with notes for most of them about whether they're actually needed or if they're of any use:

Here's a more verbose explanation of the coloring legend, based on the code numbers:
#1 - these configuration options should currently not be modified, but can be removed later (for example --with-gstreamer or --with-gtk after support for older versions is dropper)
#2 - these configuration options introduce external dependencies when enabled, so they should not be removed
#3 - These are two SVG features, the configuration options should remain as there has always been interest for disabling the SVG code
#4 - these are well-supported features that could be enabled by default without an elegant option to disable them when compiling
#5 - these are well-supported features that could be enabled by default but are possible to disable at runtime (through the RuntimeEnabledFeatures class, though there's no API in Gtk port that could do that)
#6 - these configuration options guard features that are currently not supported by the Gtk port so it might make sense to remove them. They can be added again when the support is established and if necessary (if the support introduces a new dependency etc.)
#7 - these configuration options do nothing anymore as in most cases the define they were switching was removed from the code

I think configuration options under #6 and #7 can be removed soon, while options under #4 and #5 could require some discussion on whether they are to be removed and if so, whether they should be enabled by default or no.

Other than that, please review the spreadsheet and update it where necessary. I'll keep this a meta bug if nobody objects, creating new bug entries for proper changes.
Comment 1 Martin Robinson 2012-05-22 11:43:04 PDT
Awesome spreadsheet. I agree almost totally with your assessment of the options that can be removed. In the end, they'd just be removed from the configuration interface. They'd still be configurable by editing files.
Comment 2 Zan Dobersek 2013-02-07 08:55:42 PST
With the configure.ac finally cleaned up I'm calling it done for this bug.