Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1298011
Summary: | qt5-qtwebengine is ExclusiveArch to the architectures supported by Chromium | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Kevin Kofler <kevin> |
Component: | qt5-qtwebengine | Assignee: | Kevin Kofler <kevin> |
Status: | NEW --- | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | rawhide | CC: | dan, germano.massullo, kde-sig, kevin, projects.rg, than |
Target Milestone: | --- | Keywords: | FutureFeature, Tracking |
Target Release: | --- | ||
Hardware: | s390x | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Enhancement | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | Type: | Bug | |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 238953, 485231, 2027889 |
Description
Kevin Kofler
2016-01-13 00:53:05 UTC
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? |