diff options
Diffstat (limited to 'libraries/qt5')
-rw-r--r-- | libraries/qt5/explicitly-initialize-sqlite.patch | 217 | ||||
-rw-r--r-- | libraries/qt5/qt5.SlackBuild | 11 | ||||
-rw-r--r-- | libraries/qt5/qt5.info | 10 |
3 files changed, 232 insertions, 6 deletions
diff --git a/libraries/qt5/explicitly-initialize-sqlite.patch b/libraries/qt5/explicitly-initialize-sqlite.patch new file mode 100644 index 0000000000..2773658adc --- /dev/null +++ b/libraries/qt5/explicitly-initialize-sqlite.patch @@ -0,0 +1,217 @@ +From 9bab2acc924790b0a01a08e76f9216acc2d6528b Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen <allan.jensen@qt.io> +Date: Thu, 16 May 2019 11:19:49 +0200 +Subject: [Backport] WebSQL: Explicitly initialize SQLite, remove deprecated + API usage. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Change-Id: I291dd041c5646c4fdd714ff98dd939566861d921 +Reviewed-on: https://chromium-review.googlesource.com/892092 +Task-number: QTBUG-75853 +Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> +--- + .../Source/modules/webdatabase/DatabaseTracker.cpp | 2 +- + .../modules/webdatabase/sqlite/SQLiteFileSystem.cpp | 21 ++++++++++++++++++++- + .../modules/webdatabase/sqlite/SQLiteFileSystem.h | 21 +++++++++++++++------ + .../webdatabase/sqlite/SQLiteFileSystemPosix.cpp | 19 ++++++++++--------- + .../webdatabase/sqlite/SQLiteFileSystemWin.cpp | 19 ++++++++++--------- + 5 files changed, 56 insertions(+), 26 deletions(-) + +diff --git a/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseTracker.cpp b/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseTracker.cpp +index 13ea7d8181..f78d90a5df 100644 +--- a/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseTracker.cpp ++++ b/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseTracker.cpp +@@ -66,7 +66,7 @@ DatabaseTracker& DatabaseTracker::tracker() { + } + + DatabaseTracker::DatabaseTracker() { +- SQLiteFileSystem::registerSQLiteVFS(); ++ SQLiteFileSystem::initializeSQLite(); + } + + bool DatabaseTracker::canEstablishDatabase(DatabaseContext* databaseContext, +diff --git a/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystem.cpp b/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystem.cpp +index 9c25341c57..2a6e140f9e 100644 +--- a/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystem.cpp ++++ b/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystem.cpp +@@ -39,9 +39,28 @@ + // platform-specific files SQLiteFileSystemChromium{Win|Posix}.cpp + namespace blink { + +-SQLiteFileSystem::SQLiteFileSystem() {} ++#if DCHECK_IS_ON() ++// static ++bool SQLiteFileSystem::initialize_sqlite_called_ = false; ++#endif // DCHECK_IS_ON + ++// static ++void SQLiteFileSystem::initializeSQLite() { ++#if DCHECK_IS_ON() ++ DCHECK(!initialize_sqlite_called_) << __func__ << " already called"; ++ initialize_sqlite_called_ = true; ++#endif // DCHECK_IS_ON() ++ ++ sqlite3_initialize(); ++ registerSQLiteVFS(); ++} ++ ++// static + int SQLiteFileSystem::openDatabase(const String& filename, sqlite3** database) { ++#if DCHECK_IS_ON() ++ DCHECK(initialize_sqlite_called_) ++ << "InitializeSQLite() must be called before " << __func__; ++#endif // DCHECK_IS_ON() + SafePointScope scope(BlinkGC::HeapPointersOnStack); + return sqlite3_open_v2(filename.utf8().data(), database, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, +diff --git a/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystem.h b/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystem.h +index 97c0ad83a1..af2bcd9211 100644 +--- a/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystem.h ++++ b/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystem.h +@@ -42,22 +42,31 @@ namespace blink { + // A class that abstracts the file system related operations required + // by the WebKit database code. + class SQLiteFileSystem { +- DISALLOW_NEW(); +- + public: +- // Registers a user-defined SQLite VFS. +- static void registerSQLiteVFS(); ++ // This class is used as a namespace, so instantiating it doesn't make sense. ++ SQLiteFileSystem() = delete; ++ ++ // Initializes SQLite for Blink's use. ++ // ++ // This must be called exactly once in each renderer process that uses SQLite. ++ static void initializeSQLite(); + + // Opens a database file. + // ++ // initializeSQLite() must be called before this method is called. ++ // + // filemame - The name of the database file. + // database - The SQLite structure that represents the database stored + // in the given file. + static int openDatabase(const String& filename, sqlite3** database); + + private: +- // do not instantiate this class +- SQLiteFileSystem(); ++ // Registers Chromium's VFS with SQLite. ++ static void registerSQLiteVFS(); ++ ++#if DCHECK_IS_ON() ++ static bool initialize_sqlite_called_; ++#endif // DCHECK_IS_ON() + }; // class SQLiteFileSystem + + } // namespace blink +diff --git a/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystemPosix.cpp b/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystemPosix.cpp +index 77e7b6d904..20d0fd2e0e 100644 +--- a/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystemPosix.cpp ++++ b/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystemPosix.cpp +@@ -321,11 +321,6 @@ int chromiumSleep(sqlite3_vfs* vfs, int microseconds) { + return wrappedVfs->xSleep(wrappedVfs, microseconds); + } + +-int chromiumCurrentTime(sqlite3_vfs* vfs, double* prNow) { +- sqlite3_vfs* wrappedVfs = static_cast<sqlite3_vfs*>(vfs->pAppData); +- return wrappedVfs->xCurrentTime(wrappedVfs, prNow); +-} +- + int chromiumGetLastError(sqlite3_vfs* vfs, int e, char* s) { + // xGetLastError() has never been used by SQLite. The implementation in + // os_win.c indicates this is a reasonable implementation. +@@ -333,6 +328,11 @@ int chromiumGetLastError(sqlite3_vfs* vfs, int e, char* s) { + return 0; + } + ++int chromiumCurrentTimeInt64(sqlite3_vfs* vfs, sqlite3_int64* now) { ++ sqlite3_vfs* wrapped_vfs = static_cast<sqlite3_vfs*>(vfs->pAppData); ++ return wrapped_vfs->xCurrentTimeInt64(wrapped_vfs, now); ++} ++ + } // namespace + + void SQLiteFileSystem::registerSQLiteVFS() { +@@ -342,9 +342,9 @@ void SQLiteFileSystem::registerSQLiteVFS() { + // TODO(shess): Implement local versions. + ASSERT(wrappedVfs->xRandomness); + ASSERT(wrappedVfs->xSleep); +- ASSERT(wrappedVfs->xCurrentTime); ++ ASSERT(wrappedVfs->xCurrentTimeInt64); + +- static sqlite3_vfs chromium_vfs = {1, ++ static sqlite3_vfs chromium_vfs = {2, + sizeof(chromiumVfsFile), + wrappedVfs->mxPathname, + 0, +@@ -360,8 +360,9 @@ void SQLiteFileSystem::registerSQLiteVFS() { + chromiumDlClose, + chromiumRandomness, + chromiumSleep, +- chromiumCurrentTime, +- chromiumGetLastError}; ++ nullptr, // CurrentTime is deprecated. ++ chromiumGetLastError, ++ chromiumCurrentTimeInt64}; + sqlite3_vfs_register(&chromium_vfs, 0); + } + +diff --git a/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystemWin.cpp b/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystemWin.cpp +index 2933df65f6..31103047fd 100644 +--- a/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystemWin.cpp ++++ b/chromium/third_party/WebKit/Source/modules/webdatabase/sqlite/SQLiteFileSystemWin.cpp +@@ -148,11 +148,6 @@ int chromiumSleep(sqlite3_vfs* vfs, int microseconds) { + return wrappedVfs->xSleep(wrappedVfs, microseconds); + } + +-int chromiumCurrentTime(sqlite3_vfs* vfs, double* prNow) { +- sqlite3_vfs* wrappedVfs = static_cast<sqlite3_vfs*>(vfs->pAppData); +- return wrappedVfs->xCurrentTime(wrappedVfs, prNow); +-} +- + int chromiumGetLastError(sqlite3_vfs* vfs, int e, char* s) { + // xGetLastError() has never been used by SQLite. The implementation in + // os_win.c indicates this is a reasonable implementation. +@@ -160,6 +155,11 @@ int chromiumGetLastError(sqlite3_vfs* vfs, int e, char* s) { + return 0; + } + ++int chromiumCurrentTimeInt64(sqlite3_vfs* vfs, sqlite3_int64* now) { ++ sqlite3_vfs* wrapped_vfs = static_cast<sqlite3_vfs*>(vfs->pAppData); ++ return wrapped_vfs->xCurrentTimeInt64(wrapped_vfs, now); ++} ++ + } // namespace + + void SQLiteFileSystem::registerSQLiteVFS() { +@@ -169,9 +169,9 @@ void SQLiteFileSystem::registerSQLiteVFS() { + // TODO(shess): Implement local versions. + ASSERT(wrappedVfs->xRandomness); + ASSERT(wrappedVfs->xSleep); +- ASSERT(wrappedVfs->xCurrentTime); ++ ASSERT(wrappedVfs->xCurrentTimeInt64); + +- static sqlite3_vfs chromium_vfs = {1, ++ static sqlite3_vfs chromium_vfs = {2, + wrappedVfs->szOsFile, + wrappedVfs->mxPathname, + 0, +@@ -187,8 +187,9 @@ void SQLiteFileSystem::registerSQLiteVFS() { + chromiumDlClose, + chromiumRandomness, + chromiumSleep, +- chromiumCurrentTime, +- chromiumGetLastError}; ++ nullptr, // CurrentTime is deprecated. ++ chromiumGetLastError, ++ chromiumCurrentTimeInt64}; + sqlite3_vfs_register(&chromium_vfs, 0); + } + +-- +cgit v1.2.1 + diff --git a/libraries/qt5/qt5.SlackBuild b/libraries/qt5/qt5.SlackBuild index 18ed17ca7e..8a1046f062 100644 --- a/libraries/qt5/qt5.SlackBuild +++ b/libraries/qt5/qt5.SlackBuild @@ -50,7 +50,7 @@ # Adapted for Qt 5.9.6 by David Woodfall PRGNAM=qt5 -VERSION=${VERSION:-5.9.7} +VERSION=${VERSION:-5.9.8} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -166,6 +166,15 @@ fi sed -i "s|-O2|$SLKCFLAGS|" qtbase/mkspecs/common/gcc-base.conf +# Patch to fix renderer crash on some sites with 5.9.8: +# https://bugreports.qt.io/browse/QTBUG-75853 +if [ "$WEBENGINE" = "yes" ]; then + ( + cd qtwebengine/src/3rdparty + patch -p1 <$CWD/explicitly-initialize-sqlite.patch + ) +fi + export CFLAGS="$SLKCFLAGS" export CXXFLAGS="$SLKCFLAGS -std=c++11" ./configure -v \ diff --git a/libraries/qt5/qt5.info b/libraries/qt5/qt5.info index 39da582922..cbafdfc6a5 100644 --- a/libraries/qt5/qt5.info +++ b/libraries/qt5/qt5.info @@ -1,10 +1,10 @@ PRGNAM="qt5" -VERSION="5.9.7" +VERSION="5.9.8" HOMEPAGE="http://qt-project.org/" -DOWNLOAD="http://download.qt.io/official_releases/qt/5.9/5.9.7/single/qt-everywhere-opensource-src-5.9.7.tar.xz" -MD5SUM="70e617aeb1f9bbf84a12b8cf09b01ece" +DOWNLOAD="http://download.qt.io/official_releases/qt/5.9/5.9.8/single/qt-everywhere-opensource-src-5.9.8.tar.xz" +MD5SUM="bfeb4795c9446b9ff7c6c3c9042eb498" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="libxkbcommon libinput" -MAINTAINER="David Woodfall" -EMAIL="dave@dawoodfall.net" +MAINTAINER="Dave Woodfall" +EMAIL="dave@slackbuilds.org" |