[Interest] [5.6] 32bits build of qtwebengine and pkg-config issues on Ubuntu-16.04-x86_64

Christian Gagneraud chgans at gmail.com
Sun Jan 7 01:17:05 CET 2018


Hi there,

It's me again with my 32bits build on 64bits Linux...

I have successfully build all of Qt-5.6 and Qt-5.9 (inc. webengine) in
a i386/Ubuntu-16.04 docker container (mainly following
https://www.ics.com/blog/how-compile-qt-source-code-linux).

Now I would like to do the same in a amd64/Ubuntu-16.04 docker container.
What I did is postfix all '-dev' packages from the build above with
':i386' (with a single exception: libgcrypt11-dev:i386 since it
conflicted with libgcrypt11-dev).

This way I can build all of Qt-5.6, except QtWebEngine.
QtWebengine doesn't build due to a bunch of 'Unmet dependency'.

First of all as all dependencies are installed, i suspected the
probing itself and especially pkg-config.

It turns out that to build a 32bits version of QtWebengine on
amd64/Ubuntu-16.04, one has to install pkg-config:i386, which
conflicts with pkg-config, here is the log:

After configuring, building and installing Qt:

# cd qtwebengine
# rm Makefile # qtwebengine build was skipped
# /qt-everywhere-opensource-src-5.6.3/qtbase/bin/qmake -spec
linux-g++-32 qtwebengine.pro -o Makefile && make
Running configure tests
Checking for khr... yes
Checking for libvpx... no
Checking for snappy... no
Checking for srtp... yes
System zlib or minizip not found. Using Chromium's copies.
System libwebp or libwebpdemux not found. Using Chromium's copies.
System libxml2 or libxslt not found. Using Chromium's copies.
System libevent not found. Using Chromium's copy.
System jsoncpp not found. Using Chromium's copy.
System opus not found. Using Chromium's copy.
System protobuf not found. Using Chromium's copy.
Compatible system libvpx not found. Using Chromium's copy.
System snappy not found. Using Chromium's copy.
System NSS not found, BoringSSL will be used.
Certificate handling.............. Using bundled BoringSSL
ICU............................... Using internal copy (Default, force
system ICU with WEBENGINE_CONFIG+=use_system_icu)
FFMPEG............................ Using internal copy (Default, force
system FFMPEG with WEBENGINE_CONFIG+=use_system_ffmpeg)
Proprietary codecs (H264, MP3).... Not enabled         (Default,
enable with WEBENGINE_CONFIG+=use_proprietary_codecs)
Geolocation....................... Enabled

Unmet dependency: dbus-1
Unmet dependency: fontconfig
Unmet dependency: libdrm
Unmet dependency: xcomposite
Unmet dependency: xcursor
Unmet dependency: xi
Unmet dependency: xrandr
Unmet dependency: xscrnsaver
Unmet dependency: xtst
Unmet dependency: libpci
QtWebEngine will not be built.
make: Nothing to be done for 'first'.

# apt-get install -y pkg-config:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  pkg-config
The following NEW packages will be installed:
  pkg-config:i386
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 45.8 kB of archives.
After this operation, 2048 B disk space will be freed.
Do you want to continue? [Y/n]
Get:1 http://archive.ubuntu.com/ubuntu xenial/main i386 pkg-config
i386 0.29.1-0ubuntu1 [45.8 kB]
Fetched 45.8 kB in 1s (37.3 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
dpkg: pkg-config: dependency problems, but removing anyway as you requested:
 libgstreamer0.10-dev:i386 depends on pkg-config.
 libgstreamer-plugins-base0.10-dev:i386 depends on pkg-config.
 libglib2.0-dev:i386 depends on pkg-config.
 libatk1.0-dev:i386 depends on pkg-config.
 libsigc++-2.0-dev:i386 depends on pkg-config.
 libglibmm-2.4-dev:i386 depends on pkg-config.
 libdbus-1-dev:i386 depends on pkg-config.
 libfontconfig1-dev:i386 depends on pkg-config.

(Reading database ... 28375 files and directories currently installed.)
Removing pkg-config (0.29.1-0ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Selecting previously unselected package pkg-config:i386.
(Reading database ... 28360 files and directories currently installed.)
Preparing to unpack .../pkg-config_0.29.1-0ubuntu1_i386.deb ...
Unpacking pkg-config:i386 (0.29.1-0ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up pkg-config:i386 (0.29.1-0ubuntu1) ...

# rm Makefile # qtwebengine build was skipped
# /qt-everywhere-opensource-src-5.6.3/qtbase/bin/qmake -spec
linux-g++-32 qtwebengine.pro -o Makefile && make
Running configure tests
Checking for khr... yes
Checking for libvpx... no
Checking for snappy... no
Checking for srtp... yes
System zlib or minizip not found. Using Chromium's copies.
System libwebp or libwebpdemux not found. Using Chromium's copies.
System libevent not found. Using Chromium's copy.
System jsoncpp not found. Using Chromium's copy.
System opus not found. Using Chromium's copy.
Protobuf compiler not found. Using Chromium's copy of protobuf.
Compatible system libvpx not found. Using Chromium's copy.
System snappy not found. Using Chromium's copy.
Certificate handling.............. Using system NSS
ICU............................... Using internal copy (Default, force
system ICU with WEBENGINE_CONFIG+=use_system_icu)
FFMPEG............................ Using internal copy (Default, force
system FFMPEG with WEBENGINE_CONFIG+=use_system_ffmpeg)
Proprietary codecs (H264, MP3).... Not enabled         (Default,
enable with WEBENGINE_CONFIG+=use_proprietary_codecs)
Geolocation....................... Enabled
cd src/ && ( test -e Makefile ||
/qt-everywhere-opensource-src-5.6.3/qtbase/bin/qmake
/qt-everywhere-opensource-src-5.6.3/qtwebengine/src/src.pro -spec
linux-g++-32 -o Makefile ) && make -f Makefile
make[1]: Entering directory
'/qt-everywhere-opensource-src-5.6.3/qtwebengine/src'
cd core/ && ( test -e Makefile ||
/qt-everywhere-opensource-src-5.6.3/qtbase/bin/qmake
/qt-everywhere-opensource-src-5.6.3/qtwebengine/src/core/core.pro
-spec linux-g++-32 -o Makefile ) && make
<snip>
Project MESSAGE: Running gyp_qtwebengine
"/qt-everywhere-opensource-src-5.6.3/qtwebengine/src/core" -D
qt_cross_compile=0 -D qt_os="desktop_linux" -D pkg-config="pkg-config
2> /dev/null" -D use_qt=1 -D v8_use_external_startup_data=0 -D
enable_basic_printing=0 -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_pulseaudio=0 -D
use_alsa=1 -D use_glib=0 -D use_system_libxml=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 remove_webcore_debug_symbols=1 -D
remove_v8base_debug_symbols=1 -D disable_fatal_linker_warnings=1 -D
sysroot="" -D target_arch=ia32 -D enable_spellcheck=0.
<snip>

The build process is still running as of now.

Is it a bug in Qt/webengine source? Why QtWebengine doesn't see the
i386 -dev packages unless i install pkg-config:i386 (which breaks
things)?
Or is it a problem with Ubuntu?

Thanks,
Chris



More information about the Interest mailing list