qt5: update to 5.14.2

This commit is contained in:
John 2019-10-11 00:59:18 +02:00 committed by John Zimmermann
parent 429122a382
commit dd4f7cc6ef
55 changed files with 385 additions and 8580 deletions

View file

@ -1876,86 +1876,89 @@ libgltf-0.1.so.1 libgltf-0.1.0_1
libabw-0.1.so.1 libabw-0.1.0_1
libcmis-0.5.so.5 libcmis-0.5.0_1
libcmis-c-0.5.so.5 libcmis-0.5.0_1
libQt5Bluetooth.so.5 qt5-connectivity-5.6.0_1
libQt53DAnimation.so.5 qt5-3d-5.10.1_1
libQt53DCore.so.5 qt5-3d-5.6.0_1
libQt53DInput.so.5 qt5-3d-5.6.0_1
libQt53DLogic.so.5 qt5-3d-5.6.0_1
libQt53DRender.so.5 qt5-3d-5.6.0_1
libQt53DQuick.so.5 qt5-3d-5.6.0_1
libQt53DQuickInput.so.5 qt5-3d-5.6.0_1
libQt53DQuickRender.so.5 qt5-3d-5.6.0_1
libQt53DQuickScene2D.so.5 qt5-3d-5.10.1_1
libQt53DExtras.so.5 qt5-3d-5.6.0_1
libQt53DQuickExtras.so.5 qt5-3d-5.6.0_1
libQt53DQuickAnimation.so.5 qt5-3d-5.10.1_1
libQt5Charts.so.5 qt5-charts-5.7.1_1
libQt5DataVisualization.so.5 qt5-datavis3d-5.7.1_1
libQt5Gamepad.so.5 qt5-gamepad-5.7.1_1
libQt5Nfc.so.5 qt5-connectivity-5.6.0_1
libQt5WebView.so.5 qt5-webview-5.6.0_1
libQt5Qml.so.5 qt5-declarative-5.6.0_1
libQt5QmlDevTools.so.5 qt5-declarative-5.13.0_1
libQt5Quick.so.5 qt5-declarative-5.6.0_1
libQt5QuickTest.so.5 qt5-declarative-5.6.0_1
libQt5QuickWidgets.so.5 qt5-declarative-5.6.0_1
libQt5QuickParticles.so.5 qt5-declarative-5.6.0_1
libQt5QuickShapes.so.5 qt5-declarative-5.12.1_1
libQt5QuickControls2.so.5 qt5-quickcontrols2-5.7.1_1
libQt5QuickTemplates2.so.5 qt5-quickcontrols2-5.7.1_1
libQt5Positioning.so.5 qt5-location-5.6.0_1
libQt5Location.so.5 qt5-location-5.6.0_1
libQt5PositioningQuick.so.5 qt5-location-5.12.1_1
libQt5VirtualKeyboard.so.5 qt5-virtualkeyboard-5.12.1_1
libQt5Multimedia.so.5 qt5-multimedia-5.6.0_1
libQt5MultimediaGstTools.so.5 qt5-multimedia-5.10.1_1
libQt5MultimediaQuick.so.5 qt5-multimedia-5.10.1_1
libQt5MultimediaQuick_p.so.5 qt5-multimedia-5.6.0_1
libQt5MultimediaWidgets.so.5 qt5-multimedia-5.6.0_1
libQt5NetworkAuth.so.5 qt5-networkauth-5.10.1_1
libQt5Purchasing.so.5 qt5-purchasing-5.10.1_1
libQt5RemoteObjects.so.5 qt5-remoteobjects-5.10.1_1
libqgsttools_p.so.1 qt5-multimedia-5.6.0_1
libQt5LabsTemplates.so.5 qt5-quickcontrols2-5.6.0_1
libQt5Scxml.so.5 qt5-scxml-5.7.1_1
libQt5Script.so.5 qt5-script-5.6.0_1
libQt5ScriptTools.so.5 qt5-script-5.6.0_1
libQt5Sensors.so.5 qt5-sensors-5.6.0_1
libQt5SerialBus.so.5 qt5-serialbus-5.6.0_1
libQt5SerialPort.so.5 qt5-serialport-5.6.0_1
libQt5Svg.so.5 qt5-svg-5.6.0_1
libQt5CLucene.so.5 qt5-tools-5.6.0_1
libQt5Help.so.5 qt5-tools-5.6.0_1
libQt5Designer.so.5 qt5-tools-5.6.0_1
libQt5DesignerComponents.so.5 qt5-tools-5.6.0_1
libQt5WaylandClient.so.5 qt5-wayland-5.6.0_1
libQt5WaylandCompositor.so.5 qt5-wayland-5.6.0_1
libQt5WebChannel.so.5 qt5-webchannel-5.6.0_1
libQt5WebEngineCore.so.5 qt5-webengine-5.6.0_1
libQt5WebEngine.so.5 qt5-webengine-5.6.0_1
libQt5WebEngineWidgets.so.5 qt5-webengine-5.6.0_1
libQt5WebSockets.so.5 qt5-websockets-5.6.0_1
libQt5X11Extras.so.5 qt5-x11extras-5.6.0_1
libQt5XmlPatterns.so.5 qt5-xmlpatterns-5.6.0_1
libQt5Core.so.5 qt5-5.6.0_1
libQt5EglFSDeviceIntegration.so.5 qt5-5.8.0_1
libQt5Network.so.5 qt5-5.6.0_1
libQt5Sql.so.5 qt5-5.6.0_1
libQt5Xml.so.5 qt5-5.6.0_1
libQt5Gui.so.5 qt5-5.6.0_1
libQt5Widgets.so.5 qt5-5.6.0_1
libQt5Test.so.5 qt5-5.6.0_1
libQt5DBus.so.5 qt5-5.6.0_1
libQt5Concurrent.so.5 qt5-5.6.0_1
libQt5OpenGL.so.5 qt5-5.6.0_1
libQt5PrintSupport.so.5 qt5-5.6.0_1
libQt5XcbQpa.so.5 qt5-5.6.0_1
libQt5EglDeviceIntegration.so.5 qt5-5.6.0_1
libQt5EglFsKmsSupport.so.5 qt5-5.7.1_1
libQt5Bluetooth.so.5 qt5-connectivity-5.14.1_1
libQt53DAnimation.so.5 qt5-3d-5.14.1_1
libQt53DCore.so.5 qt5-3d-5.14.1_1
libQt53DInput.so.5 qt5-3d-5.14.1_1
libQt53DLogic.so.5 qt5-3d-5.14.1_1
libQt53DRender.so.5 qt5-3d-5.14.1_1
libQt53DQuick.so.5 qt5-3d-5.14.1_1
libQt53DQuickInput.so.5 qt5-3d-5.14.1_1
libQt53DQuickRender.so.5 qt5-3d-5.14.1_1
libQt53DQuickScene2D.so.5 qt5-3d-5.14.1_1
libQt53DExtras.so.5 qt5-3d-5.14.1_1
libQt53DQuickExtras.so.5 qt5-3d-5.14.1_1
libQt53DQuickAnimation.so.5 qt5-3d-5.14.1_1
libQt53DQuickInput.so.5 qt5-3d-5.14.1_1
libQt5Charts.so.5 qt5-charts-5.14.1_1
libQt5DataVisualization.so.5 qt5-datavis3d-5.14.1_1
libQt5Gamepad.so.5 qt5-gamepad-5.14.1_1
libQt5Nfc.so.5 qt5-connectivity-5.14.1_1
libQt5WebView.so.5 qt5-webview-5.14.1_1
libQt5Qml.so.5 qt5-declarative-5.14.1_1
libQt5QmlDevTools.so.5 qt5-declarative-5.14.1_1
libQt5Quick.so.5 qt5-declarative-5.14.1_1
libQt5QuickTest.so.5 qt5-declarative-5.14.1_1
libQt5QuickWidgets.so.5 qt5-declarative-5.14.1_1
libQt5QuickParticles.so.5 qt5-declarative-5.14.1_1
libQt5QuickShapes.so.5 qt5-declarative-5.14.1_1
libQt5QmlModels.so.5 qt5-declarative-5.14.1_1
libQt5QmlWorkerScript.so.5 qt5-declarative-5.14.1_1
libQt5QuickControls2.so.5 qt5-quickcontrols2-5.14.1_1
libQt5QuickTemplates2.so.5 qt5-quickcontrols2-5.14.1_1
libQt5Positioning.so.5 qt5-location-5.14.1_1
libQt5Location.so.5 qt5-location-5.14.1_1
libQt5PositioningQuick.so.5 qt5-location-5.14.1_1
libQt5VirtualKeyboard.so.5 qt5-virtualkeyboard-5.14.1_1
libQt5Multimedia.so.5 qt5-multimedia-5.14.1_1
libQt5MultimediaGstTools.so.5 qt5-multimedia-5.14.1_1
libQt5MultimediaQuick.so.5 qt5-multimedia-5.14.1_1
libQt5MultimediaQuick_p.so.5 qt5-multimedia-5.14.1_1
libQt5MultimediaWidgets.so.5 qt5-multimedia-5.14.1_1
libQt5NetworkAuth.so.5 qt5-networkauth-5.14.1_1
libQt5Purchasing.so.5 qt5-purchasing-5.14.1_1
libQt5RemoteObjects.so.5 qt5-remoteobjects-5.14.1_1
libqgsttools_p.so.1 qt5-multimedia-5.14.1_1
libQt5LabsTemplates.so.5 qt5-quickcontrols2-5.14.1_1
libQt5Scxml.so.5 qt5-scxml-5.14.1_1
libQt5Script.so.5 qt5-script-5.14.1_1
libQt5ScriptTools.so.5 qt5-script-5.14.1_1
libQt5Sensors.so.5 qt5-sensors-5.14.1_1
libQt5SerialBus.so.5 qt5-serialbus-5.14.1_1
libQt5SerialPort.so.5 qt5-serialport-5.14.1_1
libQt5Svg.so.5 qt5-svg-5.14.1_1
libQt5CLucene.so.5 qt5-tools-5.14.1_1
libQt5Help.so.5 qt5-tools-5.14.1_1
libQt5Designer.so.5 qt5-tools-5.14.1_1
libQt5DesignerComponents.so.5 qt5-tools-5.14.1_1
libQt5WaylandClient.so.5 qt5-wayland-5.14.1_1
libQt5WaylandCompositor.so.5 qt5-wayland-5.14.1_1
libQt5WebChannel.so.5 qt5-webchannel-5.14.1_1
libQt5WebEngineCore.so.5 qt5-webengine-5.14.1_1
libQt5WebEngine.so.5 qt5-webengine-5.14.1_1
libQt5WebEngineWidgets.so.5 qt5-webengine-5.14.1_1
libQt5WebSockets.so.5 qt5-websockets-5.14.1_1
libQt5X11Extras.so.5 qt5-x11extras-5.14.1_1
libQt5XmlPatterns.so.5 qt5-xmlpatterns-5.14.1_1
libQt5Core.so.5 qt5-core-5.14.1_1
libQt5EglFSDeviceIntegration.so.5 qt5-gui-5.14.1_1
libQt5Network.so.5 qt5-network-5.14.1_1
libQt5Sql.so.5 qt5-sql-5.14.1_1
libQt5Xml.so.5 qt5-xml-5.14.1_1
libQt5Gui.so.5 qt5-gui-5.14.1_1
libQt5Widgets.so.5 qt5-widgets-5.14.1_1
libQt5Test.so.5 qt5-test-5.14.1_1
libQt5DBus.so.5 qt5-dbus-5.14.1_1
libQt5Concurrent.so.5 qt5-concurrent-5.14.1_1
libQt5OpenGL.so.5 qt5-opengl-5.14.1_1
libQt5PrintSupport.so.5 qt5-printsupport-5.14.1_1
libQt5XcbQpa.so.5 qt5-gui-5.14.1_1
libQt5EglDeviceIntegration.so.5 qt5-gui-5.14.1_1
libQt5EglFsKmsSupport.so.5 qt5-gui-5.14.1_1
libQt5TextToSpeech.so.5 qt5-speech-5.14.1_1
libQt5Bodymovin.so.5 qt5-lottie-5.14.1_1
libQt5WebKit.so.5 qt5-webkit-5.6.0_1
libQt5WebKitWidgets.so.5 qt5-webkit-5.6.0_1
libQt5TextToSpeech.so.5 qt5-speech-5.8.0_1
libQt5Bodymovin.so.5 qt5-lottie-5.13.0_1
libx265.so.188 x265-3.3_1
libQt5Xdg.so.3 libqtxdg-3.1.0_1
libQt5XdgIconLoader.so.3 libqtxdg-3.1.0_1

1
srcpkgs/qt5-concurrent Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-core Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-dbus Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-gui Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-network Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-opengl Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-printsupport Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-quicktimeline Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-sql Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-test Symbolic link
View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-widgets Symbolic link
View file

@ -0,0 +1 @@
qt5

View file

@ -0,0 +1 @@
qt5

1
srcpkgs/qt5-xml Symbolic link
View file

@ -0,0 +1 @@
qt5

View file

@ -1,10 +0,0 @@
--- qtdeclarative/tools/tools.pro 2019-04-09 01:01:07.000000000 +0200
+++ - 2019-04-21 00:24:16.192966345 +0200
@@ -7,7 +7,6 @@
qmlmin \
qmlimportscanner
- qtConfig(commandlineparser):qtConfig(xmlstreamwriter): SUBDIRS += qmlcachegen
}
qtConfig(thread):!android|android_app:!wasm {

View file

@ -0,0 +1,38 @@
QT = core qml qmldevtools-private
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
SOURCES = qmlcachegen.cpp \
resourcefilter.cpp \
generateloader.cpp
TARGET = qmlcachegen
include(../shared/shared.pri)
build_integration.files = qmlcache.prf qtquickcompiler.prf
build_integration.path = $$[QT_HOST_DATA]/mkspecs/features
prefix_build: INSTALLS += build_integration
else: COPIES += build_integration
load(cmake_functions)
CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
contains(CMAKE_BIN_DIR, "^\\.\\./.*") {
CMAKE_BIN_DIR = $$[QT_HOST_BINS]/
CMAKE_BIN_DIR_IS_ABSOLUTE = True
}
load(qt_build_paths)
equals(QMAKE_HOST.os, Windows): CMAKE_BIN_SUFFIX = ".exe"
cmake_config_file.input = $$PWD/Qt5QuickCompilerConfig.cmake.in
cmake_config_file.output = $$MODULE_BASE_OUTDIR/lib/cmake/Qt5QuickCompiler/Qt5QuickCompilerConfig.cmake
QMAKE_SUBSTITUTES += cmake_config_file
cmake_build_integration.files = $$cmake_config_file.output
cmake_build_integration.path = $$[QT_INSTALL_LIBS]/cmake/Qt5QuickCompiler
prefix_build: INSTALLS += cmake_build_integration
else: COPIES += cmake_build_integration
QMAKE_TARGET_DESCRIPTION = QML Cache Generator
load(qt_tool)

View file

@ -3,6 +3,8 @@ DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
SOURCES += main.cpp ../../src/qml/qqmljsgrammar.cpp
include(../shared/shared.pri)
QMAKE_TARGET_DESCRIPTION = QML Import Scanner
load(qt_tool)

View file

@ -1,7 +1,22 @@
QT = core qml qmldevtools-private
SOURCES += main.cpp ../../src/qml/qqmljsgrammar.cpp
SOURCES += main.cpp \
componentversion.cpp \
fakemetaobject.cpp \
findunqualified.cpp \
qmljstypedescriptionreader.cpp \
qcoloroutput.cpp \
scopetree.cpp \
../../src/qml/qqmljsgrammar.cpp
QMAKE_TARGET_DESCRIPTION = QML Syntax Verifier
load(qt_tool)
HEADERS += \
componentversion.h \
fakemetaobject.h \
findunqualified.h \
qmljstypedescriptionreader.h \
qcoloroutput_p.h \
scopetree.h

View file

@ -1,5 +1,6 @@
TEMPLATE = subdirs
QT_FOR_CONFIG += widgets
SUBDIRS = assistant \
pixeltool \
designer \
@ -8,34 +9,31 @@ SUBDIRS = assistant \
qtattributionsscanner
linguist.depends = designer
qtHaveModule(quick):qtConfig(thread):qtConfig(toolbutton): SUBDIRS += distancefieldgenerator
qtConfig(library) {
!android|android_app: SUBDIRS += qtplugininfo
}
if(!android|android_app):!uikit: SUBDIRS += qtpaths
!android|android_app: SUBDIRS += qtpaths
mac {
macos {
SUBDIRS += macdeployqt
}
android {
SUBDIRS += androiddeployqt
}
win32|winrt:SUBDIRS += windeployqt
winrt:SUBDIRS += winrtrunner
qtHaveModule(gui):!android:!uikit:!qnx:!winrt: SUBDIRS += qtdiag
qtHaveModule(gui):!wasm:!android:!uikit:!qnx:!winrt: SUBDIRS += qtdiag
qtNomakeTools( \
macdeployqt \
distancefieldgenerator \
pixeltool \
)
# This is necessary to avoid a race condition between toolchain.prf
# invocations in a module-by-module cross-build.
cross_compile:isEmpty(QMAKE_HOST_CXX.INCDIRS) {
androiddeployqt.depends += qtattributionsscanner
qdoc.depends += qtattributionsscanner
windeployqt.depends += qtattributionsscanner
winrtrunner.depends += qtattributionsscanner
linguist.depends += qtattributionsscanner

View file

@ -1,29 +0,0 @@
#if !defined(__GLIBC__)
/***************************************************************************
* resolv_compat.h
*
* Mimick GLIBC's res_ninit() and res_nclose() for musl libc
* Note: res_init() is actually deprecated according to
* http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html
**************************************************************************/
#include <string.h>
static inline int res_ninit(res_state statp)
{
int rc = res_init();
if (statp != &_res) {
memcpy(statp, &_res, sizeof(*statp));
}
return rc;
}
static inline int res_nclose(res_state statp)
{
if (!statp)
return -1;
if (statp != &_res) {
memset(statp, 0, sizeof(*statp));
}
return 0;
}
#endif

View file

@ -4,6 +4,7 @@ DEFINES += QT_UIC QT_NO_CAST_FROM_ASCII QT_NO_FOREACH
include(uic.pri)
include(shared/shared.pri)
include(cpp/cpp.pri)
include(python/python.pri)
HEADERS += uic.h

View file

@ -0,0 +1,15 @@
TARGET = QtUiTools
CONFIG += static
include(../lib/uilib/uilib.pri)
QMAKE_DOCS = $$PWD/doc/qtuitools.qdocconf
HEADERS += quiloader.h
SOURCES += quiloader.cpp
DEFINES += \
QFORMINTERNAL_NAMESPACE \
QT_DESIGNER_STATIC
load(qt_module)

View file

@ -0,0 +1,23 @@
Source: @Johnnynator
Upsteam: No
Subject: Musl always returns /lib/libQt5Core.so.5 for Dl_info.dli_fname.
On GLIBC this seems to only happen with programs that load qt5-webengine(?)
---
diff --git qtbasesrc/corelib/global/qlibraryinfo.cpp qtbasesrc/corelib/global/qlibraryinfo.cpp
index 8bcf67e73d..28d7355310 100644
--- qtbase/src/corelib/global/qlibraryinfo.cpp
+++ qtbase/src/corelib/global/qlibraryinfo.cpp
@@ -558,6 +558,12 @@ static QString getRelocatablePrefix()
int result = dladdr(reinterpret_cast<void *>(&QLibraryInfo::isDebugBuild), &info);
if (result > 0 && info.dli_fname)
prefixPath = prefixFromQtCoreLibraryHelper(QString::fromLatin1(info.dli_fname));
+#if 1
+ QDir preDir(prefixPath);
+ if (preDir.isRoot()) {
+ prefixPath = QStringLiteral("/usr");
+ }
+#endif
#elif defined(Q_OS_WIN)
HMODULE hModule = getWindowsModuleHandle();
const int kBufferSize = 4096;

View file

@ -1,42 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h 2018-06-15 09:47:20.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h 2018-09-07 22:21:28.521763716 +0200
@@ -50,7 +50,7 @@
// info: the collection of register structures.
#if defined(__i386__) || defined(__x86_64)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
+ const struct _fpstate* fp);
#elif defined(__aarch64__)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
const struct fpsimd_context* fpregs);
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc 2018-06-15 09:47:20.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc 2018-09-07 22:21:45.766762688 +0200
@@ -49,7 +49,7 @@
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
+ const struct _fpstate* fp) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_X86_FULL |
@@ -97,7 +97,7 @@
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
+ const struct _fpstate* fpregs) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_AMD64_FULL;
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h 2018-06-15 09:47:20.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h 2018-09-07 23:36:32.049495285 +0200
@@ -48,7 +48,7 @@
#if defined(__aarch64__)
typedef struct fpsimd_context fpstate_t;
#elif !defined(__ARM_EABI__) && !defined(__mips__)
-typedef struct _libc_fpstate fpstate_t;
+typedef struct _fpstate fpstate_t;
#endif
// These entries store a list of memory regions that the client wants included

View file

@ -1,26 +0,0 @@
From 9001c54d6b974449174a8cee8f3f5d78a9bd6c9e Mon Sep 17 00:00:00 2001
From: Felix Janda <felix.janda@posteo.de>
Date: Sun, 1 Feb 2015 14:26:52 +0100
Subject: [PATCH 3/6] include <sys/reg.h> to get __WORDSIZE on musl libc
---
qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/common/linux/elf_core_dump.h b/src/common/linux/elf_core_dump.h
index d03c7a8..02eb391 100644
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
@@ -36,6 +36,9 @@
#include <elf.h>
#include <link.h>
#include <stddef.h>
+#ifndef __GLIBC__
+#include <sys/reg.h>
+#endif
#include "common/memory_range.h"
--
2.0.5

View file

@ -1,103 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/base/allocator/allocator_shim_default_dispatch_to_glibc.cc
--- qtwebengine/src/3rdparty/chromium/base/allocator/allocator_shim_default_dispatch_to_glibc.cc
@@ -6,6 +6,7 @@
#include <malloc.h>
+#if defined(__GLIBC__)
// This translation unit defines a default dispatch for the allocator shim which
// routes allocations to libc functions.
// The code here is strongly inspired from tcmalloc's libc_override_glibc.h.
@@ -73,3 +74,92 @@ const AllocatorDispatch AllocatorDispatch::default_dispatch = {
nullptr, /* free_definite_size_function */
nullptr, /* next */
};
+
+#else // defined(__GLIBC__)
+
+#include <dlfcn.h>
+
+extern "C" {
+// Declare function pointers to the memory functions
+typedef void* (*t_libc_malloc)(size_t size);
+typedef void* (*t_libc_calloc)(size_t n, size_t size);
+typedef void* (*t_libc_realloc)(void* address, size_t size);
+typedef void* (*t_libc_memalign)(size_t alignment, size_t size);
+typedef void (*t_libc_free)(void* ptr);
+typedef size_t (*t_libc_malloc_usable_size)(void* ptr);
+
+// Static instances of pointers to libc.so dl symbols
+static t_libc_malloc libc_malloc = NULL;
+static t_libc_calloc libc_calloc = NULL;
+static t_libc_realloc libc_realloc = NULL;
+static t_libc_memalign libc_memalign = NULL;
+static t_libc_free libc_free = NULL;
+static t_libc_malloc_usable_size libc_malloc_usable_size = NULL;
+
+// resolve the symbols in libc.so
+void musl_libc_memory_init(void)
+{
+ libc_malloc = (t_libc_malloc) dlsym(RTLD_NEXT, "malloc");
+ libc_calloc = (t_libc_calloc) dlsym(RTLD_NEXT, "calloc");
+ libc_realloc = (t_libc_realloc) dlsym(RTLD_NEXT, "realloc");
+ libc_memalign = (t_libc_memalign) dlsym(RTLD_NEXT, "memalign");
+ libc_free = (t_libc_free) dlsym(RTLD_NEXT, "free");
+ libc_malloc_usable_size = (t_libc_malloc_usable_size) dlsym(RTLD_NEXT, "malloc_usable_size");
+}
+} // extern "C"
+
+namespace {
+
+using base::allocator::AllocatorDispatch;
+
+void* MuslMalloc(const AllocatorDispatch*, size_t size, void* context) {
+ if (!libc_malloc)
+ musl_libc_memory_init();
+ return (*libc_malloc)(size);
+}
+
+void* MuslCalloc(const AllocatorDispatch*, size_t n, size_t size, void* context) {
+ if (!libc_calloc)
+ musl_libc_memory_init();
+ return (*libc_calloc)(n, size);
+}
+
+void* MuslRealloc(const AllocatorDispatch*, void* address, size_t size, void* context) {
+ if (!libc_realloc)
+ musl_libc_memory_init();
+ return (*libc_realloc)(address, size);
+}
+
+void* MuslMemalign(const AllocatorDispatch*, size_t alignment, size_t size, void* context) {
+ if (!libc_memalign)
+ musl_libc_memory_init();
+ return (*libc_memalign)(alignment, size);
+}
+
+void MuslFree(const AllocatorDispatch*, void* address, void* context) {
+ if (!libc_free)
+ musl_libc_memory_init();
+ (*libc_free)(address);
+}
+
+size_t MuslGetSizeEstimate(const AllocatorDispatch*, void* address, void* context) {
+ // TODO(siggi, primiano): malloc_usable_size may need redirection in the
+ // presence of interposing shims that divert allocations.
+ if (!libc_malloc_usable_size)
+ musl_libc_memory_init();
+ return (*libc_malloc_usable_size)(address);
+}
+
+} // namespace
+
+const AllocatorDispatch AllocatorDispatch::default_dispatch = {
+ &MuslMalloc, /* alloc_function */
+ &MuslCalloc, /* alloc_zero_initialized_function */
+ &MuslMemalign, /* alloc_aligned_function */
+ &MuslRealloc, /* realloc_function */
+ &MuslFree, /* free_function */
+ &MuslGetSizeEstimate, /* get_size_estimate_function */
+ nullptr, /* next */
+};
+
+#endif

View file

@ -1,40 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc 2017-11-28 14:06:53.000000000 +0100
+++ qtwebengine/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc 2018-01-27 20:13:26.960932805 +0100
@@ -243,7 +243,7 @@
allocated_objects_count = main_heap_info.block_count;
#elif defined(OS_FUCHSIA)
// TODO(fuchsia): Port, see https://crbug.com/706592.
-#else
+#elif defined(__GLIBC__)
struct mallinfo info = mallinfo();
DCHECK_GE(info.arena + info.hblkhd, info.uordblks);
@@ -255,6 +255,8 @@
// Total allocated space is given by |uordblks|.
allocated_objects_size = info.uordblks;
+#else
+// musl libc does not support mallinfo()
#endif
MemoryAllocatorDump* outer_dump = pmd->CreateAllocatorDump("malloc");
--- qtwebengine/src/3rdparty/chromium/base/process/process_metrics_posix.cc 2017-11-28 14:06:53.000000000 +0100
+++ qtwebengine/src/3rdparty/chromium/base/process/process_metrics_posix.cc 2018-01-27 20:48:11.571040348 +0100
@@ -100,14 +100,14 @@
malloc_statistics_t stats = {0};
malloc_zone_statistics(nullptr, &stats);
return stats.size_in_use;
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#elif (defined(OS_LINUX) && defined(__GLIBC__)) || defined(OS_ANDROID)
struct mallinfo minfo = mallinfo();
#if defined(USE_TCMALLOC)
return minfo.uordblks;
#else
return minfo.hblkhd + minfo.arena;
#endif
-#elif defined(OS_FUCHSIA)
+#else //if defined(OS_FUCHSIA) // also musl doesn't do this.
// TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
return 0;
#endif

View file

@ -1,10 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/third_party/ots/include/opentype-sanitiser.h 2016-05-26 14:58:54.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/third_party/ots/include/opentype-sanitiser.h 2016-10-01 14:31:30.885000000 +0200
@@ -21,6 +21,7 @@
#define htons(x) _byteswap_ushort (x)
#else
#include <arpa/inet.h>
+#include <sys/types.h>
#include <stdint.h>
#endif

View file

@ -1,18 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h 2018-09-07 21:25:26.639964100 +0200
+++ qtwebengine/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h 2018-09-07 21:25:11.611964995 +0200
@@ -1794,6 +1794,15 @@
/* End of s390/s390x definitions */
#endif
+#ifndef __GLIBC__
+ /* For Musl libc pread/pread is the same as pread64/pwrite64 */
+#ifndef __NR_pread
+#define __NR_pread __NR_pread64
+#endif
+#ifndef __NR_pwrite
+#define __NR_pwrite __NR_pwrite64
+#endif
+#endif /* ifndef __GLIBC__ */
/* After forking, we must make sure to only call system calls. */
#if defined(__BOUNDED_POINTERS__)

View file

@ -1,14 +0,0 @@
--- qtwebengine/src/core/api/qtbug-61521.cpp 2017-11-29 09:42:29.000000000 +0100
+++ qtwebengine/src/core/api/qtbug-61521.cpp 2018-01-28 06:49:29.454175725 +0100
@@ -111,7 +111,11 @@
}
SHIM_HIDDEN void* ShimPvalloc(size_t size) {
+#if defined(__GLIBC__)
return pvalloc(size);
+#else
+ return valloc((size+4095)&~4095);
+#endif
}
SHIM_HIDDEN int ShimPosixMemalign(void** r, size_t a, size_t s) {

View file

@ -1,26 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/net/dns/dns_reloader.cc 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine/src/3rdparty/chromium/net/dns/dns_reloader.cc 2016-12-20 03:33:11.749059656 +0100
@@ -9,6 +9,10 @@
#include <resolv.h>
+#if !defined(__GLIBC__)
+#include "resolv_compat.h"
+#endif
+
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/macros.h"
--- qtwebengine/src/3rdparty/chromium/net/dns/dns_config_service_posix.cc 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine/src/3rdparty/chromium/net/dns/dns_config_service_posix.cc 2016-12-20 03:40:07.671953098 +0100
@@ -6,6 +6,10 @@
#include <string>
+#if !defined(__GLIBC__)
+#include "resolv_compat.h"
+#endif
+
#include "base/bind.h"
#include "base/files/file.h"
#include "base/files/file_path.h"

View file

@ -1,18 +0,0 @@
There's a subtle difference in the internal name of siginfo_t fields
between glibc and musl. The structure itself is equivalent, so it
should suffice to add a macro to rename the field.
--- qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf/trap.cc 2015-02-17 05:57:43.000000000 +0100
+++ qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf/trap.cc 2015-06-03 08:20:25.032716427 +0200
@@ -22,6 +22,11 @@
#include "sandbox/linux/services/android_ucontext.h"
#endif
+// musl libc defines siginfo_t __si_fields instead of _sifields
+#if !defined(__GLIBC__)
+#define _sifields __si_fields
+#endif
+
namespace {
const int kCapacityIncrement = 20;

View file

@ -1,20 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc 2018-01-27 23:08:43.586475349 +0100
+++ qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc 2018-01-27 23:18:22.274505203 +0100
@@ -28,7 +28,7 @@
// FIXME: On Mac OSX and Linux, this method cannot estimate stack size
// correctly for the main thread.
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
// pthread_getattr_np() can fail if the thread is not invoked by
// pthread_create() (e.g., the main thread of webkit_unit_tests).
@@ -96,7 +96,7 @@
}
void* GetStackStart() {
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
pthread_attr_t attr;
int error;

View file

@ -1,71 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2018-06-15 09:47:20.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2018-09-13 19:53:53.453780253 +0200
@@ -129,7 +129,7 @@
// CLONE_VM, nor CLONE_THREAD, which includes all fork() implementations.
ResultExpr RestrictCloneToThreadsAndEPERMFork() {
const Arg<unsigned long> flags(0);
-
+#if defined(__GLIBC__)
// TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
CLONE_SIGHAND | CLONE_THREAD |
@@ -148,6 +148,17 @@
return If(IsAndroid() ? android_test : glibc_test, Allow())
.ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM))
.Else(CrashSIGSYSClone());
+#else
+ const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
+ CLONE_THREAD | CLONE_SYSVSEM;
+ const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID |
+ CLONE_DETACHED;
+ const BoolExpr thread_clone_ok = (flags&~safe)==required;
+
+ return If(thread_clone_ok, Allow())
+ .ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM))
+ .Else(CrashSIGSYSClone());
+#endif
}
ResultExpr RestrictPrctl() {
--- qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc 2018-06-15 09:47:20.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc 2018-09-13 19:56:31.779773940 +0200
@@ -375,6 +375,9 @@
#if defined(__i386__)
case __NR_waitpid:
#endif
+#if !defined(__GLIBC__)
+ case __NR_set_tid_address:
+#endif
return true;
case __NR_clone: // Should be parameter-restricted.
case __NR_setns: // Privileged.
@@ -387,7 +390,9 @@
#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
case __NR_set_thread_area:
#endif
+#if defined(__GLIBC__)
case __NR_set_tid_address:
+#endif
case __NR_unshare:
#if !defined(__mips__) && !defined(__aarch64__)
case __NR_vfork:
@@ -496,6 +501,9 @@
case __NR_mlock:
case __NR_munlock:
case __NR_munmap:
+#if !defined(__GLIBC__)
+ case __NR_mremap:
+#endif
return true;
case __NR_madvise:
case __NR_mincore:
@@ -511,7 +519,9 @@
case __NR_modify_ldt:
#endif
case __NR_mprotect:
+#if defined(__GLIBC__)
case __NR_mremap:
+#endif
case __NR_msync:
case __NR_munlockall:
case __NR_readahead:

View file

@ -1,46 +0,0 @@
--- qttools/src/src.pro 2018-06-09 13:10:38.000000000 +0200
+++ qttools/src/src.pro 2018-08-19 09:34:29.803670205 +0200
@@ -1,20 +1,14 @@
TEMPLATE = subdirs
-qtHaveModule(widgets) {
- no-png {
- message("Some graphics-related tools are unavailable without PNG support")
- } else {
- QT_FOR_CONFIG += widgets
- qtConfig(pushbutton):qtConfig(toolbutton) {
- SUBDIRS = assistant \
- designer \
- pixeltool
-
- linguist.depends = designer
- }
- qtHaveModule(quick):qtConfig(thread):qtConfig(toolbutton): SUBDIRS += distancefieldgenerator
- }
-}
+QT_FOR_CONFIG += widgets
+
+SUBDIRS = assistant \
+ designer \
+ pixeltool
+
+linguist.depends = designer
+
+SUBDIRS += distancefieldgenerator
SUBDIRS += linguist \
qtattributionsscanner
@@ -31,11 +25,11 @@ macos {
SUBDIRS += macdeployqt
}
-qtHaveModule(dbus): SUBDIRS += qdbus
+SUBDIRS += qdbus
win32|winrt:SUBDIRS += windeployqt
winrt:SUBDIRS += winrtrunner
-qtHaveModule(gui):!wasm:!android:!uikit:!qnx:!winrt: SUBDIRS += qtdiag
+SUBDIRS += qtdiag
qtNomakeTools( \
distancefieldgenerator \

View file

@ -1,15 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/base/threading/platform_thread_linux.cc.orig 2018-09-19 18:05:15.523923703 +0200
+++ qtwebengine/src/3rdparty/chromium/base/threading/platform_thread_linux.cc 2018-09-19 18:08:05.150932454 +0200
@@ -173,7 +173,12 @@
size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
#if !defined(THREAD_SANITIZER)
+#if defined(__GLIBC__)
return 0;
+#else // defined(__GLIBC__)
+ // For Musl libc try with a default stack size of 2 MiB
+ return 2 * 1024 * 1024;
+#endif // !defined(__GLIBC__)
#else
// ThreadSanitizer bloats the stack heavily. Evidence has been that the
// default stack size isn't enough for some browser tests.

View file

@ -1,15 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/ui/base/resource/data_pack.cc.orig 2018-09-11 14:16:53.104897379 +0200
+++ qtwebengine/src/3rdparty/chromium/ui/base/resource/data_pack.cc 2018-09-11 14:17:12.009896253 +0200
@@ -383,12 +383,6 @@
bool DataPack::GetStringPiece(uint16_t resource_id,
base::StringPiece* data) const {
- // It won't be hard to make this endian-agnostic, but it's not worth
- // bothering to do right now.
-#if !defined(ARCH_CPU_LITTLE_ENDIAN)
-#error "datapack assumes little endian"
-#endif
-
const Entry* target = LookupEntryById(resource_id);
if (!target)
return false;

View file

@ -1,13 +0,0 @@
--- qtwebengine/config.tests/glibc/glibc.cpp
+++ qtwebengine/config.tests/glibc/glibc.cpp
@@ -28,10 +28,6 @@
#include <features.h>
-#if __GLIBC__ < 2 || __GLIBC_MINOR__ < 17
-#error glibc versions below 2.17 are not supported
-#endif
-
int main(int , char **) {
return 0;
}

View file

@ -1,30 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc 2018-08-27 10:21:31.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc 2018-11-22 00:41:58.522477559 +0100
@@ -38,7 +38,12 @@
#include "client/linux/minidump_writer/linux_ptrace_dumper.h"
+#if defined(__GLIBC__)
#include <asm/ptrace.h>
+#else
+/* For arm*-musl this definition is missing */
+#define ARM_sp uregs[13]
+#endif
#include <assert.h>
#include <errno.h>
#include <fcntl.h>
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc 2018-08-27 10:21:31.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc 2018-11-22 00:49:39.533492245 +0100
@@ -32,7 +32,12 @@
#include "client/linux/minidump_writer/linux_core_dumper.h"
+#if defined(__GLIBC__)
#include <asm/ptrace.h>
+#else
+/* For arm*-musl this definition is missing */
+#define ARM_sp uregs[13]
+#endif
#include <assert.h>
#include <elf.h>
#include <stdio.h>

View file

@ -1,13 +0,0 @@
diff --git src/3rdparty/chromium/third_party/yasm/source/config/linux/config.h src/3rdparty/chromium/third_party/yasm/source/config/linux/config.h
index 9e36539..f588083 100644
--- qtwebengine/src/3rdparty/chromium//third_party/yasm/source/config/linux/config.h
--- qtwebengine/src/3rdparty/chromium//third_party/yasm/source/config/linux/config.h
@@ -5,7 +5,7 @@
#define CPP_PROG "gcc -E"
/* */
-#define ENABLE_NLS 1
+/* #undef ENABLE_NLS 1 */
/* Define to 1 if you have the `abort' function. */
#define HAVE_ABORT 1

View file

@ -1,21 +0,0 @@
--- qtwebengine/src/3rdparty/chromium//third_party/openmax_dl/dl/BUILD.gn 2019-04-09 09:31:16.000000000 +0200
+++ - 2019-05-06 23:08:09.537346546 +0200
@@ -206,18 +206,6 @@
"sp/src/arm/armv7/omxSP_FFTFwd_RToCCS_F32_Sfs_s.S",
"sp/src/arm/armv7/omxSP_FFTInv_CCSToR_F32_Sfs_s.S",
]
- if (arm_optionally_use_neon) {
- # Run-time NEON detection.
- deps = [
- "//third_party/android_tools:cpu_features",
- ]
-
- # To get the __android_log_print routine
- libs = [ "log" ]
-
- # Detection routine
- sources += [ "sp/src/arm/detect.c" ]
- }
}
# NEON implementation of FFT. This library is NOT

View file

@ -1,107 +0,0 @@
--- qtwebengine/src/3rdparty/chromium//base/debug/stack_trace_posix.cc.orig 2019-04-09 09:31:16.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium//base/debug/stack_trace_posix.cc 2019-05-06 23:16:13.245502467 +0200
@@ -27,7 +27,7 @@
#if !defined(USE_SYMBOLIZE)
#include <cxxabi.h>
#endif
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
#include <execinfo.h>
#endif
@@ -86,7 +86,7 @@
// Note: code in this function is NOT async-signal safe (std::string uses
// malloc internally).
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
std::string::size_type search_from = 0;
while (search_from < text->size()) {
// Look for the start of a mangled symbol, from search_from.
@@ -121,7 +121,7 @@
search_from = mangled_start + 2;
}
}
-#endif // !defined(__UCLIBC__) && !defined(_AIX)
+#endif // !defined(__GLIBC__) && !defined(_AIX)
}
#endif // !defined(USE_SYMBOLIZE)
@@ -133,7 +133,7 @@
virtual ~BacktraceOutputHandler() = default;
};
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
// This should be more than enough to store a 64-bit number in hex:
// 16 hex digits + 1 for null-terminator.
@@ -216,7 +216,7 @@
}
#endif // defined(USE_SYMBOLIZE)
}
-#endif // !defined(__UCLIBC__) && !defined(_AIX)
+#endif // !defined(__GLIBC__) && !defined(_AIX)
void PrintToStderr(const char* output) {
// NOTE: This code MUST be async-signal safe (it's used by in-process
@@ -812,7 +812,7 @@
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
// Though the backtrace API man page does not list any possible negative
// return values, we take no chance.
return base::saturated_cast<size_t>(backtrace(trace, count));
@@ -825,13 +825,13 @@
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
PrintBacktraceOutputHandler handler;
ProcessBacktrace(trace_, count_, prefix_string, &handler);
#endif
}
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
const char* prefix_string) const {
StreamBacktraceOutputHandler handler(os);
--- qtwebengine/src/3rdparty/chromium/base/debug/stack_trace.cc 2019-04-09 09:31:16.000000000 +0200
+++ - 2019-05-06 23:18:14.923566992 +0200
@@ -233,7 +233,7 @@
}
std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
std::stringstream stream;
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
OutputToStreamWithPrefix(&stream, prefix_string);
#endif
return stream.str();
--- qtwebengine/src/3rdparty/chromium//base/logging.cc 2017-11-28 14:06:53.000000000 +0100
--- qtwebengine/src/3rdparty/chromium//base/logging.cc 2018-01-27 22:46:34.970406807 +0100
@@ -546,7 +546,7 @@
LogMessage::~LogMessage() {
size_t stack_start = stream_.tellp();
-#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && !defined(__UCLIBC__) && \
+#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && defined(__GLIBC__) && \
!defined(OS_AIX)
if (severity_ == LOG_FATAL && !base::debug::BeingDebugged()) {
// Include a stack trace on a fatal, unless a debugger is attached.
--- qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/assertions.cc 2019-04-09 09:31:16.000000000 +0200
+++ - 2019-05-06 23:12:07.040977258 +0200
@@ -51,8 +51,10 @@
#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(__UCLIBC__))
#include <cxxabi.h>
#include <dlfcn.h>
+#if defined(__GLIBC__)
#include <execinfo.h>
#endif
+#endif
#if defined(OS_ANDROID)
#include <android/log.h>

View file

@ -1,26 +0,0 @@
diff --git a/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc b/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
index 02bf49b..05ee182 100644
--- qtwebengine/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
+++ qtwebengine/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
@@ -13,7 +13,7 @@ namespace pp {
namespace {
// Use 2MB default stack size for Native Client, otherwise use system default.
-#if defined(__native_client__)
+#if defined(__native_client__) || !defined(__GLIBC__)
const size_t kDefaultStackSize = 2 * 1024 * 1024;
#else
const size_t kDefaultStackSize = 0;
diff --git a/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc b/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
index cf7f3ec..e06a5ce 100644
--- qtwebengine/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
+++ qtwebengine/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
@@ -761,7 +761,7 @@ void Thread::Start() {
#if V8_OS_MACOSX
// Default on Mac OS X is 512kB -- bump up to 1MB
stack_size = 1 * 1024 * 1024;
-#elif V8_OS_AIX
+#elif V8_OS_AIX || !defined(__GLIBC__)
// Default on AIX is 96kB -- bump up to 2MB
stack_size = 2 * 1024 * 1024;
#endif

View file

@ -1,60 +0,0 @@
--- qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/arm64_linux_syscalls.h
+++ qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/arm64_linux_syscalls.h
@@ -1063,4 +1063,8 @@
#define __NR_memfd_create 279
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 283
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
--- qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/arm_linux_syscalls.h
+++ qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/arm_linux_syscalls.h
@@ -1385,6 +1385,10 @@
#define __NR_memfd_create (__NR_SYSCALL_BASE+385)
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier (__NR_SYSCALL_BASE+389)
+#endif
+
// ARM private syscalls.
#if !defined(__ARM_NR_BASE)
#define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
--- qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/x86_32_linux_syscalls.h
+++ qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/x86_32_linux_syscalls.h
@@ -1422,5 +1422,9 @@
#define __NR_memfd_create 356
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 375
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
--- qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/x86_64_linux_syscalls.h
+++ qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/x86_64_linux_syscalls.h
@@ -1290,5 +1290,9 @@
#define __NR_memfd_create 319
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 324
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_
--- qtwebengine/src/3rdparty/chromium//sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+++ qtwebengine/src/3rdparty/chromium//sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
@@ -370,6 +370,7 @@
switch (sysno) {
case __NR_exit:
case __NR_exit_group:
+ case __NR_membarrier:
case __NR_wait4:
case __NR_waitid:
#if defined(__i386__)

View file

@ -1,24 +0,0 @@
There is no reason to run this script and running it fails on architectures
chromium does not officially support (such as ppc64).
--- qtwebengine/src/3rdparty/chromium/build/config/posix/BUILD.gn
+++ qtwebengine/src/3rdparty/chromium/build/config/posix/BUILD.gn
@@ -102,12 +102,12 @@ config("runtime_library") {
# when turning the sysroot on or off. (defines are passed via the command
# line, and build system rebuilds things when their commandline
# changes). Nothing should ever read this define.
- sysroot_hash =
- exec_script("//build/linux/sysroot_scripts/install-sysroot.py",
- [ "--print-hash=$current_cpu" ],
- "trim string",
- [ "//build/linux/sysroot_scripts/sysroots.json" ])
- defines += [ "CR_SYSROOT_HASH=$sysroot_hash" ]
+ #sysroot_hash =
+ # exec_script("//build/linux/sysroot_scripts/install-sysroot.py",
+ # [ "--print-hash=$current_cpu" ],
+ # "trim string",
+ # [ "//build/linux/sysroot_scripts/sysroots.json" ])
+ #defines += [ "CR_SYSROOT_HASH=$sysroot_hash" ]
}
asmflags += sysroot_flags

View file

@ -0,0 +1,30 @@
diff --git qtbase/mkspecs/features/qt_build_config.prf qtbase/mkspecs/features/qt_build_config.prf
index 8273ba3fe1..b674f42109 100644
--- qtbase/mkspecs/features/qt_build_config.prf
+++ qtbase/mkspecs/features/qt_build_config.prf
@@ -11,6 +11,10 @@
!contains(QMAKE_INTERNAL_INCLUDED_FILES, .*qmodule\\.pri) {
QMAKE_QT_MODULE = $$[QT_HOST_DATA/get]/mkspecs/qmodule.pri
+ defined(QMAKE_TARGET_MODULE,var):exists($$QMAKE_TARGET_MODULE) {
+ QMAKE_QT_MODULE = $$QMAKE_TARGET_MODULE
+ message("Trying .qmodule.pri from ($$QMAKE_QT_CONFIG)")
+ }
!exists($$QMAKE_QT_MODULE)|!include($$QMAKE_QT_MODULE, "", true) {
debug(1, "Cannot load qmodule.pri!")
} else {
diff --git qtbase/mkspecs/features/qt_config.prf qtbase/mkspecs/features/qt_config.prf
index 93c54e3010..aaff26b52a 100644
--- qtbase/mkspecs/features/qt_config.prf
+++ qtbase/mkspecs/features/qt_config.prf
@@ -1,6 +1,10 @@
# This file is loaded as one of the last things by all qmakespecs.
QMAKE_QT_CONFIG = $$[QT_HOST_DATA/get]/mkspecs/qconfig.pri
+defined(QMAKE_TARGET_CONFIG,var):exists($$QMAKE_TARGET_CONFIG) {
+ QMAKE_QT_CONFIG = $$QMAKE_TARGET_CONFIG
+ message("Trying .qconfig.pri from ($$QMAKE_QT_CONFIG)")
+}
!exists($$QMAKE_QT_CONFIG)|!include($$QMAKE_QT_CONFIG, "", true) {
debug(1, "Cannot load qconfig.pri!")
} else {

View file

@ -1,20 +0,0 @@
--- qtwebengine/mkspecs/features/functions.prf
+++ qtwebengine/mkspecs/features/functions.prf
@@ -95,6 +95,7 @@
contains(qtArch, "arm64"): return(arm64)
contains(qtArch, "mips"): return(mipsel)
contains(qtArch, "mips64"): return(mips64el)
+ contains(qtArch, "power64"): return(ppc64)
return(unknown)
}
--- qtwebengine/mkspecs/features/platform.prf
+++ qtwebengine/mkspecs/features/platform.prf
@@ -82,6 +82,7 @@
contains(QT_ARCH, "arm")|contains(QT_ARCH, "arm64"): return(true)
contains(QT_ARCH, "mips"): return(true)
# contains(QT_ARCH, "mips64"): return(true)
+ contains(QT_ARCH, "power64"): return(true)
skipBuild("QtWebEngine can only be built for x86, x86-64, ARM, Aarch64, and MIPSel architectures.")
return(false)

File diff suppressed because it is too large Load diff

View file

@ -1,141 +0,0 @@
This includes additional build fixes for the musl libc.
--- qtwebengine/src/3rdparty/chromium/sandbox/linux/bpf_dsl/seccomp_macros.h
+++ qtwebengine/src/3rdparty/chromium/sandbox/linux/bpf_dsl/seccomp_macros.h
@@ -11,12 +11,14 @@
// All x86_64 builds use a new enough bionic to have sys/user.h.
#if !defined(__BIONIC__) || defined(__x86_64__)
#if !defined(__native_client_nonsfi__)
+#if !defined(__powerpc64__) || defined(__GLIBC__)
#include <sys/user.h>
#endif
+#endif
#if defined(__mips__)
// sys/user.h in eglibc misses size_t definition
#include <stddef.h>
-#elif defined(__powerpc64__)
+#elif defined(__powerpc64__) && defined(__GLIBC__)
// Manually define greg_t on ppc64
typedef unsigned long long greg_t;
#endif
@@ -361,11 +363,11 @@ typedef struct pt_regs regs_struct;
#define SECCOMP_ARCH AUDIT_ARCH_PPC64
#endif
-#define SECCOMP_REG(_ctx, _reg) ((_ctx)->uc_mcontext.regs->gpr[_reg])
+#define SECCOMP_REG(_ctx, _reg) (((struct pt_regs *)(_ctx)->uc_mcontext.regs)->gpr[_reg])
#define SECCOMP_RESULT(_ctx) SECCOMP_REG(_ctx, 3)
#define SECCOMP_SYSCALL(_ctx) SECCOMP_REG(_ctx, 0)
-#define SECCOMP_IP(_ctx) (_ctx)->uc_mcontext.regs->nip
+#define SECCOMP_IP(_ctx) ((struct pt_regs *)(_ctx)->uc_mcontext.regs)->nip
#define SECCOMP_PARM1(_ctx) SECCOMP_REG(_ctx, 3)
#define SECCOMP_PARM2(_ctx) SECCOMP_REG(_ctx, 4)
#define SECCOMP_PARM3(_ctx) SECCOMP_REG(_ctx, 5)
--- qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf/syscall.cc
+++ qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf/syscall.cc
@@ -497,9 +497,9 @@ void Syscall::PutValueInUcontext(intptr_t ret_val, ucontext_t* ctx) {
// Same as MIPS, need to invert ret and set error register (cr0.SO)
if (ret_val <= -1 && ret_val >= -4095) {
ret_val = -ret_val;
- ctx->uc_mcontext.regs->ccr |= (1 << 28);
+ ((struct pt_regs *)ctx->uc_mcontext.regs)->ccr |= (1 << 28);
} else {
- ctx->uc_mcontext.regs->ccr &= ~(1 << 28);
+ ((struct pt_regs *)ctx->uc_mcontext.regs)->ccr &= ~(1 << 28);
}
#endif
SECCOMP_RESULT(ctx) = static_cast<greg_t>(ret_val);
--- qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
+++ qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
@@ -20,7 +20,7 @@
#include <intrin.h>
#endif
-#if defined(__powerpc__) || defined(__ppc__)
+#if (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
#include <sys/platform/ppc.h>
#endif
@@ -53,7 +53,7 @@ double UnscaledCycleClock::Frequency() {
return base_internal::NominalCPUFrequency();
}
-#elif defined(__powerpc__) || defined(__ppc__)
+#elif (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
int64_t UnscaledCycleClock::Now() {
return __ppc_get_timebase();
--- qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h
+++ qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h
@@ -46,7 +46,7 @@
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
- defined(__powerpc__) || defined(__ppc__) || \
+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
defined(_M_IX86) || defined(_M_X64)
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
@@ -273,6 +273,9 @@ void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
#elif defined(__powerpc64__)
+#include <asm/elf.h>
+#include <asm/ptrace.h>
+
uintptr_t ThreadInfo::GetInstructionPointer() const {
return mcontext.gp_regs[PT_NIP];
}
@@ -290,9 +293,9 @@ void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
out->ctr = mcontext.gp_regs[PT_CTR];
for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
- out->float_save.fpregs[i] = mcontext.fp_regs[i];
+ out->float_save.fpregs[i] = ((uint64_t *)&mcontext.fp_regs)[i];
- out->float_save.fpscr = mcontext.fp_regs[NFPREG-1];
+ out->float_save.fpscr = ((uint64_t *)&mcontext.fp_regs)[ELF_NFPREG-1];
for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
out->vector_save.save_vr[i] = \
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -257,6 +257,9 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
#elif defined(__powerpc64__)
+#include <asm/elf.h>
+#include <asm/ptrace.h>
+
uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
return uc->uc_mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP];
}
@@ -280,9 +283,9 @@ void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
out->ctr = uc->uc_mcontext.gp_regs[PT_CTR];
for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
- out->float_save.fpregs[i] = uc->uc_mcontext.fp_regs[i];
+ out->float_save.fpregs[i] = ((uint64_t *)&uc->uc_mcontext.fp_regs)[i];
- out->float_save.fpscr = uc->uc_mcontext.fp_regs[NFPREG-1];
+ out->float_save.fpscr = ((uint64_t *)&uc->uc_mcontext.fp_regs)[ELF_NFPREG-1];
for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
out->vector_save.save_vr[i] =
--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
@@ -105,6 +105,11 @@
#define PR_SET_PTRACER 0x59616d61
#endif
+/* musl hack, can't include asm/ptrace.h as that causes conflicts */
+#if defined(__powerpc64__) && !defined(PT_NIP)
+#define PT_NIP 32
+#endif
+
namespace google_breakpad {
namespace {

File diff suppressed because it is too large Load diff

View file

@ -1,43 +0,0 @@
This fixes v8 on big endian ppc64 ELFv2.
--- qtwebengine/src/3rdparty/chromium/v8/src/ppc/constants-ppc.h
+++ qtwebengine/src/3rdparty/chromium/v8/src/ppc/constants-ppc.h
@@ -21,7 +21,8 @@
#endif
#if V8_HOST_ARCH_PPC && \
- (V8_OS_AIX || (V8_TARGET_ARCH_PPC64 && V8_TARGET_BIG_ENDIAN))
+ (V8_OS_AIX || (V8_TARGET_ARCH_PPC64 && \
+ (V8_TARGET_BIG_ENDIAN && (!defined(_CALL_ELF) || _CALL_ELF == 1))))
#define ABI_USES_FUNCTION_DESCRIPTORS 1
#else
#define ABI_USES_FUNCTION_DESCRIPTORS 0
@@ -33,13 +34,15 @@
#define ABI_PASSES_HANDLES_IN_REGS 0
#endif
-#if !V8_HOST_ARCH_PPC || !V8_TARGET_ARCH_PPC64 || V8_TARGET_LITTLE_ENDIAN
+#if !V8_HOST_ARCH_PPC || !V8_TARGET_ARCH_PPC64 || \
+ (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2))
#define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 1
#else
#define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 0
#endif
-#if !V8_HOST_ARCH_PPC || (V8_TARGET_ARCH_PPC64 && V8_TARGET_LITTLE_ENDIAN)
+#if !V8_HOST_ARCH_PPC || (V8_TARGET_ARCH_PPC64 && \
+ (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)))
#define ABI_CALL_VIA_IP 1
#else
#define ABI_CALL_VIA_IP 0
--- qtwebengine/src/3rdparty/chromium/v8/src/ppc/register-ppc.h
+++ qtwebengine/src/3rdparty/chromium/v8/src/ppc/register-ppc.h
@@ -145,7 +145,8 @@ const int kNumSafepointRegisters = 32;
// The following constants describe the stack frame linkage area as
// defined by the ABI. Note that kNumRequiredStackFrameSlots must
// satisfy alignment requirements (rounding up if required).
-#if V8_TARGET_ARCH_PPC64 && V8_TARGET_LITTLE_ENDIAN // ppc64le linux
+#if V8_TARGET_ARCH_PPC64 && (V8_TARGET_LITTLE_ENDIAN || \
+ defined(_CALL_ELF) && _CALL_ELF == 2)
// [0] back chain
// [1] condition register save area
// [2] link register save area

View file

@ -1,17 +0,0 @@
--- qtwebengine/src/3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc
+++ qtwebengine/src/3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc
@@ -1828,6 +1828,14 @@ typedef enum {
#endif
#endif
+// with current gcc 8.3.0 we get an internal compiler error when compiling
+// for ppc64 big endian - so switch to portable until this is resolved
+#if defined(__powerpc64__)
+# if defined(__BIG_ENDIAN__) && !defined(SKCMS_PORTABLE)
+# define SKCMS_PORTABLE
+# endif
+#endif
+
#if defined(__clang__)
template <int N, typename T> using Vec = T __attribute__((ext_vector_type(N)));
#elif defined(__GNUC__)

View file

@ -1,24 +0,0 @@
Allow SYS_sched_getparam and SYS_sched_getscheduler
musl uses them for pthread_getschedparam()
source: https://git.alpinelinux.org/aports/commit/community/chromium?id=54af9f8ac24f52d382c5758e2445bf0206eff40e
--- qtwebengine/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_renderer_policy_linux.cc 2019-11-12 20:48:20.013724661 +0100
+++ qtwebengine/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_renderer_policy_linux.cc.patched 2019-11-12 20:58:57.330695676 +0100
@@ -93,10 +93,16 @@
case __NR_sysinfo:
case __NR_times:
case __NR_uname:
+#if !defined(__GLIBC__)
+ case __NR_sched_getparam:
+ case __NR_sched_getscheduler:
+#endif
return Allow();
case __NR_sched_getaffinity:
+#if defined(__GLIBC__)
case __NR_sched_getparam:
case __NR_sched_getscheduler:
+#endif
case __NR_sched_setscheduler:
return sandbox::RestrictSchedTarget(GetPolicyPid(), sysno);
case __NR_prlimit64:

View file

@ -1,86 +1,31 @@
# Template file for 'qt5'
pkgname=qt5
version=5.13.2
revision=2
version=5.14.2
revision=1
build_style=meta
wrksrc="qt-everywhere-src-${version}"
build_style=gnu-configure
hostmakedepends="cmake clang flex git glib-devel gperf ninja pkg-config
protobuf python re2c ruby which"
hostmakedepends="cmake clang flex git glib-devel pkg-config
python re2c ruby which"
makedepends="SDL2-devel Vulkan-Headers alsa-lib-devel double-conversion-devel
eudev-libudev-devel ffmpeg-devel freetds-devel glib-devel gst-plugins-base1-devel
gtk+3-devel icu-devel jsoncpp-devel libXv-devel libbluetooth-devel libcap-devel
libevent-devel libinput-devel libmng-devel libmysqlclient-devel libproxy-devel
libvpx-devel libwebp-devel libxslt-devel minizip-devel nss-devel cups-devel
gtk+3-devel icu-devel libXv-devel libbluetooth-devel libcap-devel
libinput-devel libmng-devel libmysqlclient-devel libproxy-devel
libvpx-devel libwebp-devel libxslt-devel cups-devel
opus-devel pciutils-devel pcre2-devel postgresql-libs-devel
protobuf-devel pulseaudio-devel snappy-devel tslib-devel
protobuf-devel pulseaudio-devel tslib-devel libressl-devel
unixodbc-devel xcb-util-image-devel xcb-util-keysyms-devel
xcb-util-renderutil-devel xcb-util-wm-devel libzstd-devel harfbuzz-devel"
depends="qtchooser"
depends="qt5-dbus qt5-gui qt5-core qt5-widgets qt5-network qt5-xml
qt5-test qt5-sql qt5-concurrent qt5-printsupport qt5-opengl"
short_desc="Cross-platform application and UI framework (QT5)"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="GPL-3.0-or-later, LGPL-3.0-or-later"
homepage="https://qt.io/"
distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/single/qt-everywhere-src-${version}.tar.xz"
checksum=55e8273536be41f4f63064a79e552a22133848bb419400b6fa8e9fc0dc05de08
checksum=c6fcd53c744df89e7d3223c02838a33309bd1c291fcb6f9341505fe99f7f19fa
replaces="qt5-doc<5.6.0 qt5-quick1<5.6.0 qt5-quick1-devel<5.6.0 qt5-webkit<5.6.0 qt5-webkit-devel<5.6.0
qt5-enginio<5.7.1 qt5-enginio-devel<5.7.1 qt5-plugin-gtk<5.7.1 qt5-canvas3d<5.13.0"
build_options="webengine"
desc_option_webengine="Build Chromium-based WebEngine component"
makedepends+=" harfbuzz-devel"
if [ "$XBPS_LIBC" = "musl" ]; then
hostmakedepends+=" musl-legacy-compat"
fi
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
makedepends+=" musl-legacy-compat"
fi
case "$XBPS_TARGET_MACHINE" in
armv5tel*) ;; # qtwebengine uses VSM assembler commands
ppc|ppc-musl) ;; # qtwebengine does not support ppc 32 bit
*) if [ "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
# webengine can be built only if word size matches
build_options_default="webengine"
fi;;
esac
if [ "$build_option_webengine" ]; then
if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
makedepends+=" libatomic-devel"
fi
if [ "$XBPS_NO_ATOMIC8" ]; then
hostmakedepends+=" libatomic-devel"
fi
fi
subpackages="qt5-3d qt5-3d-devel qt5-charts qt5-charts-devel
qt5-connectivity qt5-connectivity-devel qt5-datavis3d qt5-datavis3d-devel
qt5-declarative qt5-declarative-devel qt5-devel qt5-examples qt5-gamepad
qt5-gamepad-devel qt5-graphicaleffects qt5-host-tools qt5-imageformats
qt5-location qt5-location-devel qt5-multimedia qt5-multimedia-devel
qt5-networkauth qt5-networkauth-devel qt5-plugin-mysql qt5-plugin-odbc
qt5-plugin-pgsql qt5-plugin-sqlite qt5-plugin-tds qt5-purchasing
qt5-purchasing-devel qt5-qmake qt5-quickcontrols qt5-quickcontrols2
qt5-quickcontrols2-devel qt5-remoteobjects qt5-remoteobjects-devel
qt5-script qt5-script-devel qt5-scxml qt5-scxml-devel qt5-sensors
qt5-sensors-devel qt5-serialbus qt5-serialbus-devel qt5-serialport
qt5-serialport-devel qt5-speech qt5-speech-devel qt5-svg qt5-svg-devel
qt5-tools qt5-tools-devel qt5-translations qt5-virtualkeyboard
qt5-virtualkeyboard-devel qt5-wayland qt5-wayland-devel qt5-webchannel
qt5-webchannel-devel qt5-webglplugin qt5-webglplugin-devel qt5-websockets
qt5-websockets-devel qt5-webview qt5-webview-devel qt5-x11extras
qt5-x11extras-devel qt5-xmlpatterns qt5-xmlpatterns-devel
qt5-lottie qt5-lottie-devel"
if [ "$build_option_webengine" ]; then
subpackages+=" qt5-webengine qt5-webengine-devel"
fi
if [ "$XBPS_WORDSIZE" -eq 32 ]; then
nodebug=yes # prevent OOM
fi
lib32mode=full
# Work around SSLv3_{client,server}_method missing in libressl-2.3.3
CFLAGS="-DOPENSSL_NO_PSK -DOPENSSL_NO_NEXTPROTONEG"
@ -93,26 +38,8 @@ if [ "$CROSS_BUILD" ]; then
# wayland-devel contains /usr/bin/wayland-scanner
hostmakedepends+=" icu-devel wayland-devel zlib-devel"
hostmakedepends+=" postgresql-libs-devel"
# Cross building qtwebengine requires some more host packages
if [ "$build_option_webengine" ]; then
hostmakedepends+=" nss-devel libevent-devel"
fi
fi
_bootstrap_gn() {
# Bootstrap gn (generate ninja)
echo "Bootstrapping 'gn'"
cd ${wrksrc}/qtwebengine/src/3rdparty/gn
CFLAGS="$CFLAGS_host" CXXFLAGS="$CXXFLAGS_host" LDFLAGS="$LDFLAGS_host" \
PKGCONFIG=/usr/bin/pkgconfig PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig" \
python2 build/gen.py --no-last-commit-position --out-path \
${wrksrc}/qtwebengine/src/3rdparty/gn/out/Release --cc "$CC_host" \
--cxx "$CXX_host" --ld "$CXX_host" --ar "$AR_host"
ninja -C out/Release gn
cd ${wrksrc}
}
_cleanup_wrksrc_leak() {
if [ -d "${PKGDESTDIR}/usr/lib/cmake" ]; then
# Replace references to ${wrksrc} in cmake files
@ -167,6 +94,11 @@ _install_devel() {
local module=$1
cd ${wrksrc}/${module}
make INSTALL_ROOT=${PKGDESTDIR} install
vmkdir usr/lib/qt5/mkspecs/modules
if [ -d "${PKGDESTDIR}${wrksrc}/host/mkspecs/modules" ]; then
mv -nv ${PKGDESTDIR}${wrksrc}/host/mkspecs/modules/* \
${PKGDESTDIR}/usr/lib/qt5/mkspecs/modules/
fi
rm -rf ${PKGDESTDIR}/builddir
rm -rf ${PKGDESTDIR}/usr/share
rm -rf ${PKGDESTDIR}/usr/lib/qt5/bin
@ -237,32 +169,6 @@ _msg_cross() {
do_configure() {
local opts spec
# Compatibility functions res_ninit() and res_nclose() for musl libc
cp ${FILESDIR}/resolv_compat.h ${wrksrc}/qtwebengine/src/3rdparty/chromium/net/dns
case "$XBPS_TARGET_MACHINE" in
armv5*|armv6*) # Disable "yield" assembler instruction
sed -i qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/spin_lock.cc \
qtwebengine/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/spin_lock.cc \
-e 's;"yield";"nop";'
;;
esac
case "$XBPS_TARGET_MACHINE" in
*-musl)
# Patch .../linux/*/config.{h,asm} to define HAVE_SYSCTL 0
local config chromium=${wrksrc}/qtwebengine/src/3rdparty/chromium
for config in $(find ${chromium}/third_party/ffmpeg/chromium/config -name "config\.*" | grep linux); do
sed -i ${config} -e "s;HAVE_SYSCTL 1;HAVE_SYSCTL 0;"
done
# Do not use allocator shim (incompatible with musl libc)
sed -i qtwebengine/src/3rdparty/chromium/build/config/allocator.gni \
-e "s;\(use_allocator_shim\) = .*;\1 = false;"
# Define to set 2 MiB stack size for qthread
export CXXFLAGS+=" -D_POSIX_THREAD_ATTR_STACKSIZE=2097152"
;;
esac
# Cross build patches
if [ "$CROSS_BUILD" ]; then
# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
@ -275,28 +181,6 @@ do_configure() {
for d in $(ls ${wrksrc}/qtbase/include); do
ln -sfv ${version}/${d}/private qtbase/include/${d}/private
done
if [ "$build_option_webengine" ]; then
_bootstrap_gn
fi
case "$XBPS_TARGET_MACHINE" in
mips*) # sgidefs.h is in /usr/include/asm
for f in \
qtwebengine/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h \
qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/android/include/asm-mips/fpregdef.h \
qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/android/include/asm-mips/regdef.h \
qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/android/include/asm-mips/asm.h \
qtwebengine/src/3rdparty/chromium/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h \
qtwebengine/src/3rdparty/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h \
qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h; do
sed -i $f -e "s;<sgidefs.h>;<asm/sgidefs.h>;"
done
# Assume that RGBA order is correct for big endian CPUs
sed -i qtwebengine/src/3rdparty/chromium/skia/config/SkUserConfig.h \
-e '/#error Read the comment at this location/d'
;;
esac
patch -Np0 < ${FILESDIR}/0090-hard-disable-qmlchachegen.patch
else
# qmake {CXX,L}FLAGS patches
sed -i -e "s|^\(CXXFLAGS =.*\)|\1 ${CXXFLAGS}|" \
@ -344,29 +228,11 @@ do_configure() {
opts+=" -system-zlib"
opts+=" -system-sqlite"
opts+=" -system-harfbuzz"
# Rely on auto detection (fails if forced for cross builds)
if [ "$build_option_webengine" ]; then
# opts+=" -webengine-alsa"
opts+=" -no-webengine-embedded-build"
opts+=" -webengine-icu"
opts+=" -webengine-ffmpeg"
opts+=" -webengine-opus"
opts+=" -webengine-webp"
opts+=" -webengine-pepper-plugins"
opts+=" -webengine-printing-and-pdf"
opts+=" -webengine-proprietary-codecs"
opts+=" -webengine-pulseaudio"
opts+=" -webengine-spellchecker"
opts+=" -webengine-webrtc"
opts+=" -webengine-geolocation"
opts+=" -webengine-v8-snapshot"
fi
opts+=" -no-feature-eglfs_brcm" # missing include path
opts+=" -silent"
# opts+=" -v"
# make sure to disable webengine on platforms that we don't build it for
if [ -z "$build_option_webengine" ]; then
opts+=" -skip qtwebengine"
fi
opts+=" -skip qtwebengine"
opts+=" -skip qtwebview"
LDFLAGS+=" -Wl,--no-keep-memory" # needs more than 8GB RAM else
if [ "$CROSS_BUILD" ]; then
spec=void-${XBPS_CROSS_TRIPLET}-g++
@ -376,33 +242,13 @@ do_configure() {
opts+=" -sysroot ${XBPS_CROSS_BASE}"
opts+=" -hostprefix host"
opts+=" -extprefix /usr"
case "$XBPS_TARGET_MACHINE" in
arm*|mips*)
if [ "$build_option_webengine" ]; then
# V8 snapshot can't be built with a 64 bit host compiler
opts+=" -no-webengine-v8-snapshot"
fi
;;
esac
case "$XBPS_TARGET_MACHINE" in
aarch64*|armv7*)
sed -i ${wrksrc}/qtwebengine/src/core/config/linux.pri \
-e "/arm_use_neon=/s;false;true;"
;;
arm*)
sed -i ${wrksrc}/qtwebengine/src/core/config/linux.pri \
-e "/arm_use_neon=/s;true;false;"
;;
esac
sed -i ${wrksrc}/qtwebengine/src/core/config/linux.pri \
-e "/equals(MARMV/s;true;false;"
# Make sure libQt5Designer is built
cp -v ${FILESDIR}/qttools_src.pro qttools/src/src.pro
cp -v ${FILESDIR}/designer_src.pro qttools/src/designer/src/src.pro
cp -v ${FILESDIR}/assistant.pro qttools/src/assistant/assistant.pro
cp -v ${FILESDIR}/linguist.pro qttools/src/linguist/linguist.pro
cp -v ${FILESDIR}/uitools.pro qttools/src/designer/src/uitools/uitools.pro
fi
CC="cc" CXX="c++" CPP="cpp" LD="c++" AR="ar" AS="as" NM="nm" \
@ -415,10 +261,10 @@ do_configure() {
}
do_build() {
export NINJAJOBS=${makejobs}
# Run make twice because sometimes a file "chrome/grit/generated_resources.h"
# is not yet ready when it is to be included. Repeating make works around that
# problem without having to resort to disable_parallel_build=yes
# or some other files
make ${makejobs} || make ${makejobs}
}
@ -490,12 +336,15 @@ do_install() {
#
dirs+=" qtdeclarative/tools/qmlmin"
dirs+=" qtdeclarative/tools/qmllint"
dirs+=" qtdeclarative/tools/qmlcachegen"
dirs+=" qtdeclarative/tools/qmlimportscanner"
dirs+=" qtbase/src/tools/moc"
dirs+=" qtbase/src/tools/rcc"
dirs+=" qtbase/src/tools/uic"
dirs+=" qtbase/src/tools/qdbuscpp2xml"
dirs+=" qtbase/src/tools/qdbusxml2cpp"
dirs+=" qtbase/src/tools/qvkgen"
dirs+=" qtbase/src/tools/tracegen"
dirs+=" qtbase/src/tools/qlalr"
dirs+=" qt3d/tools/qgltf"
dirs+=" qtremoteobjects/tools/repc"
@ -567,6 +416,102 @@ do_install() {
rm -rf ${DESTDIR}/builddir
}
qt5-gui_package() {
short_desc+=" - Gui"
pkg_install() {
vmove "usr/lib/libQt5Gui.so*"
vmove "usr/lib/libQt5XcbQpa.so*"
vmove "usr/lib/libQt5EglFSDeviceIntegration.so*"
vmove "usr/lib/libQt5EglFsKmsSupport.so*"
vmove usr/lib/qt5/plugins/generic
vmove usr/lib/qt5/plugins/platforms
vmove usr/lib/qt5/plugins/xcbglintegrations
vmove usr/lib/qt5/plugins/imageformats
vmove usr/lib/qt5/plugins/egldeviceintegrations
vmove usr/lib/qt5/plugins/platforminputcontexts
vmove usr/lib/qt5/plugins/platformthemes
}
}
qt5-dbus_package() {
short_desc+=" - DBus"
pkg_install() {
vmove "usr/lib/libQt5DBus.so*"
}
}
qt5-core_package() {
short_desc+=" - Core"
pkg_install() {
vmove "usr/lib/libQt5Core.so*"
}
}
qt5-opengl_package() {
short_desc+=" - OpenGL"
pkg_install() {
vmove "usr/lib/libQt5OpenGL.so*"
}
}
qt5-printsupport_package() {
short_desc+=" - Print Support"
pkg_install() {
vmove "usr/lib/libQt5PrintSupport.so*"
vmove usr/lib/qt5/plugins/printsupport
}
}
qt5-concurrent_package() {
short_desc+=" - Concurrency"
pkg_install() {
vmove "usr/lib/libQt5Concurrent.so*"
}
}
qt5-widgets_package() {
short_desc+=" - Widgets"
pkg_install() {
vmove "usr/lib/libQt5Widgets.so*"
}
}
qt5-network_package() {
short_desc+=" - Network"
pkg_install() {
vmove "usr/lib/libQt5Network.so*"
vmove usr/lib/qt5/plugins/bearer
}
}
qt5-sql_package() {
short_desc+=" - Sql"
pkg_install() {
vmove "usr/lib/libQt5Sql.so*"
}
}
qt5-test_package() {
short_desc+=" - Test"
pkg_install() {
vmove "usr/lib/libQt5Test.so*"
}
}
qt5-xml_package() {
short_desc+=" - Xml"
pkg_install() {
vmove "usr/lib/libQt5Xml.so*"
}
}
qt5-base-docs_package() {
short_desc+=" - Documentation"
pkg_install() {
vmove usr/share/doc/qt5
}
}
qt5-3d-devel_package() {
short_desc+=" - C++ and QML APIs for 3D graphics (development)"
depends="qt5-3d-${version}_${revision} qt5-devel-${version}_${revision}"
@ -640,7 +585,7 @@ qt5-declarative_package() {
short_desc+=" - Declarative component"
pkg_install() {
_install_subpkg qtdeclarative
_move_target_binaries qmlmin qmllint qmlimportscanner
_move_target_binaries qmlmin qmllint qmlimportscanner qmlcachegen
}
}
@ -787,6 +732,13 @@ qt5-quickcontrols2_package() {
}
}
qt5-quicktimeline_package() {
short_desc+=" - Keyframe-based animations"
pkg_install() {
_install_subpkg qtquicktimeline
}
}
qt5-remoteobjects-devel_package() {
short_desc+=" - Remote Objects (development)"
depends="qt5-remoteobjects-${version}_${revision} qt5-devel-${version}_${revision}"
@ -955,21 +907,6 @@ qt5-webchannel_package() {
}
}
qt5-webengine-devel_package() {
short_desc+=" - WebEngine component (development)"
depends="qt5-webengine-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtwebengine
}
}
qt5-webengine_package() {
short_desc+=" - WebEngine component"
pkg_install() {
_install_subpkg qtwebengine
}
}
qt5-webglplugin-devel_package() {
short_desc+=" - WebGL plugin (development)"
depends="qt5-webglplugin-${version}_${revision} qt5-devel-${version}_${revision}"
@ -1000,21 +937,6 @@ qt5-websockets_package() {
}
}
qt5-webview-devel_package() {
short_desc+=" - WebView component (development)"
depends="qt5-webview-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtwebview
}
}
qt5-webview_package() {
short_desc+=" - WebView component"
pkg_install() {
_install_subpkg qtwebview
}
}
qt5-x11extras-devel_package() {
short_desc+=" - X11 extras (development)"
depends="qt5-x11extras-${version}_${revision} qt5-devel-${version}_${revision}"
@ -1040,6 +962,7 @@ qt5-xmlpatterns-devel_package() {
qt5-xmlpatterns_package() {
short_desc+=" - XML components"
depends="qtchooser"
pkg_install() {
_install_subpkg qtxmlpatterns
}
@ -1054,12 +977,13 @@ qt5-translations_package() {
qt5-host-tools_package() {
short_desc+=" - Tools required when cross compiling"
depends="qtchooser"
pkg_install() {
local dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-tools-${version}
vmkdir usr/lib/qt5/bin
vmkdir usr/bin
for f in moc rcc uic qlalr qdbuscpp2xml qdbusxml2cpp \
lconvert lupdate lupdate-pro lprodump lrelease lrelease-pro; do
for f in moc rcc uic qlalr qdbuscpp2xml qdbusxml2cpp qvkgen fixqt4headers.pl tracegen \
syncqt.pl lconvert lupdate lupdate-pro lprodump lrelease lrelease-pro; do
if [ -r ${dest}/usr/lib/qt5/bin/${f} ]; then
mv -v ${dest}/usr/lib/qt5/bin/${f} ${PKGDESTDIR}/usr/lib/qt5/bin/
fi
@ -1088,7 +1012,7 @@ qt5-tools-devel_package() {
qt5-tools_package() {
short_desc+=" - Development tools"
depends="qt5-translations desktop-file-utils hicolor-icon-theme"
depends="qtchooser qt5-translations desktop-file-utils hicolor-icon-theme"
pkg_install() {
local f dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-host-tools-${version}
_install_subpkg qttools
@ -1129,8 +1053,19 @@ qt5-tools_package() {
qt5-devel_package() {
depends="zlib-devel libressl-devel>=2.1.4 libXext-devel libXrender-devel
fontconfig-devel libglib-devel MesaLib-devel mtdev-devel
dbus-devel icu-devel cups-devel qt5-${version}_${revision}
dbus-devel icu-devel cups-devel
qt5-gui-${version}_${revision}
qt5-dbus-${version}_${revision}
qt5-core-${version}_${revision}
qt5-widgets-${version}_${revision}
qt5-qmake-${version}_${revision}
qt5-opengl-${version}_${revision}
qt5-printsupport-${version}_${revision}
qt5-concurrent-${version}_${revision}
qt5-sql-${version}_${revision}
qt5-test-${version}_${revision}
qt5-network-${version}_${revision}
qt5-xml-${version}_${revision}
qt5-host-tools-${version}_${revision}"
short_desc+=" - Development files"
# qt5-enginio-devel is gone
@ -1181,6 +1116,7 @@ qt5-plugin-tds_package() {
qt5-qmake_package() {
short_desc+=" - Qmake Makefile generator tool"
depends="qtchooser"
pkg_install() {
vmove usr/lib/qt5/bin/qmake
vmove usr/lib/qt5/mkspecs
@ -1208,3 +1144,13 @@ qt5-qmake_package() {
fi
}
}
qt5-xcb-private-headers_package() {
short_desc+=" - Private headers for Qt5 Xcb"
depends="qt5-devel"
pkg_install() {
for f in ${wrksrc}/qtbase/src/plugins/platforms/xcb/*.h; do
vinstall $f 644 usr/include/qt5xcb-private
done
}
}