commit:     a104ce28fc3964de220137cbc1e56131086cd2ed
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Sun Apr 26 10:50:16 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Apr 26 18:50:48 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a104ce28

www-client/chromium: beta channel bump to 83.0.4103.23

Add CHROMIUM_FORCE_LIBCXX to force linking against sys-libs/libcxx.
This prevents unbundling of some C++ libraries (icu, libxml2,
libxslt, re2, openh264, snappy), because system libraries are most
likely linked against libstdc++. However, libstc++ and libc++ are
not fully ABI compatible.

Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |  2 +-
 ...4103.14.ebuild => chromium-83.0.4103.23.ebuild} | 56 +++++++++++++++++-----
 2 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index bb677b2c3a0..5208c9699e6 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-81.0.4044.122.tar.xz 786010072 BLAKE2B 
bf9106aefb09d48a1e517840aab3e14d477275cb06d73b2400ff7414e61a7e13a420ee286a580922f7e3512da765bc7348ed714c4b8505bd2e778c5b50ea16da
 SHA512 
483fe530d2d60032cd3c79731840f6387036bc87c1002544d57744eaefec187dd8d9e0dd903f057df826fd59b3bf307b88d1596047ee65f4f8c0172389c546f8
-DIST chromium-83.0.4103.14.tar.xz 802476760 BLAKE2B 
bf8df2572018a99e735bcf6fe017db8b3832205e69073091b868c8a147419dabd480420a652761a4386fd2f1671c803c8f903bf3f9381b9059d251cb9d9773a9
 SHA512 
7fa4848a332c2c5cee3b946d82f83e8d1fc561e8c94682400e12dd1cd2df9a53c140f331dfc570d4b968bd54f283c57c61f52cca9f91d627c92b56ff0e23191d
+DIST chromium-83.0.4103.23.tar.xz 802566932 BLAKE2B 
00c9105a9b5e9cebc8adeb8a61b4491f0ca7cc95da9595506c77d556c0ee07074da0da506831bec1b390a39c7535220ab5c6d06ce784e6b20d2694f94d3b0a76
 SHA512 
08a50372570aa9da5fb9ccc6dfc3d949e84cb401d62d650132aa4edea2b1658fb56a81854fde11690d040e3b36b9d20da1ad7f83e47ffca77893ab57620c2a3e
 DIST setuptools-44.1.0.zip 858569 BLAKE2B 
f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68
 SHA512 
4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-83.0.4103.14.ebuild 
b/www-client/chromium/chromium-83.0.4103.23.ebuild
similarity index 95%
rename from www-client/chromium/chromium-83.0.4103.14.ebuild
rename to www-client/chromium/chromium-83.0.4103.23.ebuild
index fbb86c05a27..1c70eb46184 100644
--- a/www-client/chromium/chromium-83.0.4103.14.ebuild
+++ b/www-client/chromium/chromium-83.0.4103.23.ebuild
@@ -29,12 +29,9 @@ COMMON_DEPEND="
        >=dev-libs/atk-2.26
        dev-libs/expat:=
        dev-libs/glib:2
-       system-icu? ( >=dev-libs/icu-65:= )
        >=dev-libs/libxml2-2.9.4-r3:=[icu]
-       dev-libs/libxslt:=
        dev-libs/nspr:=
        >=dev-libs/nss-3.26:=
-       >=dev-libs/re2-0.2019.08.01:=
        >=media-libs/alsa-lib-1.0.19:=
        media-libs/fontconfig:=
        media-libs/freetype:=
@@ -42,7 +39,6 @@ COMMON_DEPEND="
        media-libs/libjpeg-turbo:=
        media-libs/libpng:=
        system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] )
-       >=media-libs/openh264-1.6.0:=
        pulseaudio? ( media-sound/pulseaudio:= )
        system-ffmpeg? (
                >=media-video/ffmpeg-4:=
@@ -70,7 +66,6 @@ COMMON_DEPEND="
        x11-libs/libXScrnSaver:=
        x11-libs/libXtst:=
        x11-libs/pango:=
-       app-arch/snappy:=
        media-libs/flac:=
        >=media-libs/libwebp-0.4.0:=
        sys-libs/zlib:=[minizip]
@@ -108,12 +103,32 @@ BDEPEND="
        )
 "
 
-: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=yes}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
        BDEPEND+=" >=sys-devel/clang-9"
 fi
 
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+       RDEPEND+=" >=sys-libs/libcxx-9"
+       DEPEND+=" >=sys-libs/libcxx-9"
+       BDEPEND+="
+               amd64? ( dev-lang/yasm )
+               x86? ( dev-lang/yasm )
+       "
+else
+       COMMON_DEPEND="
+               app-arch/snappy:=
+               dev-libs/libxslt:=
+               >=dev-libs/re2-0.2019.08.01:=
+               >=media-libs/openh264-1.6.0:=
+               system-icu? ( >=dev-libs/icu-65:= )
+       "
+       RDEPEND+="${COMMON_DEPEND}"
+       DEPEND+="${COMMON_DEPEND}"
+fi
+
 if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
        EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
 fi
@@ -433,7 +448,13 @@ src_prepare() {
        if use tcmalloc; then
                keeplibs+=( third_party/tcmalloc )
        fi
-
+       if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+               keeplibs+=( third_party/libxml )
+               keeplibs+=( third_party/libxslt )
+               keeplibs+=( third_party/openh264 )
+               keeplibs+=( third_party/re2 )
+               keeplibs+=( third_party/snappy )
+       fi
        # Remove most bundled libraries. Some are still needed.
        build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" 
--do-remove || die
 }
@@ -457,6 +478,9 @@ src_configure() {
        if tc-is-clang; then
                myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
        else
+               if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+                       die "Compiling with sys-libs/libcxx requires clang."
+               fi
                myconf_gn+=" is_clang=false"
        fi
 
@@ -502,11 +526,6 @@ src_configure() {
                libjpeg
                libpng
                libwebp
-               libxml
-               libxslt
-               openh264
-               re2
-               snappy
                yasm
                zlib
        )
@@ -519,6 +538,14 @@ src_configure() {
        if use system-libvpx; then
                gn_system_libraries+=( libvpx )
        fi
+       if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+               # unbundle only without libc++, because libc++ is not fully ABI 
compatible with libstdc++
+               gn_system_libraries+=( libxml )
+               gn_system_libraries+=( libxslt )
+               gn_system_libraries+=( openh264 )
+               gn_system_libraries+=( re2 )
+               gn_system_libraries+=( snappy )
+       fi
        build/linux/unbundle/replace_gn_files.py --system-libraries 
"${gn_system_libraries[@]}" || die
 
        # See dependency logic in third_party/BUILD.gn
@@ -580,6 +607,11 @@ src_configure() {
                fi
        fi
 
+       if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+               append-flags -stdlib=libc++
+               append-ldflags -stdlib=libc++
+       fi
+
        if [[ $myarch = amd64 ]] ; then
                myconf_gn+=" target_cpu=\"x64\""
                ffmpeg_target_arch=x64

Reply via email to