diff options
Diffstat (limited to 'community/firefox')
25 files changed, 1118 insertions, 968 deletions
diff --git a/community/firefox/APKBUILD b/community/firefox/APKBUILD index d473981f571..99acba5fbb8 100644 --- a/community/firefox/APKBUILD +++ b/community/firefox/APKBUILD @@ -1,37 +1,43 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net> -# Maintainer: Rasmus Thomsen <oss@cogitri.dev> +# Contributor: Rasmus Thomsen <oss@cogitri.dev> +# Maintainer: Patrycja Rosa <alpine@ptrcnull.me> pkgname=firefox -pkgver=84.0.2 -# Date of release, YY-MM-DD for metainfo file (see package()) -_releasedate=2021-01-06 +pkgver=125.0.1 +_releasedate=2024-04-02 pkgrel=0 pkgdesc="Firefox web browser" url="https://www.firefox.com/" -# Limited on: -# s390x, mips, mips64: limited by rust and cargo -# s390x: limited by pipewire -# armhf: build failure on armhf due to wasm -# ppc64le: Rust SIGSEGVs when compiling gkrust -# armv7: Needs Rust nightly for WASM -arch="all !s390x !armhf !mips !mips64 !ppc64le !armv7" +# s390x blocked by lld +# armhf: https://bugzilla.mozilla.org/show_bug.cgi?id=1680495 +# riscv64: vpx symbol is missing #15412 +arch="x86_64 armv7 aarch64 x86 ppc64le" license="GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MPL-2.0" +# ffmpeg 6 -> 112 +depends=" + ffmpeg-libavcodec + mesa-egl + mesa-gl + pciutils-libs + " +_llvmver=17 makedepends=" alsa-lib-dev - autoconf2.13 automake bsd-compat-headers cargo - cbindgen>=0.14.1 - clang-dev + cbindgen + clang$_llvmver + clang$_llvmver-libclang + compiler-rt + dbus dbus-glib-dev - ffmpeg-dev - gtk+2.0-dev + gettext gtk+3.0-dev hunspell-dev - icu-dev>=64.2 + icu-dev libevent-dev - libidl-dev + libffi-dev libjpeg-turbo-dev libnotify-dev libogg-dev @@ -39,58 +45,307 @@ makedepends=" libtool libvorbis-dev libvpx-dev - libxt-dev + libwebp-dev libxcomposite-dev - llvm-dev + libxt-dev + lld + llvm$_llvmver-dev + m4 mesa-dev + mesa-dri-gallium nasm nodejs nspr-dev - nss-dev>=3.44.1 - nss-static + nss-dev + patchelf + pciutils + pipewire-dev + pulseaudio-dev + py3-zstandard python3 + scudo-malloc sed + wasi-sdk wireless-tools-dev - yasm + xvfb-run zip - libffi-dev - libwebp-dev - pipewire-dev - gettext - pulseaudio-dev " - -source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz - stab.h - - fix-fortify-system-wrappers.patch - fix-tools.patch - mallinfo.patch - +subpackages="$pkgname-intl" +case "$CARCH" in +riscv64) ;; +*) subpackages="$subpackages $pkgname-dbg" ;; +esac +source="$pkgname-$pkgver.tar.xz::https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz disable-moz-stackwalk.patch + fix-fortify-system-wrappers.patch fix-rust-target.patch fix-webrtc-glibcisms.patch - fd6847c9416f9eebde636e21d794d25d1be8791d.patch - allow-custom-rust-vendor.patch - - firefox.desktop - firefox-safe.desktop - disable-neon-in-aom.patch + force-can-use-pack-relative-relocs.patch + icu74.patch + lfs64.patch + no-ccache-stats.patch + ppc-musttail.patch + python-deps.patch + rust-lto-thin.patch + riscv64-no-lto.patch sandbox-fork.patch - sandbox-sched_setscheduler.patch sandbox-largefile.patch + sandbox-sched_setscheduler.patch + sqlite-ppc.patch - avoid-redefinition.patch - " + stab.h -subpackages="$pkgname-npapi" + firefox.desktop + distribution.ini + mozilla-location.keys + vendor-prefs.js + " +# tests are hard to run +options="!check" _mozappdir=/usr/lib/firefox # help our shared-object scanner to find the libs ldpath="$_mozappdir" +sonameprefix="$pkgname:" # secfixes: +# 119.0-r0: +# - CVE-2023-5721 +# - CVE-2023-5722 +# - CVE-2023-5723 +# - CVE-2023-5724 +# - CVE-2023-5725 +# - CVE-2023-5726 +# - CVE-2023-5727 +# - CVE-2023-5728 +# - CVE-2023-5729 +# - CVE-2023-5730 +# - CVE-2023-5731 +# 103.0-r0: +# - CVE-2022-2505 +# - CVE-2022-36314 +# - CVE-2022-36315 +# - CVE-2022-36316 +# - CVE-2022-36317 +# - CVE-2022-36318 +# - CVE-2022-36319 +# - CVE-2022-36320 +# 102.0-r0: +# - CVE-2022-2200 +# - CVE-2022-34468 +# - CVE-2022-34469 +# - CVE-2022-34470 +# - CVE-2022-34471 +# - CVE-2022-34472 +# - CVE-2022-34473 +# - CVE-2022-34474 +# - CVE-2022-34475 +# - CVE-2022-34476 +# - CVE-2022-34477 +# - CVE-2022-34478 +# - CVE-2022-34479 +# - CVE-2022-34480 +# - CVE-2022-34481 +# - CVE-2022-34482 +# - CVE-2022-34483 +# - CVE-2022-34484 +# - CVE-2022-34485 +# 101.0-r0: +# - CVE-2022-1919 +# - CVE-2022-31736 +# - CVE-2022-31737 +# - CVE-2022-31738 +# - CVE-2022-31739 +# - CVE-2022-31740 +# - CVE-2022-31741 +# - CVE-2022-31742 +# - CVE-2022-31743 +# - CVE-2022-31744 +# - CVE-2022-31745 +# - CVE-2022-31747 +# - CVE-2022-31748 +# 100.0.2-r0: +# - CVE-2022-1529 +# - CVE-2022-1802 +# 100.0-r0: +# - CVE-2022-29909 +# - CVE-2022-29910 +# - CVE-2022-29911 +# - CVE-2022-29912 +# - CVE-2022-29914 +# - CVE-2022-29915 +# - CVE-2022-29916 +# - CVE-2022-29917 +# - CVE-2022-29918 +# 99.0-r0: +# - CVE-2022-1097 +# - CVE-2022-24713 +# - CVE-2022-28281 +# - CVE-2022-28282 +# - CVE-2022-28283 +# - CVE-2022-28284 +# - CVE-2022-28285 +# - CVE-2022-28286 +# - CVE-2022-28287 +# - CVE-2022-28288 +# - CVE-2022-28289 +# 98.0-r0: +# - CVE-2022-0843 +# - CVE-2022-26381 +# - CVE-2022-26382 +# - CVE-2022-26383 +# - CVE-2022-26384 +# - CVE-2022-26385 +# - CVE-2022-26387 +# 97.0.2-r0: +# - CVE-2022-26485 +# - CVE-2022-26486 +# 97.0-r0: +# - CVE-2021-4140 +# - CVE-2022-0511 +# - CVE-2022-22736 +# - CVE-2022-22737 +# - CVE-2022-22738 +# - CVE-2022-22739 +# - CVE-2022-22740 +# - CVE-2022-22741 +# - CVE-2022-22742 +# - CVE-2022-22743 +# - CVE-2022-22744 +# - CVE-2022-22745 +# - CVE-2022-22746 +# - CVE-2022-22747 +# - CVE-2022-22748 +# - CVE-2022-22749 +# - CVE-2022-22750 +# - CVE-2022-22751 +# - CVE-2022-22752 +# - CVE-2022-22753 +# - CVE-2022-22754 +# - CVE-2022-22755 +# - CVE-2022-22756 +# - CVE-2022-22757 +# - CVE-2022-22758 +# - CVE-2022-22759 +# - CVE-2022-22760 +# - CVE-2022-22761 +# - CVE-2022-22762 +# - CVE-2022-22764 +# 95.0-r0: +# - CVE-2021-43536 +# - CVE-2021-43537 +# - CVE-2021-43538 +# - CVE-2021-43539 +# - CVE-2021-43540 +# - CVE-2021-43541 +# - CVE-2021-43542 +# - CVE-2021-43543 +# - CVE-2021-43544 +# - CVE-2021-43545 +# - CVE-2021-43546 +# 94.0-r0: +# - CVE-2021-38503 +# - CVE-2021-38504 +# - CVE-2021-38505 +# - CVE-2021-38506 +# - CVE-2021-38507 +# - CVE-2021-38508 +# - CVE-2021-38509 +# - CVE-2021-38510 +# 93.0-r0: +# - CVE-2021-32810 +# - CVE-2021-38496 +# - CVE-2021-38497 +# - CVE-2021-38498 +# - CVE-2021-38499 +# - CVE-2021-38500 +# - CVE-2021-38501 +# 92.0.1-r0: +# - CVE-2021-29980 +# - CVE-2021-29981 +# - CVE-2021-29982 +# - CVE-2021-29983 +# - CVE-2021-29984 +# - CVE-2021-29985 +# - CVE-2021-29986 +# - CVE-2021-29987 +# - CVE-2021-29988 +# - CVE-2021-29989 +# - CVE-2021-29990 +# - CVE-2021-29991 +# - CVE-2021-29993 +# - CVE-2021-38491 +# - CVE-2021-38492 +# - CVE-2021-38493 +# - CVE-2021-38494 +# 90.0-r0: +# - CVE-2021-29970 +# - CVE-2021-29972 +# - CVE-2021-29974 +# - CVE-2021-29975 +# - CVE-2021-29976 +# - CVE-2021-29977 +# - CVE-2021-30547 +# 89.0-r0: +# - CVE-2021-29959 +# - CVE-2021-29960 +# - CVE-2021-29961 +# - CVE-2021-29962 +# - CVE-2021-29963 +# - CVE-2021-29965 +# - CVE-2021-29966 +# - CVE-2021-29967 +# 88.0.1-r0: +# - CVE-2021-29952 +# 88.0-r0: +# - CVE-2021-23994 +# - CVE-2021-23995 +# - CVE-2021-23996 +# - CVE-2021-23997 +# - CVE-2021-23998 +# - CVE-2021-23999 +# - CVE-2021-24000 +# - CVE-2021-24001 +# - CVE-2021-24002 +# - CVE-2021-29944 +# - CVE-2021-29945 +# - CVE-2021-29946 +# - CVE-2021-29947 +# 87.0-r0: +# - CVE-2021-23968 +# - CVE-2021-23969 +# - CVE-2021-23970 +# - CVE-2021-23971 +# - CVE-2021-23972 +# - CVE-2021-23973 +# - CVE-2021-23974 +# - CVE-2021-23975 +# - CVE-2021-23976 +# - CVE-2021-23977 +# - CVE-2021-23978 +# - CVE-2021-23979 +# - CVE-2021-23981 +# - CVE-2021-23982 +# - CVE-2021-23983 +# - CVE-2021-23984 +# - CVE-2021-23985 +# - CVE-2021-23986 +# - CVE-2021-23987 +# - CVE-2021-23988 +# 85.0-r0: +# - CVE-2021-23954 +# - CVE-2021-23955 +# - CVE-2021-23956 +# - CVE-2021-23957 +# - CVE-2021-23958 +# - CVE-2021-23959 +# - CVE-2021-23960 +# - CVE-2021-23961 +# - CVE-2021-23962 +# - CVE-2021-23963 +# - CVE-2021-23964 +# - CVE-2021-23965 # 84.0.2-r0: # - CVE-2020-16044 # 84.0.1-r0: @@ -262,160 +517,261 @@ prepare() { default_prepare cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/ + export CFLAGS="${CFLAGS/-fstack-clash-protection/} -g0 -O2" + export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/} -g0 -O2 -Wno-deprecated-builtins -Wno-deprecated-declarations" + _clear_vendor_checksums audio_thread_priority - _clear_vendor_checksums target-lexicon-0.9.0 + + base64 -d "$srcdir"/mozilla-location.keys > "$builddir"/mozilla-api-key + + cat > base-mozconfig <<-EOF + # disable unwanted things + ac_add_options --disable-bootstrap + ac_add_options --disable-cargo-incremental + ac_add_options --disable-debug + ac_add_options --disable-debug-symbols + ac_add_options --disable-install-strip + ac_add_options --disable-jemalloc + ac_add_options --disable-strip + ac_add_options --disable-tests + ac_add_options --disable-updater + + # features + ac_add_options --enable-alsa + ac_add_options --enable-dbus + ac_add_options --enable-default-toolkit=cairo-gtk3-wayland + ac_add_options --enable-ffmpeg + ac_add_options --enable-hardening + ac_add_options --enable-linker=lld + ac_add_options --enable-necko-wifi + ac_add_options --enable-official-branding + ac_add_options --enable-optimize="$CFLAGS" + ac_add_options --enable-pulseaudio + ac_add_options --enable-release + ac_add_options --enable-update-channel=release + + # system libs + ac_add_options --enable-system-pixman + ac_add_options --with-system-ffi + ac_add_options --with-system-icu + ac_add_options --with-system-jpeg + ac_add_options --with-system-libevent + ac_add_options --with-system-libvpx + ac_add_options --with-system-nspr + ac_add_options --with-system-nss + ac_add_options --with-system-png + ac_add_options --with-system-webp + ac_add_options --with-system-zlib + + # misc + ac_add_options --allow-addon-sideload + ac_add_options --prefix=/usr + ac_add_options --with-distribution-id=org.alpinelinux + ac_add_options --with-libclang-path=/usr/lib + ac_add_options --with-unsigned-addon-scopes=app,system + ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot + ac_add_options --host=$CHOST + ac_add_options --target=$CTARGET + + # objdir + mk_add_options MOZ_OBJDIR="$builddir/obj" + + mk_add_options RUSTFLAGS="$RUSTFLAGS" + + # keys + # these are for alpine linux use only + ac_add_options --with-mozilla-api-keyfile="$builddir/mozilla-api-key" + EOF + + case "$CARCH" in + x86|armv7) + # x86: https://github.com/rust-lang/libc/issues/3476 + # armv7: error: unknown type name 'fpregset_t' + echo "ac_add_options --disable-crashreporter" >> base-mozconfig + ;; + esac } build() { - mkdir -p "$builddir"/objdir - cd "$builddir"/objdir + export MOZ_BUILD_DATE="$(date ${SOURCE_DATE_EPOCH:+ -d@${SOURCE_DATE_EPOCH}} "+%Y%m%d%H%M%S")" + + # for lto + ulimit -n 4096 + + # can't be set here and fail + unset RUSTFLAGS + + local thinlto_jobs=${JOBS:-1} + local link_threads=${JOBS:-1} + + case "$CARCH" in + # on this platform, lld seems to not utilise >1 threads for thinlto for some reason. + # at the same time, having more than 8 also crashes lld for firefox buildsystems (why?). + aarch64) + if [ $thinlto_jobs -gt 8 ]; then + thinlto_jobs=8 + fi + ;; + esac + + case "$CARCH" in + arm*|x86) + link_threads=1 + ;; + esac + + export LDFLAGS="$LDFLAGS -Wl,--thinlto-jobs=$thinlto_jobs -Wl,--threads=$link_threads" export SHELL=/bin/sh export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 export USE_SHORT_LIBNAME=1 - export MACH_USE_SYSTEM_PYTHON=1 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system + export MOZ_APP_REMOTINGNAME=firefox + export MOZBUILD_STATE_PATH="$srcdir"/mozbuild + # disable desktop notifications + export MOZ_NOSPAM=1 # Find our triplet JSON export RUST_TARGET="$CTARGET" + # has to be same version or older than lld + export CC="clang-$_llvmver" + export CXX="clang++-$_llvmver" + # set rpath so linker finds the libs export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir" - case "$CARCH" in - arm*|x86*) - # disable-elf-hack: exists only on arm, x86, x86_64 - _arch_config="--disable-elf-hack" - ;; - esac + # let firefox do this itself. + unset CARGO_PROFILE_RELEASE_OPT_LEVEL + unset CARGO_PROFILE_RELEASE_LTO - # FF doesn't have SIMD available on these arches. case "$CARCH" in - armhf|armv7) - _rust_simd="--disable-rust-simd" - _low_mem_flags="--disable-debug-symbols --disable-debug" - export RUSTFLAGS="$RUSTFLAGS -C debuginfo=0" - ;; - x86) - _low_mem_flags="--disable-debug-symbols --disable-debug" - export RUSTFLAGS="$RUSTFLAGS -C debuginfo=0" - ;; - *) _rust_simd="--enable-rust-simd" ;; - esac + aarch64|x86_64|ppc64le) + msg "building instrumented firefox" + cat > .mozconfig base-mozconfig - <<-EOF + ac_add_options --enable-profile-generate=cross + EOF + ./mach build + ./mach package - ../mach configure \ - --prefix=/usr \ - $_arch_config \ - $_low_mem_flags \ - $_rust_simd \ - \ - --disable-crashreporter \ - --disable-gold \ - --disable-install-strip \ - --disable-jemalloc \ - --disable-profiling \ - --disable-strip \ - --disable-tests \ - --disable-updater \ - \ - --enable-alsa \ - --enable-cdp \ - --enable-dbus \ - --enable-default-toolkit=cairo-gtk3-wayland \ - --enable-ffmpeg \ - --enable-hardening \ - --enable-necko-wifi \ - --enable-official-branding \ - --enable-optimize="$CFLAGS -O2" \ - --enable-pulseaudio \ - --enable-smoosh \ - --enable-system-ffi \ - --enable-system-pixman \ - \ - --with-system-ffi \ - --with-system-icu \ - --with-system-jpeg \ - --with-system-libevent \ - --with-system-libvpx \ - --with-system-nspr \ - --with-system-nss \ - --with-system-pixman \ - --with-system-png \ - --with-system-webp \ - --with-system-zlib \ - --with-clang-path=/usr/bin/clang \ - --with-libclang-path=/usr/lib - ../mach build -} + msg "profiling firefox" -package() { - cd "$builddir"/objdir + LLVM_PROFDATA=llvm-profdata \ + JARLOG_FILE="$PWD"/jarlog \ + GDK_BACKEND=x11 \ + LD_LIBRARY_PATH="$PWD"/obj/dist/firefox \ + XDG_RUNTIME_DIR="$(mktemp -d "$builddir/pgo-runtime-XXXXXX")" \ + MOZ_ENABLE_WAYLAND=0 \ + xvfb-run -a -s "-screen 0 1920x1080x24 -nolisten local" \ + dbus-run-session -- \ + ./mach python build/pgo/profileserver.py + + test -s merged.profdata + test -s jarlog - DESTDIR="$pkgdir" MOZ_MAKE_FLAGS="$MAKEOPTS" ../mach install + ./mach clobber - install -m755 -d "$pkgdir"/usr/share/applications - install -m755 -d "$pkgdir"/usr/share/pixmaps + msg "building optimised firefox" + cat > .mozconfig base-mozconfig - <<-EOF + ac_add_options --enable-lto=cross + ac_add_options --enable-profile-use=cross + ac_add_options --with-pgo-profile-path="$PWD"/merged.profdata + ac_add_options --with-pgo-jarlog="$PWD"/jarlog + EOF + ./mach build + ;; + armv7|x86|riscv64) + # others: no pgo here as it uses too much memory/broken on riscv + msg "building regular firefox" + cat > .mozconfig base-mozconfig - <<-EOF + ac_add_options --disable-profiling + EOF + ./mach build + ;; + *) + msg "implement build for $CARCH" + exit 1 + esac +} + +package() { + DESTDIR="$pkgdir" ./mach install local _png - for _png in ../browser/branding/official/default*.png; do + for _png in ./browser/branding/official/default*.png; do local i=${_png%.png} i=${i##*/default} - install -D -m644 "$_png" "$pkgdir"/usr/share/icons/hicolor/"$i"x"$i"/apps/firefox.png + install -d "$pkgdir"/usr/share/icons/hicolor/"$i"x"$i"/apps/ + ln -s "$_mozappdir"/browser/chrome/icons/default/default"$i".png \ + "$pkgdir"/usr/share/icons/hicolor/"$i"x"$i"/apps/firefox.png done - install -m644 "$builddir"/browser/branding/official/default48.png \ - "$pkgdir"/usr/share/pixmaps/firefox.png - install -m644 "$srcdir"/firefox.desktop "$pkgdir"/usr/share/applications/org.mozilla.firefox.desktop - install -m644 "$srcdir"/firefox-safe.desktop "$pkgdir"/usr/share/applications/org.mozilla.firefox-safe.desktop - - # Add StartupWMClass=firefox on the .desktop files so Desktop Environments - # correctly associate the window with their icon, the correct fix is to have - # firefox sets its own AppID but this will work for the meantime - # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1607399 - echo "StartupWMClass=firefox" >> "$pkgdir"/usr/share/applications/org.mozilla.firefox.desktop - echo "StartupWMClass=firefox" >> "$pkgdir"/usr/share/applications/org.mozilla.firefox-safe.desktop + case "$CARCH" in + x86|arm*) ;; + *) patchelf --add-needed libscudo.so "$pkgdir"/usr/lib/firefox/firefox ;; + esac - # install our vendor prefs - install -d "$pkgdir"/$_mozappdir/browser/defaults/preferences + install -Dm644 browser/branding/official/content/about-logo.png \ + "$pkgdir"/usr/share/icons/hicolor/192x192/apps/$pkgname.png + install -Dm644 browser/branding/official/content/about-logo@2x.png \ + "$pkgdir"/usr/share/icons/hicolor/384x384/apps/$pkgname.png + install -Dm644 browser/branding/official/content/about-logo.svg \ + "$pkgdir"/usr/share/icons/hicolor/scalable/apps/$pkgname.svg - cat >> "$pkgdir"/$_mozappdir/browser/defaults/preferences/firefox-branding.js <<- EOF - // Use LANG environment variable to choose locale - pref("intl.locale.requested", ""); + install -Dm644 "$srcdir"/firefox.desktop \ + "$pkgdir"/usr/share/applications/firefox.desktop - // Disable default browser checking. - pref("browser.shell.checkDefaultBrowser", false); + install -Dm644 "$srcdir"/distribution.ini \ + "$pkgdir"/$_mozappdir/distribution/distribution.ini - // Don't disable our bundled extensions in the application directory - pref("extensions.autoDisableScopes", 11); - pref("extensions.shownSelectionUI", true); - EOF + # install our vendor prefs + install -Dm644 "$srcdir"/vendor-prefs.js \ + "$pkgdir"/$_mozappdir/browser/defaults/preferences/vendor.js # Generate appdata file - mkdir "$pkgdir"/usr/share/metainfo/ + mkdir -p "$pkgdir"/usr/share/metainfo/ export VERSION="$pkgver" export DATE="$_releasedate" - cat "$builddir"/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.appdata.xml.in | envsubst > "$pkgdir"/usr/share/metainfo/org.mozilla.firefox.appdata.xml + envsubst < "$builddir"/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.appdata.xml.in > "$pkgdir"/usr/share/metainfo/org.mozilla.firefox.appdata.xml + + # Replace duplicate binary with wrapper + # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 + install -Dm755 /dev/stdin "$pkgdir"/usr/bin/firefox <<- EOF + #!/bin/sh + exec $_mozappdir/firefox "\$@" + EOF + rm "$pkgdir"/$_mozappdir/firefox-bin + ln -sfv /usr/bin/firefox "$pkgdir"/$_mozappdir/firefox-bin } -npapi() { - pkgdesc="$pkgdesc: GTK+ 2 support for NPAPI plugins" - install_if="adobe-flashplayer" - amove usr/lib/firefox/gtk2 +intl() { + pkgdesc="$pkgname - International ICU data" + depends="icu-data-full" + install_if="$pkgname=$pkgver-r$pkgrel icu" + mkdir -p "$subpkgdir" } -sha512sums="3fd4c9a5ec2409f23507b38c809e71a35aa674779dc5a7a2e3ff82841e0b65ead29d38ac4d5b17f7108479ed7338b3d2b40cbcfa9c51e01696634166d92edf99 firefox-84.0.2.source.tar.xz -0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h -2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71 fix-fortify-system-wrappers.patch -4510fb92653d0fdcfbc6d30e18087c0d22d4acd5eb53be7d0a333abe087a9e0bf9e58e56bafe96e1e1b28ebd1fd33b8926dbb70c221007e335b33d1468755c66 fix-tools.patch -a4a3e062661bda64d502d426c480ac9645345860118de9df9ffe6e0597738c70c11e5cdef2d4fd12c5e2ee30a09310159230524655a419a4f7e4eeeb0f3c06b0 mallinfo.patch -454ea3263cabce099accbdc47aaf83be26a19f8b5a4568c01a7ef0384601cf8315efd86cd917f9c8bf419c2c845db89a905f3ff9a8eb0c8e41042e93aa96a85c disable-moz-stackwalk.patch +sha512sums=" +6f2f336de8b0ec9cb19ba20c909407b7b88c0319ee3b2f1f3429133516b0c45b4c7846f287985a0cdb9f34acc7d5378ed14fb48e26bef113c8ac360501a30c4d firefox-125.0.1.tar.xz +eb49b791280a8d765e6b056816ad6d7ec20a3b13723ebe648a8ecd2c086a5bc83277a3b4c127a470e7bb7105cfa4ed7611c19ac683545140190cafaa880ad515 disable-moz-stackwalk.patch +19eea840aa9c1c21e7bd1f832ec078989fe6f08fca40baa271be7e74f1cffeb5ab8d3218a93e664b8d90a41506dede524e2a5174cd47580866109bc6711ea969 fix-fortify-system-wrappers.patch cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch -47c2c2428c3598a42f6241705179642b3378a86ace39c8c3cbef4954e6d220b42e6c76f3d71731d65f67ce2c8597259122ac44bbd45e20993bb8bc70c0c8a010 fix-webrtc-glibcisms.patch -60845dcb034b2c4459c30f7d5f25c8176cf42df794e2cc0e86c3e2abb6541c24b962f3a16ca70a288d4d6f377b68d00b2904b22463108559612053d835d9bff1 fd6847c9416f9eebde636e21d794d25d1be8791d.patch -4e584621145cf8add069c6dac18e805b3274a1ee402d84e924df2341f7d3c5be261a93ef51283bacbd606f47fbdc628c4323ecc31efc5b403b8d224b18dc278f allow-custom-rust-vendor.patch -f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop -5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop -f963fcdba7307a0b1712dfb95ceba4ab49f449f60e550bb69d15d50272e6df9add90862251ee561e4ea5fd171a2703552ffa7aade92996f5f0b3e577f1544a6d disable-neon-in-aom.patch +305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch +b7a2beef126569d71242198f2503bb6a32acd1ea89080ef7bed6ba0f0d10819282c2c346c6f729d81cd90e328e607b88acaac8785ed057cc8cb562e315890334 force-can-use-pack-relative-relocs.patch +afabea91b328c5a68eaa20f9099ac7b2d0e7f2423e816b05ed168bdd326a5684fa02de08bf05c6033e9b888f02775d1b0443a00329b7a632ee399122a391c13a icu74.patch +5fa9382c692e4bd6a2634308f24a6526fd12a60a2563d2090056d43a60505df3ec9881bbf54562e69394467529b3b0dc45955afca46ed329af03cea074fff070 lfs64.patch +c0437a6753f3f350968fa12d250efdfe1bea77baf0e4c06b072b5cc9e78c774dbf4506bc536337030d349fb3ba4460097b75b0c7c5b8fb2d39d8b0a392948936 no-ccache-stats.patch +2d8dff86212d6d2a904cbb5a5a1d6c17b89adc929fc6a3f4c6cb669f5e83ecddff5a799225319ba445a187b04d111251af75dd3ce8a039164bc14d2a432a2a04 ppc-musttail.patch +4de65266f5fc1c5bf1d7cd00a0e4728a1ec96b7680b5ea72d6e9ed463b7a0bba11792b3411d25ef1e26f62408eb7f8b06dc62209dbb0454c779d8858d8d59725 python-deps.patch +1c6918dd6655d3a1251bfd4af2e1c561cbb00d540a883b4c1ebf7f5de530d754d9ac07b4b5f56cdab6c511d25c8910ec94043f5733e97501a67abffe1bafaeb1 rust-lto-thin.patch +b12dbff6513ac8c231d91c257a9accecc034d9ea9c31d99ca0454334ccf80fe7b50d6a356182dc46a9f25064366ea9a177f463cb2544b1cf5368ee6bd71bc095 riscv64-no-lto.patch 2518f2fc75b5db30058e0735f47d60fdf1e7adfaeee4b33fb2afb1bd9a616ce943fd88f4404d0802d4083703f4acf1d5ad42377218d025bc768807fbaf7e1609 sandbox-fork.patch -db26757b2ebf9f567962e32294b4ae48b3a5d0378a7589dfe650fe3a179ff58befbab5082981c68e1c25fb9e56b2db1e4e510d4bca17c3e3aedbf9a2f21806eb sandbox-sched_setscheduler.patch b7d0a6126bdf6c0569f80aabf5b37ed2c7a35712eb8a0404a2d85381552f5555d4f97d213ea26cec6a45dc2785f22439376ed5f8e78b4fd664ef0223307b333e sandbox-largefile.patch -b1cb2db3122634f66d2bae7066e76f2dcd455c464e021db4de3b0a08314df95cb667846081682db549dd2af8a00831cabe44a2420c66cdfb5e3b5fa7e6bd21d3 avoid-redefinition.patch" +f8c3555ef6207933cbffbf4fc101a9b4c0d2990c0063162f0f0bde70ef0b46f86bfac42e7110695183424a87948de593f3927b2d8509ede3e4fc7bd8a1fad1ce sandbox-sched_setscheduler.patch +67bc0be3da973e6859256bf9be4df7100837430e6076fc0bd623f504c35e02e6c191e9c5a3a1d202e5ad4d89f874f254a09e164e39c7bfd97bbc8d4c8d0632a5 sqlite-ppc.patch +0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h +333b9df0c8a7693601245dac13522c9e90632f490b2fe1b852bf85fbd033c111a82fec3cfc302cfdea62d591c51042ae69c2c33a5668afacca11ea1f215188bc firefox.desktop +9869ef092609af4caed6aa27f3de6ac49b91ef993ccbfd8a2080465def442d3b02745fbe3c71d362f07c3075d46f388a023c0ad8ebb5f6ffd37e601d997b74f7 distribution.ini +382510375b1a2fa79be0ab79e3391a021ae2c022429ffbaa7e7a69166f99bb56d01e59a1b10688592a29238f21c9d6977672bd77f9fae439b66bdfe0c55ddb15 mozilla-location.keys +0423804a3c7c075de128b624110c58994ec8e10819fc09b74fdb4cd5aa6c0365cdafc77770af42f4ce856ad2e8e325a918344c57fb015a680b7e54555b94c6ed vendor-prefs.js +" diff --git a/community/firefox/allow-custom-rust-vendor.patch b/community/firefox/allow-custom-rust-vendor.patch deleted file mode 100644 index 218650f4111..00000000000 --- a/community/firefox/allow-custom-rust-vendor.patch +++ /dev/null @@ -1,564 +0,0 @@ -From a5a3db2d32ff1d359aef5ec586b91164570c1685 Mon Sep 17 00:00:00 2001 -From: Dan Gohman <sunfish@mozilla.com> -Date: Tue, 5 Nov 2019 09:56:15 -0800 -Subject: [PATCH 1/7] Support custom vendor strings. - -Add support for custom vendors, as in "x86_64-gentoo-linux-musl". - -Fixes #33. ---- - src/targets.rs | 108 ++++++++++++++++++++++++++++++++++++++++++++++++- - src/triple.rs | 4 -- - 2 files changed, 106 insertions(+), 6 deletions(-) - -diff --git a/src/targets.rs b/src/targets.rs -index 6ae570e..90b2736 100644 ---- a/third_party/rust/target-lexicon-0.9.0/src/targets.rs -+++ b/third_party/rust/target-lexicon-0.9.0/src/targets.rs -@@ -1,6 +1,8 @@ - // This file defines all the identifier enums and target-aware logic. - - use crate::triple::{Endianness, PointerWidth, Triple}; -+use alloc::boxed::Box; -+use alloc::string::String; - use core::fmt; - use core::str::FromStr; - -@@ -292,7 +294,7 @@ impl Aarch64Architecture { - - /// The "vendor" field, which in practice is little more than an arbitrary - /// modifier. --#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] -+#[derive(Clone, Debug, PartialEq, Eq, Hash)] - #[allow(missing_docs)] - pub enum Vendor { - Unknown, -@@ -306,6 +308,15 @@ pub enum Vendor { - Sun, - Uwp, - Wrs, -+ -+ /// A custom vendor. "Custom" in this context means that the vendor is -+ /// not specifically recognized by upstream Autotools, LLVM, Rust, or other -+ /// relevant authorities on triple naming. It's useful for people building -+ /// and using locally patched toolchains. -+ /// -+ /// Outside of such patched environments, users of `target-lexicon` should -+ /// treat `Custom` the same as `Unknown` and ignore the string. -+ Custom(Box<String>), - } - - /// The "operating system" field, which sometimes implies an environment, and -@@ -717,6 +728,7 @@ impl fmt::Display for Vendor { - Vendor::Sun => "sun", - Vendor::Uwp => "uwp", - Vendor::Wrs => "wrs", -+ Vendor::Custom(ref name) => name, - }; - f.write_str(s) - } -@@ -738,7 +750,46 @@ impl FromStr for Vendor { - "sun" => Vendor::Sun, - "uwp" => Vendor::Uwp, - "wrs" => Vendor::Wrs, -- _ => return Err(()), -+ custom => { -+ use alloc::borrow::ToOwned; -+ -+ // A custom vendor. Since triple syntax is so loosely defined, -+ // be as conservative as we can to avoid potential ambiguities. -+ // We err on the side of being too strict here, as we can -+ // always relax it if needed. -+ -+ // Don't allow empty string names. -+ if custom.is_empty() { -+ return Err(()); -+ } -+ -+ // Don't allow any other recognized name as a custom vendor, -+ // since vendors can be omitted in some contexts. -+ if Architecture::from_str(custom).is_ok() -+ || OperatingSystem::from_str(custom).is_ok() -+ || Environment::from_str(custom).is_ok() -+ || BinaryFormat::from_str(custom).is_ok() -+ { -+ return Err(()); -+ } -+ -+ // Require the first character to be an ascii lowercase. -+ if !custom.chars().nth(0).unwrap().is_ascii_lowercase() { -+ return Err(()); -+ } -+ -+ // Restrict the set of characters permitted in a custom vendor. -+ if custom -+ .find(|c: char| { -+ !(c.is_ascii_lowercase() || c.is_ascii_digit() || c == '_' || c == '.') -+ }) -+ .is_some() -+ { -+ return Err(()); -+ } -+ -+ Vendor::Custom(Box::new(custom.to_owned())) -+ } - }) - } - } -@@ -1120,4 +1171,57 @@ mod tests { - assert_eq!(t.environment, Environment::Eabihf); - assert_eq!(t.binary_format, BinaryFormat::Elf); - } -+ -+ #[test] -+ fn custom_vendors() { -+ assert!(Triple::from_str("x86_64--linux").is_err()); -+ assert!(Triple::from_str("x86_64-42-linux").is_err()); -+ assert!(Triple::from_str("x86_64-__customvendor__-linux").is_err()); -+ assert!(Triple::from_str("x86_64-^-linux").is_err()); -+ assert!(Triple::from_str("x86_64- -linux").is_err()); -+ assert!(Triple::from_str("x86_64-CustomVendor-linux").is_err()); -+ assert!(Triple::from_str("x86_64-linux-linux").is_err()); -+ assert!(Triple::from_str("x86_64-x86_64-linux").is_err()); -+ assert!(Triple::from_str("x86_64-elf-linux").is_err()); -+ assert!(Triple::from_str("x86_64-gnu-linux").is_err()); -+ assert!(Triple::from_str("x86_64-linux-customvendor").is_err()); -+ assert!(Triple::from_str("customvendor").is_err()); -+ assert!(Triple::from_str("customvendor-x86_64").is_err()); -+ assert!(Triple::from_str("x86_64-").is_err()); -+ assert!(Triple::from_str("x86_64--").is_err()); -+ -+ let t = Triple::from_str("x86_64-customvendor-linux") -+ .expect("can't parse target with custom vendor"); -+ assert_eq!(t.architecture, Architecture::X86_64); -+ assert_eq!( -+ t.vendor, -+ Vendor::Custom(Box::new(String::from_str("customvendor").unwrap())) -+ ); -+ assert_eq!(t.operating_system, OperatingSystem::Linux); -+ assert_eq!(t.environment, Environment::Unknown); -+ assert_eq!(t.binary_format, BinaryFormat::Elf); -+ assert_eq!(t.to_string(), "x86_64-customvendor-linux"); -+ -+ let t = Triple::from_str("x86_64-customvendor") -+ .expect("can't parse target with custom vendor"); -+ assert_eq!(t.architecture, Architecture::X86_64); -+ assert_eq!( -+ t.vendor, -+ Vendor::Custom(Box::new(String::from_str("customvendor").unwrap())) -+ ); -+ assert_eq!(t.operating_system, OperatingSystem::Unknown); -+ assert_eq!(t.environment, Environment::Unknown); -+ assert_eq!(t.binary_format, BinaryFormat::Unknown); -+ -+ assert_eq!( -+ Triple::from_str("unknown-foo"), -+ Ok(Triple { -+ architecture: Architecture::Unknown, -+ vendor: Vendor::Custom(Box::new(String::from_str("foo").unwrap())), -+ operating_system: OperatingSystem::Unknown, -+ environment: Environment::Unknown, -+ binary_format: BinaryFormat::Unknown, -+ }) -+ ); -+ } - } -diff --git a/src/triple.rs b/src/triple.rs -index 36dcd9a..1abda26 100644 ---- a/third_party/rust/target-lexicon.0.9.0/src/triple.rs -+++ b/third_party/rust/target-lexicon-0.9.0/src/triple.rs -@@ -322,10 +322,6 @@ mod tests { - Triple::from_str("foo"), - Err(ParseError::UnrecognizedArchitecture("foo".to_owned())) - ); -- assert_eq!( -- Triple::from_str("unknown-foo"), -- Err(ParseError::UnrecognizedVendor("foo".to_owned())) -- ); - assert_eq!( - Triple::from_str("unknown-unknown-foo"), - Err(ParseError::UnrecognizedOperatingSystem("foo".to_owned())) - -From 6f90d7274dce4e7f9bb120f6b36cf26881bde9a7 Mon Sep 17 00:00:00 2001 -From: Dan Gohman <sunfish@mozilla.com> -Date: Tue, 5 Nov 2019 10:33:56 -0800 -Subject: [PATCH 2/7] Add more tests. - ---- - src/targets.rs | 30 ++++++++++++++++++++++++++++-- - 1 file changed, 28 insertions(+), 2 deletions(-) - -diff --git a/src/targets.rs b/src/targets.rs -index 90b2736..7d1f069 100644 ---- a/third_party/rust/target-lexicon-0.9.0/src/targets.rs -+++ b/third_party/rust/target-lexicon-0.9.0/src/targets.rs -@@ -1174,6 +1174,7 @@ mod tests { - - #[test] - fn custom_vendors() { -+ // Test various invalid cases. - assert!(Triple::from_str("x86_64--linux").is_err()); - assert!(Triple::from_str("x86_64-42-linux").is_err()); - assert!(Triple::from_str("x86_64-__customvendor__-linux").is_err()); -@@ -1190,6 +1191,31 @@ mod tests { - assert!(Triple::from_str("x86_64-").is_err()); - assert!(Triple::from_str("x86_64--").is_err()); - -+ // Test various Unicode things. -+ assert!( -+ Triple::from_str("x86_64-𝓬𝓾𝓼𝓽𝓸𝓶𝓿𝓮𝓷𝓭𝓸𝓻-linux").is_err(), -+ "unicode font hazard" -+ ); -+ assert!( -+ Triple::from_str("x86_64-ćúśtőḿvéńdőŕ-linux").is_err(), -+ "diacritical mark stripping hazard" -+ ); -+ assert!( -+ Triple::from_str("x86_64-customvendοr-linux").is_err(), -+ "homoglyph hazard" -+ ); -+ assert!(Triple::from_str("x86_64-customvendor-linux").is_ok()); -+ assert!( -+ Triple::from_str("x86_64-ffi-linux").is_err(), -+ "normalization hazard" -+ ); -+ assert!(Triple::from_str("x86_64-ffi-linux").is_ok()); -+ assert!( -+ Triple::from_str("x86_64-customvendor-linux").is_err(), -+ "zero-width character hazard" -+ ); -+ -+ // Test some valid cases. - let t = Triple::from_str("x86_64-customvendor-linux") - .expect("can't parse target with custom vendor"); - assert_eq!(t.architecture, Architecture::X86_64); -@@ -1202,8 +1228,8 @@ mod tests { - assert_eq!(t.binary_format, BinaryFormat::Elf); - assert_eq!(t.to_string(), "x86_64-customvendor-linux"); - -- let t = Triple::from_str("x86_64-customvendor") -- .expect("can't parse target with custom vendor"); -+ let t = -+ Triple::from_str("x86_64-customvendor").expect("can't parse target with custom vendor"); - assert_eq!(t.architecture, Architecture::X86_64); - assert_eq!( - t.vendor, - -From c0e318b3c1be2d1965579f07dd563fb9cc0c4eb1 Mon Sep 17 00:00:00 2001 -From: Dan Gohman <sunfish@mozilla.com> -Date: Tue, 5 Nov 2019 12:56:31 -0800 -Subject: [PATCH 3/7] Use `.chars().any(...)` instead of - `.find(...).is_some()`. - ---- - src/targets.rs | 9 +++------ - 1 file changed, 3 insertions(+), 6 deletions(-) - -diff --git a/src/targets.rs b/src/targets.rs -index 7d1f069..1078dd3 100644 ---- a/third_party/rust/target-lexicon-0.9.0/src/targets.rs -+++ b/third_party/rust/target-lexicon/src-0.9.0/targets.rs -@@ -779,12 +779,9 @@ impl FromStr for Vendor { - } - - // Restrict the set of characters permitted in a custom vendor. -- if custom -- .find(|c: char| { -- !(c.is_ascii_lowercase() || c.is_ascii_digit() || c == '_' || c == '.') -- }) -- .is_some() -- { -+ if custom.chars().any(|c: char| { -+ !(c.is_ascii_lowercase() || c.is_ascii_digit() || c == '_' || c == '.') -+ }) { - return Err(()); - } - - -From f319950528654c772193d9eb3bf40bc8df35fcae Mon Sep 17 00:00:00 2001 -From: Dan Gohman <sunfish@mozilla.com> -Date: Thu, 7 Nov 2019 15:15:48 -0800 -Subject: [PATCH 4/7] Fix build.rs to generate the correct code to build - Vendors. - ---- - build.rs | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/build.rs b/build.rs -index a0ba3b7..446f9e7 100644 ---- a/third_party/rust/target-lexicon-0.9.0/build.rs -+++ b/third_party/rust/target-lexicon-0.9.0/build.rs -@@ -32,6 +32,7 @@ mod parse_error { - } - } - -+use self::targets::Vendor; - use self::triple::Triple; - - fn main() { -@@ -60,7 +61,7 @@ fn write_host_rs(mut out: File, triple: Triple) -> io::Result<()> { - " architecture: Architecture::{:?},", - triple.architecture - )?; -- writeln!(out, " vendor: Vendor::{:?},", triple.vendor)?; -+ writeln!(out, " vendor: {},", vendor_display(&triple.vendor))?; - writeln!( - out, - " operating_system: OperatingSystem::{:?},", -@@ -90,7 +91,7 @@ fn write_host_rs(mut out: File, triple: Triple) -> io::Result<()> { - writeln!(out, "impl Vendor {{")?; - writeln!(out, " /// Return the vendor for the current host.")?; - writeln!(out, " pub const fn host() -> Self {{")?; -- writeln!(out, " Vendor::{:?}", triple.vendor)?; -+ writeln!(out, " {}", vendor_display(&triple.vendor))?; - writeln!(out, " }}")?; - writeln!(out, "}}")?; - writeln!(out)?; -@@ -160,3 +161,12 @@ fn write_host_rs(mut out: File, triple: Triple) -> io::Result<()> { - - Ok(()) - } -+ -+fn vendor_display(vendor: &Vendor) -> String { -+ match vendor { -+ Vendor::Custom(custom) => { -+ format!("Vendor::Custom(Box::new(String::from_str({:?})))", custom) -+ } -+ known => format!("Vendor::{:?}", known), -+ } -+} - -From e558f6934535be3b8ccc9a99a33e861cb7431dfe Mon Sep 17 00:00:00 2001 -From: Dan Gohman <sunfish@mozilla.com> -Date: Fri, 8 Nov 2019 12:10:34 -0800 -Subject: [PATCH 5/7] Fix custom vendors in `const fn` contexts. - ---- - build.rs | 15 +++++++++++---- - src/lib.rs | 4 ++-- - src/targets.rs | 51 ++++++++++++++++++++++++++++++++++++++++++-------- - 3 files changed, 56 insertions(+), 14 deletions(-) - -diff --git a/build.rs b/build.rs -index 446f9e7..e88206e 100644 ---- a/third_party/rust/target-lexicon-0.9.0/build.rs -+++ b/third_party/rust/target-lexicon-0.9.0/build.rs -@@ -53,6 +53,8 @@ fn write_host_rs(mut out: File, triple: Triple) -> io::Result<()> { - writeln!(out, "use crate::Aarch64Architecture::*;")?; - writeln!(out, "#[allow(unused_imports)]")?; - writeln!(out, "use crate::ArmArchitecture::*;")?; -+ writeln!(out, "#[allow(unused_imports)]")?; -+ writeln!(out, "use crate::CustomVendor;")?; - writeln!(out)?; - writeln!(out, "/// The `Triple` of the current host.")?; - writeln!(out, "pub const HOST: Triple = Triple {{")?; -@@ -139,7 +141,11 @@ fn write_host_rs(mut out: File, triple: Triple) -> io::Result<()> { - " architecture: Architecture::{:?},", - triple.architecture - )?; -- writeln!(out, " vendor: Vendor::{:?},", triple.vendor)?; -+ writeln!( -+ out, -+ " vendor: {},", -+ vendor_display(&triple.vendor) -+ )?; - writeln!( - out, - " operating_system: OperatingSystem::{:?},", -@@ -164,9 +170,10 @@ fn write_host_rs(mut out: File, triple: Triple) -> io::Result<()> { - - fn vendor_display(vendor: &Vendor) -> String { - match vendor { -- Vendor::Custom(custom) => { -- format!("Vendor::Custom(Box::new(String::from_str({:?})))", custom) -- } -+ Vendor::Custom(custom) => format!( -+ "Vendor::Custom(CustomVendor::Static({:?}))", -+ custom.as_str() -+ ), - known => format!("Vendor::{:?}", known), - } - } -diff --git a/src/lib.rs b/src/lib.rs -index 8d6da8d..70f6488 100644 ---- a/third_party/rust/target-lexicon-0.9.0/src/lib.rs -+++ b/third_party/rust/target-lexicon-0.9.0/src/lib.rs -@@ -28,7 +28,7 @@ mod triple; - pub use self::host::HOST; - pub use self::parse_error::ParseError; - pub use self::targets::{ -- Aarch64Architecture, Architecture, ArmArchitecture, BinaryFormat, Environment, OperatingSystem, -- Vendor, -+ Aarch64Architecture, Architecture, ArmArchitecture, BinaryFormat, CustomVendor, Environment, -+ OperatingSystem, Vendor, - }; - pub use self::triple::{CallingConvention, Endianness, PointerWidth, Triple}; -diff --git a/src/targets.rs b/src/targets.rs -index 1078dd3..7152020 100644 ---- a/third_party/rust/target-lexicon-0.9.0/src/targets.rs -+++ b/third_party/rust/target-lexicon-0.9.0/src/targets.rs -@@ -4,6 +4,7 @@ use crate::triple::{Endianness, PointerWidth, Triple}; - use alloc::boxed::Box; - use alloc::string::String; - use core::fmt; -+use core::hash::{Hash, Hasher}; - use core::str::FromStr; - - /// The "architecture" field, which in some cases also specifies a specific -@@ -292,6 +293,39 @@ impl Aarch64Architecture { - } - } - -+/// A string for a `Vendor::Custom` that can either be used in `const` -+/// contexts or hold dynamic strings. -+#[derive(Clone, Debug, Eq)] -+pub enum CustomVendor { -+ /// An owned `String`. This supports the general case. -+ Owned(Box<String>), -+ /// A static `str`, so that `CustomVendor` can be constructed in `const` -+ /// contexts. -+ Static(&'static str), -+} -+ -+impl CustomVendor { -+ /// Extracts a string slice. -+ pub fn as_str(&self) -> &str { -+ match self { -+ CustomVendor::Owned(s) => s, -+ CustomVendor::Static(s) => s, -+ } -+ } -+} -+ -+impl PartialEq for CustomVendor { -+ fn eq(&self, other: &Self) -> bool { -+ self.as_str() == other.as_str() -+ } -+} -+ -+impl Hash for CustomVendor { -+ fn hash<H: Hasher>(&self, state: &mut H) { -+ self.as_str().hash(state) -+ } -+} -+ - /// The "vendor" field, which in practice is little more than an arbitrary - /// modifier. - #[derive(Clone, Debug, PartialEq, Eq, Hash)] -@@ -316,7 +350,7 @@ pub enum Vendor { - /// - /// Outside of such patched environments, users of `target-lexicon` should - /// treat `Custom` the same as `Unknown` and ignore the string. -- Custom(Box<String>), -+ Custom(CustomVendor), - } - - /// The "operating system" field, which sometimes implies an environment, and -@@ -728,7 +762,7 @@ impl fmt::Display for Vendor { - Vendor::Sun => "sun", - Vendor::Uwp => "uwp", - Vendor::Wrs => "wrs", -- Vendor::Custom(ref name) => name, -+ Vendor::Custom(ref name) => name.as_str(), - }; - f.write_str(s) - } -@@ -779,13 +813,14 @@ impl FromStr for Vendor { - } - - // Restrict the set of characters permitted in a custom vendor. -- if custom.chars().any(|c: char| { -+ fn is_prohibited_char(c: char) -> bool { - !(c.is_ascii_lowercase() || c.is_ascii_digit() || c == '_' || c == '.') -- }) { -+ } -+ if custom.chars().any(is_prohibited_char) { - return Err(()); - } - -- Vendor::Custom(Box::new(custom.to_owned())) -+ Vendor::Custom(CustomVendor::Owned(Box::new(custom.to_owned()))) - } - }) - } -@@ -1218,7 +1253,7 @@ mod tests { - assert_eq!(t.architecture, Architecture::X86_64); - assert_eq!( - t.vendor, -- Vendor::Custom(Box::new(String::from_str("customvendor").unwrap())) -+ Vendor::Custom(CustomVendor::Static("customvendor")) - ); - assert_eq!(t.operating_system, OperatingSystem::Linux); - assert_eq!(t.environment, Environment::Unknown); -@@ -1230,7 +1265,7 @@ mod tests { - assert_eq!(t.architecture, Architecture::X86_64); - assert_eq!( - t.vendor, -- Vendor::Custom(Box::new(String::from_str("customvendor").unwrap())) -+ Vendor::Custom(CustomVendor::Static("customvendor")) - ); - assert_eq!(t.operating_system, OperatingSystem::Unknown); - assert_eq!(t.environment, Environment::Unknown); -@@ -1240,7 +1275,7 @@ mod tests { - Triple::from_str("unknown-foo"), - Ok(Triple { - architecture: Architecture::Unknown, -- vendor: Vendor::Custom(Box::new(String::from_str("foo").unwrap())), -+ vendor: Vendor::Custom(CustomVendor::Static("foo")), - operating_system: OperatingSystem::Unknown, - environment: Environment::Unknown, - binary_format: BinaryFormat::Unknown, - -From bc4b444133b8a5e56602f7c77c10ef3f1e7a7c78 Mon Sep 17 00:00:00 2001 -From: Dan Gohman <sunfish@mozilla.com> -Date: Mon, 18 Nov 2019 13:45:58 -0800 -Subject: [PATCH 6/7] Add a testcase with a BOM too, just in case. - ---- - src/targets.rs | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/targets.rs b/src/targets.rs -index 7152020..9a4d990 100644 ---- a/third_party/rust/target-lexicon-0.9.0/src/targets.rs -+++ b/third_party/rust/target-lexicon-0.9.0/src/targets.rs -@@ -1246,6 +1246,10 @@ mod tests { - Triple::from_str("x86_64-customvendor-linux").is_err(), - "zero-width character hazard" - ); -+ assert!( -+ Triple::from_str("x86_64-customvendor-linux").is_err(), -+ "BOM hazard" -+ ); - - // Test some valid cases. - let t = Triple::from_str("x86_64-customvendor-linux") - -From 721fbbe1c9cfd3adc9aaf011c62d6a36078f4133 Mon Sep 17 00:00:00 2001 -From: Dan Gohman <sunfish@mozilla.com> -Date: Mon, 18 Nov 2019 20:56:40 -0800 -Subject: [PATCH 7/7] Use an anonymous function instead of just a local - function. - ---- - src/targets.rs | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/src/targets.rs b/src/targets.rs -index 9a4d990..eb5a088 100644 ---- a/third_party/rust/target-lexicon-0.9.0/src/targets.rs -+++ b/third_party/rust/target-lexicon-0.9.0/src/targets.rs -@@ -813,10 +813,9 @@ impl FromStr for Vendor { - } - - // Restrict the set of characters permitted in a custom vendor. -- fn is_prohibited_char(c: char) -> bool { -+ if custom.chars().any(|c: char| { - !(c.is_ascii_lowercase() || c.is_ascii_digit() || c == '_' || c == '.') -- } -- if custom.chars().any(is_prohibited_char) { -+ }) { - return Err(()); - } - diff --git a/community/firefox/avoid-redefinition.patch b/community/firefox/avoid-redefinition.patch deleted file mode 100644 index af11c50384a..00000000000 --- a/community/firefox/avoid-redefinition.patch +++ /dev/null @@ -1,15 +0,0 @@ -Author: Rasmus Thomsen <oss@cogitri.dev> -Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones -(linux/if.h), leading to redefinitions. We need to include net/if.h before -linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt -Upstream: No ---- a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c.orig 2020-07-28 19:24:32.359751046 +0200 -+++ b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200 -@@ -31,6 +31,7 @@ - */ - - #if defined(LINUX) -+#include <net/if.h> - #include "addrs-netlink.h" - #include <csi_platform.h> - #include <assert.h> diff --git a/community/firefox/disable-moz-stackwalk.patch b/community/firefox/disable-moz-stackwalk.patch index b6bc756d2be..54990d799fc 100644 --- a/community/firefox/disable-moz-stackwalk.patch +++ b/community/firefox/disable-moz-stackwalk.patch @@ -1,18 +1,28 @@ +upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1882329 diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp -index 7d62921..adcfa44 100644 +index 2fefc5b..57c56e6 100644 --- a/mozglue/misc/StackWalk.cpp +++ b/mozglue/misc/StackWalk.cpp -@@ -33,13 +33,7 @@ using namespace mozilla; - # define MOZ_STACKWALK_SUPPORTS_MACOSX 0 - #endif +@@ -46,5 +46,12 @@ using namespace mozilla; --#if (defined(linux) && \ -- ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \ ++#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) ++# define HAVE___LIBC_STACK_END 1 ++#else ++# define HAVE___LIBC_STACK_END 0 ++#endif ++ + #if (defined(linux) && \ + ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \ - defined(HAVE__UNWIND_BACKTRACE))) --# define MOZ_STACKWALK_SUPPORTS_LINUX 1 ++ defined(HAVE__UNWIND_BACKTRACE)) && \ ++ (HAVE___LIBC_STACK_END || ANDROID)) + # define MOZ_STACKWALK_SUPPORTS_LINUX 1 +@@ -54,8 +61,2 @@ using namespace mozilla; + +-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) +-# define HAVE___LIBC_STACK_END 1 -#else - # define MOZ_STACKWALK_SUPPORTS_LINUX 0 +-# define HAVE___LIBC_STACK_END 0 -#endif - - #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) - # define HAVE___LIBC_STACK_END 1 +- + #if HAVE___LIBC_STACK_END diff --git a/community/firefox/disable-neon-in-aom.patch b/community/firefox/disable-neon-in-aom.patch deleted file mode 100644 index 01be79c047b..00000000000 --- a/community/firefox/disable-neon-in-aom.patch +++ /dev/null @@ -1,41 +0,0 @@ -Firefox (75) and AOM itself fail to build with NEON enabled. As such -we should disable it for now. - -In file included from /home/buildozer/aports/community/firefox/src/firefox-75.0/third_party/aom/aom_dsp/arm/blend_a64_mask_neon.c:12: -/home/buildozer/aports/community/firefox/src/firefox-75.0/third_party/aom/av1/common/arm/mem_neon.h: In function 'load_u8_8x8': -/usr/lib/gcc/armv7-alpine-linux-musleabihf/9.3.0/include/arm_neon.h:10303:1: error: inlining failed in call to always_inline 'vld1_u8': target specific option mismatch -10303 | vld1_u8 (const uint8_t * __a) - | ^~~~~~~ ---- a/media/libaom/moz.build 2020-04-09 08:20:14.608439591 +0200 -+++ b/media/libaom/moz.build 2020-04-09 08:20:21.801745246 +0200 -@@ -42,30 +42,6 @@ - ASFLAGS += [ '-I%s/media/libaom/config/linux/ia32/' % TOPSRCDIR ] - LOCAL_INCLUDES += [ '/media/libaom/config/linux/ia32/' ] - EXPORTS.aom += [ 'config/linux/ia32/config/aom_config.h' ] --elif CONFIG['CPU_ARCH'] == 'arm': -- EXPORTS.aom += files['ARM_EXPORTS'] -- ASFLAGS += [ -- '-I%s/media/libaom/config/linux/arm/' % TOPSRCDIR, -- '-I%s/libaom' % OBJDIR, -- ] -- LOCAL_INCLUDES += [ '/media/libaom/config/linux/arm/' ] -- EXPORTS.aom += [ 'config/linux/arm/config/aom_config.h' ] -- -- SOURCES += files['ARM_SOURCES'] -- -- for f in SOURCES: -- if f.endswith('neon.c'): -- SOURCES[f].flags += CONFIG['VPX_ASFLAGS'] -- -- if CONFIG['OS_TARGET'] == 'Android': -- # For cpu-features.h -- LOCAL_INCLUDES += [ -- '%%%s/sources/android/cpufeatures' % CONFIG['ANDROID_NDK'], -- ] -- if CONFIG['CC_TYPE'] == 'clang': -- ASFLAGS += [ -- '-no-integrated-as', -- ] - else: - # Generic C-only configuration - EXPORTS.aom += files['GENERIC_EXPORTS'] diff --git a/community/firefox/distribution.ini b/community/firefox/distribution.ini new file mode 100644 index 00000000000..d8e6642d2d0 --- /dev/null +++ b/community/firefox/distribution.ini @@ -0,0 +1,8 @@ +[Global] +id=alpinelinux +version=1.0 +about=Mozilla Firefox for Alpine Linux + +[Preferences] +app.distributor=alpinelinux +app.distributor.channel=firefox diff --git a/community/firefox/fd6847c9416f9eebde636e21d794d25d1be8791d.patch b/community/firefox/fd6847c9416f9eebde636e21d794d25d1be8791d.patch deleted file mode 100644 index 1af68d93c62..00000000000 --- a/community/firefox/fd6847c9416f9eebde636e21d794d25d1be8791d.patch +++ /dev/null @@ -1,37 +0,0 @@ -See https://bugzilla.mozilla.org/show_bug.cgi?id=1539739 - -From fd6847c9416f9eebde636e21d794d25d1be8791d Mon Sep 17 00:00:00 2001 -From: Mike Hommey <mh@glandium.org> -Date: Sat, 1 Jun 2019 09:06:01 +0900 -Subject: [PATCH] Bug 1526653 - Include struct definitions for user_vfp and - user_vfp_exc. - ---- - js/src/wasm/WasmSignalHandlers.cpp | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp -index 636537f8478..383c380f04c 100644 ---- a/js/src/wasm/WasmSignalHandlers.cpp -+++ b/js/src/wasm/WasmSignalHandlers.cpp -@@ -248,7 +248,16 @@ using mozilla::DebugOnly; - #endif - - #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS --# include <sys/user.h> -+struct user_vfp { -+ unsigned long long fpregs[32]; -+ unsigned long fpscr; -+}; -+ -+struct user_vfp_exc { -+ unsigned long fpexc; -+ unsigned long fpinst; -+ unsigned long fpinst2; -+}; - #endif - - #if defined(ANDROID) --- -2.20.1 - diff --git a/community/firefox/firefox-safe.desktop b/community/firefox/firefox-safe.desktop deleted file mode 100644 index 1538fc67485..00000000000 --- a/community/firefox/firefox-safe.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Exec=firefox -safe-mode %u -Icon=firefox -Type=Application -Terminal=false -MultipleArgs=false -Name=Firefox - Safe Mode -GenericName=Web Browser - Safe Mode -StartupNotify=false -Categories=Network;WebBrowser; diff --git a/community/firefox/firefox.desktop b/community/firefox/firefox.desktop index d048ce46c32..d6898e9e435 100644 --- a/community/firefox/firefox.desktop +++ b/community/firefox/firefox.desktop @@ -1,81 +1,340 @@ [Desktop Entry] -Exec=firefox %u -Icon=firefox -Type=Application -Terminal=false +Version=1.0 Name=Firefox -Name[bn]=ফায়ারফক্স3 -Name[eo]=Fajrovulpo3 -Name[fi]=Firefox3 -Name[pa]=ਫਾਇਰਫੋਕਸ3 -Name[tg]=Рӯбоҳи оташин3 GenericName=Web Browser -GenericName[af]=Web Blaaier GenericName[ar]=متصفح ويب -GenericName[az]=Veb Səyyahı -GenericName[bg]=Браузър -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[br]=Furcher ar Gwiad -GenericName[bs]=WWW Preglednik -GenericName[ca]=Fullejador web -GenericName[cs]=WWW prohlížeč -GenericName[cy]=Porydd Gwe -GenericName[da]=Browser -GenericName[de]=Web-Browser -GenericName[el]=Περιηγητής Ιστού -GenericName[eo]=TTT-legilo +GenericName[ast]=Restolador Web +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[ca]=Navegador web +GenericName[cs]=Webový prohlížeč +GenericName[da]=Webbrowser +GenericName[de]=Webbrowser +GenericName[el]=Περιηγητής διαδικτύου GenericName[es]=Navegador web -GenericName[et]=Veebilehitseja -GenericName[eu]=Web arakatzailea -GenericName[fa]=مرورگر وب +GenericName[et]=Veebibrauser +GenericName[fa]=مرورگر اینترنتی GenericName[fi]=WWW-selain -GenericName[fo]=Alnótsfar -GenericName[fr]=Navigateur web +GenericName[fr]=Navigateur Web GenericName[gl]=Navegador Web GenericName[he]=דפדפן אינטרנט -GenericName[hi]=वेब ब्राउज़र GenericName[hr]=Web preglednik GenericName[hu]=Webböngésző -GenericName[is]=Vafri -GenericName[it]=Browser Web -GenericName[ja]=ウェブブラウザ +GenericName[it]=Browser web +GenericName[ja]=ウェブ・ブラウザ GenericName[ko]=웹 브라우저 -GenericName[lo]=ເວັບບຣາວເຊີ -GenericName[lt]=Žiniatinklio naršyklė -GenericName[lv]=Web Pārlūks -GenericName[mk]=Прелистувач на Интернет -GenericName[mn]=Веб-Хөтөч +GenericName[ku]=Geroka torê +GenericName[lt]=Interneto naršyklė GenericName[nb]=Nettleser -GenericName[nds]=Nettkieker GenericName[nl]=Webbrowser GenericName[nn]=Nettlesar -GenericName[nso]=Seinyakisi sa Web -GenericName[pa]=ਵੈਬ ਝਲਕਾਰਾ +GenericName[no]=Nettleser GenericName[pl]=Przeglądarka WWW GenericName[pt]=Navegador Web GenericName[pt_BR]=Navegador Web -GenericName[ro]=Navigator de web +GenericName[ro]=Navigator Internet GenericName[ru]=Веб-браузер -GenericName[se]=Fierpmádatlogan -GenericName[sk]=Webový prehliadač +GenericName[sk]=Internetový prehliadač GenericName[sl]=Spletni brskalnik -GenericName[sr]=Веб претраживач -GenericName[sr@Latn]=Veb pretraživač -GenericName[ss]=Ibrawuza yeWeb GenericName[sv]=Webbläsare -GenericName[ta]=வலை உலாவி -GenericName[tg]=Тафсиргари вэб -GenericName[th]=เว็บบราวเซอร์ GenericName[tr]=Web Tarayıcı -GenericName[uk]=Навігатор Тенет -GenericName[uz]=Веб-браузер -GenericName[ven]=Buronza ya Webu +GenericName[ug]=توركۆرگۈ +GenericName[uk]=Веб-браузер GenericName[vi]=Trình duyệt Web -GenericName[wa]=Betchteu waibe -GenericName[xh]=Umkhangeli zincwadi we Web -GenericName[zh_CN]=网页浏览器 -GenericName[zh_TW]=網頁瀏覽器 -GenericName[zu]=Umcingi we-Web -MimeType=text/html; +GenericName[zh_CN]=网络浏览器 +GenericName[zh_TW]=網路瀏覽器 +Comment=Browse the World Wide Web +Comment[ar]=تصفح الشبكة العنكبوتية العالمية +Comment[ast]=Restola pela Rede +Comment[bn]=ইন্টারনেট ব্রাউজ করুন +Comment[ca]=Navegueu per el web +Comment[cs]=Prohlížení stránek World Wide Webu +Comment[da]=Surf på internettet +Comment[de]=Im Internet surfen +Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web) +Comment[es]=Navegue por la web +Comment[et]=Lehitse veebi +Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید +Comment[fi]=Selaa Internetin WWW-sivuja +Comment[fr]=Naviguer sur le Web +Comment[gl]=Navegar pola rede +Comment[he]=גלישה ברחבי האינטרנט +Comment[hr]=Pretražite web +Comment[hu]=A világháló böngészése +Comment[it]=Esplora il web +Comment[ja]=ウェブを閲覧します +Comment[ko]=웹을 돌아 다닙니다 +Comment[ku]=Li torê bigere +Comment[lt]=Naršykite internete +Comment[nb]=Surf på nettet +Comment[nl]=Verken het internet +Comment[nn]=Surf på nettet +Comment[no]=Surf på nettet +Comment[pl]=Przeglądanie stron WWW +Comment[pt]=Navegue na Internet +Comment[pt_BR]=Navegue na Internet +Comment[ro]=Navigați pe Internet +Comment[ru]=Доступ в Интернет +Comment[sk]=Prehliadanie internetu +Comment[sl]=Brskajte po spletu +Comment[sv]=Surfa på webben +Comment[tr]=İnternet'te Gezinin +Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ +Comment[uk]=Перегляд сторінок Інтернету +Comment[vi]=Để duyệt các trang web +Comment[zh_CN]=浏览互联网 +Comment[zh_TW]=瀏覽網際網路 +Keywords=Internet;WWW;Browser;Web;Explorer +Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب +Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador +Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer +Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer +Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet +Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen +Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;Firefox;Φιρεφοχ;Ιντερνετ +Keywords[es]=Explorador;Internet;WWW +Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa +Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur +Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה; +Keywords[hr]=Internet;WWW;preglednik;Web +Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer +Keywords[it]=Internet;WWW;Browser;Web;Navigatore +Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk +Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ +Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside +Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online +Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador +Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador +Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис +Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer +Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet +Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara +Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд +Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web +Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;Firefox;ff;互联网;网站; +Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐 +Exec=firefox %u +Icon=firefox +Terminal=false +X-MultipleArgs=false +Type=Application +MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json; StartupNotify=true +StartupWMClass=firefox Categories=Network;WebBrowser; +Actions=new-window;new-private-window; + +[Desktop Action new-window] +Name=New Window +Name[ach]=Dirica manyen +Name[af]=Nuwe venster +Name[an]=Nueva finestra +Name[ar]=نافذة جديدة +Name[as]=নতুন উইন্ডো +Name[ast]=Ventana nueva +Name[az]=Yeni Pəncərə +Name[be]=Новае акно +Name[bg]=Нов прозорец +Name[bn_BD]=নতুন উইন্ডো (N) +Name[bn_IN]=নতুন উইন্ডো +Name[br]=Prenestr nevez +Name[brx]=गोदान उइन्ड'(N) +Name[bs]=Novi prozor +Name[ca]=Finestra nova +Name[cak]=K'ak'a' tzuwäch +Name[cs]=Nové okno +Name[cy]=Ffenestr Newydd +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[dsb]=Nowe wokno +Name[el]=Νέο παράθυρο +Name[en_GB]=New Window +Name[en_US]=New Window +Name[en_ZA]=New Window +Name[eo]=Nova fenestro +Name[es_AR]=Nueva ventana +Name[es_CL]=Nueva ventana +Name[es_ES]=Nueva ventana +Name[es_MX]=Nueva ventana +Name[et]=Uus aken +Name[eu]=Leiho berria +Name[fa]=پنجره جدید +Name[ff]=Henorde Hesere +Name[fi]=Uusi ikkuna +Name[fr]=Nouvelle fenêtre +Name[fy_NL]=Nij finster +Name[ga_IE]=Fuinneog Nua +Name[gd]=Uinneag ùr +Name[gl]=Nova xanela +Name[gn]=Ovetã pyahu +Name[gu_IN]=નવી વિન્ડો +Name[he]=חלון חדש +Name[hi_IN]=नया विंडो +Name[hr]=Novi prozor +Name[hsb]=Nowe wokno +Name[hu]=Új ablak +Name[hy_AM]=Նոր Պատուհան +Name[id]=Jendela Baru +Name[is]=Nýr gluggi +Name[it]=Nuova finestra +Name[ja]=新しいウィンドウ +Name[ja_JP-mac]=新規ウインドウ +Name[ka]=ახალი ფანჯარა +Name[kk]=Жаңа терезе +Name[km]=បង្អួចថ្មី +Name[kn]=ಹೊಸ ಕಿಟಕಿ +Name[ko]=새 창 +Name[kok]=नवें जनेल +Name[ks]=نئئ وِنڈو +Name[lij]=Neuvo barcon +Name[lo]=ຫນ້າຕ່າງໃຫມ່ +Name[lt]=Naujas langas +Name[ltg]=Jauns lūgs +Name[lv]=Jauns logs +Name[mai]=नव विंडो +Name[mk]=Нов прозорец +Name[ml]=പുതിയ ജാലകം +Name[mr]=नवीन पटल +Name[ms]=Tetingkap Baru +Name[my]=ဝင်းဒိုးအသစ် +Name[nb_NO]=Nytt vindu +Name[ne_NP]=नयाँ सञ्झ्याल +Name[nl]=Nieuw venster +Name[nn_NO]=Nytt vindauge +Name[or]=ନୂତନ ୱିଣ୍ଡୋ +Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ +Name[pl]=Nowe okno +Name[pt_BR]=Nova janela +Name[pt_PT]=Nova janela +Name[rm]=Nova fanestra +Name[ro]=Fereastră nouă +Name[ru]=Новое окно +Name[sat]=नावा विंडो (N) +Name[si]=නව කවුළුවක් +Name[sk]=Nové okno +Name[sl]=Novo okno +Name[son]=Zanfun taaga +Name[sq]=Dritare e Re +Name[sr]=Нови прозор +Name[sv_SE]=Nytt fönster +Name[ta]=புதிய சாளரம் +Name[te]=కొత్త విండో +Name[th]=หน้าต่างใหม่ +Name[tr]=Yeni pencere +Name[tsz]=Eraatarakua jimpani +Name[uk]=Нове вікно +Name[ur]=نیا دریچہ +Name[uz]=Yangi oyna +Name[vi]=Cửa sổ mới +Name[wo]=Palanteer bu bees +Name[xh]=Ifestile entsha +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 +Exec=firefox --new-window %u + +[Desktop Action new-private-window] +Name=New Private Window +Name[ach]=Dirica manyen me mung +Name[af]=Nuwe privaatvenster +Name[an]=Nueva finestra privada +Name[ar]=نافذة خاصة جديدة +Name[as]=নতুন ব্যক্তিগত উইন্ডো +Name[ast]=Ventana privada nueva +Name[az]=Yeni Məxfi Pəncərə +Name[be]=Новае акно адасаблення +Name[bg]=Нов прозорец за поверително сърфиране +Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো +Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো +Name[br]=Prenestr merdeiñ prevez nevez +Name[brx]=गोदान प्राइभेट उइन्ड' +Name[bs]=Novi privatni prozor +Name[ca]=Finestra privada nova +Name[cak]=K'ak'a' ichinan tzuwäch +Name[cs]=Nové anonymní okno +Name[cy]=Ffenestr Breifat Newydd +Name[da]=Nyt privat vindue +Name[de]=Neues privates Fenster +Name[dsb]=Nowe priwatne wokno +Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης +Name[en_GB]=New Private Window +Name[en_US]=New Private Window +Name[en_ZA]=New Private Window +Name[eo]=Nova privata fenestro +Name[es_AR]=Nueva ventana privada +Name[es_CL]=Nueva ventana privada +Name[es_ES]=Nueva ventana privada +Name[es_MX]=Nueva ventana privada +Name[et]=Uus privaatne aken +Name[eu]=Leiho pribatu berria +Name[fa]=پنجره ناشناس جدید +Name[ff]=Henorde Suturo Hesere +Name[fi]=Uusi yksityinen ikkuna +Name[fr]=Nouvelle fenêtre de navigation privée +Name[fy_NL]=Nij priveefinster +Name[ga_IE]=Fuinneog Nua Phríobháideach +Name[gd]=Uinneag phrìobhaideach ùr +Name[gl]=Nova xanela privada +Name[gn]=Ovetã ñemi pyahu +Name[gu_IN]=નવી ખાનગી વિન્ડો +Name[he]=חלון פרטי חדש +Name[hi_IN]=नयी निजी विंडो +Name[hr]=Novi privatni prozor +Name[hsb]=Nowe priwatne wokno +Name[hu]=Új privát ablak +Name[hy_AM]=Սկսել Գաղտնի դիտարկում +Name[id]=Jendela Mode Pribadi Baru +Name[is]=Nýr huliðsgluggi +Name[it]=Nuova finestra anonima +Name[ja]=新しいプライベートウィンドウ +Name[ja_JP-mac]=新規プライベートウインドウ +Name[ka]=ახალი პირადი ფანჯარა +Name[kk]=Жаңа жекелік терезе +Name[km]=បង្អួចឯកជនថ្មី +Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ +Name[ko]=새 사생활 보호 모드 +Name[kok]=नवो खाजगी विंडो +Name[ks]=نْو پرایوٹ وینڈو +Name[lij]=Nêuvo barcón privòu +Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່ +Name[lt]=Naujas privataus naršymo langas +Name[ltg]=Jauns privatais lūgs +Name[lv]=Jauns privātais logs +Name[mai]=नया निज विंडो (W) +Name[mk]=Нов приватен прозорец +Name[ml]=പുതിയ സ്വകാര്യ ജാലകം +Name[mr]=नवीन वैयक्तिक पटल +Name[ms]=Tetingkap Persendirian Baharu +Name[my]=New Private Window +Name[nb_NO]=Nytt privat vindu +Name[ne_NP]=नयाँ निजी सञ्झ्याल +Name[nl]=Nieuw privévenster +Name[nn_NO]=Nytt privat vindauge +Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ +Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ +Name[pl]=Nowe okno prywatne +Name[pt_BR]=Nova janela privativa +Name[pt_PT]=Nova janela privada +Name[rm]=Nova fanestra privata +Name[ro]=Fereastră privată nouă +Name[ru]=Новое приватное окно +Name[sat]=नावा निजेराक् विंडो (W ) +Name[si]=නව පුද්ගලික කවුළුව (W) +Name[sk]=Nové okno v režime Súkromné prehliadanie +Name[sl]=Novo zasebno okno +Name[son]=Sutura zanfun taaga +Name[sq]=Dritare e Re Private +Name[sr]=Нови приватан прозор +Name[sv_SE]=Nytt privat fönster +Name[ta]=புதிய தனிப்பட்ட சாளரம் +Name[te]=కొత్త ఆంతరంగిక విండో +Name[th]=หน้าต่างส่วนตัวใหม่ +Name[tr]=Yeni gizli pencere +Name[tsz]=Juchiiti eraatarakua jimpani +Name[uk]=Приватне вікно +Name[ur]=نیا نجی دریچہ +Name[uz]=Yangi maxfiy oyna +Name[vi]=Cửa sổ riêng tư mới +Name[wo]=Panlanteeru biir bu bees +Name[xh]=Ifestile yangasese entsha +Name[zh_CN]=新建隐私浏览窗口 +Name[zh_TW]=新增隱私視窗 +Exec=firefox --private-window %u diff --git a/community/firefox/fix-fortify-system-wrappers.patch b/community/firefox/fix-fortify-system-wrappers.patch index 17cf7e303da..a1a89c6520b 100644 --- a/community/firefox/fix-fortify-system-wrappers.patch +++ b/community/firefox/fix-fortify-system-wrappers.patch @@ -1,13 +1,11 @@ The wrapper features.h gets pulled in by system headers causing thigns to break. We work around it by simply not wrap features.h ---- ./config/system-headers.mozbuild.orig -+++ ./config/system-headers.mozbuild -@@ -229,7 +229,6 @@ - 'execinfo.h', - 'extras.h', - 'fcntl.h', -- 'features.h', - 'fenv.h', - 'ffi.h', - 'fibdef.h', +diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild +index 07d48e7..d2ce2b2 100644 +--- a/config/system-headers.mozbuild ++++ b/config/system-headers.mozbuild +@@ -227,3 +227,2 @@ system_headers = [ + "fcntl.h", +- "features.h", + "fenv.h", diff --git a/community/firefox/fix-tools.patch b/community/firefox/fix-tools.patch deleted file mode 100644 index 245d694bd38..00000000000 --- a/community/firefox/fix-tools.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp -index 19d0a5c56d..b64b543066 100644 ---- a/tools/profiler/core/platform-linux-android.cpp -+++ b/tools/profiler/core/platform-linux-android.cpp -@@ -506,8 +506,10 @@ static void PlatformInit(PSLockRef aLock) {} - ucontext_t sSyncUContext; - - void Registers::SyncPopulate() { -- if (!getcontext(&sSyncUContext)) { -- PopulateRegsFromContext(*this, &sSyncUContext); -- } -+ #if defined(__GLIBC__) -+ if (!getcontext(&sSyncUContext)) { -+ PopulateRegsFromContext(*this, &sSyncUContext); -+ } -+ #endif - } - #endif diff --git a/community/firefox/fix-webrtc-glibcisms.patch b/community/firefox/fix-webrtc-glibcisms.patch index 7533d94b91e..4f9043b58e1 100644 --- a/community/firefox/fix-webrtc-glibcisms.patch +++ b/community/firefox/fix-webrtc-glibcisms.patch @@ -1,20 +1,20 @@ ---- ./third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c.orig 2018-05-09 23:48:44.677389171 +0200 -+++ ./third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c 2018-05-09 23:48:56.254373557 +0200 -@@ -14,7 +14,7 @@ - #ifndef __GLIBC_PREREQ - #define __GLIBC_PREREQ(a, b) 0 +--- a/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc ++++ b/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc +@@ -18,7 +18,7 @@ + #define WEBRTC_GLIBC_PREREQ(a, b) 0 #endif --#if __GLIBC_PREREQ(2, 16) -+#if !__GLIBC__ || __GLIBC_PREREQ(2, 16) + +-#if WEBRTC_GLIBC_PREREQ(2, 16) ++#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16) #include <sys/auxv.h> #else - #include <fcntl.h> -@@ -32,7 +32,7 @@ + #include <errno.h> +@@ -40,7 +40,7 @@ int architecture = 0; - unsigned long hwcap = 0; + uint64_t hwcap = 0; const char* platform = NULL; --#if __GLIBC_PREREQ(2, 16) -+#if !__GLIBC__ || __GLIBC_PREREQ(2, 16) +-#if WEBRTC_GLIBC_PREREQ(2, 16) ++#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16) hwcap = getauxval(AT_HWCAP); platform = (const char*)getauxval(AT_PLATFORM); #else diff --git a/community/firefox/force-can-use-pack-relative-relocs.patch b/community/firefox/force-can-use-pack-relative-relocs.patch new file mode 100644 index 00000000000..b1161080d8d --- /dev/null +++ b/community/firefox/force-can-use-pack-relative-relocs.patch @@ -0,0 +1,11 @@ +--- a/toolkit/moz.configure ++++ b/toolkit/moz.configure +@@ -1517,7 +1517,7 @@ with only_when("--enable-compile-environ + # packed relative relocations rather than elfhack. + if android_version: + return android_version >= 30 +- return have_arc4random ++ return have_arc4random or True + + @depends( + c_compiler, diff --git a/community/firefox/icu74.patch b/community/firefox/icu74.patch new file mode 100644 index 00000000000..46c94451b53 --- /dev/null +++ b/community/firefox/icu74.patch @@ -0,0 +1,38 @@ +https://bugzilla.mozilla.org/show_bug.cgi?id=1862601 + +# HG changeset patch +# User André Bargull <andre.bargull@gmail.com> +# Date 1697435923 -7200 +# Node ID d5f3b0c4f08a426ce00a153c04e177eecb6820e2 +# Parent c63994f8259efdf6e745c960aa9e1409d5477049 +Bug xxx - Part 12: Add new line break classes. r? + +diff --git a/intl/lwbrk/LineBreaker.cpp b/intl/lwbrk/LineBreaker.cpp +--- a/intl/lwbrk/LineBreaker.cpp ++++ b/intl/lwbrk/LineBreaker.cpp +@@ -443,17 +443,23 @@ static int8_t GetClass(uint32_t u, LineB + /* JT = 34, [JT] */ CLASS_CHARACTER, + /* JV = 35, [JV] */ CLASS_CHARACTER, + /* CLOSE_PARENTHESIS = 36, [CP] */ CLASS_CLOSE_LIKE_CHARACTER, + /* CONDITIONAL_JAPANESE_STARTER = 37, [CJ] */ CLASS_CLOSE, + /* HEBREW_LETTER = 38, [HL] */ CLASS_CHARACTER, + /* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER, + /* E_BASE = 40, [EB] */ CLASS_BREAKABLE, + /* E_MODIFIER = 41, [EM] */ CLASS_CHARACTER, +- /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER}; ++ /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER, ++ /* AKSARA = 43, [AK] */ CLASS_CHARACTER, ++ /* AKSARA_PREBASE = 44, [AP] */ CLASS_CHARACTER, ++ /* AKSARA_START = 45, [AS] */ CLASS_CHARACTER, ++ /* VIRAMA_FINAL = 46, [VF] */ CLASS_CHARACTER, ++ /* VIRAMA = 47, [VI] */ CLASS_CHARACTER, ++ }; + + static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass), + "Gecko vs ICU LineBreak class mismatch"); + + auto cls = GetLineBreakClass(u); + MOZ_ASSERT(cls < mozilla::ArrayLength(sUnicodeLineBreakToClass)); + + // Overrides based on rules for the different line-break values given in + diff --git a/community/firefox/lfs64.patch b/community/firefox/lfs64.patch new file mode 100644 index 00000000000..bae8b5d16d2 --- /dev/null +++ b/community/firefox/lfs64.patch @@ -0,0 +1,35 @@ +force stat() instead of stat64() on 32-bit +-- +--- a/xpcom/io/nsLocalFileUnix.h ++++ b/xpcom/io/nsLocalFileUnix.h +@@ -21,7 +21,7 @@ + + // stat64 and lstat64 are deprecated on OS X. Normal stat and lstat are + // 64-bit by default on OS X 10.6+. +-#if defined(HAVE_STAT64) && defined(HAVE_LSTAT64) && !defined(XP_DARWIN) ++#if 0 && defined(HAVE_STAT64) && defined(HAVE_LSTAT64) && !defined(XP_DARWIN) + # if defined(AIX) + # if defined STAT + # undef STAT +--- a/mozglue/baseprofiler/core/shared-libraries-linux.cc ++++ b/mozglue/baseprofiler/core/shared-libraries-linux.cc +@@ -178,7 +178,7 @@ + return false; + } + +-#if defined(__x86_64__) || defined(__aarch64__) || \ ++#if 1 || defined(__x86_64__) || defined(__aarch64__) || \ + (defined(__mips__) && _MIPS_SIM == _ABI64) || \ + !(defined(GP_OS_linux) || defined(GP_OS_android)) + +--- a/security/sandbox/linux/broker/SandboxBrokerUtils.h ++++ b/security/sandbox/linux/broker/SandboxBrokerUtils.h +@@ -15,7 +15,7 @@ + // calls. We'll intercept those and handle them in the stat functions + // but must be sure to use the right structure layout. + +-#if defined(__NR_stat64) || defined(__NR_fstatat64) ++#if 0 && (defined(__NR_stat64) || defined(__NR_fstatat64) ) + typedef struct stat64 statstruct; + # define statsyscall stat64 + # define lstatsyscall lstat64 diff --git a/community/firefox/mallinfo.patch b/community/firefox/mallinfo.patch deleted file mode 100644 index 7916a200ca2..00000000000 --- a/community/firefox/mallinfo.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/xpcom/base/nsMemoryReporterManager.cpp b/xpcom/base/nsMemoryReporterManager.cpp -index 865e1b5430..9a00dafecb 100644 ---- a/xpcom/base/nsMemoryReporterManager.cpp -+++ b/xpcom/base/nsMemoryReporterManager.cpp -@@ -124,6 +124,7 @@ static MOZ_MUST_USE nsresult ResidentUniqueDistinguishedAmount(int64_t* aN) { - return GetProcSelfSmapsPrivate(aN); - } - -+#ifdef __GLIBC__ - # ifdef HAVE_MALLINFO - # define HAVE_SYSTEM_HEAP_REPORTER 1 - static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) { -@@ -143,6 +144,7 @@ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) { - return NS_OK; - } - # endif -+#endif - - #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ - defined(__OpenBSD__) || defined(__FreeBSD_kernel__) diff --git a/community/firefox/mozilla-location.keys b/community/firefox/mozilla-location.keys new file mode 100644 index 00000000000..8a3262d9674 --- /dev/null +++ b/community/firefox/mozilla-location.keys @@ -0,0 +1 @@ +NjhhZGJjMDEtMDM3OC00Zjc0LTk0N2UtMzBiYzA5NjlhMDc3Cg== diff --git a/community/firefox/no-ccache-stats.patch b/community/firefox/no-ccache-stats.patch new file mode 100644 index 00000000000..4d557a01504 --- /dev/null +++ b/community/firefox/no-ccache-stats.patch @@ -0,0 +1,13 @@ +prevents a call to ccache +diff --git a/python/mozbuild/mozbuild/controller/building.py b/python/mozbuild/mozbuild/controller/building.py +index bf7009a..011c012 100644 +--- a/python/mozbuild/mozbuild/controller/building.py ++++ b/python/mozbuild/mozbuild/controller/building.py +@@ -570,6 +570,7 @@ class BuildMonitor(MozbuildObject): + ) + + def ccache_stats(self, ccache=None): ++ return None + ccache_stats = None + + if ccache is None: diff --git a/community/firefox/ppc-musttail.patch b/community/firefox/ppc-musttail.patch new file mode 100644 index 00000000000..ebe06c0ebe8 --- /dev/null +++ b/community/firefox/ppc-musttail.patch @@ -0,0 +1,30 @@ +Patch-Source: https://github.com/chimera-linux/cports/blob/506127954653ccebf9b82df1452cce4ed0dae3b1/contrib/thunderbird/patches/ppc-musttail.patch +-- +commit 5e66655e1456c9d26637ceaed3f4533b537322c4 +Author: Daniel Kolesa <daniel@octaforge.org> +Date: Sat May 13 23:00:04 2023 +0200 + + disable musttail on ppc + + 41:38.04 LLVM ERROR: failed to perform tail call elimination on a call site marked musttail + 41:38.04 PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. + 41:38.04 Stack dump: + 41:38.04 0. Running pass 'Function Pass Manager' on module '/builddir/thunderbird-114.0_beta1/obj-powerpc64le-unknown-linux-musl/toolkit/library/build/../../../gfx/skia/SkOpts.o'. + 41:38.04 1. Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@_ZN8portableL15init_lane_masksEPNS_6ParamsEP21SkRasterPipelineStageffff' + 41:38.95 clang-16: error: unable to execute command: Aborted + + To be investigated later. + +diff --git a/gfx/skia/skia/src/core/SkRasterPipeline.h b/gfx/skia/skia/src/core/SkRasterPipeline.h +index 766bb0c..88c6cb2 100644 +--- a/gfx/skia/skia/src/core/SkRasterPipeline.h ++++ b/gfx/skia/skia/src/core/SkRasterPipeline.h +@@ -24,7 +24,7 @@ enum SkColorType : int; + struct SkImageInfo; + struct skcms_TransferFunction; + +-#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) ++#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && !defined(__powerpc__) + #define SK_HAS_MUSTTAIL 1 + #else + #define SK_HAS_MUSTTAIL 0 diff --git a/community/firefox/python-deps.patch b/community/firefox/python-deps.patch new file mode 100644 index 00000000000..7884095f02a --- /dev/null +++ b/community/firefox/python-deps.patch @@ -0,0 +1,10 @@ +diff --git a/python/sites/mach.txt b/python/sites/mach.txt +index 8945d44..8746f70 100644 +--- a/python/sites/mach.txt ++++ b/python/sites/mach.txt +@@ -98,3 +98,3 @@ pypi-optional:glean-sdk==55.0.0:telemetry will not be collected + # support down to the oldest locally-installed version (5.4.2). +-pypi-optional:psutil>=5.4.2,<=5.9.4:telemetry will be missing some data +-pypi-optional:zstandard>=0.11.1,<=0.22.0:zstd archives will not be possible to extract ++pypi-optional:psutil>=5.4.2,<=5.10.0:telemetry will be missing some data ++pypi-optional:zstandard>=0.11.1,<=0.24.0:zstd archives will not be possible to extract diff --git a/community/firefox/riscv64-no-lto.patch b/community/firefox/riscv64-no-lto.patch new file mode 100644 index 00000000000..90c9b5def1a --- /dev/null +++ b/community/firefox/riscv64-no-lto.patch @@ -0,0 +1,16 @@ +--- a/config/makefiles/rust.mk ++++ b/config/makefiles/rust.mk +@@ -91,11 +91,13 @@ + ifndef rustflags_sancov + # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045. + ifndef MOZ_CODE_COVERAGE ++ifeq (,$(findstring riscv64,$(RUST_TARGET))) + ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE))) + cargo_rustc_flags += -Clto=thin + endif + # We need -Cembed-bitcode=yes for all crates when using -Clto. + RUSTFLAGS += -Cembed-bitcode=yes ++endif + endif + endif + endif diff --git a/community/firefox/rust-lto-thin.patch b/community/firefox/rust-lto-thin.patch new file mode 100644 index 00000000000..788fceab39f --- /dev/null +++ b/community/firefox/rust-lto-thin.patch @@ -0,0 +1,12 @@ +set rust crate lto to thin to not use fatlto for gkrust which fails sometimes +--- a/config/makefiles/rust.mk ++++ b/config/makefiles/rust.mk +@@ -92,7 +92,7 @@ + # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045. + ifndef MOZ_CODE_COVERAGE + ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE))) +-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat) ++cargo_rustc_flags += -Clto=thin + endif + # We need -Cembed-bitcode=yes for all crates when using -Clto. + RUSTFLAGS += -Cembed-bitcode=yes diff --git a/community/firefox/sandbox-sched_setscheduler.patch b/community/firefox/sandbox-sched_setscheduler.patch index 1db645aebbd..ffdf12678bc 100644 --- a/community/firefox/sandbox-sched_setscheduler.patch +++ b/community/firefox/sandbox-sched_setscheduler.patch @@ -1,23 +1,24 @@ upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1657849 diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp -index 27da4e7..5a607a4 100644 +index ed958bc..9824433 100644 --- a/security/sandbox/linux/SandboxFilter.cpp +++ b/security/sandbox/linux/SandboxFilter.cpp -@@ -1455,6 +1455,7 @@ class GMPSandboxPolicy : public SandboxPolicyCommon { - return Trap(OpenTrap, mFiles); - - case __NR_brk: -+ case __NR_sched_setscheduler: - // Because Firefox on glibc resorts to the fallback implementation - // mentioned in bug 1576006, we must explicitly allow the get*id() - // functions in order to use NSS in the clearkey CDM. -@@ -1467,8 +1468,7 @@ class GMPSandboxPolicy : public SandboxPolicyCommon { +@@ -1751,6 +1751,6 @@ class GMPSandboxPolicy : public SandboxPolicyCommon { case __NR_sched_get_priority_max: ++ case __NR_sched_setscheduler: return Allow(); case __NR_sched_getparam: - case __NR_sched_getscheduler: - case __NR_sched_setscheduler: { + case __NR_sched_getscheduler: { Arg<pid_t> pid(0); - return If(pid == 0, Allow()).Else(Trap(SchedTrap, nullptr)); +@@ -1926,3 +1926,2 @@ class RDDSandboxPolicy final : public SandboxPolicyCommon { + case __NR_sched_getscheduler: +- case __NR_sched_setscheduler: + case __NR_sched_getattr: +@@ -1932,2 +1931,5 @@ class RDDSandboxPolicy final : public SandboxPolicyCommon { } ++ // sched_setscheduler gets special treatment here (bug 1657849): ++ case __NR_sched_setscheduler: ++ return Allow(); + diff --git a/community/firefox/sqlite-ppc.patch b/community/firefox/sqlite-ppc.patch new file mode 100644 index 00000000000..30d80281f71 --- /dev/null +++ b/community/firefox/sqlite-ppc.patch @@ -0,0 +1,39 @@ +Patch-Source: https://github.com/chimera-linux/cports/blob/0b7b1b1/contrib/firefox/patches/sqlite-ppc.patch +From 67157b1aa7da0a146b7d2d5abb9237eea1f434ec Mon Sep 17 00:00:00 2001 +From: Daniel Kolesa <daniel@octaforge.org> +Date: Fri, 23 Sep 2022 02:38:29 +0200 +Subject: [PATCH] fix sqlite3 on ppc with clang + +The __ppc__ macro is always defined on clang but not gcc, which +results in sqlite mistakenly thinking that ppc64le with clang +is big endian. + +Also disable some inline assembly stuff on ppc that is never used +with gcc and probably was never tested with modern machines. + +rebased 2024-01-24 by @ptrcnull: +upstream removed the __ppc__ check, +adding a __LITTLE_ENDIAN__ check to match what they do +--- + third_party/sqlite3/src/sqlite3.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/third_party/sqlite3/src/sqlite3.c b/third_party/sqlite3/src/sqlite3.c +index 9443127..8593d8a 100644 +--- a/third_party/sqlite3/src/sqlite3.c ++++ b/third_party/sqlite3/src/sqlite3.c +@@ -14874,2 +14874,4 @@ typedef INT16_TYPE LogEst; + # define SQLITE_BYTEORDER 4321 ++# elif defined(__LITTLE_ENDIAN__) && __LITTLE_ENDIAN__==1 ++# define SQLITE_BYTEORDER 1234 + # elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \ +@@ -36340,3 +36342,3 @@ SQLITE_PRIVATE int sqlite3VListNameToNum(VList *pIn, const char *zName, int nNam + +-#elif !defined(__STRICT_ANSI__) && (defined(__GNUC__) && defined(__ppc__)) ++#elif 0 + +@@ -207002,2 +207004,4 @@ struct RtreeMatchArg { + # define SQLITE_BYTEORDER 4321 ++# elif defined(__LITTLE_ENDIAN__) && __LITTLE_ENDIAN__==1 ++# define SQLITE_BYTEORDER 1234 + # elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \ diff --git a/community/firefox/vendor-prefs.js b/community/firefox/vendor-prefs.js new file mode 100644 index 00000000000..b98a03c166d --- /dev/null +++ b/community/firefox/vendor-prefs.js @@ -0,0 +1,19 @@ +// Use LANG environment variable to choose locale +pref("intl.locale.requested", ""); + +// Use system-provided dictionaries +pref("spellchecker.dictionary_path", "/usr/share/hunspell"); + +// Disable default browser checking. +pref("browser.shell.checkDefaultBrowser", false); + +// Don't disable our bundled extensions in the application directory +pref("extensions.autoDisableScopes", 11); +pref("extensions.shownSelectionUI", true); + +// Disable sponsored tiles from "Mozilla Tiles Service" +pref("browser.topsites.contile.enabled", false); + +// Disable Widevine CDM support (doesn't work on musl anyway) +pref("media.gmp-widevinecdm.visible", false); +pref("media.gmp-widevinecdm.enabled", false); |