Bug 37761

Summary: WebKit won't build with --disable-database
Product: WebKit Reporter: Michael Forney <mforney>
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Normal CC: commit-queue, mrobinson, ssiloti
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Attachments:
Description Flags
Patch fixing this issue
none
Partially fix build with --disable-database. none

Description Michael Forney 2010-04-17 20:46:43 PDT
Created attachment 53622 [details]
Patch fixing this issue

JSDOMWindowCustom.cpp tries to include the generated file "JSDatabase.h" even when --disable-database is specified.

Build log:
<snip>
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCSSStyleDeclarationCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCSSValueCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCallbackData.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCanvasRenderingContextCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCanvasRenderingContext2DCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSClipboardCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSConsoleCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCoordinatesCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCustomPositionCallback.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCustomPositionErrorCallback.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCustomVoidCallback.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCustomXPathNSResolver.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMBinding.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMFormDataCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMGlobalObject.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMWindowBase.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMWindowCustom.lo
WebCore/bindings/js/JSDOMWindowCustom.cpp:39:24: error: JSDatabase.h: No such file or directory
make[1]: *** [WebCore/bindings/js/libwebkit_1_0_la-JSDOMWindowCustom.lo] Error 1
make[1]: Leaving directory `/home/michael/tmp/webkit-gtk'
make: *** [all] Error 2

This is fixed by the attached patch.
Comment 1 Michael Forney 2010-04-17 22:32:46 PDT
It looks like this is not the only issue preventing webkit from being built with --disable-database.

./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::SQLiteTransaction(WebCore::SQLiteDatabase&, bool)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnDouble(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLResultOk'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindInt64(int, long)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::executeCommand()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::executeCommand(WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::~SQLiteStatement()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::~SQLiteDatabase()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::SQLiteDatabase()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::SQLiteStatement(WebCore::SQLiteDatabase&, WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnValue(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindDouble(int, double)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindNull(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLResultRow'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::open(WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::commit()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::step()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::prepare()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteFileSystem::appendDatabaseFileNameToPath(WebCore::String const&, WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::~SQLiteTransaction()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnInt64(int)'
collect2: ld returned 1 exit status
make[1]: *** [Programs/unittests/testhttpbackend] Error 1
make[1]: *** Waiting for unfinished jobs....
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::SQLiteTransaction(WebCore::SQLiteDatabase&, bool)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnDouble(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLResultOk'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindInt64(int, long)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::executeCommand()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::executeCommand(WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::~SQLiteStatement()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::~SQLiteDatabase()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::SQLiteDatabase()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::SQLiteStatement(WebCore::SQLiteDatabase&, WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnValue(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindDouble(int, double)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindNull(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLResultRow'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::open(WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::commit()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::step()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::prepare()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteFileSystem::appendDatabaseFileNameToPath(WebCore::String const&, WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::~SQLiteTransaction()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnInt64(int)'
collect2: ld returned 1 exit status
make[1]: *** [Programs/GtkLauncher] Error 1

I think this is because offline-web-applications is dependent on database, but I'm not quite sure how to fix this one.
Comment 2 Michael Forney 2010-04-18 16:49:01 PDT
Created attachment 53645 [details]
Partially fix build with --disable-database.

Update patch for style requirements.
Comment 3 Adam Barth 2010-04-22 13:03:00 PDT
Comment on attachment 53645 [details]
Partially fix build with --disable-database.

Thanks!
Comment 4 WebKit Commit Bot 2010-04-22 21:20:10 PDT
Comment on attachment 53645 [details]
Partially fix build with --disable-database.

Clearing flags on attachment: 53645

Committed r58145: <http://trac.webkit.org/changeset/58145>
Comment 5 WebKit Commit Bot 2010-04-22 21:20:14 PDT
All reviewed patches have been landed.  Closing bug.
Comment 6 Michael Forney 2010-04-23 21:49:22 PDT
This bug is not yet fixed because of the second issue I mentioned regarding  linking failures.
Comment 7 Steven Siloti 2010-09-13 21:53:10 PDT
The link errors are due to GeolocationPositionCache depending on SQLite platform support. To fix this we could either include the SQLite platform sources if ENABLE(GEOLOCATION) or make GeolocationPositionCache support conditional on ENABLE(DATABASE). I'm not sure which would be more appropriate.
Comment 8 Martin Robinson 2014-04-08 18:36:25 PDT
Patch is probably quite out of date. Let's reopen if this is still an issue and post a new fix.