diff --git a/repo/firefox-vaapi/0001-enable-vaapi.patch b/repo/firefox-vaapi/0001-enable-vaapi.patch new file mode 100644 index 0000000..e91f376 --- /dev/null +++ b/repo/firefox-vaapi/0001-enable-vaapi.patch @@ -0,0 +1,18 @@ +diff -up firefox-113.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi firefox-113.0/widget/gtk/GfxInfo.cpp +--- firefox-113.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi 2023-05-09 19:43:38.495868810 +0200 ++++ firefox-113.0/widget/gtk/GfxInfo.cpp 2023-05-09 19:44:30.943597984 +0200 +@@ -818,14 +818,6 @@ const nsTArray& GfxInfo:: + nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_COMPARISON_IGNORED, + V(0, 0, 0, 0), "FEATURE_HARDWARE_VIDEO_DECODING_NO_R600", ""); + +- // Disable on Release/late Beta +-#if !defined(EARLY_BETA_OR_EARLIER) +- APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Linux, DeviceFamily::All, +- nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING, +- nsIGfxInfo::FEATURE_BLOCKED_DEVICE, +- DRIVER_COMPARISON_IGNORED, V(0, 0, 0, 0), +- "FEATURE_HARDWARE_VIDEO_DECODING_DISABLE", ""); +-#endif + //////////////////////////////////// + // FEATURE_HW_DECODED_VIDEO_ZERO_COPY - ALLOWLIST + APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Linux, DeviceFamily::All, diff --git a/repo/firefox-vaapi/PKGBUILD b/repo/firefox-vaapi/PKGBUILD new file mode 100644 index 0000000..4be1a79 --- /dev/null +++ b/repo/firefox-vaapi/PKGBUILD @@ -0,0 +1,274 @@ +# Maintainer: Ewout van Mansom +# Contributor: Jan Alexander Steffens (heftig) +# Contributor: Ionut Biru +# Contributor: Jakub Schmidtke + +pkgname=firefox-vaapi +_pkgname=firefox +pkgver=113.0.1 +pkgrel=3 +pkgdesc="Standalone web browser from mozilla.org (with VA-API patches)" +url="https://www.mozilla.org/firefox/" +arch=(x86_64) +license=( + GPL + LGPL + MPL +) +depends=( + dbus-glib + ffmpeg + gtk3 + libpulse + libxt + mime-types + nss + ttf-font +) +makedepends=( + cbindgen + clang + diffutils + dump_syms + imake + inetutils + jack + lld + llvm + mesa + nasm + nodejs + python + rust + unzip + wasi-compiler-rt + wasi-libc + wasi-libc++ + wasi-libc++abi + xorg-server-xvfb + yasm + zip +) +optdepends=( + 'hunspell-en_US: Spell checking, American English' + 'libnotify: Notification integration' + 'networkmanager: Location detection via available WiFi networks' + 'pulseaudio: Audio support' + 'speech-dispatcher: Text-to-Speech' + 'xdg-desktop-portal: Screensharing with Wayland' +) +provides=(firefox=${pkgver}) +conflicts=(firefox) +options=( + !debug + !emptydirs + !lto + !makeflags + !strip +) +source=( + https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz{,.asc} + $_pkgname.desktop + identity-icons-brand.svg + 0001-enable-vaapi.patch +) +validpgpkeys=( + '14F26682D0916CDD81E37B6D61B7B526D98F0353' # Mozilla Software Releases +) +sha256sums=('c4f86ecbb3f418cf8f0000a3824c0decb6ef2253f468cf6e005c5fd1de33da4d' + 'SKIP' + '298eae9de76ec53182f38d5c549d0379569916eebf62149f9d7f4a7edef36abf' + 'a9b8b4a0a1f4a7b4af77d5fc70c2686d624038909263c795ecc81e0aec7711e9' + '3110e09266e2830084b7f325a4911acc7812f5f5ddc10bc42a38f1a3ee8e7305') +b2sums=('d87c98d29f9a29568a818bdbaf12a690ff60e16bb4b8f2a97c83280692533d04b089d015dca5b20fd0a03ca3763ef4a3b438f7105cbe877fda6044cc2c462a08' + 'SKIP' + 'e18f2c22e394ca3b6758bc130245b254947e4d15921be3da443d6d7c3c4b0d22ead1b39fbc10a4f896edd19e2a1dffbd1cbb34dc4beb0621a6ddb70ccc53b3a7' + '63a8dd9d8910f9efb353bed452d8b4b2a2da435857ccee083fc0c557f8c4c1339ca593b463db320f70387a1b63f1a79e709e9d12c69520993e26d85a3d742e34' + '29635d36533cbe8b606b75dc448e1870c12e7519494c67b13030fbe3cba3cce01415b30bb6b9f2d945c8f2966310e805ca0be7254896502eb14b424b28374033') + +# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) +# Note: These are for Arch Linux use ONLY. For your own distribution, please +# get your own set of keys. Feel free to contact foutrelis@archlinux.org for +# more information. +_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM + +# Mozilla API keys (see https://location.services.mozilla.com/api) +# Note: These are for Arch Linux use ONLY. For your own distribution, please +# get your own set of keys. Feel free to contact heftig@archlinux.org for +# more information. +_mozilla_api_key=e05d56db0a694edc8b5aaebda3f2db6a + +prepare() { + mkdir mozbuild + cd firefox-$pkgver + + # https://bugzilla.mozilla.org/show_bug.cgi?id=1809068 + # https://bbs.archlinux.org/viewtopic.php?id=281398 + # https://src.fedoraproject.org/rpms/firefox/blob/rawhide/f/firefox-enable-vaapi.patch + patch -Np1 -i ../0001-enable-vaapi.patch + + echo -n "$_google_api_key" >google-api-key + echo -n "$_mozilla_api_key" >mozilla-api-key + + cat >../mozconfig <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - < + + diff --git a/repo/firefox-vaapi/upload-symbol-archive b/repo/firefox-vaapi/upload-symbol-archive new file mode 100755 index 0000000..059a399 --- /dev/null +++ b/repo/firefox-vaapi/upload-symbol-archive @@ -0,0 +1,25 @@ +#!/bin/bash -e + +die() { + echo >&2 "$@" + exit 1 +} + +(( $# >= 2 )) || die "Usage: $0 TOKEN-FILE SYMBOL-ARCHIVE..." +token="$1" +shift + +[[ -f $token && -s $token ]] || die "Invalid TOKEN-FILE ${token@Q}" + +for zip; do + [[ $(file -SEbi "$zip") == application/zip* ]] || die "Invalid SYMBOL-ARCHIVE ${zip@Q}" +done + +for zip; do + echo >&2 "Uploading ${zip@Q} ..." + curl -X POST -H "Auth-Token: $(<"$token")" -F "${zip##*/}=@$zip" \ + --retry 4 --retry-connrefused --connect-timeout 120 \ + https://symbols.mozilla.org/upload/ + echo + mv -v "$zip" "$zip.uploaded" +done