Red Hat Bugzilla – Bug 1310753
qt5-qtwebengine FTBFS on aarch64
Last modified: 2016-03-21 04:29:28 EDT
Description of problem:
qt5-qtwebengine source is 0.2% of whole source. Rest is Chromium source code. 65.2% of which is set of 3rdparty code which involves:
- ffmpeg (cleaned by qt5-qtwebengine maintainer)
And many other software directories which are (or can) be part of Fedora as separate packages.
The problem is that those bundled components are often old and do not contain changes needed for qt5-qtwebengine to build on secondary architectures.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. run on aarch64 (arm-koji scratch is enough)
In file included from /builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/third_party/ffmpeg/libavutil/intreadwrite.h:25:0,
/builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/third_party/ffmpeg/libavutil/bswap.h:38:30: fatal error: aarch64/bswap.h: No such file or directory
# include "aarch64/bswap.h"
IMHO missing components (like ffmpeg) should be packaged for Fedora and used as build dependencies.
"Package is 99.8% bundled Chromium code which contains another set of 3rd party code" is not a bug according to the current packaging guidelines. And I tried hard to unbundle things. Various components cannot be unbundled for various reasons. The main reason FFmpeg cannot be unbundled is that a fully featured FFmpeg cannot be provided in Fedora. The bundled version is cleaned by a script to only contain known unencumbered parts, which is also where the build failure is coming from. (We would have the same build failure if it were packaged standalone.)
Should be fixed in Rawhide (fixed package now building on the primary architectures, but there will be no difference on those), thanks for the 2-line patch to clean_ffmpeg.sh you linked to on IRC.
"should be" is wish thinking. I am in a middle of getting it into buildable state.
Adding those two files to ffmpeg was beginning.
/builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-beta/aarch64-redhat-linux-gnu/src/core/Release/obj/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/vp8/libwebrtc_vp8.a(/builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-beta/aarch64-redhat-linux-gnu/src/core/Release/obj/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/vp8/webrtc_vp8.vp8_impl.o):vp8_impl.cc:function webrtc::VP8EncoderImpl::InitAndSetControlSettings(): error: undefined reference to 'vpx_codec_enc_init_multi_ver'
OK. I hope at least the tarball is good now.
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle.
Changing version to '24'.
More information and reason for this action is here:
So still seeing some issues here on both aarch64 and ppc
gyp: Undefined variable platform_heap_asm_files in /builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-rc/src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp
Project ERROR: -- running gyp_qtwebengine failed --
Makefile:116: recipe for target 'sub-gyp_run-pro-make_first' failed
/third_party/libjingle/libjingle_p2p_constants.a /builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-rc/aarch64-redhat-linux-gnu/src/core/Release/obj/src/3rdparty/chromium/third_party/webrtc/modules/libvideo_render.a -Wl,--end-group -lrt -ldl -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -levent -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -licui18n -licuuc -licudata -lprotobuf -lz -lresolv -lfontconfig -lfreetype -lharfbuzz-icu -lharfbuzz -lpng16 -ljpeg -lX11 -lXi -lXcursor -lXext -lXfixes -lXrender -lXss -lpci -lre2 -lXcomposite -lasound -lopus -lm -lvpx -lXdamage -lXtst -lXrandr -lwebp -lwebpdemux -lxml2 -lxslt -lsnappy -lexpat -ldbus-1 -lminizip -lsrtp -L/builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-rc/aarch64-redhat-linux-gnu/src/core/api/Release -Wl,-whole-archive -lqtwebenginecoreapi -Wl,-no-whole-archive -lEGL -lQt5Quick -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lGL
/builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-rc/aarch64-redhat-linux-gnu/src/core/Release/obj/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/vp8/libwebrtc_vp8.a(/builddir/build/BUILD/qtwebengine-opensource-src-5.6.0-rc/aarch64-redhat-linux-gnu/src/core/Release/obj/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/vp8/webrtc_vp8.vp8_impl.o):vp8_impl.cc:function webrtc::VP8EncoderImpl::InitAndSetControlSettings(): error: undefined reference to 'vpx_codec_enc_init_multi_ver'
Makefile.core_module:154: recipe for target '../../lib/libQt5WebEngineCore.so.5.6.0' failed
collect2: error: ld returned 1 exit status
bug 1311125 is change to libvpx package which is needed to fix this package
http://arm.koji.fedoraproject.org/koji/buildinfo?buildID=362634 got built