www-client/chromium: beta channel bump to 83.0.4103.23
authorStephan Hartmann <stha09@googlemail.com>
Sun, 26 Apr 2020 10:50:16 +0000 (12:50 +0200)
committerMike Gilbert <floppym@gentoo.org>
Sun, 26 Apr 2020 18:50:48 +0000 (14:50 -0400)
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@googlemail.com>
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
www-client/chromium/Manifest
www-client/chromium/chromium-83.0.4103.23.ebuild [moved from www-client/chromium/chromium-83.0.4103.14.ebuild with 95% similarity]

index bb677b2c3a02e91fa3f43cead19926118b05a07d..5208c9699e6d65782ab98fc3c57da9c2ed18b093 100644 (file)
@@ -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
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 fbb86c05a27c824bbfc6c71ea5991328249cae3d..1c70eb46184de0f4f2434104ffcee531095363a1 100644 (file)
@@ -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