Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 630834

Summary: >=dev-qt/qtwebengine-5.9.1[system-icu] builds libicuuc part of bundled ICU
Product: Gentoo Linux Reporter: Arfrever Frehtes Taifersar Arahesis <arfrever.fta>
Component: Current packagesAssignee: Qt Bug Alias <qt>
Status: RESOLVED FIXED    
Severity: normal CC: chiitoo, dschridde+gentoobugs, itumaykin+gentoo, kripton, phantom4, polynomial-c
Priority: Normal Keywords: PullRequest
Version: unspecified   
Hardware: All   
OS: All   
See Also: https://github.com/gentoo/qt/pull/215
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 652172, 652200    
Attachments: qtwebengine.patch
qtwebengine.patch

Description Arfrever Frehtes Taifersar Arahesis 2017-09-12 17:51:23 UTC
>=dev-qt/qtwebengine-5.9.1[system-icu] builds libicuuc part of bundled ICU when building GN using itself.
This libicuuc part of bundled ICU is not actually used for linking of anything.

GN is built twice:
1. Manually
     After message:
       Building gn manually in a temporary directory for bootstrapping...
2. Using itself
     After message:
       Building gn using itself to out/Release...

Building of libicuuc part of bundled ICU occurs during second building of GN.


This happens probably due to this change between dev-qt/qtwebengine-5.9.0 and dev-qt/qtwebengine-5.9.1:

--- src/3rdparty/chromium/base/BUILD.gn
+++ src/3rdparty/chromium/base/BUILD.gn
@@ -103,6 +103,10 @@
 
     configs += [ ":base_implementation" ]
 
+    if (!is_win) {
+      deps = [ "//third_party/icu:icuuc" ]
+    }
+
     visibility = [ ":base" ]
   }
 }
@@ -1065,6 +1069,10 @@
     ":debugging_flags",
   ]
 
+  if (!is_win) {
+    public_deps += [ "//third_party/icu:icuuc" ]
+  }
+
   # Needed for <atomic> if using newer C++ library than sysroot
   if (!use_sysroot && (is_android || is_linux) && !use_qt) {
     libs = [ "atomic" ]
Comment 1 Arfrever Frehtes Taifersar Arahesis 2017-09-12 17:55:56 UTC
Created attachment 494252 [details, diff]
qtwebengine.patch

Commit #1 adds passing of useful options for convenience, e.g. increased verbosity.

Commit #2 adds sanity check for not using of bundled copy of ICU with USE="system-icu".

Commit #3 disables building of libicuuc part of bundled ICU when building GN.
use_system_icu option is set elsewhere in ebuilds using WEBENGINE_CONFIG+=use_system_icu but this is not passed by build system during early part when building GN.
Comment 2 Arfrever Frehtes Taifersar Arahesis 2017-09-12 17:59:22 UTC
With first 2 commits and without third commit, the following can be seen:

...
[320/639] /usr/bin/x86_64-pc-linux-gnu-g++ -MMD -MF obj/base/base_paths/base_paths_posix.o.d -DV8_DEPRECATION_WARNINGS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DUSE_PROPRIETARY_CODECS -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -Igen -I../../../.. -I../../../../third_party/icu/source/common -I../../../../third_party/icu/source/i18n -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -g0 -fvisibility=hidden -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -fno-delete-null-pointer-checks -Wno-narrowing -fno-rtti -fno-exceptions -c ../../../../base/base_paths_posix.cc -o obj/base/base_paths/base_paths_posix.o
[321/639] /usr/bin/x86_64-pc-linux-gnu-gcc -MMD -MF obj/third_party/icu/bundled_icuuc/uchar.o.d -DU_COMMON_IMPLEMENTATION -DU_ICUDATAENTRY_IN_COMMON -DV8_DEPRECATION_WARNINGS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DUSE_PROPRIETARY_CODECS -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DHAVE_DLOPEN=0 -DUCONFIG_ONLY_HTML_CONVERSION=1 -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -Igen -I../../../.. -I../../../../third_party/icu/source/common -I../../../../third_party/icu/source/i18n -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -O2 -fno-ident -fdata-sections -ffunction-sections -g0 -fvisibility=hidden -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function  -c ../../../../third_party/icu/source/common/uchar.c -o obj/third_party/icu/bundled_icuuc/uchar.o
FAILED: obj/third_party/icu/bundled_icuuc/uchar.o 
/usr/bin/x86_64-pc-linux-gnu-gcc -MMD -MF obj/third_party/icu/bundled_icuuc/uchar.o.d -DU_COMMON_IMPLEMENTATION -DU_ICUDATAENTRY_IN_COMMON -DV8_DEPRECATION_WARNINGS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DUSE_PROPRIETARY_CODECS -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DHAVE_DLOPEN=0 -DUCONFIG_ONLY_HTML_CONVERSION=1 -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -Igen -I../../../.. -I../../../../third_party/icu/source/common -I../../../../third_party/icu/source/i18n -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -O2 -fno-ident -fdata-sections -ffunction-sections -g0 -fvisibility=hidden -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function  -c ../../../../third_party/icu/source/common/uchar.c -o obj/third_party/icu/bundled_icuuc/uchar.o
../../../../third_party/icu/source/common/uchar.c:1:2: error: #error This file should not be used!
 #error This file should not be used!
  ^~~~~
ninja: build stopped: subcommand failed.
Command '['ninja', '-j1', '-l0', '-v', '-C', '/var/tmp/portage/dev-qt/qtwebengine-5.9.1/work/qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/tools/gn/out/Release', 'gn']' returned non-zero exit status 1
Project ERROR: GN build error!
make[2]: *** [Makefile:63: sub-gn-pro-make_first] Error 3
make[2]: Leaving directory '/var/tmp/portage/dev-qt/qtwebengine-5.9.1/work/qtwebengine-opensource-src-5.9.1/src/buildtools'
make[1]: *** [Makefile:54: sub-buildtools-make_first] Error 2
make[1]: Leaving directory '/var/tmp/portage/dev-qt/qtwebengine-5.9.1/work/qtwebengine-opensource-src-5.9.1/src'
make: *** [Makefile:47: sub-src-make_first] Error 2
 * ERROR: dev-qt/qtwebengine-5.9.1::qt failed (compile phase):
 *   emake failed
Comment 3 Arfrever Frehtes Taifersar Arahesis 2018-04-05 20:16:30 UTC
Created attachment 526660 [details, diff]
qtwebengine.patch
Comment 4 Chiitoo gentoo-dev 2018-04-06 17:14:48 UTC
Would it be okay to break the longer lines with some backslashes?

Other than that, I'll do a bit more testing and apply the changes in the overlay, unless someone objects.
Comment 5 Andreas Sturmlechner gentoo-dev 2019-10-19 22:06:58 UTC
Any progress here?
Comment 6 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2019-10-29 07:47:52 UTC
(In reply to Andreas Sturmlechner from comment #5)
> Any progress here?

+1

Please proceed. We need this in portage.
Comment 7 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2020-04-04 15:56:47 UTC
ping...
Comment 8 Larry the Git Cow gentoo-dev 2020-04-09 17:32:43 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/qt.git/commit/?id=ec78602f03852f12ade82e253e60a2853459ecb4

commit ec78602f03852f12ade82e253e60a2853459ecb4
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2020-04-08 21:55:08 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2020-04-09 17:31:26 +0000

    dev-qt/qtwebengine: Sanity check against use of bundled ICU
    
    Bug: https://bugs.gentoo.org/630834
    Thanks-to: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
    Package-Manager: Portage-2.3.97, Repoman-2.3.22
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 dev-qt/qtwebengine/qtwebengine-5.14.9999.ebuild    | 13 +++++++++++++
 dev-qt/qtwebengine/qtwebengine-5.15.0_beta3.ebuild | 13 +++++++++++++
 dev-qt/qtwebengine/qtwebengine-5.15.9999.ebuild    | 13 +++++++++++++
 dev-qt/qtwebengine/qtwebengine-5.9999.ebuild       | 13 +++++++++++++
 4 files changed, 52 insertions(+)

https://gitweb.gentoo.org/proj/qt.git/commit/?id=faaca2a472833c6acec812a3474d1bf811b3881b

commit faaca2a472833c6acec812a3474d1bf811b3881b
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2020-04-08 20:53:06 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2020-04-09 17:24:00 +0000

    dev-qt/qtwebengine: Pass appropriate options to ninja for GN
    
    Bug: https://bugs.gentoo.org/630834
    Thanks-to: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
    Package-Manager: Portage-2.3.97, Repoman-2.3.22
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 dev-qt/qtwebengine/qtwebengine-5.14.9999.ebuild    | 4 ++++
 dev-qt/qtwebengine/qtwebengine-5.15.0_beta3.ebuild | 4 ++++
 dev-qt/qtwebengine/qtwebengine-5.15.9999.ebuild    | 4 ++++
 dev-qt/qtwebengine/qtwebengine-5.9999.ebuild       | 4 ++++
 4 files changed, 16 insertions(+)
Comment 9 Andreas Sturmlechner gentoo-dev 2020-04-09 19:35:57 UTC
Though, as far as I can see, it does not make a difference in cc1plus threads...
Comment 10 Chiitoo gentoo-dev 2021-06-24 10:45:26 UTC
This looks like it was done since a while ago.

Thanks!