QtWebEngine (qt5-qtwebengine) is ExclusiveArch to the architectures supported by the V8 JIT (the version included with QtWebEngine). This is currently as follows: ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc ppc64 ppc64le mips mipsel mips64el To add support for an architecture not listed above, you will have to port V8, or merge a third-party port into this package. The architectures that ARE listed above SHOULD be supported, but I only tested on the primary architectures so far. You may need some minor patching to build on one of the secondary architectures, e.g., to add to the Qt -> Chromium -> V8 arch translations. If you cannot get this package to build on your secondary architecture, please: * remove your architecture from the list in the specfile AND * put this bug onto your ExcludeArch tracker. Note that the initial packages were missing the ExclusiveArch. That was a bug, the package cannot possibly build on other architectures as is.
exclude ppc ppc64 ppc64le as it's not suppoted yet
Are you sure we can't get it to work there? V8 support is in there, at least. We can easily remove offending ExclusiveArch listings, but I'd rather try to get it to build (and hopefully run) instead.
If what's failing to build is the bundled FFmpeg, then we just need to add the missing target files to the whitelist as we did for ARM and aarch64.
Kevin, we will enable it again when the support is done.
Than, what is the status for ppc, ppc64 and ppc64le? Do we know what is missing to support those architectures (considering that V8 supports them)?
the platform ppc64 and ppc64le doesn't exist. they are missing. We need to add the platform ppc64 and ppc64le into WebKit/Source/platform
Can we introduce a macro, let's say like %qtwebengine_arches, for all supported build architectures? Currently, those are hard coded ¹ as ExclusiveArch. I built qtwebbrowser ² and it fails of course for all platforms without an available qt5-qtwebengine package, with the generic macro all depending packages could get prevented from any build attempt in prior, e.g. as we do already for mono (%mono_arches) and fpc (%fpc_arches) ³. ¹ http://pkgs.fedoraproject.org/cgit/rpms/qt5-qtwebengine.git/tree/qt5-qtwebengine.spec#n82 ² bug #1358918 ³ https://fedoraproject.org/wiki/User:Mattia/fpcExclusiveArch
To be more clear, the macro proposed in comment #7 hands down the supported build architectures to the depending packages to use it also for ExclusiveArch.
yes, it does make sense to add such macro. For this we need to create new package qtwebengine-srpm-macros or maybe we can add it to qt5-rpm-macros
The bundled v8 shouldn't be a problem anymore, it support all Fedora arches qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/v8/Makefile contains ... ARCHES = ia32 x64 x32 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 \ s390 s390x What fails now when building qtwebengine locally is on s390x ... Project MESSAGE: Running gyp_qtwebengine "/home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/s390x-redhat-linux-gnu/src/core" -D qt_cross_compile=0 -D qt_os="desktop_linux" -D use_qt=1 -D v8_use_external_startup_data=0 -D enable_basic_printing=1 -D enable_print_preview=0 -D enable_web_speech=0 -D enable_extensions=0 -D linux_use_bundled_gold=0 -D linux_use_bundled_binutils=0 -D linux_use_gold_flags=0 -D toolkit_uses_gtk=0 -D use_ash=0 -D use_aura=1 -D use_cairo=0 -D use_clipboard_aurax11=0 -D use_cups=0 -D use_gconf=0 -D use_gio=0 -D use_gnome_keyring=0 -D use_kerberos=0 -D use_pango=0 -D use_openssl=1 -D use_nss_certs=1 -D use_openssl_certs=0 -D use_system_zlib=1 -D use_system_libpng=1 -D use_system_libjpeg=1 -D use_system_harfbuzz=1 -D use_system_libevent=1 -D use_system_libwebp=1 -D use_system_libsrtp=1 -D use_system_libxml=1 -D use_system_jsoncpp=1 -D use_system_opus=1 -D use_system_snappy=1 -D use_system_libvpx=1 -D use_system_icu=1 -D icu_use_data_file_flag=0 -D use_system_protobuf=1 -D use_system_re2=1 -D linux_link_libpci=1 -D desktop_linux=1 -D enable_widevine=1 -D clang=0 -D host_clang=0 -D qtwe_process_name_debug=QtWebEngineProcess -D qtwe_process_name_release=QtWebEngineProcess -D disable_glibcxx_debug=1 -D release_extra_cflags=-g1 -D disable_fatal_linker_warnings=1 -D sysroot="" -D enable_spellcheck=0... using python: /usr/bin/python version: 2.7.12 Using extra options found in /home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/src/core/qtwebengine_extras.gypi Using extra options found in /home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/s390x-redhat-linux-gnu/src/core/qmake_extras.gypi Updating projects from gyp files... gyp: Undefined variable platform_heap_asm_files in /home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp gyp: Undefined variable c_sources in /home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg.gyp Project ERROR: -- running gyp_qtwebengine failed -- on ppc64 ... Project MESSAGE: Running gyp_qtwebengine "/home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/ppc64-redhat-linux-gnu/src/core" -D qt_cross_compile=0 -D qt_os="desktop_linux" -D use_qt=1 -D v8_use_external_startup_data=0 -D enable_basic_printing=1 -D enable_print_preview=0 -D enable_web_speech=0 -D enable_extensions=0 -D linux_use_bundled_gold=0 -D linux_use_bundled_binutils=0 -D linux_use_gold_flags=0 -D toolkit_uses_gtk=0 -D use_ash=0 -D use_aura=1 -D use_cairo=0 -D use_clipboard_aurax11=0 -D use_cups=0 -D use_gconf=0 -D use_gio=0 -D use_gnome_keyring=0 -D use_kerberos=0 -D use_pango=0 -D use_openssl=1 -D use_nss_certs=1 -D use_openssl_certs=0 -D use_system_zlib=1 -D use_system_libpng=1 -D use_system_libjpeg=1 -D use_system_harfbuzz=1 -D use_system_libevent=1 -D use_system_libwebp=1 -D use_system_libsrtp=1 -D use_system_libxml=1 -D use_system_jsoncpp=1 -D use_system_opus=1 -D use_system_snappy=1 -D use_system_libvpx=1 -D use_system_icu=1 -D icu_use_data_file_flag=0 -D use_system_protobuf=1 -D use_system_re2=1 -D linux_link_libpci=1 -D desktop_linux=1 -D enable_widevine=1 -D clang=0 -D host_clang=0 -D qtwe_process_name_debug=QtWebEngineProcess -D qtwe_process_name_release=QtWebEngineProcess -D disable_glibcxx_debug=1 -D release_extra_cflags=-g1 -D disable_fatal_linker_warnings=1 -D sysroot="" -D enable_spellcheck=0... using python: /usr/bin/python version: 2.7.12 Using extra options found in /home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/src/core/qtwebengine_extras.gypi Using extra options found in /home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/ppc64-redhat-linux-gnu/src/core/qmake_extras.gypi Updating projects from gyp files... gyp: Undefined variable c_sources in /home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg.gyp Project ERROR: -- running gyp_qtwebengine failed -- I suspect the chromium buildsystem needs an update for the alt arches.
I think it's our scripts to remove encumbered stuff from ffmpeg that needs updating.
But actually, for s390x, there's also: > gyp: Undefined variable platform_heap_asm_files in /home/sharkcz/qt5-qtwebengine/qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp which looks like there's unfortunately yet more ASM stuff needed now.
Yeah, it looks like we also need an implementation of: src/3rdparty/chromium/third_party/WebKit/Source/platform/heap/asm/SaveRegisters_$ARCH.$ASMEXT for every architecture, which needs to be listed in: src/3rdparty/chromium/third_party/WebKit/Source/platform/heap/blink_heap.gypi
(In reply to Kevin Kofler from comment #13) > Yeah, it looks like we also need an implementation of: > src/3rdparty/chromium/third_party/WebKit/Source/platform/heap/asm/ > SaveRegisters_$ARCH.$ASMEXT > for every architecture, which needs to be listed in: > src/3rdparty/chromium/third_party/WebKit/Source/platform/heap/blink_heap.gypi Kevin, thanks for the initial analysis, at least this part shouldn't be difficult.
Unfortunately, it looks like there is more architecture-specific hackery in Chromium code. I found some architecture-specific hackery (dependent at least on the stack growing direction, implemented through a hardcoded list of architectures) in src/3rdparty/chromium/base/process/launch_posix.cc. (And it doesn't even seem to work on aarch64, where it is supposed to work, see bug #1387794.)
I'm changing the subject to make it clear that V8 is not the (only) limiting factor, unfortunately (as per the discussion above).
*** Bug 1651261 has been marked as a duplicate of this bug. ***
qt5-srpm-macros defines a %{qt5_qtwebengine_arches} macro. Packages that require QtWebEngine must use: ExclusiveArch: %{qt5_qtwebengine_arches} Packages where QtWebEngine is an optional dependency must use: %ifarch %{qt5_qtwebengine_arches} BuildRequires: qt5-qtwebengine-devel %endif or an equivalent construct.
what can you tell me about qt5-qtwebengine-devel missing in EPEL7 for all CPU architectures?