diff options
author | jk | 2019-11-22 20:41:27 -0500 |
---|---|---|
committer | jk | 2019-11-22 20:41:27 -0500 |
commit | d94f5e13dfca9ff5e1f61dfae19569b4e981ffaf (patch) | |
tree | 01eb42170d2ae83dcc61d7ed66b83bb02e30a1f9 | |
download | aur-d94f5e13dfca9ff5e1f61dfae19569b4e981ffaf.tar.gz |
initial commit
-rw-r--r-- | .SRCINFO | 110 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 259 | ||||
-rw-r--r-- | add-missing-include-for-unique_ptr.patch | 30 | ||||
-rw-r--r-- | chromium-drirc-disable-10bpc-color-configs.conf | 15 | ||||
-rw-r--r-- | chromium-skia-harmony.patch | 14 | ||||
-rw-r--r-- | chromium-system-icu.patch | 20 | ||||
-rw-r--r-- | chromium-system-zlib.patch | 13 | ||||
-rw-r--r-- | chromium-widevine.patch | 22 | ||||
-rw-r--r-- | dns_util-make-DohUpgradeEntry-non-const.patch | 86 | ||||
-rw-r--r-- | fix-shutdown-crash-in-ProfileManager.patch | 45 | ||||
-rw-r--r-- | fix-spammy-unique-font-matching-log.patch | 13 | ||||
-rw-r--r-- | fix-vaapi-ozone-build.patch | 17 | ||||
-rw-r--r-- | flags.archlinux.gn | 43 | ||||
-rw-r--r-- | icu65.patch | 64 | ||||
-rw-r--r-- | vaapi-fix.patch | 54 |
16 files changed, 810 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..44864aff8800 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,110 @@ +pkgbase = ungoogled-chromium-ozone + pkgdesc = A lightweight approach to removing Google web service dependency + pkgver = 78.0.3904.108 + pkgrel = 1 + url = https://ungoogled-software.github.io/ + arch = x86_64 + license = BSD + makedepends = python + makedepends = python2 + makedepends = gperf + makedepends = yasm + makedepends = mesa + makedepends = ninja + makedepends = nodejs + makedepends = git + makedepends = pipewire + makedepends = clang + makedepends = lld + makedepends = gn + makedepends = jre-openjdk-headless + makedepends = jack + depends = gtk3 + depends = nss + depends = alsa-lib + depends = xdg-utils + depends = libxss + depends = libcups + depends = libgcrypt + depends = ttf-font + depends = systemd + depends = dbus + depends = libpulse + depends = pciutils + depends = json-glib + depends = libva + depends = icu + depends = libxml2 + depends = fontconfig + depends = harfbuzz + depends = libjpeg + depends = re2 + depends = snappy + depends = ffmpeg + depends = flac + depends = libwebp + depends = minizip + depends = libxslt + depends = freetype2 + depends = opus + depends = desktop-file-utils + depends = hicolor-icon-theme + depends = icu + depends = libxml2 + depends = fontconfig + depends = harfbuzz + depends = libjpeg + depends = re2 + depends = snappy + depends = ffmpeg + depends = flac + depends = libwebp + depends = minizip + depends = libxslt + depends = freetype2 + depends = opus + optdepends = pepper-flash: support for Flash content + optdepends = kdialog: needed for file dialogs in KDE + optdepends = gnome-keyring: for storing passwords in GNOME keyring + optdepends = kwallet: for storing passwords in KWallet + optdepends = libva-intel-driver: for hardware video acceleration with old Intel GPUs + optdepends = intel-media-driver: for hardware video acceleration with newer Intel GPUs + optdepends = libva-mesa-driver: for hardware video acceleration with AMD/ATI GPUs + optdepends = libva-vdpau-driver: for hardware video acceleration with NVIDIA GPUs + provides = chromium + conflicts = chromium + source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-78.0.3904.108.tar.xz + source = chromium-launcher-6.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v6.tar.gz + source = ungoogled-chromium.zip::https://github.com/Eloston/ungoogled-chromium/archive/master.zip + source = flags.archlinux.gn + source = chromium-drirc-disable-10bpc-color-configs.conf + source = vaapi-fix.patch + source = fix-vaapi-ozone-build.patch + source = add-missing-include-for-unique_ptr.patch + source = dns_util-make-DohUpgradeEntry-non-const.patch + source = fix-shutdown-crash-in-ProfileManager.patch + source = icu65.patch + source = chromium-system-icu.patch + source = chromium-system-zlib.patch + source = fix-spammy-unique-font-matching-log.patch + source = chromium-widevine.patch + source = chromium-skia-harmony.patch + sha256sums = f9c53839f306d2973de27723360024f7904101d426b9e7e9cdb56e8bcc775b0e + sha256sums = 04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1 + sha256sums = SKIP + sha256sums = d81d95f719e7b4ed2c15ece56b0272ae969e8df871f1d8d87065db0130134912 + sha256sums = babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb + sha256sums = 9256123898cbdd4da4a111e5aa8752d5c6c2c07e59ca8677751791dd3321f6a9 + sha256sums = 9aebd800e5fe191cd5f4bd82c33419eefdd80919e6c6f5a3a9346a224625f094 + sha256sums = 49052e8aa630c4aa57bf46823edc32b7b309493275163c3bb3f9fd390c73356e + sha256sums = 69694ab12a5ced389916c0c5e8c7bdc191544f576b134ddfb2fe9d4ed9ec4494 + sha256sums = 4f81612c28957987f7344d8ce2b95a4a63136a8319c9751819436b11c62df057 + sha256sums = 1de9bdbfed482295dda45c7d4e323cee55a34e42f66b892da1c1a778682b7a41 + sha256sums = e73cc2ee8d3ea35aab18c478d76fdfc68ca4463e1e10306fa1e738c03b3f26b5 + sha256sums = eb67eda4945a89c3b90473fa8dc20637511ca4dcb58879a8ed6bf403700ca9c8 + sha256sums = 6fbffe59b886195b92c9a55137cef83021c16593f49714acb20023633e3ebb19 + sha256sums = d081f2ef8793544685aad35dea75a7e6264a2cb987ff3541e6377f4a3650a28b + sha256sums = 771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1 + +pkgname = ungoogled-chromium-ozone + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..57fc0051bb9c --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.tar.xz +*.tar.gz +*.zip +pkg/ +src/ diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..7e461c993420 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,259 @@ +# Maintainer: JustKidding <jk@vin.ovh> +# Derived from PKGBUILD for chromium + +pkgname=ungoogled-chromium-ozone +_pkgname=ungoogled-chromium +pkgver=78.0.3904.108 +pkgrel=1 +_launcher_ver=6 +pkgdesc="A lightweight approach to removing Google web service dependency" +arch=('x86_64') +url="https://ungoogled-software.github.io/" +license=('BSD') +depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' + 'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib' 'libva' + 'icu' 'libxml2' 'fontconfig' 'harfbuzz' 'libjpeg' 're2' 'snappy' 'ffmpeg' 'flac' 'libwebp' 'minizip' 'libxslt' 'freetype2' 'opus' + 'desktop-file-utils' 'hicolor-icon-theme') +makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' + 'pipewire' 'clang' 'lld' 'gn' 'jre-openjdk-headless' 'jack') +optdepends=('pepper-flash: support for Flash content' + 'kdialog: needed for file dialogs in KDE' + 'gnome-keyring: for storing passwords in GNOME keyring' + 'kwallet: for storing passwords in KWallet' + 'libva-intel-driver: for hardware video acceleration with old Intel GPUs' + 'intel-media-driver: for hardware video acceleration with newer Intel GPUs' + 'libva-mesa-driver: for hardware video acceleration with AMD/ATI GPUs' + 'libva-vdpau-driver: for hardware video acceleration with NVIDIA GPUs') +provides=('chromium') +conflicts=('chromium') +source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${pkgver}.tar.xz + chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz + 'ungoogled-chromium.zip::https://github.com/Eloston/ungoogled-chromium/archive/master.zip' + flags.archlinux.gn + chromium-drirc-disable-10bpc-color-configs.conf + vaapi-fix.patch + fix-vaapi-ozone-build.patch + add-missing-include-for-unique_ptr.patch + dns_util-make-DohUpgradeEntry-non-const.patch + fix-shutdown-crash-in-ProfileManager.patch + icu65.patch + chromium-system-icu.patch + chromium-system-zlib.patch + fix-spammy-unique-font-matching-log.patch + chromium-widevine.patch + chromium-skia-harmony.patch) +sha256sums=('f9c53839f306d2973de27723360024f7904101d426b9e7e9cdb56e8bcc775b0e' + '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' + 'SKIP' + 'd81d95f719e7b4ed2c15ece56b0272ae969e8df871f1d8d87065db0130134912' + 'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb' + '9256123898cbdd4da4a111e5aa8752d5c6c2c07e59ca8677751791dd3321f6a9' + '9aebd800e5fe191cd5f4bd82c33419eefdd80919e6c6f5a3a9346a224625f094' + '49052e8aa630c4aa57bf46823edc32b7b309493275163c3bb3f9fd390c73356e' + '69694ab12a5ced389916c0c5e8c7bdc191544f576b134ddfb2fe9d4ed9ec4494' + '4f81612c28957987f7344d8ce2b95a4a63136a8319c9751819436b11c62df057' + '1de9bdbfed482295dda45c7d4e323cee55a34e42f66b892da1c1a778682b7a41' + 'e73cc2ee8d3ea35aab18c478d76fdfc68ca4463e1e10306fa1e738c03b3f26b5' + 'eb67eda4945a89c3b90473fa8dc20637511ca4dcb58879a8ed6bf403700ca9c8' + '6fbffe59b886195b92c9a55137cef83021c16593f49714acb20023633e3ebb19' + 'd081f2ef8793544685aad35dea75a7e6264a2cb987ff3541e6377f4a3650a28b' + '771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1') +# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py +# Keys are the names in the above script; values are the dependencies in Arch +declare -gA _system_libs=( + [ffmpeg]=ffmpeg + [flac]=flac + [fontconfig]=fontconfig + [freetype]=freetype2 + [harfbuzz-ng]=harfbuzz + [icu]=icu + [libdrm]= + [libjpeg]=libjpeg + #[libpng]=libpng # https://crbug.com/752403#c10 + #[libvpx]=libvpx # https://github.com/webmproject/libvpx/commit/5a0242ba5c + [libwebp]=libwebp + [libxml]=libxml2 + [libxslt]=libxslt + [opus]=opus + [re2]=re2 + [snappy]=snappy + [yasm]= + [zlib]=minizip +) +_unwanted_bundled_libs=( + ${!_system_libs[@]} + ${_system_libs[libjpeg]+libjpeg_turbo} +) +depends+=(${_system_libs[@]}) + +prepare() { + cd "$srcdir/chromium-${pkgver}" + + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py + + # https://crbug.com/893950 + sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \ + third_party/blink/renderer/core/xml/*.cc \ + third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \ + third_party/libxml/chromium/libxml_utils.cc + + msg2 'Applying archlinux patches' + + # Fix VA-API on Intel and Nvidia + patch -Np1 -i ../vaapi-fix.patch + + # Fix vaapi linkage error + patch -Np1 -i ../fix-vaapi-ozone-build.patch + + # Missing include in third_party/blink/public/platform/web_rtc_rtp_source.h + patch -Np1 -i ../add-missing-include-for-unique_ptr.patch + + # https://crbug.com/957519#c23 + patch -Np1 -i ../dns_util-make-DohUpgradeEntry-non-const.patch + + # https://crbug.com/1005244 + patch -Np1 -i ../fix-shutdown-crash-in-ProfileManager.patch + + # https://crbug.com/1014272 + patch -Np1 -i ../icu65.patch + + # Fixes from Gentoo + patch -Np1 -i ../chromium-system-icu.patch + patch -Np1 -i ../chromium-system-zlib.patch + + # https://crbug.com/1005508 + patch -Np1 -i ../fix-spammy-unique-font-matching-log.patch + + # Load Widevine CDM if available + #patch -Np1 -i ../chromium-widevine.patch + + # https://crbug.com/skia/6663#c10 + patch -Np0 -i ../chromium-skia-harmony.patch + + # Ungoogled chromium stuff + _ungoogled_repo="$srcdir/$_pkgname-master" + _utils="${_ungoogled_repo}/utils" + msg2 'Applying ungoogled chromium patches' + # Prune binaries + python "$_utils/prune_binaries.py" ./ "$_ungoogled_repo/pruning.list" + # Patches themselves + python "$_utils/patches.py" apply ./ "$_ungoogled_repo/patches" + # domain substitution + python "$_utils/domain_substitution.py" apply -r "$_ungoogled_repo/domain_regex.list" -f "$_ungoogled_repo/domain_substitution.list" -c domainsubcache.tar.gz ./ + + # Force script incompatible with Python 3 to use /usr/bin/python2 + sed -i '1s|python$|&2|' third_party/dom_distiller_js/protoc_plugins/*.py + + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ + + # Remove bundled libraries for which we will use the system copies; this + # *should* do what the remove_bundled_libraries.py script does, with the + # added benefit of not having to list all the remaining libraries + local _lib + for _lib in ${_unwanted_bundled_libs[@]}; do + find "third_party/$_lib" -type f \ + \! -path "third_party/$_lib/chromium/*" \ + \! -path "third_party/$_lib/google/*" \ + \! -path 'third_party/yasm/run_yasm.py' \ + \! -regex '.*\.\(gn\|gni\|isolate\)' \ + -delete + done + + python2 build/linux/unbundle/replace_gn_files.py \ + --system-libraries "${!_system_libs[@]}" +} + +build() { + make -C chromium-launcher-$_launcher_ver + + cd "$srcdir/chromium-${pkgver}" + + if check_buildoption ccache y; then + # Avoid falling back to preprocessor mode when sources contain time macros + export CCACHE_SLOPPINESS=time_macros + fi + + export CC=clang + export CXX=clang++ + export AR=ar + export NM=nm + + # Ungoogled Chromium stuff + _ungoogled_repo="$srcdir/$_pkgname-master" + nproc=$(nproc) + mkdir -p out/Release + # Assemble GN flags + cp "$_ungoogled_repo/flags.gn" "out/Release/args.gn" + printf '\n' >> "out/Release/args.gn" + cat "$srcdir/flags.archlinux.gn" >> "out/Release/args.gn" + + if check_option strip y; then + _flags+=('symbol_level=0') + fi + + # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) + CFLAGS+=' -Wno-builtin-macro-redefined' + CXXFLAGS+=' -Wno-builtin-macro-redefined' + CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__=' + + # Do not warn about unknown warning options + CFLAGS+=' -Wno-unknown-warning-option' + CXXFLAGS+=' -Wno-unknown-warning-option' + + gn gen out/Release --script-executable=/usr/bin/python2 + ninja -C out/Release chrome chrome_sandbox chromedriver +} + +package() { + cd chromium-launcher-$_launcher_ver + make PREFIX=/usr DESTDIR="$pkgdir" install + install -Dm644 LICENSE \ + "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" + + cd "$srcdir/chromium-${pkgver}" + + install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" + install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" + ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" + + install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \ + "$pkgdir/usr/share/drirc.d/10-$pkgname.conf" + + install -Dm644 chrome/installer/linux/common/desktop.template \ + "$pkgdir/usr/share/applications/chromium.desktop" + install -Dm644 chrome/app/resources/manpage.1.in \ + "$pkgdir/usr/share/man/man1/chromium.1" + sed -i \ + -e "s/@@MENUNAME@@/Chromium/g" \ + -e "s/@@PACKAGE@@/chromium/g" \ + -e "s/@@USR_BIN_SYMLINK_NAME@@/chromium/g" \ + "$pkgdir/usr/share/applications/chromium.desktop" \ + "$pkgdir/usr/share/man/man1/chromium.1" + + cp \ + out/Release/{chrome_{100,200}_percent,resources}.pak \ + out/Release/{*.bin,chromedriver} \ + "$pkgdir/usr/lib/chromium/" + install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak + + if [[ -z ${_system_libs[icu]+set} ]]; then + cp out/Release/icudtl.dat "$pkgdir/usr/lib/chromium/" + fi + + for size in 24 48 64 128 256; do + install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ + "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" + done + + for size in 16 32; do + install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ + "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" + done + + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" +} + +# vim:set ts=2 sw=2 et: diff --git a/add-missing-include-for-unique_ptr.patch b/add-missing-include-for-unique_ptr.patch new file mode 100644 index 000000000000..113e08f4a7c6 --- /dev/null +++ b/add-missing-include-for-unique_ptr.patch @@ -0,0 +1,30 @@ +From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001 +From: David Landell <landell@vewd.com> +Date: Fri, 13 Sep 2019 12:24:13 +0000 +Subject: [PATCH] Add missing include for unique_ptr +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137 +Reviewed-by: Henrik Boström <hbos@chromium.org> +Commit-Queue: Henrik Boström <hbos@chromium.org> +Cr-Commit-Position: refs/heads/master@{#696355} +--- + third_party/blink/public/platform/web_rtc_rtp_source.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h +index 959440f7a5..c3fd5421aa 100644 +--- a/third_party/blink/public/platform/web_rtc_rtp_source.h ++++ b/third_party/blink/public/platform/web_rtc_rtp_source.h +@@ -5,6 +5,8 @@ + #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_ + #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_ + ++#include <memory> ++ + #include "base/optional.h" + #include "third_party/blink/public/platform/web_common.h" + diff --git a/chromium-drirc-disable-10bpc-color-configs.conf b/chromium-drirc-disable-10bpc-color-configs.conf new file mode 100644 index 000000000000..ef836b32222e --- /dev/null +++ b/chromium-drirc-disable-10bpc-color-configs.conf @@ -0,0 +1,15 @@ +<!-- + +Disable 10 bpc color configs; fixes VAAPI playback. + +https://bugs.freedesktop.org/show_bug.cgi?id=106490 + +--> + +<driconf> + <device> + <application name="Chromium" executable="chromium"> + <option name="allow_rgb10_configs" value="false" /> + </application> + </device> +</driconf> diff --git a/chromium-skia-harmony.patch b/chromium-skia-harmony.patch new file mode 100644 index 000000000000..c96d07e11489 --- /dev/null +++ b/chromium-skia-harmony.patch @@ -0,0 +1,14 @@ +--- third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2019-07-19 11:08:34.770972665 +0000 ++++ third_party/skia/src/ports/SkFontHost_FreeType.cpp 2019-07-19 11:08:44.274442065 +0000 +@@ -128,9 +128,9 @@ public: + : fGetVarDesignCoordinates(nullptr) + , fGetVarAxisFlags(nullptr) + , fLibrary(nullptr) +- , fIsLCDSupported(false) ++ , fIsLCDSupported(true) + , fLightHintingIsYOnly(false) +- , fLCDExtra(0) ++ , fLCDExtra(2) + { + if (FT_New_Library(&gFTMemory, &fLibrary)) { + return; diff --git a/chromium-system-icu.patch b/chromium-system-icu.patch new file mode 100644 index 000000000000..1f848d7ee2be --- /dev/null +++ b/chromium-system-icu.patch @@ -0,0 +1,20 @@ +diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn +index 4450e40..9ca36dd 100644 +--- a/build/linux/unbundle/icu.gn ++++ b/build/linux/unbundle/icu.gn +@@ -96,6 +96,7 @@ shim_headers("icui18n_shim") { + "unicode/fpositer.h", + "unicode/gender.h", + "unicode/gregocal.h", ++ "unicode/listformatter.h", + "unicode/measfmt.h", + "unicode/measunit.h", + "unicode/measure.h", +@@ -178,7 +179,6 @@ shim_headers("icuuc_shim") { + "unicode/icudataver.h", + "unicode/icuplug.h", + "unicode/idna.h", +- "unicode/listformatter.h", + "unicode/localpointer.h", + "unicode/locdspnm.h", + "unicode/locid.h", diff --git a/chromium-system-zlib.patch b/chromium-system-zlib.patch new file mode 100644 index 000000000000..951a2adb196a --- /dev/null +++ b/chromium-system-zlib.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn +index 3bc618a..e0ddf6d 100644 +--- a/third_party/perfetto/gn/BUILD.gn ++++ b/third_party/perfetto/gn/BUILD.gn +@@ -244,7 +244,7 @@ if (enable_perfetto_trace_processor || perfetto_build_standalone || + "//buildtools:zlib", + ] + } else { +- public_configs = [ "//third_party/zlib:zlib_config" ] ++ public_configs = [ "//third_party/zlib:system_zlib" ] + public_deps = [ + "//third_party/zlib", + ] diff --git a/chromium-widevine.patch b/chromium-widevine.patch new file mode 100644 index 000000000000..1a1a3f228bf5 --- /dev/null +++ b/chromium-widevine.patch @@ -0,0 +1,22 @@ +diff -upr chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc chromium-71.0.3578.80/chrome/common/chrome_content_client.cc +--- chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc 2018-12-03 20:16:43.000000000 +0000 ++++ chromium-71.0.3578.80/chrome/common/chrome_content_client.cc 2018-12-04 21:34:28.658206942 +0000 +@@ -99,7 +99,7 @@ + // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is + // bundled and not a component. When the Widevine CDM is a component, it is + // registered in widevine_cdm_component_installer.cc. +-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) ++#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) + #define REGISTER_BUNDLED_WIDEVINE_CDM + #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck + // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support +diff -upr chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h +--- chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-03 20:18:01.000000000 +0000 ++++ chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-04 21:37:45.635374949 +0000 +@@ -12,4 +12,6 @@ + // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available + // as a string, e.g., "1.0.123.456"). + ++#define WIDEVINE_CDM_VERSION_STRING "unknown" ++ + #endif // WIDEVINE_CDM_VERSION_H_ diff --git a/dns_util-make-DohUpgradeEntry-non-const.patch b/dns_util-make-DohUpgradeEntry-non-const.patch new file mode 100644 index 000000000000..2d655e1ab1c8 --- /dev/null +++ b/dns_util-make-DohUpgradeEntry-non-const.patch @@ -0,0 +1,86 @@ +From f4c3c329588b78af63aad8b401da767242b86709 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Mon, 16 Sep 2019 17:05:42 +0000 +Subject: [PATCH] dns_util: Make DohUpgradeEntry non-const when used with + std::vector<> + +This fixes the build with libstdc++ (with most other standard libraries +other than libc++, in fact) after commit f93a48e3 ("Allow upgrade to DoH +during automatic mode"): + +../../../../../../usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_vector.h:351:7: error: static_assert failed due to requirement 'is_same<typename remove_cv<const DohUpgradeEntry>::type, const DohUpgradeEntry>::value' "std::vector must have a non-const, non-volatile value_type" + static_assert(is_same<typename remove_cv<_Tp>::type, _Tp>::value, + ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +../../base/no_destructor.h:77:28: note: in instantiation of template class 'std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >' requested here + alignas(T) char storage_[sizeof(T)]; + ^ +../../net/dns/dns_util.cc:147:7: note: in instantiation of template class 'base::NoDestructor<std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> > >' requested here + upgradable_servers({ + ^ +../../net/dns/dns_util.cc:230:36: error: invalid range expression of type 'const std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >'; no viable 'begin' function available + for (const auto& upgrade_entry : upgradable_servers) { + ^ ~~~~~~~~~~~~~~~~~~ + +The C++ standard forbids containers of const elements. Callers of +GetDohUpgradeList() use it in a safe way anyway, and most of +DohUpgradeEntry's members are const. + +Bug: 957519 +Change-Id: I826a51823edb1184c0fae27105101e2894efe568 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1805636 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Commit-Queue: Eric Orth <ericorth@chromium.org> +Reviewed-by: Eric Orth <ericorth@chromium.org> +Cr-Commit-Position: refs/heads/master@{#696834} +--- + net/dns/dns_util.cc | 13 +++++-------- + 1 file changed, 5 insertions(+), 8 deletions(-) + +diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc +index d83ff7c150..14997c48b2 100644 +--- a/net/dns/dns_util.cc ++++ b/net/dns/dns_util.cc +@@ -139,11 +139,11 @@ struct DohUpgradeEntry { + const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config; + }; + +-const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() { ++const std::vector<DohUpgradeEntry>& GetDohUpgradeList() { + // The provider names in these entries should be kept in sync with the + // DohProviderId histogram suffix list in + // tools/metrics/histograms/histograms.xml. +- static const base::NoDestructor<std::vector<const DohUpgradeEntry>> ++ static const base::NoDestructor<std::vector<DohUpgradeEntry>> + upgradable_servers({ + DohUpgradeEntry( + "CleanBrowsingAdult", +@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() { + std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers( + const std::vector<IPEndPoint>& dns_servers, + const std::vector<std::string>& excluded_providers) { +- const std::vector<const DohUpgradeEntry>& upgradable_servers = +- GetDohUpgradeList(); ++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList(); + std::vector<const DohUpgradeEntry*> entries; + + for (const auto& server : dns_servers) { +@@ -417,8 +416,7 @@ std::vector<DnsConfig::DnsOverHttpsServerConfig> + GetDohUpgradeServersFromDotHostname( + const std::string& dot_server, + const std::vector<std::string>& excluded_providers) { +- const std::vector<const DohUpgradeEntry>& upgradable_servers = +- GetDohUpgradeList(); ++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList(); + std::vector<DnsConfig::DnsOverHttpsServerConfig> doh_servers; + + if (dot_server.empty()) +@@ -451,8 +449,7 @@ GetDohUpgradeServersFromNameservers( + + std::string GetDohProviderIdForHistogramFromDohConfig( + const DnsConfig::DnsOverHttpsServerConfig& doh_server) { +- const std::vector<const DohUpgradeEntry>& upgradable_servers = +- GetDohUpgradeList(); ++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList(); + for (const auto& upgrade_entry : upgradable_servers) { + if (doh_server.server_template == + upgrade_entry.dns_over_https_config.server_template) { diff --git a/fix-shutdown-crash-in-ProfileManager.patch b/fix-shutdown-crash-in-ProfileManager.patch new file mode 100644 index 000000000000..01074eca5325 --- /dev/null +++ b/fix-shutdown-crash-in-ProfileManager.patch @@ -0,0 +1,45 @@ +From e73aed9a5ef15102f29ac31b70290faf5c90f9fe Mon Sep 17 00:00:00 2001 +From: Evan Stade <estade@chromium.org> +Date: Wed, 16 Oct 2019 16:01:32 +0000 +Subject: [PATCH] Fix shutdown crash in ProfileManager. + +OnProfileMarkedForPermanentDeletion should move from +ProfileManagerObserver to ProfileObserver, which would also +fix this bug. However, changing the order of members is the +quickest and most cherry-pick-able way to avoid the crash. + +Bug: 1005244 +Change-Id: If2db68c846dd418cd02864b57b9b543687fa1e03 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863518 +Auto-Submit: Evan Stade <estade@chromium.org> +Reviewed-by: David Roger <droger@chromium.org> +Commit-Queue: Evan Stade <estade@chromium.org> +Cr-Commit-Position: refs/heads/master@{#706467} +--- + chrome/browser/profiles/profile_manager.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h +index b60df76d59..7d02af7f8f 100644 +--- a/chrome/browser/profiles/profile_manager.h ++++ b/chrome/browser/profiles/profile_manager.h +@@ -410,6 +410,10 @@ class ProfileManager : public content::NotificationObserver, + const base::FilePath& profile_dir); + #endif // !defined(OS_ANDROID) + ++ // Destroy after |profile_info_cache_| since Profile destruction may trigger ++ // some observers to unregister themselves. ++ base::ObserverList<ProfileManagerObserver> observers_; ++ + // Object to cache various information about profiles. Contains information + // about every profile which has been created for this instance of Chrome, + // if it has not been explicitly deleted. It must be destroyed after +@@ -451,8 +455,6 @@ class ProfileManager : public content::NotificationObserver, + // Controls whether to initialize some services. Only disabled for testing. + bool do_final_services_init_ = true; + +- base::ObserverList<ProfileManagerObserver> observers_; +- + // TODO(chrome/browser/profiles/OWNERS): Usage of this in profile_manager.cc + // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for + // consistency with surrounding code in the same file but that wasn't trivial diff --git a/fix-spammy-unique-font-matching-log.patch b/fix-spammy-unique-font-matching-log.patch new file mode 100644 index 000000000000..9321a98a7254 --- /dev/null +++ b/fix-spammy-unique-font-matching-log.patch @@ -0,0 +1,13 @@ +diff --git a/content/child/child_process_sandbox_support_impl_linux.cc b/content/child/child_process_sandbox_support_impl_linux.cc +index 0a57543eb5..fe2ee491a2 100644 +--- a/content/child/child_process_sandbox_support_impl_linux.cc ++++ b/content/child/child_process_sandbox_support_impl_linux.cc +@@ -78,8 +78,6 @@ void WebSandboxSupportLinux::MatchFontByPostscriptNameOrFullFontName( + std::string family_name; + if (!font_loader_->MatchFontByPostscriptNameOrFullFontName(font_unique_name, + &font_identity)) { +- LOG(ERROR) << "FontService unique font name matching request did not " +- "receive a response."; + return; + } + diff --git a/fix-vaapi-ozone-build.patch b/fix-vaapi-ozone-build.patch new file mode 100644 index 000000000000..cc7c005ae82f --- /dev/null +++ b/fix-vaapi-ozone-build.patch @@ -0,0 +1,17 @@ +--- a/media/gpu/vaapi/BUILD.gn ++++ b/media/gpu/vaapi/BUILD.gn +@@ -128,12 +128,12 @@ source_set("vaapi") { + ] + } + +- if (ozone_platform_gbm || use_egl) { ++ if (ozone_platform_wayland || ozone_platform_gbm || use_egl) { + sources += [ + "vaapi_picture_native_pixmap.cc", + "vaapi_picture_native_pixmap.h", + ] +- if (ozone_platform_gbm) { ++ if (ozone_platform_wayland || ozone_platform_gbm) { + sources += [ + "vaapi_picture_native_pixmap_ozone.cc", + "vaapi_picture_native_pixmap_ozone.h", diff --git a/flags.archlinux.gn b/flags.archlinux.gn new file mode 100644 index 000000000000..87539f6987b2 --- /dev/null +++ b/flags.archlinux.gn @@ -0,0 +1,43 @@ +blink_symbol_level=0 +custom_toolchain="//build/toolchain/linux/unbundle:default" +enable_ac3_eac3_audio_demuxing=true +enable_iterator_debugging=false +fatal_linker_warnings=false +ffmpeg_branding="Chrome" +gold_path="" +goma_dir="" +is_official_build=true +host_toolchain="//build/toolchain/linux/unbundle:default" +is_clang=true +jumbo_file_merge_limit=8 +link_pulseaudio=true +linux_use_bundled_binutils=false +proprietary_codecs=true +symbol_level=0 +use_cups=true +use_custom_libcxx=false +use_gio=true +use_gnome_keyring=false +use_jumbo_build=true +use_kerberos=false +use_libjpeg_turbo=true +use_lld=true +use_openh264=false +use_pulseaudio=true +use_sysroot=false +use_system_freetype=true +use_system_harfbuzz=true +use_system_lcms2=true +use_system_libjpeg=true +use_system_libopenjpeg2=true +use_system_zlib=true +use_vaapi=true +enable_swiftshader=false +use_ozone=true +ozone_platform_wayland=true +ozone_platform_x11=true +ozone_auto_platforms=false +use_xkbcommon=true +use_system_libwayland=true +use_system_minigbm=true +use_system_libdrm=true diff --git a/icu65.patch b/icu65.patch new file mode 100644 index 000000000000..811d56286a98 --- /dev/null +++ b/icu65.patch @@ -0,0 +1,64 @@ +From 5679c3c191ed62b62d8db22f1657a296ee9bfe8e Mon Sep 17 00:00:00 2001 +From: Frank Tang <ftang@chromium.org> +Date: Wed, 30 Oct 2019 22:49:47 +0000 +Subject: [PATCH] Update ICU to 65.1 from 64 and fix broken tests + +ICU 65-1 release note +http://site.icu-project.org/download/65 + +CLDR 36 release blog +http://blog.unicode.org/2019/10/unicode-cldr-version-36-languagelocale.html + +Most of the test expectation change is due to CLDR 36 update +of Grapheme Cluster for Indic languages +See the following for related changes in ICU 65.1 in this area: +https://unicode-org.atlassian.net/browse/CLDR-10994 +https://unicode-org.atlassian.net/browse/ICU-13637 +https://github.com/unicode-org/cldr/blob/master/common/properties/segments/readme.txt + +Bug: chromium:1014272, chromium:1017047 +Change-Id: I9fc6d4620bf2a4c189940d06d8c79893502db3dd +Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng_disabled +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1866059 +Reviewed-by: Jungshik Shin <jshin@chromium.org> +Reviewed-by: Doug Turner <dougt@chromium.org> +Reviewed-by: Michael Wasserman <msw@chromium.org> +Reviewed-by: Kent Tamura <tkent@chromium.org> +Reviewed-by: Trent Apted <tapted@chromium.org> +Reviewed-by: Mason Freed <masonfreed@chromium.org> +Commit-Queue: Frank Tang <ftang@chromium.org> +Cr-Commit-Position: refs/heads/master@{#711027} +--- + third_party/blink/renderer/core/dom/document.cc | 2 +- + ui/gfx/render_text_harfbuzz.cc | 5 ++++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc +index 511aac29086..f188cf548a6 100644 +--- a/third_party/blink/renderer/core/dom/document.cc ++++ b/third_party/blink/renderer/core/dom/document.cc +@@ -6191,7 +6191,7 @@ static ParseQualifiedNameResult ParseQualifiedNameInternal( + + for (unsigned i = 0; i < length;) { + UChar32 c; +- U16_NEXT(characters, i, length, c) ++ U16_NEXT(characters, i, length, c); + if (c == ':') { + if (saw_colon) + return ParseQualifiedNameResult(kQNMultipleColons); +diff --git a/ui/gfx/render_text_harfbuzz.cc b/ui/gfx/render_text_harfbuzz.cc +index 50e86af6b97..0339ff3ff8e 100644 +--- a/ui/gfx/render_text_harfbuzz.cc ++++ b/ui/gfx/render_text_harfbuzz.cc +@@ -971,7 +971,10 @@ RangeF TextRunHarfBuzz::GetGraphemeBounds(RenderTextHarfBuzz* render_text, + ++total; + } + } +- DCHECK_GT(total, 0); ++ // With ICU 65.1, DCHECK_GT() below fails. ++ // See https://crbug.com/1017047 for more details. ++ // ++ // DCHECK_GT(total, 0); + + // It's possible for |text_index| to point to a diacritical mark, at the end + // of |chars|. In this case all the grapheme boundaries come before it. Just diff --git a/vaapi-fix.patch b/vaapi-fix.patch new file mode 100644 index 000000000000..a1343731dcaf --- /dev/null +++ b/vaapi-fix.patch @@ -0,0 +1,54 @@ +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +@@ -635,6 +635,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( + // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's + // internal decoded frame. + if (buffer_allocation_mode_ != BufferAllocationMode::kNone && ++ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau && + !vpp_vaapi_wrapper_) { + vpp_vaapi_wrapper_ = VaapiWrapper::Create( + VaapiWrapper::kVideoProcess, VAProfileNone, +@@ -650,7 +651,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( + // only used as a copy destination. Therefore, the VaapiWrapper used and + // owned by |picture| is |vpp_vaapi_wrapper_|. + std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create( +- (buffer_allocation_mode_ == BufferAllocationMode::kNone) ++ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) || ++ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau)) + ? vaapi_wrapper_ + : vpp_vaapi_wrapper_, + make_context_current_cb_, bind_image_cb_, buffers[i]); +@@ -1077,6 +1079,14 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() { + + VaapiVideoDecodeAccelerator::BufferAllocationMode + VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { ++ // NVIDIA blobs use VDPAU ++ if (base::StartsWith(VaapiWrapper::GetVendorStringForTesting(), ++ "Splitted-Desktop Systems VDPAU", ++ base::CompareCase::SENSITIVE)) { ++ LOG(INFO) << "VA-API driver on VDPAU backend"; ++ return BufferAllocationMode::kWrapVdpau; ++ } ++ + // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT + // |output_mode_| as well. + if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT) +@@ -1089,7 +1099,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { + // depends on the bitstream and sometimes it's not enough to cover the amount + // of frames needed by the client pipeline (see b/133733739). + // TODO(crbug.com/911754): Enable for VP9 Profile 2. +- if (IsGeminiLakeOrLater() && ++ if (false && IsGeminiLakeOrLater() && + (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) { + // Add one to the reference frames for the one being currently egressed, and + // an extra allocation for both |client_| and |decoder_|, see +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h +@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator + // Using |client_|s provided PictureBuffers and as many internally + // allocated. + kNormal, ++ kWrapVdpau, + }; + + // Decides the concrete buffer allocation mode, depending on the hardware |