diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 104 |
1 files changed, 80 insertions, 24 deletions
@@ -3,10 +3,12 @@ # Derived from official Chromium and Inox PKGBUILDS and ungoogled-chromium buildkit pkgname=ungoogled-chromium -pkgver=81.0.4044.138 -_rev=1 -_archver=7356fdd4d45890afa748888fd3533c3f5e49b08e -pkgrel=${_rev} +# Commit or tag for the upstream ungoogled-chromium repo +_ungoogled_version='81.0.4044.138-1' +_chromium_version=${_ungoogled_version%-*} +_ungoogled_revision=${_ungoogled_version#*-} +pkgver=${_chromium_version} +pkgrel=$_ungoogled_revision _launcher_ver=6 pkgdesc="A lightweight approach to removing Google web service dependency" arch=('x86_64') @@ -24,16 +26,36 @@ optdepends=('pepper-flash: support for Flash content' 'libva-intel-driver: for hardware video acceleration with 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 +source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${_chromium_version}.tar.xz chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz - https://github.com/Eloston/ungoogled-chromium/archive/$pkgver-$pkgrel.tar.gz - https://github.com/ungoogled-software/ungoogled-chromium-archlinux/archive/${_archver}.tar.gz) + https://github.com/Eloston/ungoogled-chromium/archive/$_ungoogled_version.tar.gz + rename-Relayout-in-DesktopWindowTreeHostPlatform.patch + rebuild-Linux-frame-button-cache-when-activation.patch + clean-up-a-call-to-set_utf8.patch + icu67.patch + chromium-widevine.patch + chromium-skia-harmony.patch + flags.archlinux.gn + chromium-drirc-disable-10bpc-color-configs.conf + vdpau-support.patch + vaapi-build-fix.patch + eglGetMscRateCHROMIUM.patch) sha256sums=('f478f28b8111cb70231df4c36e754d812ad7a94b7c844e9d0515345a71fd77a6' '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' 'a01a35454dcd3c789e4e536751ecd655959b544b56ffd241a7942d9912749da1' - 'b8d6a63fc93e010276ca039c4141b1a05029841b3e218afaf9462645470e407e') + 'ae3bf107834bd8eda9a3ec7899fe35fde62e6111062e5def7d24bf49b53db3db' + '46f7fc9768730c460b27681ccf3dc2685c7e1fd22d70d3a82d9e57e3389bb014' + '58c41713eb6fb33b6eef120f4324fa1fb8123b1fbc4ecbe5662f1f9779b9b6af' + '5315977307e69d20b3e856d3f8724835b08e02085a4444a5c5cefea83fd7d006' + '709e2fddba3c1f2ed4deb3a239fc0479bfa50c46e054e7f32db4fb1365fed070' + '771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1' + '24ada570fdac8156ce91ee790a860b2cac7689da8b4fb5cfadc59f1f8df7e658' + 'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb' + '0ec6ee49113cc8cc5036fa008519b94137df6987bf1f9fbffb2d42d298af868a' + 'fad5e678d62de0e45db1c2aa871628fdc981f78c26392c1dccc457082906a350' + '1dd330409094dc4bf393f00a51961a983360ccf99affd4f97a61d885129d326e') +provides=('chromium') +conflicts=('chromium') # 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 @@ -47,7 +69,7 @@ declare -gA _system_libs=( [libdrm]= [libevent]=libevent [libjpeg]=libjpeg - #[libpng]=libpng # https://crbug.com/752403#c10 + #[libpng]=libpng # https://crbug.com/752403#c10 [libvpx]=libvpx [libwebp]=libwebp [libxml]=libxml2 @@ -65,16 +87,50 @@ _unwanted_bundled_libs=( depends+=(${_system_libs[@]}) prepare() { - _ungoogled_archlinux_repo="$srcdir/$pkgname-archlinux-${_archver}" - _ungoogled_repo="$srcdir/$pkgname-$pkgver-$pkgrel" - _utils="${_ungoogled_repo}/utils" + cd "$srcdir/chromium-${_chromium_version}" + + # 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/*.cc + + # https://crbug.com/1049258 + patch -Np1 -i ../rename-Relayout-in-DesktopWindowTreeHostPlatform.patch + patch -Np1 -i ../rebuild-Linux-frame-button-cache-when-activation.patch + + # https://chromium-review.googlesource.com/c/chromium/src/+/2145261 + patch -Np1 -i ../clean-up-a-call-to-set_utf8.patch - cd "$srcdir/chromium-$pkgver" + # https://crbug.com/v8/10393 + patch -Np3 -d v8 <../icu67.patch + + # Load bundled Widevine CDM if available (see chromium-widevine in the AUR) + # M79 is supposed to download it as a component but it doesn't seem to work + patch -Np1 -i ../chromium-widevine.patch + + # https://crbug.com/skia/6663#c10 + patch -Np0 -i ../chromium-skia-harmony.patch + + # Fix VA-API on Nvidia + patch -Np1 -i ../vdpau-support.patch + + # Fix VAAPI build on chromium 81+ + patch -Np1 -i ../vaapi-build-fix.patch + + # https://bugs.chromium.org/p/chromium/issues/detail?id=1064078 + patch -Np1 -i ../eglGetMscRateCHROMIUM.patch msg2 'Pruning binaries' + _ungoogled_repo="$srcdir/$pkgname-${_ungoogled_version}" + _utils="${_ungoogled_repo}/utils" python "$_utils/prune_binaries.py" ./ "$_ungoogled_repo/pruning.list" msg2 'Applying patches' - python "$_utils/patches.py" apply ./ "$_ungoogled_repo/patches" "$_ungoogled_archlinux_repo/patches" + python "$_utils/patches.py" apply ./ "$_ungoogled_repo/patches" msg2 'Applying domain substitution' python "$_utils/domain_substitution.py" apply -r "$_ungoogled_repo/domain_regex.list" -f "$_ungoogled_repo/domain_substitution.list" -c domainsubcache.tar.gz ./ @@ -105,12 +161,9 @@ prepare() { } build() { - _ungoogled_archlinux_repo="$srcdir/$pkgname-archlinux-${_archver}" - _ungoogled_repo="$srcdir/$pkgname-$pkgver-$pkgrel" - make -C chromium-launcher-$_launcher_ver - cd "$srcdir/chromium-$pkgver" + cd "$srcdir/chromium-${_chromium_version}" if check_buildoption ccache y; then # Avoid falling back to preprocessor mode when sources contain time macros @@ -122,12 +175,12 @@ build() { export AR=llvm-ar export NM=llvm-nm + _ungoogled_repo="$srcdir/$pkgname-${_ungoogled_version}" mkdir -p out/Default - # Assemble GN flags cp "$_ungoogled_repo/flags.gn" "out/Default/args.gn" printf '\n' >> "out/Default/args.gn" - cat "$_ungoogled_archlinux_repo/flags.archlinux.gn" >> "out/Default/args.gn" + cat "$srcdir/flags.archlinux.gn" >> "out/Default/args.gn" # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) CFLAGS+=' -Wno-builtin-macro-redefined' @@ -150,7 +203,10 @@ package() { install -Dm644 LICENSE \ "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" - cd "$srcdir/chromium-$pkgver" + cd "$srcdir/chromium-${_chromium_version}" + + install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \ + "$pkgdir/usr/share/drirc.d/10-$pkgname.conf" install -D out/Default/chrome "$pkgdir/usr/lib/chromium/chromium" install -Dm4755 out/Default/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" @@ -190,4 +246,4 @@ package() { install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" } -# vim:set ts=2 sw=2 et: +# vim:set ts=2 sw=2 et ft=sh: |