From: Mike Hommey Date: Mon, 5 Apr 2010 17:58:23 +0200 Subject: Don't error-out when run-time libsqlite is older than build-time libsqlite In Debian, we have shlibs to handle this. --- storage/mozStorageService.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp index d73a168..4a2eb64 100644 --- a/storage/mozStorageService.cpp +++ b/storage/mozStorageService.cpp @@ -167,6 +167,33 @@ already_AddRefed Service::getSingleton() { return do_AddRef(gService); } +#if 0 + // Ensure that we are using the same version of SQLite that we compiled with + // or newer. Our configure check ensures we are using a new enough version + // at compile time. + if (SQLITE_VERSION_NUMBER > ::sqlite3_libversion_number() || + !::sqlite3_compileoption_used("SQLITE_SECURE_DELETE") || + !::sqlite3_compileoption_used("SQLITE_THREADSAFE=1") || + !::sqlite3_compileoption_used("SQLITE_ENABLE_FTS3") || + !::sqlite3_compileoption_used("SQLITE_ENABLE_UNLOCK_NOTIFY") || + !::sqlite3_compileoption_used("SQLITE_ENABLE_DBSTAT_VTAB")) { + nsCOMPtr ps(do_GetService(NS_PROMPTSERVICE_CONTRACTID)); + if (ps) { + nsAutoString title, message; + title.AppendLiteral("SQLite Version Error"); + message.AppendLiteral( + "The application has been updated, but the SQLite " + "library wasn't updated properly and the application " + "cannot run. Please try to launch the application again. " + "If that should still fail, please try reinstalling " + "it, or contact the support of where you got the " + "application from."); + (void)ps->Alert(nullptr, title.get(), message.get()); + } + MOZ_CRASH("SQLite Version Error"); + } +#endif + // The first reference to the storage service must be obtained on the // main thread. NS_ENSURE_TRUE(NS_IsMainThread(), nullptr);